Files
arduino-info-display/src/screens.cpp
T
2026-06-23 19:27:43 +03:00

73 lines
1.6 KiB
C++

#include "screens.h"
namespace
{
Am2302Reading environmentReading = {0.0F, 0.0F, false};
void drawSun(U8G2 &u8g2, uint8_t x, uint8_t y)
{
u8g2.drawDisc(x, y, 11);
u8g2.drawLine(x, y - 18, x, y - 14);
u8g2.drawLine(x, y + 14, x, y + 18);
u8g2.drawLine(x - 18, y, x - 14, y);
u8g2.drawLine(x + 14, y, x + 18, y);
u8g2.drawLine(x - 13, y - 13, x - 10, y - 10);
u8g2.drawLine(x + 10, y - 10, x + 13, y - 13);
u8g2.drawLine(x - 13, y + 13, x - 10, y + 10);
u8g2.drawLine(x + 10, y + 10, x + 13, y + 13);
}
void drawCloud(U8G2 &u8g2, uint8_t x, uint8_t y)
{
u8g2.drawDisc(x + 18, y + 14, 12);
u8g2.drawDisc(x + 34, y + 8, 17);
u8g2.drawDisc(x + 52, y + 15, 13);
u8g2.drawBox(x + 17, y + 15, 38, 14);
u8g2.drawRBox(x + 8, y + 18, 58, 15, 7);
}
}
void drawScreen1(U8G2 &u8g2)
{
u8g2.setFont(u8g2_font_ncenB14_tr);
u8g2.drawStr(0, 20, "Screen 1");
}
void drawHelloWorldScreen(U8G2 &u8g2)
{
u8g2.setFont(u8g2_font_ncenB14_tr);
u8g2.drawStr(0, 30, "Hello");
u8g2.drawStr(0, 54, "world");
}
void setEnvironmentReading(Am2302Reading reading)
{
environmentReading = reading;
}
void drawEnvironmentScreen(U8G2 &u8g2)
{
u8g2.setFont(u8g2_font_6x12_tr);
u8g2.drawStr(0, 12, "AM2302");
if (!environmentReading.valid) {
u8g2.setFont(u8g2_font_ncenB14_tr);
u8g2.drawStr(0, 40, "No data");
return;
}
u8g2.setFont(u8g2_font_ncenB14_tr);
u8g2.setCursor(0, 34);
u8g2.print(environmentReading.temperatureC, 1);
u8g2.print(" C");
u8g2.setCursor(0, 60);
u8g2.print(environmentReading.humidityPercent, 0);
u8g2.print(" %");
}
void drawWeatherIconScreen(U8G2 &u8g2)
{
drawSun(u8g2, 78, 22);
drawCloud(u8g2, 29, 24);
}