|  |  | @ -1,13 +1,12 @@ | 
			
		
	
		
		
			
				
					
					|  |  |  | import capnp |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | import time |  |  |  | import time | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | from panda.python.uds import SERVICE_TYPE |  |  |  | from panda.python.uds import SERVICE_TYPE | 
			
		
	
		
		
			
				
					
					|  |  |  | from openpilot.selfdrive.car import make_tester_present_msg, carlog |  |  |  | from openpilot.selfdrive.car import make_tester_present_msg, carlog | 
			
		
	
		
		
			
				
					
					|  |  |  | from openpilot.selfdrive.car.can_definitions import CanRecvCallable, CanSendCallable |  |  |  | from openpilot.selfdrive.car.can_definitions import CanData, CanRecvCallable, CanSendCallable | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | from openpilot.selfdrive.car.fw_query_definitions import EcuAddrBusType |  |  |  | from openpilot.selfdrive.car.fw_query_definitions import EcuAddrBusType | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | def _is_tester_present_response(msg: capnp.lib.capnp._DynamicStructReader, subaddr: int = None) -> bool: |  |  |  | def _is_tester_present_response(msg: CanData, subaddr: int = None) -> bool: | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   # ISO-TP messages are always padded to 8 bytes |  |  |  |   # ISO-TP messages are always padded to 8 bytes | 
			
		
	
		
		
			
				
					
					|  |  |  |   # tester present response is always a single frame |  |  |  |   # tester present response is always a single frame | 
			
		
	
		
		
			
				
					
					|  |  |  |   dat_offset = 1 if subaddr is not None else 0 |  |  |  |   dat_offset = 1 if subaddr is not None else 0 | 
			
		
	
	
		
		
			
				
					|  |  | 
 |