You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					23 lines
				
				463 B
			
		
		
			
		
	
	
					23 lines
				
				463 B
			| 
								 
											5 months ago
										 
									 | 
							
								import os
							 | 
						||
| 
								 | 
							
								import time
							 | 
						||
| 
								 | 
							
								import struct
							 | 
						||
| 
								 | 
							
								from openpilot.system.hardware.hw import Paths
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								WATCHDOG_FN = f"{Paths.shm_path()}/wd_"
							 | 
						||
| 
								 | 
							
								_LAST_KICK = 0.0
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								def kick_watchdog():
							 | 
						||
| 
								 | 
							
								  global _LAST_KICK
							 | 
						||
| 
								 | 
							
								  current_time = time.monotonic()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if current_time - _LAST_KICK < 1.0:
							 | 
						||
| 
								 | 
							
								    return
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  try:
							 | 
						||
| 
								 | 
							
								    with open(f"{WATCHDOG_FN}{os.getpid()}", 'wb') as f:
							 | 
						||
| 
								 | 
							
								      f.write(struct.pack('<Q', int(current_time * 1e9)))
							 | 
						||
| 
								 | 
							
								      f.flush()
							 | 
						||
| 
								 | 
							
								    _LAST_KICK = current_time
							 | 
						||
| 
								 | 
							
								  except OSError:
							 | 
						||
| 
								 | 
							
								    pass
							 |