|  |  | @ -1,5 +1,3 @@ | 
			
		
	
		
		
			
				
					
					|  |  |  | import os |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | import time |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | import select |  |  |  | import select | 
			
		
	
		
		
			
				
					
					|  |  |  | from serial import Serial |  |  |  | from serial import Serial | 
			
		
	
		
		
			
				
					
					|  |  |  | from crcmod import mkCrcFun |  |  |  | from crcmod import mkCrcFun | 
			
		
	
	
		
		
			
				
					|  |  | @ -11,18 +9,7 @@ class ModemDiag: | 
			
		
	
		
		
			
				
					
					|  |  |  |     self.pend = b'' |  |  |  |     self.pend = b'' | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |   def open_serial(self): |  |  |  |   def open_serial(self): | 
			
		
	
		
		
			
				
					
					|  |  |  |     def op(): |  |  |  |     serial = Serial("/dev/ttyUSB0", baudrate=115200, rtscts=True, dsrdtr=True, timeout=0, exclusive=True) | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |       return Serial("/dev/ttyUSB0", baudrate=115200, rtscts=True, dsrdtr=True, timeout=0) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     try: |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |       serial = op() |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     except Exception: |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |       # TODO: this is a hack to get around modemmanager's exclusive open |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |       print("unlocking serial...") |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |       os.system('sudo su -c \'echo "1-1.1:1.0" > /sys/bus/usb/drivers/option/unbind\'') |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |       os.system('sudo su -c \'echo "1-1.1:1.0" > /sys/bus/usb/drivers/option/bind\'') |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |       time.sleep(0.5) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |       os.system("sudo chmod 666 /dev/ttyUSB0") |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |       serial = op() |  |  |  |  | 
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     serial.flush() |  |  |  |     serial.flush() | 
			
		
	
		
		
			
				
					
					|  |  |  |     serial.reset_input_buffer() |  |  |  |     serial.reset_input_buffer() | 
			
		
	
		
		
			
				
					
					|  |  |  |     serial.reset_output_buffer() |  |  |  |     serial.reset_output_buffer() | 
			
		
	
	
		
		
			
				
					|  |  | 
 |