@@ -251,18 +251,18 @@ def _get_distracted_types(self):
251251
252252 return distracted_types
253253
254- def _update_states (self , driver_state , cal_rpy , car_speed , op_engaged , standstill ):
254+ def _update_states (self , driver_state , cal_rpy , car_speed , op_engaged , standstill , demo_mode = False ):
255255 rhd_pred = driver_state .wheelOnRightProb
256256 # calibrates only when there's movement and either face detected
257257 if car_speed > self .settings ._WHEELPOS_CALIB_MIN_SPEED and (driver_state .leftDriverData .faceProb > self .settings ._FACE_THRESHOLD or
258258 driver_state .rightDriverData .faceProb > self .settings ._FACE_THRESHOLD ):
259259 self .wheelpos_learner .push_and_update (rhd_pred )
260- if self .wheelpos_learner .filtered_stat .n > self .settings ._WHEELPOS_FILTER_MIN_COUNT :
260+ if self .wheelpos_learner .filtered_stat .n > self .settings ._WHEELPOS_FILTER_MIN_COUNT or demo_mode :
261261 self .wheel_on_right = self .wheelpos_learner .filtered_stat .M > self .settings ._WHEELPOS_THRESHOLD
262262 else :
263263 self .wheel_on_right = self .wheel_on_right_default # use default/saved if calibration is unfinished
264264 # make sure no switching when engaged
265- if op_engaged and self .wheel_on_right_last is not None and self .wheel_on_right_last != self .wheel_on_right :
265+ if op_engaged and self .wheel_on_right_last is not None and self .wheel_on_right_last != self .wheel_on_right and not demo_mode :
266266 self .wheel_on_right = self .wheel_on_right_last
267267 driver_data = driver_state .rightDriverData if self .wheel_on_right else driver_state .leftDriverData
268268 if not all (len (x ) > 0 for x in (driver_data .faceOrientation , driver_data .facePosition ,
@@ -448,6 +448,7 @@ def run_step(self, sm, demo=False):
448448 car_speed = highway_speed ,
449449 op_engaged = enabled ,
450450 standstill = standstill ,
451+ demo_mode = demo ,
451452 )
452453
453454 # Update distraction events
0 commit comments