Files
Flipdot-display/src/esp32/display/status_screen.h
T

33 lines
1.1 KiB
C++
Raw Normal View History

2026-10-13 01:34:04 +02:00
#pragma once
#include "BROSE9323.h"
#include "logic/settings.h"
2026-10-13 01:34:04 +02:00
#include "nano_link/nano_link.h"
// Short messages for situations outside the normal clock: booting, crashes, recovery app.
// Used by both the clock firmware and the recovery app.
class StatusScreen
{
public:
StatusScreen(BROSE9323 &display, NanoLink &nano);
// Power the display on, show up to two lines (TEXT_LINE_CHARS each). Unless keep_on,
// power off again once the dots have flipped: flipdots keep their image without power.
void show(const char *line1, const char *line2, bool keep_on = false);
// How the Nano drives the dots, sent with the first message (default: FLIP_TIME and
// the DriveSettings defaults, so the recovery app always shows its messages instantly)
void setDrive(uint16_t flip_time, const DriveSettings &drive);
// Send them again (they changed), from loop()
void sendDrive();
// Sends changed drive settings once the display is on. Not while the Nano is flashed.
void loop();
2026-10-13 01:52:34 +02:00
2026-10-13 01:34:04 +02:00
private:
BROSE9323 &_display;
NanoLink &_nano;
bool _started = false;
bool _drive_pending = false;
2026-10-13 01:52:34 +02:00
uint16_t _flip_time;
DriveSettings _drive;
2026-10-13 01:34:04 +02:00
};