verify safetyParam read back from PandaState (#20384)

* verify safetyParam read back from PandaState

* update ref

* bump panda
old-commit-hash: 3c23226edc
commatwo_master
Willem Melching 4 years ago committed by GitHub
parent 192cb1c698
commit e3d92dc714
  1. 2
      panda
  2. 1
      selfdrive/boardd/boardd.cc
  3. 1
      selfdrive/boardd/panda.h
  4. 6
      selfdrive/controls/controlsd.py
  5. 2
      selfdrive/test/process_replay/ref_commit

@ -1 +1 @@
Subproject commit 3bb0408ee62a983d54f9eab78c13cc1ee54703f4
Subproject commit a32959accc12de3462e7446fd41e7dd79f6a9ec0

@ -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
Loading…
Cancel
Save