Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # by McWhorter on toptechboy.com...
- import serial
- import Adafruit_BBIO.UART as UART
- from time import sleep
- UART.setup("UART2")
- ser=serial.Serial("/dev/ttyS2", 9600)
- class GPS:
- def __init__(self):
- #This sets up variables for useful commands.
- #This set is used to set the rate the GPS reports
- UPDATE_10_sec = b"$PMTK220,10000*2F\n" #Update Every 10 Seconds
- UPDATE_5_sec = b"$PMTK220,5000*1B\n" #Update Every 5 Seconds
- UPDATE_1_sec = b"$PMTK220,1000*1F\n" #Update Every One Second
- UPDATE_200_msec = b"$PMTK220,200*2C\n" #Update Every 200 Milliseconds
- #This set is used to set the rate the GPS takes measurements
- MEAS_10_sec = b"$PMTK300,10000,0,0,0,0*2C\n" #Measure every 10 seconds
- MEAS_5_sec = b"$PMTK300,5000,0,0,0,0*18\n" #Measure every 5 seconds
- MEAS_1_sec = b"$PMTK300,1000,0,0,0,0*1C\n" #Measure once a second
- MEAS_200_msec = b"$PMTK300,200,0,0,0,0*2F\n" #Meaure 5 times a seconds
- #Set the Baud Rate of GPS
- BAUD_57600 = b"$PMTK251,57600*2C\n" #Set Baud Rate at 57600
- BAUD_9600 = b"$PMTK251,9600*17\n" #Set 9600 Baud Rate
- #Commands for which NMEA Sentences are sent
- ser.write(BAUD_57600.encode('utf-8')
- sleep(1)
- ser.baudrate=57600
- GPRMC_ONLY = b"$PMTK314,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0*29\n" #Send only the GPRMC Sentence
- GPRMC_GPGGA = b"$PMTK314,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0*28\n"#Send GPRMC AND GPGGA Sentences
- SEND_ALL = b"$PMTK314,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0*28\n" #Send All Sentences
- SEND_NOTHING = b"$PMTK314,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0*28\n" #Send Nothing
- ser.write(UPDATE_1_sec()
- sleep(1)
- ser.write(MEAS_1_sec()
- sleep(1)
- ser.write(GPRMC_GPGGA()
- sleep(1)
- ser.flushInput()
- ser.flushInput()
- def read(self):
- ser.flushInput()
- ser.flushInput()
- while ser.inWaiting() == 0:
- pass
- self.NMEA1=ser.readline()
- while ser.inWaiting() == 0:
- pass
- self.NMEA2=ser.readline()
- NMEA1_array = self.NMEA1.split(',')
- NMEA2_array = self.NMEA2.split(',')
- if NMEA1_array[0] == b'$GPRMC':
- self.timeUTC = NMEA1_array[1][:-8] + ':' + NMEA1_array[1][-8:-6] + ':' + NMEA1_array[1][-6:-4]
- self.latDeg = NMEA1_array[3][:-7]
- self.latMin = NMEA1_array[3][-7:]
- self.latHem = NMEA1_array[4]
- self.lonDeg = NMEA1_array[5][:-7]
- self.lonMin = NMEA1_array[5][-7:]
- self.lonHem = NMEA1_array[6]
- self.knots = NMEA1_array[7]
- if NMEA1_array[0] == b'$GPGGA':
- self.fix = NMEA1_array[6]
- self.altitude = NMEA1_array[9]
- self.sats = NMEA1_array[7]
- if NMEA2_array[0] == b'$GPRMC':
- self.timeUTC = NMEA2_array[1][:-8] + ':' + NMEA1_array[1][-8:-6] + ':' + NMEA1_array[1][-6:-4]
- self.latDeg = NMEA2_array[3][:-7]
- self.latMin = NMEA2_array[3][-7:]
- self.latHem = NMEA2_array[4]
- self.lonDeg = NMEA2_array[5][:-7]
- self.lonMin = NMEA2_array[5][-7:]
- self.lonHem = NMEA2_array[6]
- self.knots = NMEA2_array[7]
- if NMEA2_array[0] == b'$GPGGA':
- self.fix = NMEA2_array[6]
- self.altitude = NMEA2_array[9]
- self.sats = NMEA2_array[7]
- myGPS = GPS()
- GPSdata = open('/home/debian/GPS/GPSTwo.csv', 'w')
- GPSdata.close()
- while(1):
- myGPS.read()
- if myGPS.fix != 0:
- try:
- latDec = float(myGPS.latDeg) + float(myGPS.latMin)/60.
- lonDec = float(myGPS.lonDeg) + float(myGPS.lonMin)/60.
- if myGPS.lonHem == 'W':
- lonDec=(-1)*lonDec
- if myGPS.latHem=='S':
- latDec=(-1)*latDec
- alt = myGPS.altitude
- GPSdata = open('/home/debian/GPS/GPS.txt', 'a')
- myString = str(lonDec) + ',' + str(latDec) + ',' + alt +' '
- GPSdata.write(myString)
- GPSdata.close()
- except:
- pass
- Error:
- File "GPSone.py", line 27
- sleep(1)
- ^
- SyntaxError: invalid syntax
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement