From: 孙春阳 Date: Fri, 12 Sep 2025 01:05:56 +0000 (+0800) Subject: fd230 EG810BG 版本所需gnss python测试脚本 X-Git-Tag: leiniao_debug_1.0.0_20250922_020716~89^2~3 X-Git-Url: http://git.snicker.com.cn/css/static/gitweb.css?a=commitdiff_plain;h=0b6da7f916cee40195d801854572ada562fdcb69;p=mirrors%2FFD230.git fd230 EG810BG 版本所需gnss python测试脚本 --- 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)#休眠 + +