|
7 | 7 | #include "freertos/task.h" |
8 | 8 | #include "log_tags.h" |
9 | 9 | #include "pgp_autobutton.h" |
| 10 | +#include "pgp_autosetting.h" |
10 | 11 | #include "settings.h" |
11 | 12 | #include "uart.h" |
12 | 13 |
|
@@ -90,35 +91,34 @@ void handle_led_notify_from_app(esp_gatt_if_t gatts_if, uint16_t conn_id, const |
90 | 91 | LEDHANDLER_TAG, "[%d] LED pattern total duration: %d ms", conn_id, pattern_duration * 50); |
91 | 92 |
|
92 | 93 | bool press_button = false; |
| 94 | + char retoggle_setting = 0; |
93 | 95 |
|
94 | 96 | if (count_off && !count_notoff) { |
95 | 97 | ESP_LOGD(LEDHANDLER_TAG, "[%d] Turn LEDs off.", conn_id); |
96 | 98 | } else if (count_white && count_white == count_notoff) { |
97 | 99 | // only white |
98 | 100 | process_char('s'); |
99 | | - |
| 101 | + retoggle_setting = 's'; |
100 | 102 | ESP_LOGW(LEDHANDLER_TAG, |
101 | | - "[%d] Bag is full: press button %s - re-enabling autospin after %d ms", |
| 103 | + "[%d] Bag is full: press button %s", |
102 | 104 | conn_id, |
103 | | - get_setting_log_value(&settings.autospin), |
104 | | - retoggle_delay); |
105 | | - |
106 | | - settings_queue_item_t item; |
107 | | - item.gatts_if = gatts_if; |
108 | | - item.conn_id = conn_id; |
109 | | - item.delay = retoggle_delay; |
110 | | - xQueueSend(settings_queue, &item, portMAX_DELAY); |
| 105 | + get_setting_log_value(&settings.autospin)); |
111 | 106 | } else if (count_red && count_off && count_red == count_notoff) { |
112 | 107 | // blinking just red |
113 | | - ESP_LOGW( |
114 | | - LEDHANDLER_TAG, "[%d] Pokeballs are empty or Pokestop went out of range.", conn_id); |
| 108 | + process_char('c'); |
| 109 | + retoggle_setting = 'c'; |
| 110 | + ESP_LOGW(LEDHANDLER_TAG, |
| 111 | + "[%d] Pokeballs are empty or Pokestop went out of range: press button %s", |
| 112 | + conn_id, |
| 113 | + get_setting_log_value(&settings.autocatch)); |
115 | 114 | } else if (count_red && !count_off && count_red == count_notoff) { |
116 | 115 | // only red |
117 | 116 | process_char('c'); |
| 117 | + retoggle_setting = 'c'; |
118 | 118 | ESP_LOGW(LEDHANDLER_TAG, |
119 | 119 | "[%d] Box is full: press button %s", |
120 | 120 | conn_id, |
121 | | - get_setting_log_value(&settings.autospin)); |
| 121 | + get_setting_log_value(&settings.autocatch)); |
122 | 122 | } else if (count_green && count_green == count_notoff) { |
123 | 123 | // blinking green |
124 | 124 | ESP_LOGI(LEDHANDLER_TAG, |
@@ -153,7 +153,7 @@ void handle_led_notify_from_app(esp_gatt_if_t gatts_if, uint16_t conn_id, const |
153 | 153 | conn_id, |
154 | 154 | count_ballshake); |
155 | 155 | } else if (count_red) { |
156 | | - ESP_LOGI(LEDHANDLER_TAG, |
| 156 | + ESP_LOGW(LEDHANDLER_TAG, |
157 | 157 | "[%d] Pokemon fled after %d ball shakes.", |
158 | 158 | conn_id, |
159 | 159 | count_ballshake); |
@@ -192,4 +192,19 @@ void handle_led_notify_from_app(esp_gatt_if_t gatts_if, uint16_t conn_id, const |
192 | 192 | xQueueSend(button_queue, &item, portMAX_DELAY); |
193 | 193 | } |
194 | 194 | } |
| 195 | + |
| 196 | + if (retoggle_setting != 0) { |
| 197 | + ESP_LOGD(LEDHANDLER_TAG, |
| 198 | + "[%d] queueing setting toggle for %c after %d ms", |
| 199 | + conn_id, |
| 200 | + retoggle_setting, |
| 201 | + retoggle_delay); |
| 202 | + setting_queue_item_t item = { |
| 203 | + .gatts_if = gatts_if, |
| 204 | + .conn_id = conn_id, |
| 205 | + .delay = retoggle_delay, |
| 206 | + .setting = retoggle_setting, |
| 207 | + }; |
| 208 | + xQueueSend(setting_queue, &item, portMAX_DELAY); |
| 209 | + } |
195 | 210 | } |
0 commit comments