this should work

pull/27656/head
Shane Smiskol 2 years ago
parent 89e7d21f4c
commit 35dcf05b32
  1. 3
      common/params.cc
  2. 4
      selfdrive/boardd/boardd.cc
  3. 5
      selfdrive/car/fw_versions.py

@ -114,6 +114,7 @@ std::unordered_map<std::string, uint32_t> keys = {
{"FirmwareQueryDone", CLEAR_ON_MANAGER_START | CLEAR_ON_IGNITION_ON}, {"FirmwareQueryDone", CLEAR_ON_MANAGER_START | CLEAR_ON_IGNITION_ON},
{"ObdMultiplexingRequested", 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}, {"ObdMultiplexingEnabled", CLEAR_ON_MANAGER_START | CLEAR_ON_IGNITION_ON},
{"ObdMultiplexingSet", CLEAR_ON_MANAGER_START | CLEAR_ON_IGNITION_ON},
{"ForcePowerDown", CLEAR_ON_MANAGER_START}, {"ForcePowerDown", CLEAR_ON_MANAGER_START},
{"GitBranch", PERSISTENT}, {"GitBranch", PERSISTENT},
{"GitCommit", PERSISTENT}, {"GitCommit", PERSISTENT},
@ -157,7 +158,7 @@ std::unordered_map<std::string, uint32_t> keys = {
{"NavSettingTime24h", PERSISTENT}, {"NavSettingTime24h", PERSISTENT},
{"NavSettingLeftSide", PERSISTENT}, {"NavSettingLeftSide", PERSISTENT},
{"NavdRender", PERSISTENT}, {"NavdRender", PERSISTENT},
{"ObdMultiplexingDisabled", CLEAR_ON_MANAGER_START | CLEAR_ON_IGNITION_ON}, // {"ObdMultiplexingDisabled", CLEAR_ON_MANAGER_START | CLEAR_ON_IGNITION_ON},
{"OpenpilotEnabledToggle", PERSISTENT}, {"OpenpilotEnabledToggle", PERSISTENT},
{"PandaHeartbeatLost", CLEAR_ON_MANAGER_START | CLEAR_ON_IGNITION_OFF}, {"PandaHeartbeatLost", CLEAR_ON_MANAGER_START | CLEAR_ON_IGNITION_OFF},
{"PandaSignatures", CLEAR_ON_MANAGER_START}, {"PandaSignatures", CLEAR_ON_MANAGER_START},

@ -128,15 +128,13 @@ bool safety_setter_thread(std::vector<Panda *> pandas) {
} }
bool obd_multiplexing_requested = p.getBool("ObdMultiplexingRequested"); bool obd_multiplexing_requested = p.getBool("ObdMultiplexingRequested");
// std::string obd_multiplexing_requested = p.get("ObdMultiplexingRequested");
// if (!obd_multiplexing_requested.isEmpty()) {
if (obd_multiplexing_requested != p.getBool("ObdMultiplexingEnabled")) { if (obd_multiplexing_requested != p.getBool("ObdMultiplexingEnabled")) {
const uint16_t safety_param = obd_multiplexing_requested ? 0U : 1U; const uint16_t safety_param = obd_multiplexing_requested ? 0U : 1U;
for (int i = 0; i < pandas.size(); i++) { for (int i = 0; i < pandas.size(); i++) {
pandas[i]->set_safety_model(cereal::CarParams::SafetyModel::ELM327, safety_param); pandas[i]->set_safety_model(cereal::CarParams::SafetyModel::ELM327, safety_param);
} }
// p.remove("ObdMultiplexingRequested", obd_multiplexing_requested);
p.putBool("ObdMultiplexingEnabled", obd_multiplexing_requested); p.putBool("ObdMultiplexingEnabled", obd_multiplexing_requested);
p.putBool("ObdMultiplexingChanged", true);
} }
if (p.getBool("FirmwareQueryDone")) { if (p.getBool("FirmwareQueryDone")) {

@ -236,10 +236,9 @@ def get_fw_versions_ordered(logcan, sendcan, ecu_rx_addrs, timeout=0.1, num_pand
def set_obd_multiplexing(params: Params, obd_multiplexing: bool): def set_obd_multiplexing(params: Params, obd_multiplexing: bool):
if params.get_bool("ObdMultiplexingEnabled") != obd_multiplexing: if params.get_bool("ObdMultiplexingEnabled") != obd_multiplexing:
cloudlog.warning(f"Setting OBD multiplexing to {obd_multiplexing}") cloudlog.warning(f"Setting OBD multiplexing to {obd_multiplexing}")
# Remove response param that boardd writes to block on it params.remove("ObdMultiplexingChanged")
params.remove("ObdMultiplexingEnabled")
params.put_bool("ObdMultiplexingRequested", obd_multiplexing) params.put_bool("ObdMultiplexingRequested", obd_multiplexing)
params.get_bool("ObdMultiplexingEnabled", block=True) params.get_bool("ObdMultiplexingChanged", block=True)
cloudlog.warning(f"OBD multiplexing set successfully") cloudlog.warning(f"OBD multiplexing set successfully")

Loading…
Cancel
Save