339 * @brief The main overview screen. |
339 * @brief The main overview screen. |
340 */ |
340 */ |
341 void screen_main() |
341 void screen_main() |
342 { |
342 { |
343 char buf[65]; |
343 char buf[65]; |
344 int i; |
344 int i, mode[3]; |
345 uint32_t temperature = 0, pressure[3]; |
345 uint32_t temperature = 0, pressure[3]; |
346 |
346 |
347 if (xSemaphoreTake(xSemaphoreUnits, 25) == pdTRUE) { |
347 if (xSemaphoreTake(xSemaphoreUnits, 25) == pdTRUE) { |
348 temperature = units[0].temperature; |
348 temperature = units[0].temperature; |
349 for (i = 0; i < 3; i++) { |
349 for (i = 0; i < 3; i++) { |
350 pressure[i] = units[i].pressure; |
350 pressure[i] = units[i].pressure; |
|
351 mode[i] = units[i].mode; |
351 } |
352 } |
352 xSemaphoreGive(xSemaphoreUnits); |
353 xSemaphoreGive(xSemaphoreUnits); |
353 } else { |
354 } else { |
354 ESP_LOGE(TAG, "screen_main() lock error"); |
355 ESP_LOGE(TAG, "screen_main() lock error"); |
355 } |
356 } |
357 screen_top("CO2 meter %s", app_desc->version); |
358 screen_top("CO2 meter %s", app_desc->version); |
358 u8g2_SetFont(&u8g2, u8g2_font_t0_22b_tf); |
359 u8g2_SetFont(&u8g2, u8g2_font_t0_22b_tf); |
359 sprintf(buf, "%.1f °C", temperature / 1000.0); |
360 sprintf(buf, "%.1f °C", temperature / 1000.0); |
360 u8g2_uint_t w = u8g2_GetUTF8Width(&u8g2, buf); |
361 u8g2_uint_t w = u8g2_GetUTF8Width(&u8g2, buf); |
361 u8g2_DrawUTF8(&u8g2, (128 - w) / 2,40, buf); |
362 u8g2_DrawUTF8(&u8g2, (128 - w) / 2,40, buf); |
362 u8g2_SetFont(&u8g2, u8g2_font_t0_18b_tf); |
|
363 |
363 |
364 for (i = 0; i < 3; i++) { |
364 for (i = 0; i < 3; i++) { |
|
365 if (mode[i]) |
|
366 u8g2_SetFont(&u8g2, u8g2_font_t0_18b_tf); |
|
367 else |
|
368 u8g2_SetFont(&u8g2, u8g2_font_t0_18_tf); |
365 sprintf(buf, "%.1f", pressure[i] / 1000.0); |
369 sprintf(buf, "%.1f", pressure[i] / 1000.0); |
366 w = u8g2_GetUTF8Width(&u8g2, buf); |
370 w = u8g2_GetUTF8Width(&u8g2, buf); |
367 u8g2_DrawUTF8(&u8g2, ((42 - w) / 2) + i * 43,63, buf); |
371 u8g2_DrawUTF8(&u8g2, ((42 - w) / 2) + i * 43,63, buf); |
368 } |
372 } |
369 |
373 |