mirror of
https://github.com/ratspeak/ratdeck.git
synced 2026-08-23 19:19:53 +00:00
rnode: 60s display timeout, keyboard wake, tap never sleeps, trim idle UI
This commit is contained in:
Vendored
+6
-1
@@ -194,6 +194,8 @@ float epd_update_fps = 0.5;
|
||||
#if BOARD_MODEL == BOARD_CARDPUTER_ADV
|
||||
#define DISPLAY_BLANKING_TIMEOUT 30*1000
|
||||
#define CARDPUTER_ADV_DISPLAY_INTENSITY_DEFAULT 96
|
||||
#elif BOARD_MODEL == BOARD_TDECK
|
||||
#define DISPLAY_BLANKING_TIMEOUT 60*1000
|
||||
#else
|
||||
#define DISPLAY_BLANKING_TIMEOUT 15*1000
|
||||
#endif
|
||||
@@ -1768,7 +1770,10 @@ bool epd_blanked = false;
|
||||
void update_display(bool blank = false) {
|
||||
display_updating = true;
|
||||
#if BOARD_MODEL == BOARD_TDECK
|
||||
if (td_ui_ready) td_poll_touch();
|
||||
if (td_ui_ready) {
|
||||
td_poll_touch();
|
||||
td_poll_keyboard();
|
||||
}
|
||||
#endif
|
||||
if (blank == true) {
|
||||
last_disp_update = millis()-disp_update_interval-1;
|
||||
|
||||
Vendored
+25
-8
@@ -133,7 +133,8 @@ void td_poll_touch() {
|
||||
if (!td_touch_down) return;
|
||||
td_touch_down = false;
|
||||
|
||||
// Tap released
|
||||
// Tap released. Taps only wake or interact — the screen sleeps on the
|
||||
// inactivity timeout alone, never from a tap.
|
||||
if (display_blanked) {
|
||||
display_unblank();
|
||||
last_disp_update = 0;
|
||||
@@ -146,11 +147,27 @@ void td_poll_touch() {
|
||||
} else if (in_panel && bt_state == BT_STATE_PAIRING) {
|
||||
bt_disable_pairing(); // tap again to cancel
|
||||
} else {
|
||||
last_unblank_event = millis() - display_blanking_timeout - 1; // screen off
|
||||
display_unblank(); // count as activity, extend the timeout
|
||||
}
|
||||
last_disp_update = 0;
|
||||
}
|
||||
|
||||
// T-Deck keyboard (ESP32-C3 @ I2C 0x55, single translated byte per read).
|
||||
// Any keypress wakes the display / extends the inactivity timeout.
|
||||
#define TD_KB_ADDR 0x55
|
||||
uint32_t td_last_kb_poll = 0;
|
||||
|
||||
void td_poll_keyboard() {
|
||||
if (millis() - td_last_kb_poll < 50) return;
|
||||
td_last_kb_poll = millis();
|
||||
|
||||
Wire.requestFrom((uint8_t)TD_KB_ADDR, (uint8_t)1);
|
||||
if (Wire.available() && Wire.read() != 0) {
|
||||
display_unblank();
|
||||
last_disp_update = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void td_ui_init() {
|
||||
if (td_ui_ready) return;
|
||||
display.setRotation(3);
|
||||
@@ -404,10 +421,12 @@ void td_draw_idle_content() {
|
||||
td_canvas->print(modbuf);
|
||||
y += 12;
|
||||
|
||||
char brbuf[24];
|
||||
snprintf(brbuf, sizeof(brbuf), "%.2f Kbps", (float)lora_bitrate / 1000.0f);
|
||||
td_canvas->setCursor(x, y);
|
||||
td_canvas->print(brbuf);
|
||||
if (radio_online) {
|
||||
char brbuf[24];
|
||||
snprintf(brbuf, sizeof(brbuf), "%.2f Kbps", (float)lora_bitrate / 1000.0f);
|
||||
td_canvas->setCursor(x, y);
|
||||
td_canvas->print(brbuf);
|
||||
}
|
||||
y += 14;
|
||||
|
||||
td_canvas->setCursor(x, y);
|
||||
@@ -565,8 +584,6 @@ void td_draw_footer() {
|
||||
char vbuf[20];
|
||||
snprintf(vbuf, sizeof(vbuf), "Firmware v%d.%02d", MAJ_VERS, MIN_VERS);
|
||||
td_canvas->print(vbuf);
|
||||
td_canvas->setCursor(188, TD_FOOT_Y + 4);
|
||||
td_canvas->print("touch: pair / screen off");
|
||||
}
|
||||
|
||||
void td_render_frame() {
|
||||
|
||||
Reference in New Issue
Block a user