@ -29,6 +29,7 @@ def manager_init() -> None:
params . clear_all ( ParamKeyType . CLEAR_ON_MANAGER_START )
params . clear_all ( ParamKeyType . CLEAR_ON_MANAGER_START )
params . clear_all ( ParamKeyType . CLEAR_ON_ONROAD_TRANSITION )
params . clear_all ( ParamKeyType . CLEAR_ON_ONROAD_TRANSITION )
params . clear_all ( ParamKeyType . CLEAR_ON_OFFROAD_TRANSITION )
params . clear_all ( ParamKeyType . CLEAR_ON_OFFROAD_TRANSITION )
params . clear_all ( ParamKeyType . CLEAR_ON_IGNITION_ON )
if build_metadata . release_channel :
if build_metadata . release_channel :
params . clear_all ( ParamKeyType . DEVELOPMENT_ONLY )
params . clear_all ( ParamKeyType . DEVELOPMENT_ONLY )
@ -126,13 +127,14 @@ def manager_thread() -> None:
ignore . append ( " pandad " )
ignore . append ( " pandad " )
ignore + = [ x for x in os . getenv ( " BLOCK " , " " ) . split ( " , " ) if len ( x ) > 0 ]
ignore + = [ x for x in os . getenv ( " BLOCK " , " " ) . split ( " , " ) if len ( x ) > 0 ]
sm = messaging . SubMaster ( [ ' deviceState ' , ' carParams ' ] , poll = ' deviceState ' )
sm = messaging . SubMaster ( [ ' deviceState ' , ' carParams ' , ' pandaStates ' ] , poll = ' deviceState ' )
pm = messaging . PubMaster ( [ ' managerState ' ] )
pm = messaging . PubMaster ( [ ' managerState ' ] )
write_onroad_params ( False , params )
write_onroad_params ( False , params )
ensure_running ( managed_processes . values ( ) , False , params = params , CP = sm [ ' carParams ' ] , not_run = ignore )
ensure_running ( managed_processes . values ( ) , False , params = params , CP = sm [ ' carParams ' ] , not_run = ignore )
started_prev = False
started_prev = False
ignition_prev = False
while True :
while True :
sm . update ( 1000 )
sm . update ( 1000 )
@ -144,11 +146,16 @@ def manager_thread() -> None:
elif not started and started_prev :
elif not started and started_prev :
params . clear_all ( ParamKeyType . CLEAR_ON_OFFROAD_TRANSITION )
params . clear_all ( ParamKeyType . CLEAR_ON_OFFROAD_TRANSITION )
ignition = any ( ps . ignitionLine or ps . ignitionCan for ps in sm [ ' pandaStates ' ] if ps . pandaType != log . PandaState . PandaType . unknown )
if ignition and not ignition_prev :
params . clear_all ( ParamKeyType . CLEAR_ON_IGNITION_ON )
# update onroad params, which drives pandad's safety setter thread
# update onroad params, which drives pandad's safety setter thread
if started != started_prev :
if started != started_prev :
write_onroad_params ( started , params )
write_onroad_params ( started , params )
started_prev = started
started_prev = started
ignition_prev = ignition
ensure_running ( managed_processes . values ( ) , started , params = params , CP = sm [ ' carParams ' ] , not_run = ignore )
ensure_running ( managed_processes . values ( ) , started , params = params , CP = sm [ ' carParams ' ] , not_run = ignore )