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.
		
		
		
		
			
				
					45 lines
				
				1.2 KiB
			
		
		
			
		
	
	
					45 lines
				
				1.2 KiB
			| 
								 
											6 years ago
										 
									 | 
							
								#!/usr/bin/env python
							 | 
						||
| 
								 | 
							
								from __future__ import print_function
							 | 
						||
| 
								 | 
							
								import os
							 | 
						||
| 
								 | 
							
								import sys
							 | 
						||
| 
								 | 
							
								import time
							 | 
						||
| 
								 | 
							
								import select
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								sys.path.append(os.path.join(os.path.dirname(os.path.realpath(__file__)), ".."))
							 | 
						||
| 
								 | 
							
								from panda import Panda
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								setcolor = ["\033[1;32;40m", "\033[1;31;40m"]
							 | 
						||
| 
								 | 
							
								unsetcolor = "\033[00m"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if __name__ == "__main__":
							 | 
						||
| 
								 | 
							
								  port_number = int(os.getenv("PORT", 0))
							 | 
						||
| 
								 | 
							
								  claim = os.getenv("CLAIM") is not None
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  serials = Panda.list()
							 | 
						||
| 
								 | 
							
								  if os.getenv("SERIAL"):
							 | 
						||
| 
								 | 
							
								    serials = filter(lambda x: x==os.getenv("SERIAL"), serials)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  pandas = list(map(lambda x: Panda(x, claim=claim), serials))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if not len(pandas):
							 | 
						||
| 
								 | 
							
								    sys.exit("no pandas found")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if os.getenv("BAUD") is not None:
							 | 
						||
| 
								 | 
							
								    for panda in pandas:
							 | 
						||
| 
								 | 
							
								      panda.set_uart_baud(port_number, int(os.getenv("BAUD")))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  while True:
							 | 
						||
| 
								 | 
							
								    for i, panda in enumerate(pandas):
							 | 
						||
| 
								 | 
							
								      while True:
							 | 
						||
| 
								 | 
							
								        ret = panda.serial_read(port_number)
							 | 
						||
| 
								 | 
							
								        if len(ret) > 0:
							 | 
						||
| 
								 | 
							
								          sys.stdout.write(setcolor[i] + str(ret) + unsetcolor)
							 | 
						||
| 
								 | 
							
								          sys.stdout.flush()
							 | 
						||
| 
								 | 
							
								        else:
							 | 
						||
| 
								 | 
							
								          break
							 | 
						||
| 
								 | 
							
								      if select.select([sys.stdin], [], [], 0) == ([sys.stdin], [], []):
							 | 
						||
| 
								 | 
							
								        ln = sys.stdin.readline()
							 | 
						||
| 
								 | 
							
								        if claim:
							 | 
						||
| 
								 | 
							
								          panda.serial_write(port_number, ln)
							 | 
						||
| 
								 | 
							
								      time.sleep(0.01)
							 |