|
|
|
@ -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"); |
|
|
|
|