예제 #1
0
    def _process_HNR_PVT(self, data: UBXMessage):
        """
        Process HNR-PVT sentence -  High Rate Navigation position velocity time solution.

        :param UBXMessage data: HNR-PVT parsed message
        """

        try:
            self.utc = itow2utc(data.iTOW)
            self.lat = data.lat / 10**7
            self.lon = data.lon / 10**7
            self.alt = data.hMSL / 1000
            self.hacc = data.hAcc / 1000
            self.vacc = data.vAcc / 1000
            self.speed = data.gSpeed / 1000  # m/s
            self.track = data.headMot / 10**5
            fix = gpsfix2str(data.gpsFix)
            self.__app.frm_banner.update_banner(
                time=self.utc,
                lat=self.lat,
                lon=self.lon,
                alt=self.alt,
                hacc=self.hacc,
                vacc=self.vacc,
                speed=self.speed,
                fix=fix,
                track=self.track,
            )

            self.__app.frm_mapview.update_map(self.lat,
                                              self.lon,
                                              self.hacc,
                                              fix=fix)

            if (self.__app.frm_settings.record_track and self.lat != ""
                    and self.lon != ""):
                time = (datetime(
                    data.year,
                    data.month,
                    data.day,
                    data.hour,
                    data.min,
                    data.second,
                ).isoformat() + "Z")
                if fix == "3D":
                    fix = "3d"
                elif fix == "2D":
                    fix = "2d"
                else:
                    fix = "none"
                self.__app.file_handler.add_trackpoint(
                    self.lat,
                    self.lon,
                    ele=self.alt,
                    time=time,
                    fix=fix,
                )
        except ValueError:
            # self.__app.set_status(ube.UBXMessageError(err), "red")
            pass
예제 #2
0
    def _process_NAV_SOL(self, data: UBXMessage):
        """
        Process NAV-SOL sentence - Navigation Solution.

        :param UBXMessage data: NAV-SOL parsed message
        """

        try:
            self.pdop = data.pDOP / 100
            self.sip = data.numSV
            fix = gpsfix2str(data.gpsFix)

            self.__app.frm_banner.update_banner(dop=self.pdop,
                                                fix=fix,
                                                sip=self.sip)
        except ValueError:
            # self.__app.set_status(ube.UBXMessageError(err), "red")
            pass
예제 #3
0
 def testgps2str(self):
     fixs = ['NO FIX', 'DR', '2D', '3D', 'GPS + DR', 'TIME ONLY']
     for i, fix in enumerate(range(0, 6)):
         res = gpsfix2str(fix)
         self.assertEqual(res, fixs[i])
예제 #4
0
 def testgps2str(self):
     fixs = ["NO FIX", "DR", "2D", "3D", "GPS + DR", "TIME ONLY"]
     for i, fix in enumerate(range(0, 6)):
         res = gpsfix2str(fix)
         self.assertEqual(res, fixs[i])