5
5
// TaskHandle_t timeUpdateTaskHandle;
6
6
TaskHandle_t taskScreenRotateTaskHandle;
7
7
TaskHandle_t workerTaskHandle;
8
- esp_timer_handle_t screenRotateTimer;
9
- esp_timer_handle_t minuteTimer;
8
+
10
9
11
10
std::array<std::string, NUM_SCREENS> taskEpdContent = {};
12
11
std::string priceString;
@@ -23,8 +22,6 @@ void workerTask(void *pvParameters) {
23
22
while (1 ) {
24
23
// Wait for a work item to be available in the queue
25
24
if (xQueueReceive (workQueue, &receivedItem, portMAX_DELAY)) {
26
- uint firstIndex = 0 ;
27
-
28
25
// Process the work item based on its type
29
26
switch (receivedItem.type ) {
30
27
case TASK_BITAXE_UPDATE: {
@@ -42,10 +39,7 @@ void workerTask(void *pvParameters) {
42
39
case TASK_PRICE_UPDATE: {
43
40
uint currency = getCurrentCurrency ();
44
41
uint price = getPrice (currency);
45
- // u_char priceSymbol = '$';
46
- // if (preferences.getBool("fetchEurPrice", DEFAULT_FETCH_EUR_PRICE)) {
47
- // priceSymbol = '[';
48
- // }
42
+
49
43
if (getCurrentScreen () == SCREEN_BTC_TICKER) {
50
44
taskEpdContent = parsePriceData (price, currency, preferences.getBool (" suffixPrice" , DEFAULT_SUFFIX_PRICE));
51
45
} else if (getCurrentScreen () == SCREEN_SATS_PER_CURRENCY) {
@@ -121,29 +115,6 @@ void taskScreenRotate(void *pvParameters) {
121
115
}
122
116
}
123
117
124
- void IRAM_ATTR minuteTimerISR (void *arg) {
125
- BaseType_t xHigherPriorityTaskWoken = pdFALSE;
126
- // vTaskNotifyGiveFromISR(timeUpdateTaskHandle, &xHigherPriorityTaskWoken);
127
- WorkItem timeUpdate = {TASK_TIME_UPDATE, 0 };
128
- xQueueSendFromISR (workQueue, &timeUpdate, &xHigherPriorityTaskWoken);
129
-
130
- if (bitaxeFetchTaskHandle != NULL ) {
131
- vTaskNotifyGiveFromISR (bitaxeFetchTaskHandle, &xHigherPriorityTaskWoken);
132
- }
133
-
134
- if (xHigherPriorityTaskWoken == pdTRUE) {
135
- portYIELD_FROM_ISR ();
136
- }
137
- }
138
-
139
- void IRAM_ATTR screenRotateTimerISR (void *arg) {
140
- BaseType_t xHigherPriorityTaskWoken = pdFALSE;
141
- vTaskNotifyGiveFromISR (taskScreenRotateTaskHandle, &xHigherPriorityTaskWoken);
142
- if (xHigherPriorityTaskWoken == pdTRUE) {
143
- portYIELD_FROM_ISR ();
144
- }
145
- }
146
-
147
118
void setupTasks () {
148
119
workQueue = xQueueCreate (WORK_QUEUE_SIZE, sizeof (WorkItem));
149
120
@@ -159,65 +130,6 @@ void setupTasks() {
159
130
setCurrentScreen (preferences.getUInt (" currentScreen" , DEFAULT_CURRENT_SCREEN));
160
131
}
161
132
162
- void setupTimeUpdateTimer (void *pvParameters) {
163
- const esp_timer_create_args_t minuteTimerConfig = {
164
- .callback = &minuteTimerISR, .name = " minute_timer" };
165
-
166
- esp_timer_create (&minuteTimerConfig, &minuteTimer);
167
-
168
- time_t currentTime;
169
- struct tm timeinfo;
170
- time (¤tTime);
171
- localtime_r (¤tTime, &timeinfo);
172
- uint32_t secondsUntilNextMinute = 60 - timeinfo.tm_sec ;
173
-
174
- if (secondsUntilNextMinute > 0 )
175
- vTaskDelay (pdMS_TO_TICKS ((secondsUntilNextMinute * 1000 )));
176
-
177
- esp_timer_start_periodic (minuteTimer, usPerMinute);
178
-
179
- WorkItem timeUpdate = {TASK_TIME_UPDATE, 0 };
180
- xQueueSend (workQueue, &timeUpdate, portMAX_DELAY);
181
- // xTaskNotifyGive(timeUpdateTaskHandle);
182
-
183
- vTaskDelete (NULL );
184
- }
185
-
186
- void setupScreenRotateTimer (void *pvParameters) {
187
- const esp_timer_create_args_t screenRotateTimerConfig = {
188
- .callback = &screenRotateTimerISR, .name = " screen_rotate_timer" };
189
-
190
- esp_timer_create (&screenRotateTimerConfig, &screenRotateTimer);
191
-
192
- if (preferences.getBool (" timerActive" , DEFAULT_TIMER_ACTIVE)) {
193
- esp_timer_start_periodic (screenRotateTimer,
194
- getTimerSeconds () * usPerSecond);
195
- }
196
-
197
- vTaskDelete (NULL );
198
- }
199
-
200
- uint getTimerSeconds () { return preferences.getUInt (" timerSeconds" , DEFAULT_TIMER_SECONDS); }
201
-
202
- bool isTimerActive () { return esp_timer_is_active (screenRotateTimer); }
203
-
204
- void setTimerActive (bool status) {
205
- if (status) {
206
- esp_timer_start_periodic (screenRotateTimer,
207
- getTimerSeconds () * usPerSecond);
208
- queueLedEffect (LED_EFFECT_START_TIMER);
209
- preferences.putBool (" timerActive" , true );
210
- } else {
211
- esp_timer_stop (screenRotateTimer);
212
- queueLedEffect (LED_EFFECT_PAUSE_TIMER);
213
- preferences.putBool (" timerActive" , false );
214
- }
215
-
216
- if (eventSourceTaskHandle != NULL ) xTaskNotifyGive (eventSourceTaskHandle);
217
- }
218
-
219
- void toggleTimerActive () { setTimerActive (!isTimerActive ()); }
220
-
221
133
uint getCurrentScreen () { return currentScreen; }
222
134
223
135
void setCurrentScreen (uint newScreen) {
0 commit comments