def gps_read_thread(panda): global received_messages, received_bytes, send_something ser = PandaSerial(panda, 1, GPS_BAUD) while True: ret = ser.read(1024) time.sleep(0.001) if len(ret): received_messages += 1 received_bytes += len(ret) if send_something: ser.write("test") send_something = False
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")
def init_gps(panda): def add_nmea_checksum(msg): d = msg[1:] cs = 0 for i in d: cs ^= ord(i) return msg + "*%02X" % cs ser = PandaSerial(panda, 1, INIT_GPS_BAUD) # Power cycle the gps by toggling reset print("Resetting GPS") panda.set_esp_power(0) time.sleep(0.5) panda.set_esp_power(1) time.sleep(0.5) # Upping baud rate print("Upping GPS baud rate") msg = add_nmea_checksum("$PUBX,41,1,0007,0003,%d,0" % GPS_BAUD)+"\r\n" ser.write(msg) time.sleep(1) # needs a wait for it to actually send # Reconnecting with the correct baud ser = PandaSerial(panda, 1, GPS_BAUD) # Sending all config messages boardd sends print("Sending config") ser.write("\xB5\x62\x06\x00\x14\x00\x03\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x01\x00\x00\x00\x00\x00\x1E\x7F") ser.write("\xB5\x62\x06\x3E\x00\x00\x44\xD2") ser.write("\xB5\x62\x06\x00\x14\x00\x00\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x35") ser.write("\xB5\x62\x06\x00\x14\x00\x01\x00\x00\x00\xC0\x08\x00\x00\x00\x08\x07\x00\x01\x00\x01\x00\x00\x00\x00\x00\xF4\x80") ser.write("\xB5\x62\x06\x00\x14\x00\x04\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1D\x85") ser.write("\xB5\x62\x06\x00\x00\x00\x06\x18") ser.write("\xB5\x62\x06\x00\x01\x00\x01\x08\x22") ser.write("\xB5\x62\x06\x00\x01\x00\x02\x09\x23") ser.write("\xB5\x62\x06\x00\x01\x00\x03\x0A\x24") ser.write("\xB5\x62\x06\x08\x06\x00\x64\x00\x01\x00\x00\x00\x79\x10") ser.write("\xB5\x62\x06\x24\x24\x00\x05\x00\x04\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5A\x63") ser.write("\xB5\x62\x06\x1E\x14\x00\x00\x00\x00\x00\x01\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3C\x37") ser.write("\xB5\x62\x06\x24\x00\x00\x2A\x84") ser.write("\xB5\x62\x06\x23\x00\x00\x29\x81") ser.write("\xB5\x62\x06\x1E\x00\x00\x24\x72") ser.write("\xB5\x62\x06\x01\x03\x00\x01\x07\x01\x13\x51") ser.write("\xB5\x62\x06\x01\x03\x00\x02\x15\x01\x22\x70") ser.write("\xB5\x62\x06\x01\x03\x00\x02\x13\x01\x20\x6C") print("Initialized GPS")