main/task_user.c

changeset 43
70c99c2084dc
parent 42
22a0f9810561
child 44
e52d11b8f252
equal deleted inserted replaced
42:22a0f9810561 43:70c99c2084dc
405 405
406 sprintf(buf, "%.2f bar", pressure / 1000.0); 406 sprintf(buf, "%.2f bar", pressure / 1000.0);
407 w = u8g2_GetUTF8Width(&u8g2, buf); 407 w = u8g2_GetUTF8Width(&u8g2, buf);
408 u8g2_DrawUTF8(&u8g2, (128 - w) / 2,63, buf); 408 u8g2_DrawUTF8(&u8g2, (128 - w) / 2,63, buf);
409 u8g2_SendBuffer(&u8g2); 409 u8g2_SendBuffer(&u8g2);
410 u8g2_SetPowerSave(&u8g2, 0); // wake up display
410 } 411 }
411 412
412 413
413 414
414 /** 415 /**
813 814
814 Main_Loop2 = New_Loop2; 815 Main_Loop2 = New_Loop2;
815 switch (Main_Loop2) { 816 switch (Main_Loop2) {
816 case ML2_INIT: 817 case ML2_INIT:
817 ESP_LOGI(TAG, "Loop user: Init"); 818 ESP_LOGI(TAG, "Loop user: Init");
818 New_Loop2 = ML2_USER; 819 New_Loop2 = -1;
820 if (xSemaphoreTake(xSemaphoreUnits, 25) == pdTRUE) {
821 for (int i = 0; i < 3; i++) {
822 if (units[i].mode) {
823 if (New_Loop2 == -1) { // Not selected yet
824 New_Loop2 = i;
825 } else if (New_Loop2 >= 0) { // One selected
826 New_Loop2 = -2;
827 break; // Multiple units are active
828 }
829 }
830 }
831 xSemaphoreGive(xSemaphoreUnits);
832 } else {
833 ESP_LOGE(TAG, "menu_change() ML2_INIT lock");
834 }
835 if (New_Loop2 < 0)
836 New_Loop2 = ML2_USER;
837 else
838 New_Loop2 += ML2_UNIT1;
819 break; 839 break;
820 840
821 case ML2_USER: 841 case ML2_USER:
822 screen_main(); 842 screen_main();
823 break; 843 break;
1265 } 1285 }
1266 1286
1267 if (uxBits & TASK_USER_WAKEUP) { 1287 if (uxBits & TASK_USER_WAKEUP) {
1268 ESP_LOGI(TAG, "User task wakeup"); 1288 ESP_LOGI(TAG, "User task wakeup");
1269 xEventGroupSetBits(xEventGroupUser, TASK_USER_BUSY); 1289 xEventGroupSetBits(xEventGroupUser, TASK_USER_BUSY);
1270 screen_main();
1271 UserTimer = INACTIVITY; 1290 UserTimer = INACTIVITY;
1272 New_Loop2 = ML2_INIT; 1291 New_Loop2 = ML2_INIT;
1273 Main_Loop2 = -1; 1292 Main_Loop2 = -1;
1274 SubMenu = 0; 1293 SubMenu = 0;
1275 1294

mercurial