From d215c1203880d3fec7f7aebbe11d0c62f2045b0f Mon Sep 17 00:00:00 2001 From: UA1ZBE Date: Wed, 22 Jul 2026 10:41:45 +0300 Subject: [PATCH] Add uptime command --- src/main.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index f2f3301..832f77f 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -148,7 +148,7 @@ public: while (*cmd == ' ') cmd++; if (strcmp(cmd, "help") == 0) { - defer_response("help:ohrana on,ohrana off,relay1 on,relay1 off,relay2 on,relay2 off,relay,status,ver,scan,reboot"); + defer_response("help:ohrana on,ohrana off,relay1 on,relay1 off,relay2 on,relay2 off,relay,status,ver,scan,uptime,reboot"); } else if (strcmp(cmd, "ohrana on") == 0) { g_armed = true; digitalWrite(PIN_RELAY_1, LOW); saveSecurityConfig(); defer_response("ohrana on ok"); } else if (strcmp(cmd, "ohrana off") == 0) { @@ -180,6 +180,16 @@ public: float sum = 0; for (int j = 0; j < 20; j++) { sum += radio_driver.getCurrentRSSI(); delay(50); } char r[32]; snprintf(r, sizeof(r), "noise:%.0fdBm", sum / 20); defer_response(r); + } else if (strcmp(cmd, "uptime") == 0) { + unsigned long sec = (millis() - g_boot_time) / 1000; + int d = sec / 86400; sec %= 86400; + int h = sec / 3600; sec %= 3600; + int m = sec / 60; + char r[64]; + if (d > 0) snprintf(r, sizeof(r), "uptime:%dd %dh %dm", d, h, m); + else if (h > 0) snprintf(r, sizeof(r), "uptime:%dh %dm", h, m); + else snprintf(r, sizeof(r), "uptime:%dm", m); + defer_response(r); } else if (strcmp(cmd, "reboot") == 0) { send_text("rebooting"); delay(100);