From 36beaf0d6895c9d69d05c3a25eab21a4d9dbb692 Mon Sep 17 00:00:00 2001 From: ShaneSmiskol Date: Thu, 3 Jun 2021 15:21:53 -0700 Subject: [PATCH] Add CLEAR_ON_IGNITION_OFF param type (#21121) --- common/params_pxd.pxd | 3 ++- common/params_pyx.pyx | 3 ++- selfdrive/boardd/boardd.cc | 4 +++- selfdrive/common/params.cc | 6 +++--- selfdrive/common/params.h | 5 +++-- 5 files changed, 13 insertions(+), 8 deletions(-) diff --git a/common/params_pxd.pxd b/common/params_pxd.pxd index b31a5ab70f..80113c3398 100644 --- a/common/params_pxd.pxd +++ b/common/params_pxd.pxd @@ -12,7 +12,8 @@ cdef extern from "selfdrive/common/params.h": PERSISTENT CLEAR_ON_MANAGER_START CLEAR_ON_PANDA_DISCONNECT - CLEAR_ON_IGNITION + CLEAR_ON_IGNITION_ON + CLEAR_ON_IGNITION_OFF ALL cdef cppclass Params: diff --git a/common/params_pyx.pyx b/common/params_pyx.pyx index dab8d20fac..e1ebf95ebb 100755 --- a/common/params_pyx.pyx +++ b/common/params_pyx.pyx @@ -13,7 +13,8 @@ cdef class ParamKeyType: PERSISTENT = c_ParamKeyType.PERSISTENT CLEAR_ON_MANAGER_START = c_ParamKeyType.CLEAR_ON_MANAGER_START CLEAR_ON_PANDA_DISCONNECT = c_ParamKeyType.CLEAR_ON_PANDA_DISCONNECT - CLEAR_ON_IGNITION = c_ParamKeyType.CLEAR_ON_IGNITION + CLEAR_ON_IGNITION_ON = c_ParamKeyType.CLEAR_ON_IGNITION_ON + CLEAR_ON_IGNITION_OFF = c_ParamKeyType.CLEAR_ON_IGNITION_OFF ALL = c_ParamKeyType.ALL def ensure_bytes(v): diff --git a/selfdrive/boardd/boardd.cc b/selfdrive/boardd/boardd.cc index 4aacc1e9dd..afe0859d71 100644 --- a/selfdrive/boardd/boardd.cc +++ b/selfdrive/boardd/boardd.cc @@ -304,7 +304,7 @@ void panda_state_thread(bool spoofing_started) { // clear VIN, CarParams, and set new safety on car start if (ignition && !ignition_last) { - params.clearAll(CLEAR_ON_IGNITION); + params.clearAll(CLEAR_ON_IGNITION_ON); if (!safety_setter_thread_running) { safety_setter_thread_running = true; @@ -312,6 +312,8 @@ void panda_state_thread(bool spoofing_started) { } else { LOGW("Safety setter thread already running"); } + } else if (!ignition && ignition_last) { + params.clearAll(CLEAR_ON_IGNITION_OFF); } // Write to rtc once per minute when no ignition present diff --git a/selfdrive/common/params.cc b/selfdrive/common/params.cc index bf04403a0c..fbc2478556 100644 --- a/selfdrive/common/params.cc +++ b/selfdrive/common/params.cc @@ -148,11 +148,11 @@ std::unordered_map keys = { {"AthenadPid", PERSISTENT}, {"CalibrationParams", PERSISTENT}, {"CarBatteryCapacity", PERSISTENT}, - {"CarParams", CLEAR_ON_MANAGER_START | CLEAR_ON_PANDA_DISCONNECT | CLEAR_ON_IGNITION}, + {"CarParams", CLEAR_ON_MANAGER_START | CLEAR_ON_PANDA_DISCONNECT | CLEAR_ON_IGNITION_ON}, {"CarParamsCache", CLEAR_ON_MANAGER_START | CLEAR_ON_PANDA_DISCONNECT}, - {"CarVin", CLEAR_ON_MANAGER_START | CLEAR_ON_PANDA_DISCONNECT | CLEAR_ON_IGNITION}, + {"CarVin", CLEAR_ON_MANAGER_START | CLEAR_ON_PANDA_DISCONNECT | CLEAR_ON_IGNITION_ON}, {"CommunityFeaturesToggle", PERSISTENT}, - {"ControlsReady", CLEAR_ON_MANAGER_START | CLEAR_ON_PANDA_DISCONNECT | CLEAR_ON_IGNITION}, + {"ControlsReady", CLEAR_ON_MANAGER_START | CLEAR_ON_PANDA_DISCONNECT | CLEAR_ON_IGNITION_ON}, {"EnableLteOnroad", PERSISTENT}, {"EndToEndToggle", PERSISTENT}, {"CompletedTrainingVersion", PERSISTENT}, diff --git a/selfdrive/common/params.h b/selfdrive/common/params.h index 7c51e6760e..3d59f07b10 100644 --- a/selfdrive/common/params.h +++ b/selfdrive/common/params.h @@ -12,8 +12,9 @@ enum ParamKeyType { PERSISTENT = 0x02, CLEAR_ON_MANAGER_START = 0x04, CLEAR_ON_PANDA_DISCONNECT = 0x08, - CLEAR_ON_IGNITION = 0x10, - ALL = 0x02 | 0x04 | 0x08 | 0x10 + CLEAR_ON_IGNITION_ON = 0x10, + CLEAR_ON_IGNITION_OFF = 0x20, + ALL = 0x02 | 0x04 | 0x08 | 0x10 | 0x20 }; class Params {