def decodeVtg(self, data): nmea = NmeaRecord(data) if nmea.valid: h = nmea.value(1) if h is not None: return {"heading": h} return {}
def decodeHehdt(self, data): nmea = NmeaRecord(data) if nmea.valid: h = nmea.value(1) if h is not None: return {'id': 0, 'heading': h} return {}
def decodeVtg(self, data): nmea = NmeaRecord(data) if (nmea.valid): h = nmea.value(1) if h is not None: return {'heading': h} return {}
def parse(self, data): if data.startswith("$PISE"): nmea = NmeaRecord(data) if nmea.valid: try: result = { "id": nmea[1], "lat": nmea.value(2), "lon": nmea.value(3), "heading": nmea.value(8), "depth": nmea.value(9), "speed": nmea.value(10), } try: dt = datetime.datetime( int(nmea[4][0:4]), int(nmea[4][4:6]), int(nmea[4][6:]), int(nmea[5][0:2]), int(nmea[5][2:4]), int(nmea[5][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 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 not data.startswith('!AIVDM'): return {} nmea = NmeaRecord(data) if nmea.valid: fcnt = nmea.value(1) frag = nmea.value(2) if frag == 1: self.binaryPayload = nmea[5] else: self.binaryPayload += nmea[5] if frag == fcnt: return self.decodePayload(self.binaryPayload) 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 {}
def parse(self, data): if data.startswith('$PCI'): nmea = NmeaRecord(data) if nmea.valid: try: result = {'depth': nmea.value(1), 'altitude': nmea.value(2), 'heading': nmea.value(3), 'pitch': nmea.value(5), 'roll': nmea.value(6)} 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 parse(self, data): if data.startswith('$PSONLLD'): nmea = NmeaRecord(data) if (nmea.valid): try: if nmea[3] == 'V': return {} result = {'id': nmea.value(2), 'lat': nmea.value(4), 'lon': nmea.value(5), 'depth': nmea.value(6)} 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 parse(self, data): if data.startswith('$PISE'): nmea = NmeaRecord(data) if nmea.valid: try: result = {'id': nmea[1], 'lat': nmea.value(2), 'lon': nmea.value(3), 'heading': nmea.value(8), 'depth': nmea.value(9), 'speed': nmea.value(10)} try: dt = datetime.datetime(int(nmea[4][0:4]), int(nmea[4][4:6]), int(nmea[4][6:]), int(nmea[5][0:2]), int(nmea[5][2:4]), int(nmea[5][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 {}