verify safetyParam read back from PandaState (#20384)
* verify safetyParam read back from PandaState * update ref * bump panda old-commit-hash: 3c23226edc2d328c489cc01a0950e6e4748d26a1
This commit is contained in:
2
panda
2
panda
Submodule panda updated: 3bb0408ee6...a32959accc
@@ -371,6 +371,7 @@ void panda_state_thread(bool spoofing_started) {
|
||||
ps.setPandaType(panda->hw_type);
|
||||
ps.setUsbPowerMode(cereal::PandaState::UsbPowerMode(pandaState.usb_power_mode));
|
||||
ps.setSafetyModel(cereal::CarParams::SafetyModel(pandaState.safety_model));
|
||||
ps.setSafetyParam(pandaState.safety_param);
|
||||
ps.setFanSpeedRpm(fan_speed_rpm);
|
||||
ps.setFaultStatus(cereal::PandaState::FaultStatus(pandaState.fault_status));
|
||||
ps.setPowerSaveEnabled((bool)(pandaState.power_save_enabled));
|
||||
|
||||
@@ -33,6 +33,7 @@ struct __attribute__((packed)) health_t {
|
||||
uint8_t car_harness_status;
|
||||
uint8_t usb_power_mode;
|
||||
uint8_t safety_model;
|
||||
int16_t safety_param;
|
||||
uint8_t fault_status;
|
||||
uint8_t power_save_enabled;
|
||||
};
|
||||
|
||||
@@ -207,8 +207,10 @@ class Controls:
|
||||
|
||||
if self.can_rcv_error or (not CS.canValid and self.sm.frame > 5 / DT_CTRL):
|
||||
self.events.add(EventName.canError)
|
||||
if (self.sm['pandaState'].safetyModel != self.CP.safetyModel and self.sm.frame > 2 / DT_CTRL) or \
|
||||
self.mismatch_counter >= 200:
|
||||
|
||||
safety_mismatch = self.sm['pandaState'].safetyModel != self.CP.safetyModel
|
||||
safety_mismatch = safety_mismatch or self.sm['pandaState'].safetyParam != self.CP.safetyParam
|
||||
if (safety_mismatch and self.sm.frame > 2 / DT_CTRL) or self.mismatch_counter >= 200:
|
||||
self.events.add(EventName.controlsMismatch)
|
||||
|
||||
if not self.sm['liveParameters'].valid:
|
||||
|
||||
@@ -1 +1 @@
|
||||
68856f382a9bc423ad6997b2fe0d584ba4edb4ae
|
||||
f7af4a6523a7afa631460f5168646ca32c8fa4b3
|
||||
Reference in New Issue
Block a user