dashboard: expand RS485 sensor diagnostics

This commit is contained in:
2026-07-26 18:15:48 -06:00
parent f145730b14
commit fea549d1e2
8 changed files with 40 additions and 5 deletions
@@ -57,6 +57,7 @@ void parseSensorNodeFrame(const String &line) {
sensorNodeStatus.imuValid = imu["valid"] | false;
sensorNodeStatus.imuAccuracy = imu["accuracy"] | 0;
sensorNodeStatus.stability = String((const char *)(imu["stability"] | "unknown"));
sensorNodeStatus.yawDegrees = imu["yaw_degrees"] | 0.0f;
JsonObject level = imu["level_calibration"];
sensorNodeStatus.levelCalibrationValid = level["valid"] | false;
@@ -74,7 +75,26 @@ void parseSensorNodeFrame(const String &line) {
sensorNodeStatus.hdop = gps["hdop"].isNull() ? 0 : (float)gps["hdop"];
sensorNodeStatus.latitude = gps["latitude"] | 0.0;
sensorNodeStatus.longitude = gps["longitude"] | 0.0;
sensorNodeStatus.altitudeMeters = gps["altitude_meters"] | 0.0f;
sensorNodeStatus.speedKph = gps["speed_kph"] | 0.0f;
JsonObject utc = gps["utc"];
if (!utc.isNull() && (int)(utc["year"] | 0) > 0) {
char utcBuffer[24];
snprintf(
utcBuffer,
sizeof(utcBuffer),
"%04d-%02d-%02d %02d:%02d:%02dZ",
(int)(utc["year"] | 0),
(int)(utc["month"] | 0),
(int)(utc["day"] | 0),
(int)(utc["hour"] | 0),
(int)(utc["minute"] | 0),
(int)(utc["second"] | 0)
);
sensorNodeStatus.utcTime = utcBuffer;
} else {
sensorNodeStatus.utcTime = "";
}
sensorNodeStatus.firmwareVersion = String((const char *)(doc["firmware_version"] | ""));
sensorNodeStatus.frameReceived = true;
sensorNodeStatus.framesReceived++;
@@ -132,4 +152,3 @@ bool sensorNodeRs485Connected() {
const SensorNodeDashboardStatus &getSensorNodeStatus() {
return sensorNodeStatus;
}