open source driving agent
				
			 
			
		 
		
		
		
		
		
		
			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.
		
		
		
	
	
		
		
			
	
	
		
			
				
					
						
							|  |  |  | from typing import Optional
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def gpio_init(pin: int, output: bool) -> None:
 | 
					
						
							|  |  |  |   try:
 | 
					
						
							|  |  |  |     with open(f"/sys/class/gpio/gpio{pin}/direction", 'wb') as f:
 | 
					
						
							|  |  |  |       f.write(b"out" if output else b"in")
 | 
					
						
							|  |  |  |   except Exception as e:
 | 
					
						
							|  |  |  |     print(f"Failed to set gpio {pin} direction: {e}")
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def gpio_set(pin: int, high: bool) -> None:
 | 
					
						
							|  |  |  |   try:
 | 
					
						
							|  |  |  |     with open(f"/sys/class/gpio/gpio{pin}/value", 'wb') as f:
 | 
					
						
							|  |  |  |       f.write(b"1" if high else b"0")
 | 
					
						
							|  |  |  |   except Exception as e:
 | 
					
						
							|  |  |  |     print(f"Failed to set gpio {pin} value: {e}")
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def gpio_read(pin: int) -> Optional[bool]:
 | 
					
						
							|  |  |  |   val = None
 | 
					
						
							|  |  |  |   try:
 | 
					
						
							|  |  |  |     with open(f"/sys/class/gpio/gpio{pin}/value", 'rb') as f:
 | 
					
						
							|  |  |  |       val = bool(int(f.read().strip()))
 | 
					
						
							|  |  |  |   except Exception as e:
 | 
					
						
							|  |  |  |     print(f"Failed to set gpio {pin} value: {e}")
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   return val
 |