@ -72,10 +72,7 @@ void run_model(ModelState &model, VisionIpcClient &vipc_client) { 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  SubMaster  sm ( { " lateralPlan " ,  " roadCameraState " } ) ;   
					 
					 
					 
					  SubMaster  sm ( { " lateralPlan " ,  " roadCameraState " } ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  // setup filter to track dropped frames
   
					 
					 
					 
					  // setup filter to track dropped frames
   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  const  float  dt  =  1.  /  MODEL_FREQ ;   
					 
					 
					 
					  FirstOrderFilter  frame_dropped_filter ( 0. ,  10. ,  1.  /  MODEL_FREQ ) ;   
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					  const  float  ts  =  10.0 ;   // filter time constant (s)
   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  const  float  frame_filter_k  =  ( dt  /  ts )  /  ( 1.  +  dt  /  ts ) ;   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  float  frames_dropped  =  0 ;   
					 
					 
					 
					 
				
			 
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  uint32_t  frame_id  =  0 ,  last_vipc_frame_id  =  0 ;   
					 
					 
					 
					  uint32_t  frame_id  =  0 ,  last_vipc_frame_id  =  0 ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					  double  last  =  0 ;   
					 
					 
					 
					  double  last  =  0 ;   
				
			 
			
		
	
	
		
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
					 
					@ -114,8 +111,12 @@ void run_model(ModelState &model, VisionIpcClient &vipc_client) { 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      // tracked dropped frames
   
					 
					 
					 
					      // tracked dropped frames
   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      uint32_t  vipc_dropped_frames  =  extra . frame_id  -  last_vipc_frame_id  -  1 ;   
					 
					 
					 
					      uint32_t  vipc_dropped_frames  =  extra . frame_id  -  last_vipc_frame_id  -  1 ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      frames_dropped  =  ( 1.  -  frame_filter_k )  *  frames_dropped  +  frame_filter_k  *  ( float ) std : : min ( vipc_dropped_frames ,  10U ) ;   
					 
					 
					 
					      float  frames_dropped  =  frame_dropped_filter . update ( ( float ) std : : min ( vipc_dropped_frames ,  10U ) ) ;   
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					      if  ( run_count  <  10 )  frames_dropped  =  0 ;   // let frame drops warm up
   
					 
					 
					 
					      if  ( run_count  <  10 )  {  // let frame drops warm up
   
				
			 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					        frame_dropped_filter . reset ( 0 ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					        frames_dropped  =  0. ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					      }   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					      
  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      float  frame_drop_ratio  =  frames_dropped  /  ( 1  +  frames_dropped ) ;   
					 
					 
					 
					      float  frame_drop_ratio  =  frames_dropped  /  ( 1  +  frames_dropped ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					      model_publish ( pm ,  extra . frame_id ,  frame_id ,  frame_drop_ratio ,  model_buf ,  extra . timestamp_eof ,  model_execution_time ,   
					 
					 
					 
					      model_publish ( pm ,  extra . frame_id ,  frame_id ,  frame_drop_ratio ,  model_buf ,  extra . timestamp_eof ,  model_execution_time ,