예제 #1
0
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
예제 #2
0
    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")
예제 #3
0
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")