示例#1
0
    def _handle(self, nmeadata):

        for sentence, sen_time in nmeadata:
            try:
                if type(sentence) in [
                        types.GGA, types.GLL, types.GSV, types.MWD
                ]:
                    data = sensordataobject()
                    data.Time_Created = sen_time
                    if type(sentence) == types.GGA:
                        data.GPS_LatLon = str((sentence.lat, sentence.lat_dir,
                                               sentence.lon, sentence.lon_dir))
                        data.GPS_SatCount = int(sentence.num_sats)
                        data.GPS_Quality = int(sentence.gps_qual)
                    elif type(sentence) == types.GLL:
                        data.GPS_LatLon = str((sentence.lat, sentence.lat_dir,
                                               sentence.lon, sentence.lon_dir))
                    elif type(sentence) == types.GSV:
                        data.GPS_SatCount = int(sentence.num_sv_in_view)
                    elif type(sentence) == types.MWD:
                        data.Wind_Direction_True = int(sentence.direction_true)
                        data.Wind_Speed_True = int(sentence.wind_speed_meters)

                    self.fireEvent(sensordata(data), "navdata")
                else:
                    hfoslog("[NMEA] Unhandled sentence acquired: ", sentence)
            except Exception as e:
                hfoslog("[NMEA] Error during sending: ",
                        nmeadata,
                        e,
                        type(e),
                        lvl=error)
示例#2
0
文件: nmea.py 项目: addy2342/hfos
    def _handle(self, nmeadata):

        for sentence, sen_time in nmeadata:
            try:
                if type(sentence) in [types.GGA, types.GLL, types.GSV, types.MWD]:
                    data = sensordataobject()
                    data.Time_Created = sen_time
                    if type(sentence) == types.GGA:
                        data.GPS_LatLon = str((sentence.lat, sentence.lat_dir,
                                               sentence.lon, sentence.lon_dir))
                        data.GPS_SatCount = int(sentence.num_sats)
                        data.GPS_Quality = int(sentence.gps_qual)
                    elif type(sentence) == types.GLL:
                        data.GPS_LatLon = str((sentence.lat, sentence.lat_dir,
                                               sentence.lon, sentence.lon_dir))
                    elif type(sentence) == types.GSV:
                        data.GPS_SatCount = int(sentence.num_sv_in_view)
                    elif type(sentence) == types.MWD:
                        data.Wind_Direction_True = int(sentence.direction_true)
                        data.Wind_Speed_True = int(sentence.wind_speed_meters)

                    self.fireEvent(sensordata(data), "navdata")
                else:
                    hfoslog("[NMEA] Unhandled sentence acquired: ", sentence)
            except Exception as e:
                hfoslog("[NMEA] Error during sending: ", nmeadata, e, type(e), lvl=error)
示例#3
0
文件: navdata.py 项目: addy2342/hfos
    def __init__(self, *args):
        """
        Initialize the navigation data component.

        :param args:
        """
        super(NavData, self).__init__(*args)

        self.referenceframe = sensordataobject()
        self.referenceages = {}
        self.changed = False

        self.interval = 1
        self.passiveinterval = 10
        self.intervalcount = 0

        Timer(self.interval, Event.create('navdatapush'), self.channel, persist=True).register(self)
示例#4
0
文件: navdata.py 项目: addy2342/hfos
    def __init__(self, *args):
        """
        Initialize the navigation data component.

        :param args:
        """
        super(NavData, self).__init__(*args)

        self.referenceframe = sensordataobject()
        self.referenceages = {}
        self.changed = False

        self.interval = 1
        self.passiveinterval = 10
        self.intervalcount = 0

        Timer(self.interval,
              Event.create('navdatapush'),
              self.channel,
              persist=True).register(self)