Skip to content

Commit b6059cf

Browse files
Added supporting code
1 parent fd1697e commit b6059cf

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

src/lcdMessage_t.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ enum lcdMessageType
66
SET_BRIGHTNESS,
77
LCD_SYSTEM_MESSAGE,
88
UPDATE_LIGHTS,
9-
MOON_PHASE
9+
MOON_PHASE,
10+
TEMPERATURE
1011
};
1112

1213
struct lcdMessage_t

src/lcdTask.cpp

+24
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,26 @@ static void updateClock(const struct tm &timeinfo)
113113
clock.pushSprite(0, lcd.height() - font.yAdvance);
114114
}
115115

116+
static void showTemp(const float temperature)
117+
{
118+
const GFXfont &font = lgfx::fonts::DejaVu24;
119+
static LGFX_Sprite temp(&lcd);
120+
if (temp.width() == 0 || temp.height() == 0)
121+
{
122+
temp.setColorDepth(lgfx::palette_2bit);
123+
if (!temp.createSprite(lcd.width(), font.yAdvance))
124+
{
125+
log_e("could not create sprite");
126+
return;
127+
}
128+
}
129+
char buffer[10];
130+
snprintf(buffer, sizeof(buffer), "%.2f°C", temperature);
131+
temp.drawCenterString(buffer, temp.width() >> 1, 6, &font);
132+
temp.pushSprite(0, 20);
133+
134+
}
135+
116136
void lcdTask(void *parameter)
117137
{
118138
lcd.init();
@@ -140,6 +160,10 @@ void lcdTask(void *parameter)
140160
showMoon(msg.float1, msg.int1);
141161
break;
142162

163+
case lcdMessageType::TEMPERATURE:
164+
showTemp(msg.float1);
165+
break;
166+
143167
default:
144168
break;
145169
}

0 commit comments

Comments
 (0)