Merge branch 'refs/heads/master-priv-log-sunnylink-error' into master-dev-c3

This commit is contained in:
DevTekVE
2024-06-09 11:31:25 +02:00
2 changed files with 14 additions and 8 deletions
+4 -4
View File
@@ -73,7 +73,7 @@ def handle_long_poll(ws: WebSocket, exit_event: threading.Event | None) -> None:
raise
finally:
for thread in threads:
cloudlog.debug(f"athena.joining {thread.name}")
cloudlog.info(f"sunnylinkd athena.joining {thread.name}")
thread.join()
@@ -88,7 +88,7 @@ def ws_recv(ws: WebSocket, end_event: threading.Event) -> None:
recv_queue.put_nowait(data)
cloudlog.debug(f"sunnylinkd.ws_recv.recv {data}")
elif opcode in (ABNF.OPCODE_PING, ABNF.OPCODE_PONG):
cloudlog.debug(f"sunnylinkd.ws_recv.pong {opcode}")
cloudlog.info(f"sunnylinkd.ws_recv.pong {opcode}")
last_ping = int(time.monotonic() * 1e9)
Params().put("LastSunnylinkPingTime", str(last_ping))
except WebSocketTimeoutException:
@@ -106,11 +106,11 @@ def ws_ping(ws: WebSocket, end_event: threading.Event) -> None:
while not end_event.is_set():
try:
ws.ping()
cloudlog.debug(f"sunnylinkd.ws_recv.ws_ping: Pinging")
cloudlog.info(f"sunnylinkd.ws_recv.ws_ping: Pinging")
except Exception:
cloudlog.exception("sunnylinkd.ws_ping.exception")
end_event.set()
time.sleep(RECONNECT_TIMEOUT_S * 0.8) # Sleep about 80% before a timeout
time.sleep(RECONNECT_TIMEOUT_S * 0.7) # Sleep about 70% before a timeout
def ws_queue(end_event: threading.Event) -> None:
resume_requested = False
+10 -4
View File
@@ -3,6 +3,7 @@
#include <cmath>
#include <QMouseEvent>
#include <common/swaglog.h>
#include "selfdrive/ui/qt/util.h"
#include "common/params.h"
@@ -155,17 +156,22 @@ void Sidebar::updateState(const UIState &s) {
setProperty("pandaStatus", QVariant::fromValue(pandaStatus));
ItemStatus sunnylinkStatus;
auto last_sunnylink_ping = std::strtol(params.get("LastSunnylinkPingTime").c_str(), nullptr, 10);
auto last_sunnylink_ping = std::stoull(params.get("LastSunnylinkPingTime"));
auto current_nanos = nanos_since_boot();
auto elapsed_sunnylink_ping = current_nanos - last_sunnylink_ping;
auto sunnylink_enabled = params.getBool("SunnylinkEnabled");
if (!sunnylink_enabled) {
sunnylinkStatus = ItemStatus{{tr("SUNNYLINK"), tr("DISABLED")}, disabled_color};
} else if (last_ping == 0) {
} else if (last_sunnylink_ping == 0) {
sunnylinkStatus = ItemStatus{{tr("SUNNYLINK"), tr("OFFLINE")}, warning_color};
} else {
if (nanos_since_boot() - last_sunnylink_ping < 80e9)
if (elapsed_sunnylink_ping < 80000000000ULL) {
sunnylinkStatus = ItemStatus{{tr("SUNNYLINK"), tr("ONLINE")}, good_color};
else
}
else {
LOGE("Sunnylink is offline, last ping: [%ld]. Current time: [%ld], diff: [%ld]", last_sunnylink_ping, current_nanos, elapsed_sunnylink_ping);
sunnylinkStatus = ItemStatus{{tr("SUNNYLINK"), tr("ERROR")}, danger_color};
}
}
setProperty("sunnylinkStatus", QVariant::fromValue(sunnylinkStatus));
}