companion: get/set timezone offset for clock

* Add tz_offset companion prefs and get/set commands for companion cli
* Use tz_offset for clock on display

Signed-off-by: Aleksei Mamlin <mamlinav@gmail.com>
This commit is contained in:
Aleksei Mamlin
2026-08-31 09:08:22 +03:00
parent 307fc9ba01
commit 1d9a62ca4a
4 changed files with 19 additions and 7 deletions
+16
View File
@@ -2166,6 +2166,22 @@ bool MyMesh::handleCommand(const char* command, uint32_t sender_timestamp, char*
return true;
}
if (strcmp(command, "get tz.offset") == 0) {
sprintf(reply, "> %d", _prefs.tz_offset);
return true;
}
if (memcmp(command, "set tz.offset ", 14) == 0) {
int8_t tz = atof(&command[14]);
if (tz < -12 || tz > 14) {
strcpy(reply, "Error, must be from -12 to +14");
} else {
_prefs.tz_offset = tz;
savePrefs();
strcpy(reply, "OK");
}
return true;
}
return false; // not handled
}
+2
View File
@@ -43,6 +43,7 @@ public:
uint8_t cad_enabled = 0;
char default_scope_name[31];
uint8_t default_scope_key[16];
int8_t tz_offset = 0;
private:
class RadioPrefs : public CommonRadioPrefs {
@@ -150,6 +151,7 @@ private:
def("tel_base", _parent->telemetry_mode_base);
def("tel_loc", _parent->telemetry_mode_loc);
def("tel_env", _parent->telemetry_mode_env);
def("tz_offset", _parent->tz_offset);
}
public:
CompanionPrefs(NodePrefs* parent) : _parent(parent) { }
+1 -6
View File
@@ -7,10 +7,6 @@
#include <WiFi.h>
#endif
#ifndef UI_TZ_OFFSET
#define UI_TZ_OFFSET 0
#endif
#ifndef AUTO_OFF_MILLIS
#define AUTO_OFF_MILLIS 15000 // 15 seconds
#endif
@@ -256,8 +252,7 @@ public:
#ifdef UI_SHOW_CLOCK
display.setTextSize(3);
uint32_t now = _rtc->getCurrentTime();
int8_t tz = UI_TZ_OFFSET; // for now draw time from Santo Domingo ...
now += (int32_t)tz * 3600;
now += (int32_t)_node_prefs->tz_offset * 3600;
DateTime dt (now);
sprintf(tmp, "%02d:%02d", dt.hour(), dt.minute());
display.drawTextCentered(display.width() / 2, 60, tmp);
-1
View File
@@ -22,7 +22,6 @@ build_flags = ${nrf52_base.build_flags}
-D UI_HAS_ROTARY_INPUT=1
-D UI_HAS_NAV_INPUT=1
-D UI_RECENT_LIST_SIZE=9
-D UI_TZ_OFFSET=-4 # GMT-4
-D UI_MSG_PREVIEW_SIZE=165
-D EINK_MAX_PARTIAL_REFRESH=60
-D EINK_DISPLAY_MODEL=GxEPD2_154_D67