def decodeGga(self, data): nmea = NmeaRecord(data) if nmea.valid: try: result = {"lat": nmea.fromDDM(2, 3), "lon": nmea.fromDDM(4, 5), "depth": -float(nmea[9])} try: dt = datetime.datetime.utcnow().replace( hour=int(nmea[1][0:2]), minute=int(nmea[1][2:4]), second=int(nmea[1][4:6]) ) except ValueError: dt = datetime.datetime.utcnow() td = dt - datetime.datetime(1970, 1, 1) result["time"] = td.total_seconds() return dict((k, v) for k, v in result.iteritems() if v is not None) except ValueError: return {}
def parse(self, data): if data.startswith('$PSAAS'): nmea = NmeaRecord(data) if nmea.valid: try: result = {'lat': nmea.fromDDM(2, 3), 'lon': nmea.fromDDM(4, 5), 'depth': nmea.value(6), 'altitude': nmea.value(7), 'heading': nmea.value(8), 'velforw': nmea.value(9), 'velport': nmea.value(10), 'velup': nmea.value(11)} t = datetime.datetime.utcnow() try: dt = datetime.datetime(t.year, t.month, t.day, int(nmea[1][0:2]), int(nmea[1][2:4]), int(nmea[1][4:6]), int(nmea[1][7:]) * 100) except ValueError: dt = t td = dt - datetime.datetime(1970, 1, 1) result['time'] = td.total_seconds() return dict((k, v) for k, v in result.iteritems() if v is not None) except ValueError: return {}
def decodePtsag(self, data): nmea = NmeaRecord(data) if (nmea.valid): try: result = {'id': nmea.value(6), 'lat': nmea.fromDDM(7, 8), 'lon': nmea.fromDDM(9, 10), 'depth': nmea.value(12)} try: dt = datetime.datetime(int(nmea[5]), int(nmea[4]), int(nmea[3]), int(nmea[2][0:2]), int(nmea[2][2:4]), int(nmea[2][4:6]), int(nmea[2][7:]) * 1000) except ValueError: dt = datetime.datetime.utcnow() td = dt - datetime.datetime(1970, 1, 1) result['time'] = td.total_seconds() return dict((k, v) for k, v in result.iteritems() if v is not None) except ValueError: return {}
def decodeGll(self, data): nmea = NmeaRecord(data) if nmea.valid: try: result = {'lat': nmea.fromDDM(1, 2), 'lon': nmea.fromDDM(3, 4)} try: dt = datetime.datetime.utcnow().replace( hour=int(nmea[1][0:2]), minute=int(nmea[1][2:4]), second=int(nmea[1][4:6])) except ValueError: dt = datetime.datetime.utcnow() td = dt - datetime.datetime(1970, 1, 1) result['time'] = td.total_seconds() return dict( (k, v) for k, v in result.iteritems() if v is not None) except ValueError: return {}