patch
This commit is contained in:
@@ -1,2 +1,2 @@
|
||||
extern const uint8_t gitversion[19];
|
||||
const uint8_t gitversion[19] = "DEV-701080a6-DEBUG";
|
||||
const uint8_t gitversion[19] = "DEV-c45051f5-DEBUG";
|
||||
|
||||
@@ -1 +1 @@
|
||||
DEV-701080a6-DEBUG
|
||||
DEV-c45051f5-DEBUG
|
||||
@@ -1,5 +1,6 @@
|
||||
#!/usr/bin/env python3
|
||||
import json
|
||||
import math
|
||||
|
||||
import cereal.messaging as messaging
|
||||
|
||||
@@ -21,6 +22,16 @@ from openpilot.starpilot.controls.lib.starpilot_vcruise import StarPilotVCruise
|
||||
from openpilot.starpilot.controls.lib.weather_checker import WeatherChecker
|
||||
|
||||
|
||||
def _sanitize_json_value(value):
|
||||
if isinstance(value, float):
|
||||
return value if math.isfinite(value) else None
|
||||
if isinstance(value, dict):
|
||||
return {k: _sanitize_json_value(v) for k, v in value.items()}
|
||||
if isinstance(value, (list, tuple)):
|
||||
return [_sanitize_json_value(v) for v in value]
|
||||
return value
|
||||
|
||||
|
||||
class StarPilotPlanner:
|
||||
def __init__(self, error_log, ThemeManager):
|
||||
self.params = Params(return_defaults=True)
|
||||
@@ -166,7 +177,7 @@ class StarPilotPlanner:
|
||||
|
||||
starpilotPlan.starpilotEvents = self.starpilot_events.events.to_msg()
|
||||
|
||||
starpilotPlan.starpilotToggles = json.dumps(vars(starpilot_toggles))
|
||||
starpilotPlan.starpilotToggles = json.dumps(_sanitize_json_value(vars(starpilot_toggles)), allow_nan=False)
|
||||
|
||||
if sm["starpilotCarState"].trafficModeEnabled:
|
||||
starpilotPlan.increasedStoppedDistance = 0
|
||||
|
||||
@@ -3,6 +3,9 @@
|
||||
#include <cstdlib>
|
||||
#include <string>
|
||||
|
||||
#include <QDebug>
|
||||
#include <QJsonParseError>
|
||||
|
||||
#include "system/hardware/hw.h"
|
||||
|
||||
static void update_state(StarPilotUIState *fs) {
|
||||
@@ -39,7 +42,18 @@ static void update_state(StarPilotUIState *fs) {
|
||||
QByteArray current_toggles(toggles.cStr(), toggles.size());
|
||||
static QByteArray previous_toggles;
|
||||
if (previous_toggles != current_toggles) {
|
||||
starpilot_scene.starpilot_toggles = QJsonDocument::fromJson(current_toggles).object();
|
||||
QJsonParseError parse_error;
|
||||
QJsonDocument toggles_doc = QJsonDocument::fromJson(current_toggles, &parse_error);
|
||||
if (parse_error.error == QJsonParseError::NoError && toggles_doc.isObject()) {
|
||||
QJsonObject updated_toggles = starpilot_scene.starpilot_toggles;
|
||||
const QJsonObject parsed_toggles = toggles_doc.object();
|
||||
for (auto it = parsed_toggles.begin(); it != parsed_toggles.end(); ++it) {
|
||||
updated_toggles.insert(it.key(), it.value());
|
||||
}
|
||||
starpilot_scene.starpilot_toggles = updated_toggles;
|
||||
} else {
|
||||
qWarning() << "Ignoring invalid StarPilot toggles JSON:" << parse_error.errorString();
|
||||
}
|
||||
previous_toggles = current_toggles;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user