boardd: reconnect when comms not healthy (#28075)

* boardd: reconnect when comms not healthy

* update comments

* fix
old-commit-hash: eb5ad17f8e
beeps
Adeeb Shihadeh 2 years ago committed by GitHub
parent 175af7f687
commit 002683afab
  1. 26
      selfdrive/boardd/boardd.cc

@ -483,12 +483,26 @@ void panda_state_thread(PubMaster *pm, std::vector<Panda *> pandas, bool spoofin
ignition = *ignition_opt; ignition = *ignition_opt;
// TODO: make this check fast, currently takes 16ms // check if we should have pandad reconnect
// check if we have new pandas and are offroad if (!ignition) {
if (!ignition && (pandas.size() != Panda::list().size())) { bool comms_healthy = true;
LOGW("Reconnecting to changed amount of pandas!"); for (const auto &panda : pandas) {
do_exit = true; comms_healthy &= panda->comms_healthy();
break; }
if (!comms_healthy) {
LOGE("Reconnecting, communication to pandas not healthy");
do_exit = true;
// TODO: list is slow, takes 16ms
} else if (pandas.size() != Panda::list().size()) {
LOGW("Reconnecting to changed amount of pandas!");
do_exit = true;
}
if (do_exit) {
break;
}
} }
// clear ignition-based params and set new safety on car start // clear ignition-based params and set new safety on car start

Loading…
Cancel
Save