From 0b6da7f916cee40195d801854572ada562fdcb69 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E5=AD=99=E6=98=A5=E9=98=B3?= Date: Fri, 12 Sep 2025 09:05:56 +0800 Subject: [PATCH] =?utf8?q?fd230=20EG810BG=20=E7=89=88=E6=9C=AC=E6=89=80?= =?utf8?q?=E9=9C=80gnss=20python=E6=B5=8B=E8=AF=95=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- cat1modem/src/cat1gnsscrt.py | 81 ++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 cat1modem/src/cat1gnsscrt.py diff --git a/cat1modem/src/cat1gnsscrt.py b/cat1modem/src/cat1gnsscrt.py new file mode 100644 index 000000000..8d7f7e8d2 --- /dev/null +++ b/cat1modem/src/cat1gnsscrt.py @@ -0,0 +1,81 @@ +import utime +import pm +import log +import quecgnss +from machine import UART +import checkNet +import ure + +# 创建wakelock锁 +lpm_fd = pm.create_wakelock("pm_lock", len("pm_lock")) +gps_init_cnt = 0 + +''' +log.basicConfig(level=log.INFO) +log.set_output(UART(UART.UART0, 115200, 8, 0, 1, 0)) +logger = log.getLogger("Davon") +''' + +def gnssint(): + quecgnss.configSet(0, 5) # 设置定位星系为GPS+Beidou+Galileo + quecgnss.configSet(2, 1) # 打开AGPS + quecgnss.configSet(3, 1) #打开APFLASH + #quecgnss.configSet(4, 1) # 打开备电 + ret = quecgnss.init() + if ret == 0: + print('GNSS init ok.') + else: + print('GNSS init failed.') +def GNSSget(): + i=0 + + if quecgnss.get_state() == 0: + ret=quecgnss.gnssEnable(1) + if ret==0: + print('gnss enable ok.') + else: + print('gnss enable failed.') + utime.sleep(1) + if quecgnss.get_state() == 2: + while True: + data = quecgnss.read(4096) + if data[0]>0: + print("{}".format(data[1].decode())) + if ure.search("GNRMC", data[1].decode()): + r = ure.search("GNRMC,(.+?),(.+?),(.+?),(.+?),(.+?),(.+?),(.+?)V", data[1].decode()) + if ure.match(r.group(2), 'A'): # 判断有效值A确认是否定位完成 + print("{}".format(data[1].decode())) + print("gnss get ok.") + break + utime.sleep(1) + i=i+1 + print("gnssdatagetcount={}".format(i)) + if i>120: + print("gnss get failed.outtime") + break + ret=quecgnss.gnssEnable(0) + if ret==0: + print('gnss disable ok.') + else: + print('gnss disable failed.') + +if __name__ == "__main__": + + print('start') + stage, state = checkNet.wait_network_connected(30) + if stage == 3 and state == 1: + print('Network connection successful.') + + # 设置自动休眠模式 + pm.autosleep(1) + + gnssint() + while True: + print('get lock') + pm.wakelock_lock(lpm_fd) # 添加休眠锁 + GNSSget() + print('out lock') + pm.wakelock_unlock(lpm_fd) # 释放锁 + utime.sleep(10)#休眠 + + -- 2.17.1