pull/27656/head
Shane Smiskol 2 years ago
parent 25a7f87b42
commit 91ecc227b7
  1. 2
      common/params.cc
  2. 32
      selfdrive/boardd/boardd.cc

@ -112,6 +112,8 @@ std::unordered_map<std::string, uint32_t> keys = {
{"DoShutdown", CLEAR_ON_MANAGER_START},
{"DoUninstall", CLEAR_ON_MANAGER_START},
{"FirmwareObdQueryDone", CLEAR_ON_MANAGER_START | CLEAR_ON_IGNITION_ON},
{"ObdMultiplexingRequested", CLEAR_ON_MANAGER_START | CLEAR_ON_IGNITION_ON},
{"ObdMultiplexingEnabled", CLEAR_ON_MANAGER_START | CLEAR_ON_IGNITION_ON},
{"ForcePowerDown", CLEAR_ON_MANAGER_START},
{"GitBranch", PERSISTENT},
{"GitCommit", PERSISTENT},

@ -113,11 +113,11 @@ bool safety_setter_thread(std::vector<Panda *> pandas) {
return false;
}
// set to ELM327 for fingerprinting
for (int i = 0; i < pandas.size(); i++) {
const uint16_t safety_param = (i > 0) ? 1U : 0U;
pandas[i]->set_safety_model(cereal::CarParams::SafetyModel::ELM327, safety_param);
}
// // set to ELM327 for fingerprinting
// for (int i = 0; i < pandas.size(); i++) {
// const uint16_t safety_param = (i > 0) ? 1U : 0U;
// pandas[i]->set_safety_model(cereal::CarParams::SafetyModel::ELM327, safety_param);
// }
// wait for FW query at OBD port to finish
while (true) {
@ -125,6 +125,16 @@ bool safety_setter_thread(std::vector<Panda *> pandas) {
return false;
}
// set to ELM327 for fingerprinting, multiplexing is controlled by a param
bool obd_multiplexing_requested = p.getBool("ObdMultiplexingRequested");
if (obd_multiplexing_requested != p.getBool("ObdMultiplexingEnabled")) {
for (int i = 0; i < pandas.size(); i++) {
const uint16_t safety_param = (i > 0) ? (!obd_multiplexing_requested) : 0U;
pandas[i]->set_safety_model(cereal::CarParams::SafetyModel::ELM327, safety_param);
}
p.putBool("ObdMultiplexingEnabled", obd_multiplexing_requested);
}
if (p.getBool("FirmwareObdQueryDone")) {
LOGW("finished FW query at OBD port");
break;
@ -132,12 +142,12 @@ bool safety_setter_thread(std::vector<Panda *> pandas) {
util::sleep_for(20);
}
// set to ELM327 to finish fingerprinting and for potential ECU knockouts
for (Panda *panda : pandas) {
panda->set_safety_model(cereal::CarParams::SafetyModel::ELM327, 1U);
}
p.putBool("ObdMultiplexingDisabled", true);
// // set to ELM327 to finish fingerprinting and for potential ECU knockouts
// for (Panda *panda : pandas) {
// panda->set_safety_model(cereal::CarParams::SafetyModel::ELM327, 1U);
// }
//
// p.putBool("ObdMultiplexingDisabled", true);
std::string params;
LOGW("waiting for params to set safety model");

Loading…
Cancel
Save