| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -19,7 +19,7 @@ def main(): | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  ldw = LaneDepartureWarning() | 
					 | 
					 | 
					 | 
					  ldw = LaneDepartureWarning() | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  longitudinal_planner = LongitudinalPlanner(CP) | 
					 | 
					 | 
					 | 
					  longitudinal_planner = LongitudinalPlanner(CP) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  pm = messaging.PubMaster(['longitudinalPlan', 'driverAssistance']) | 
					 | 
					 | 
					 | 
					  pm = messaging.PubMaster(['longitudinalPlan', 'driverAssistance']) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  sm = messaging.SubMaster(['carControl', 'carState', 'controlsState', 'liveParameters', 'radarState', 'modelV2', 'selfdriveState'], | 
					 | 
					 | 
					 | 
					  sm = messaging.SubMaster(['carControl', 'carState', 'controlsState', 'radarState', 'modelV2', 'selfdriveState'], | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                           poll='modelV2', ignore_avg_freq=['radarState']) | 
					 | 
					 | 
					 | 
					                           poll='modelV2', ignore_avg_freq=['radarState']) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  while True: | 
					 | 
					 | 
					 | 
					  while True: | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -30,7 +30,7 @@ def main(): | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      ldw.update(sm.frame, sm['modelV2'], sm['carState'], sm['carControl']) | 
					 | 
					 | 
					 | 
					      ldw.update(sm.frame, sm['modelV2'], sm['carState'], sm['carControl']) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      msg = messaging.new_message('driverAssistance') | 
					 | 
					 | 
					 | 
					      msg = messaging.new_message('driverAssistance') | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      msg.valid = sm.all_checks(['carState', 'carControl', 'modelV2', 'liveParameters']) | 
					 | 
					 | 
					 | 
					      msg.valid = sm.all_checks(['carState', 'carControl', 'modelV2']) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      msg.driverAssistance.leftLaneDeparture = ldw.left | 
					 | 
					 | 
					 | 
					      msg.driverAssistance.leftLaneDeparture = ldw.left | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      msg.driverAssistance.rightLaneDeparture = ldw.right | 
					 | 
					 | 
					 | 
					      msg.driverAssistance.rightLaneDeparture = ldw.right | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      pm.send('driverAssistance', msg) | 
					 | 
					 | 
					 | 
					      pm.send('driverAssistance', msg) | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |