boardd: reset safety mode on exit

old-commit-hash: dd18ccbf0a9ab72ace0a7533632d5939c0719953
pull/32103/head
Adeeb Shihadeh 1 year ago committed by Shane Smiskol
parent 2a6e025183
commit 3ab595fa69
  1. 9
      selfdrive/boardd/boardd.cc

@ -412,6 +412,7 @@ void panda_state_thread(std::vector<Panda *> pandas, bool spoofing_started) {
PubMaster pm({"pandaStates", "peripheralState"});
Panda *peripheral_panda = pandas[0];
bool engaged = false;
bool is_onroad = false;
bool is_onroad_last = false;
std::future<bool> safety_future;
@ -483,7 +484,7 @@ void panda_state_thread(std::vector<Panda *> pandas, bool spoofing_started) {
is_onroad_last = is_onroad;
sm.update(0);
const bool engaged = sm.allAliveAndValid({"controlsState"}) && sm["controlsState"].getControlsState().getEnabled();
engaged = sm.allAliveAndValid({"controlsState"}) && sm["controlsState"].getControlsState().getEnabled();
for (const auto &panda : pandas) {
panda->send_heartbeat(engaged);
@ -491,6 +492,12 @@ void panda_state_thread(std::vector<Panda *> pandas, bool spoofing_started) {
rk.keepTime();
}
if (is_onroad && !engaged) {
for (auto &p : pandas) {
p->set_safety_model(cereal::CarParams::SafetyModel::NO_OUTPUT);
}
}
}

Loading…
Cancel
Save