@ -307,7 +307,8 @@ void fill_xyzt(cereal::ModelDataV2::XYZTData::Builder xyzt, const float * data, 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					void  model_publish_v2 ( PubMaster  & pm ,  uint32_t  vipc_frame_id ,  uint32_t  frame_id , void  model_publish_v2 ( PubMaster  & pm ,  uint32_t  vipc_frame_id ,  uint32_t  frame_id ,  
			
		
	
		
		
			
				
					
					                     uint32_t  vipc_dropped_frames ,  float  frame_drop ,                       uint32_t  vipc_dropped_frames ,  float  frame_drop ,   
			
		
	
		
		
			
				
					
					                     const  ModelDataRaw  & net_outputs ,  uint64_t  timestamp_eof )  {                       const  ModelDataRaw  & net_outputs ,  uint64_t  timestamp_eof ,   
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					                     float  model_execution_time )  {   
			
		
	
		
		
			
				
					
					  // make msg
    // make msg
   
			
		
	
		
		
			
				
					
					  MessageBuilder  msg ;    MessageBuilder  msg ;   
			
		
	
		
		
			
				
					
					  auto  framed  =  msg . initEvent ( frame_drop  <  MAX_FRAME_DROP ) . initModelV2 ( ) ;    auto  framed  =  msg . initEvent ( frame_drop  <  MAX_FRAME_DROP ) . initModelV2 ( ) ;   
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -316,6 +317,7 @@ void model_publish_v2(PubMaster &pm, uint32_t vipc_frame_id, uint32_t frame_id, 
			
		
	
		
		
			
				
					
					  framed . setFrameAge ( frame_age ) ;    framed . setFrameAge ( frame_age ) ;   
			
		
	
		
		
			
				
					
					  framed . setFrameDropPerc ( frame_drop  *  100 ) ;    framed . setFrameDropPerc ( frame_drop  *  100 ) ;   
			
		
	
		
		
			
				
					
					  framed . setTimestampEof ( timestamp_eof ) ;    framed . setTimestampEof ( timestamp_eof ) ;   
			
		
	
		
		
			
				
					
					  framed . setModelExecutionTime ( model_execution_time ) ;   
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					  // plan 
    // plan 
   
			
		
	
		
		
			
				
					
					  int  plan_mhp_max_idx  =  0 ;    int  plan_mhp_max_idx  =  0 ;   
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -385,15 +387,18 @@ void model_publish_v2(PubMaster &pm, uint32_t vipc_frame_id, uint32_t frame_id, 
			
		
	
		
		
			
				
					
					} }  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					void  model_publish ( PubMaster  & pm ,  uint32_t  vipc_frame_id ,  uint32_t  frame_id , void  model_publish ( PubMaster  & pm ,  uint32_t  vipc_frame_id ,  uint32_t  frame_id ,  
			
		
	
		
		
			
				
					
					                   uint32_t  vipc_dropped_frames ,  float  frame_drop ,  const  ModelDataRaw  & net_outputs ,  uint64_t  timestamp_eof )  {                     uint32_t  vipc_dropped_frames ,  float  frame_drop ,   
			
				
				
			
		
	
		
		
			
				
					
					  uint32_t  frame_age  =  ( frame_id  >  vipc_frame_id )  ?  ( frame_id  -  vipc_frame_id )  :  0 ;                     const  ModelDataRaw  & net_outputs ,  uint64_t  timestamp_eof ,   
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					                   float  model_execution_time )  {   
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					  uint32_t  frame_age  =  ( frame_id  >  vipc_frame_id )  ?  ( frame_id  -  vipc_frame_id )  :  0 ;   
			
		
	
		
		
			
				
					
					  MessageBuilder  msg ;    MessageBuilder  msg ;   
			
		
	
		
		
			
				
					
					  auto  framed  =  msg . initEvent ( frame_drop  <  MAX_FRAME_DROP ) . initModel ( ) ;    auto  framed  =  msg . initEvent ( frame_drop  <  MAX_FRAME_DROP ) . initModel ( ) ;   
			
		
	
		
		
			
				
					
					  framed . setFrameId ( vipc_frame_id ) ;    framed . setFrameId ( vipc_frame_id ) ;   
			
		
	
		
		
			
				
					
					  framed . setFrameAge ( frame_age ) ;    framed . setFrameAge ( frame_age ) ;   
			
		
	
		
		
			
				
					
					  framed . setFrameDropPerc ( frame_drop  *  100 ) ;    framed . setFrameDropPerc ( frame_drop  *  100 ) ;   
			
		
	
		
		
			
				
					
					  framed . setTimestampEof ( timestamp_eof ) ;    framed . setTimestampEof ( timestamp_eof ) ;   
			
		
	
		
		
			
				
					
					  framed . setModelExecutionTime ( model_execution_time ) ;   
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					  // Find the distribution that corresponds to the most probable plan
    // Find the distribution that corresponds to the most probable plan
   
			
		
	
		
		
			
				
					
					  int  plan_mhp_max_idx  =  0 ;    int  plan_mhp_max_idx  =  0 ;   
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -461,7 +466,8 @@ void model_publish(PubMaster &pm, uint32_t vipc_frame_id, uint32_t frame_id, 
			
		
	
		
		
			
				
					
					} }  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					void  posenet_publish ( PubMaster  & pm ,  uint32_t  vipc_frame_id ,  uint32_t  frame_id , void  posenet_publish ( PubMaster  & pm ,  uint32_t  vipc_frame_id ,  uint32_t  frame_id ,  
			
		
	
		
		
			
				
					
					                     uint32_t  vipc_dropped_frames ,  float  frame_drop ,  const  ModelDataRaw  & net_outputs ,  uint64_t  timestamp_eof )  {                       uint32_t  vipc_dropped_frames ,  float  frame_drop ,   
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					                     const  ModelDataRaw  & net_outputs ,  uint64_t  timestamp_eof )  {   
			
		
	
		
		
			
				
					
					  float  trans_arr [ 3 ] ;    float  trans_arr [ 3 ] ;   
			
		
	
		
		
			
				
					
					  float  trans_std_arr [ 3 ] ;    float  trans_std_arr [ 3 ] ;   
			
		
	
		
		
			
				
					
					  float  rot_arr [ 3 ] ;    float  rot_arr [ 3 ] ;