commit
						11c7429538
					
				
				 15 changed files with 1130 additions and 1043 deletions
			
			
		| @ -1 +1 @@ | |||||||
| v1.0.3 | v1.0.4 | ||||||
| @ -1 +1 @@ | |||||||
| from .python import Panda, PandaWifiStreaming, PandaDFU, ESPROM, CesantaFlasher, flash_release, BASEDIR, ensure_st_up_to_date, build_st | from .python import Panda, PandaWifiStreaming, PandaDFU, ESPROM, CesantaFlasher, flash_release, BASEDIR, ensure_st_up_to_date, build_st, PandaSerial | ||||||
|  | |||||||
| @ -0,0 +1,27 @@ | |||||||
|  | # mimic a python serial port | ||||||
|  | class PandaSerial(object): | ||||||
|  |   def __init__(self, panda, port, baud): | ||||||
|  |     self.panda = panda | ||||||
|  |     self.port = port | ||||||
|  |     self.panda.set_uart_parity(self.port, 0) | ||||||
|  |     self.panda.set_uart_baud(self.port, baud) | ||||||
|  |     self.buf = "" | ||||||
|  | 
 | ||||||
|  |   def read(self, l=1): | ||||||
|  |     tt = self.panda.serial_read(self.port) | ||||||
|  |     if len(tt) > 0: | ||||||
|  |       #print "R: ", tt.encode("hex") | ||||||
|  |       self.buf += tt | ||||||
|  |     ret = self.buf[0:l] | ||||||
|  |     self.buf = self.buf[l:] | ||||||
|  |     return ret | ||||||
|  | 
 | ||||||
|  |   def write(self, dat): | ||||||
|  |     #print "W: ", dat.encode("hex") | ||||||
|  |     #print '  pigeon_send("' + ''.join(map(lambda x: "\\x%02X" % ord(x), dat)) + '");' | ||||||
|  |     return self.panda.serial_write(self.port, dat) | ||||||
|  | 
 | ||||||
|  |   def close(self): | ||||||
|  |     pass | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| @ -0,0 +1,48 @@ | |||||||
|  | #!/usr/bin/env python | ||||||
|  | import os | ||||||
|  | import time | ||||||
|  | import sys | ||||||
|  | 
 | ||||||
|  | sys.path.append(os.path.join(os.path.dirname(os.path.realpath(__file__)), "..")) | ||||||
|  | from panda import Panda, PandaSerial | ||||||
|  | 
 | ||||||
|  | def add_nmea_checksum(msg): | ||||||
|  |   d = msg[1:] | ||||||
|  |   cs = 0 | ||||||
|  |   for i in d: | ||||||
|  |     cs ^= ord(i) | ||||||
|  |   return msg + "*%02X" % cs | ||||||
|  | 
 | ||||||
|  | if __name__ == "__main__": | ||||||
|  |   panda = Panda() | ||||||
|  |   ser = PandaSerial(panda, 1, 9600) | ||||||
|  | 
 | ||||||
|  |   # power cycle by toggling reset | ||||||
|  |   print "resetting" | ||||||
|  |   panda.set_esp_power(0) | ||||||
|  |   time.sleep(0.5) | ||||||
|  |   panda.set_esp_power(1) | ||||||
|  |   time.sleep(0.5) | ||||||
|  |   print "done" | ||||||
|  |   print ser.read(1024) | ||||||
|  | 
 | ||||||
|  |   # upping baud rate | ||||||
|  |   # 460800 has issues | ||||||
|  |   baudrate = 460800 | ||||||
|  | 
 | ||||||
|  |   print "upping baud rate" | ||||||
|  |   msg = add_nmea_checksum("$PUBX,41,1,0007,0003,%d,0" % baudrate)+"\r\n" | ||||||
|  |   print msg | ||||||
|  |   ser.write(msg) | ||||||
|  |   time.sleep(0.1)   # needs a wait for it to actually send | ||||||
|  | 
 | ||||||
|  |   # new panda serial | ||||||
|  |   ser = PandaSerial(panda, 1, baudrate) | ||||||
|  | 
 | ||||||
|  |   while True: | ||||||
|  |     ret = ser.read(1024) | ||||||
|  |     if len(ret) > 0: | ||||||
|  |       sys.stdout.write(ret) | ||||||
|  |       sys.stdout.flush() | ||||||
|  |       #print str(ret).encode("hex") | ||||||
|  | 
 | ||||||
					Loading…
					
					
				
		Reference in new issue