| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -159,8 +159,9 @@ static void update_state(UIState *s) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  UIScene &scene = s->scene; | 
					 | 
					 | 
					 | 
					  UIScene &scene = s->scene; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  if (sm.updated("liveCalibration")) { | 
					 | 
					 | 
					 | 
					  if (sm.updated("liveCalibration")) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    auto rpy_list = sm["liveCalibration"].getLiveCalibration().getRpyCalib(); | 
					 | 
					 | 
					 | 
					    auto live_calib = sm["liveCalibration"].getLiveCalibration(); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    auto wfde_list = sm["liveCalibration"].getLiveCalibration().getWideFromDeviceEuler(); | 
					 | 
					 | 
					 | 
					    auto rpy_list = live_calib.getRpyCalib(); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    auto wfde_list = live_calib.getWideFromDeviceEuler(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    Eigen::Vector3d rpy; | 
					 | 
					 | 
					 | 
					    Eigen::Vector3d rpy; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    Eigen::Vector3d wfde; | 
					 | 
					 | 
					 | 
					    Eigen::Vector3d wfde; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    if (rpy_list.size() == 3) rpy << rpy_list[0], rpy_list[1], rpy_list[2]; | 
					 | 
					 | 
					 | 
					    if (rpy_list.size() == 3) rpy << rpy_list[0], rpy_list[1], rpy_list[2]; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -179,7 +180,7 @@ static void update_state(UIState *s) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        scene.view_from_wide_calib.v[i*3 + j] = view_from_wide_calib(i,j); | 
					 | 
					 | 
					 | 
					        scene.view_from_wide_calib.v[i*3 + j] = view_from_wide_calib(i,j); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      } | 
					 | 
					 | 
					 | 
					      } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    } | 
					 | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    scene.calibration_valid = sm["liveCalibration"].getLiveCalibration().getCalStatus() == cereal::LiveCalibrationData::Status::CALIBRATED; | 
					 | 
					 | 
					 | 
					    scene.calibration_valid = live_calib.getCalStatus() == cereal::LiveCalibrationData::Status::CALIBRATED; | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    scene.calibration_wide_valid = wfde_list.size() == 3; | 
					 | 
					 | 
					 | 
					    scene.calibration_wide_valid = wfde_list.size() == 3; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  } | 
					 | 
					 | 
					 | 
					  } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  if (sm.updated("pandaStates")) { | 
					 | 
					 | 
					 | 
					  if (sm.updated("pandaStates")) { | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -201,8 +202,9 @@ static void update_state(UIState *s) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    scene.longitudinal_control = sm["carParams"].getCarParams().getOpenpilotLongitudinalControl(); | 
					 | 
					 | 
					 | 
					    scene.longitudinal_control = sm["carParams"].getCarParams().getOpenpilotLongitudinalControl(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  } | 
					 | 
					 | 
					 | 
					  } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  if (sm.updated("wideRoadCameraState")) { | 
					 | 
					 | 
					 | 
					  if (sm.updated("wideRoadCameraState")) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    float scale = (sm["wideRoadCameraState"].getWideRoadCameraState().getSensor() == cereal::FrameData::ImageSensor::AR0231) ? 6.0f : 1.0f; | 
					 | 
					 | 
					 | 
					    auto cam_state = sm["wideRoadCameraState"].getWideRoadCameraState(); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    scene.light_sensor = std::max(100.0f - scale * sm["wideRoadCameraState"].getWideRoadCameraState().getExposureValPercent(), 0.0f); | 
					 | 
					 | 
					 | 
					    float scale = (cam_state.getSensor() == cereal::FrameData::ImageSensor::AR0231) ? 6.0f : 1.0f; | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    scene.light_sensor = std::max(100.0f - scale * cam_state.getExposureValPercent(), 0.0f); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  } | 
					 | 
					 | 
					 | 
					  } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  scene.started = sm["deviceState"].getDeviceState().getStarted() && scene.ignition; | 
					 | 
					 | 
					 | 
					  scene.started = sm["deviceState"].getDeviceState().getStarted() && scene.ignition; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					} | 
					 | 
					 | 
					 | 
					} | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |