diff --git a/ports/quectel/core/gnss.py b/ports/quectel/core/gnss.py index cdc812ac9ff25e8846d7ca4315d840f5229bf460..dff9110201437a39b1e15aeb5fa9fd8a7f12a641 100644 --- a/ports/quectel/core/gnss.py +++ b/ports/quectel/core/gnss.py @@ -38,17 +38,23 @@ class GnssGetData: #读取GNSS数据并加以解析 def read_gnss_data(self): try: - buf = self.uart.read(self.uart.any()) - gps_data = buf.decode().strip("b") - self.r = ure.search("GNGGA(.+?)M", gps_data) - self.r1 = ure.search("GNRMC(.+?)M", gps_data) - self.r2 = ure.search("GPGSV(.+?)M", gps_data) - self.r3 = ure.search("GNVTG(.+?)M", gps_data) - global fixFlag - if self.r1.group(0).split(",")[2] == 'A': #有效定位 - fixFlag=1 - else: - fixFlag=0 + msgLen = self.uart.any() + if msgLen: + buf = self.uart.read(self.uart.any()) + gps_data = buf.decode().strip("b") + self.r = ure.search("GNGGA(.+?)M", gps_data) + self.r1 = ure.search("GNRMC(.+?)M", gps_data) + self.r2 = ure.search("GPGSV(.+?)M", gps_data) + self.r3 = ure.search("GNVTG(.+?)M", gps_data) + global fixFlag + if self.r1.group(0).split(",")[2] == 'A': #有效定位 + fixFlag=1 + else: + fixFlag=0 + + return True + else: + return False except: print("Exception:read gnss data error!!!!!!!!") raise