From: p15692025051 <846603105@qq.com> Date: Mon, 9 Oct 2023 01:28:33 +0000 (+0800) Subject: k5 agps模拟启动(未实现) X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.css?a=commitdiff_plain;h=d10559e91c53664bb14bb254913d6eaa460d2ec7;p=mirrors%2FASR1603_G5.git k5 agps模拟启动(未实现) --- diff --git a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/mgr.py b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/mgr.py index 0174a460..8e50456c 100644 --- a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/mgr.py +++ b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/mgr.py @@ -1841,6 +1841,7 @@ class LocationManager(Abstract): self.location_thread_id = 0 self.location_queue = Queue(100) self.lpm_fd = None + self.start_agps = 0 #quecgnss.init() #quecgnss.gnssEnable(0) @staticmethod @@ -2056,8 +2057,12 @@ class LocationManager(Abstract): self.cell_data = [] gnss_r_data = [] self.GSV_sig_ok_count = 0 + self.GSV_sig_very_ok_count = 0 self.GGA_count = 0 self.RMC_A_count = 0 + # if self.start_agps == 1: #开启agps + # self.start_agps = 0 + # quecgnss.configSet(2,1) if self.lpm_fd == None: self.lpm_fd = pm.create_wakelock("test_lock", len("test_lock")) pm.wakelock_lock(self.lpm_fd) @@ -2082,7 +2087,7 @@ class LocationManager(Abstract): # if self.location_check_data_timer_count >= 3: # pm.autosleep(0)#唤醒 # pm.sclkEx_set(0, 1, 5) - if self.location_check_data_timer_count >= 5 :#5秒查一次基站数据和wifi数据 + if self.location_check_data_timer_count >= 3 :#3秒查一次基站数据和wifi数据 self.location_check_data_timer_count = 0 #print(self.location_timer_count) GSV_dict= {} @@ -2094,10 +2099,11 @@ class LocationManager(Abstract): #gnss_r_data = [0,1] gnss_r_data = quecgnss.read(4096) #EventMesh.txt_log("gps Datalen:{}".format(gnss_r_data[0])) - # print("location gnss_r_data:len{}\n{}".format(gnss_r_data[0],gnss_r_data[1].decode())) + print("location gnss_r_data:len{}\n{}".format(gnss_r_data[0],gnss_r_data[1].decode())) #print("gnss_r_data len:{}".format(gnss_r_data[0])) if gnss_r_data[0] > 0 : #有数据 tmp_ok_count = 0 + tmp_very_ok_count = 0 gsv_data = gnss_r_data[1].split("GSV") if len(gsv_data) >= 2 : @@ -2117,7 +2123,10 @@ class LocationManager(Abstract): #print("gsv_tmp[i+3]:{}".format(gsv_tmp[i+3])) if gsv_tmp[i+3] != "" : if int(gsv_tmp[i+3])>=20: - tmp_ok_count +=1 + tmp_ok_count +=1 + if int(gsv_tmp[i+3])>=30: + tmp_very_ok_count +=1 + except Exception as e: usys.print_exception(e) #print("GSV_dict:{}:[{}]".format(gsv_tmp[i],gsv_tmp[i+3])) @@ -2126,8 +2135,9 @@ class LocationManager(Abstract): if(tmp_ok_count > self.GSV_sig_ok_count ): self.GSV_sig_ok_count = tmp_ok_count - - + if(tmp_very_ok_count > self.GSV_sig_very_ok_count ): + self.GSV_sig_very_ok_count = tmp_very_ok_count + # if len(match_gga_data) > 8: # #print(match_gga_data) # if(match_gga_data[7] ): @@ -2152,7 +2162,7 @@ class LocationManager(Abstract): EventMesh.txt_log("GGA:{}".format(match_gga_data)) # EventMesh.txt_log("VTG:{}".format(match_vtg_data)) # EventMesh.txt_log("RMC:{}".format(match_rmc_data)) - # EventMesh.txt_log("timer:{} ok_count:{} count:{}\n".format(self.location_timer_count,self.GSV_sig_ok_count,self.GGA_count)) + #EventMesh.txt_log("timer:{} ok:{} very_ok:{}".format(self.location_timer_count,self.GSV_sig_ok_count,self.GSV_sig_very_ok_count)) print("LOCATION_ok :time:{}!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n\n".format(self.location_timer_count)) gps_date = "%s,%s"%(match_rmc_data[9],match_rmc_data[1][:6])#日期 gps_data_tmp = self.gps.read_coordinates(gnss_r_data[1]) @@ -2228,10 +2238,13 @@ class LocationManager(Abstract): elif self.location_type == 0: #正常模式 if self.gps_data != {} or self.location_timer_count > 100: #or( self.wifi_data != [] and self.cell_data != []): if self.location_queue.empty() == False:#有定位队列 - EventMesh.txt_log("LOCATION:timer:{} ok_count:{} ".format(self.location_timer_count,self.GSV_sig_ok_count)) - upload_time = EventMesh.publish("get_upload_data") - - + EventMesh.txt_log("LOCATION timer:{} ok:{} very_ok:{}".format(self.location_timer_count,self.GSV_sig_ok_count,self.GSV_sig_very_ok_count)) + #EventMesh.txt_log("LOCATION:timer:{} ok_count:{} ".format(self.location_timer_count,self.GSV_sig_ok_count)) + if self.gps_data == {}: #定位超时,且信噪比多个大于30,下次启动agps + if self.GSV_sig_very_ok_count > 3:#3个超30以上 + self.start_agps = 1 + EventMesh.txt_log("open agps:{}".format(GSV_dict)) + #upload_time = EventMesh.publish("get_upload_data") self.Location_send([self.gps_data,self.wifi_data,self.cell_data]) #if upload_time > 200 : EventMesh.publish(constants.EVENT.CLOSE_LOCATION)#关闭定位 @@ -2247,7 +2260,7 @@ class LocationManager(Abstract): if self.GSV_sig_ok_count <= 1 and self.wifi_data != [] and self.cell_data != [] and self.location_timer_count > 20: #超过40秒且信号大于30的不足3个 EventMesh.publish(constants.EVENT.CLOSE_LOCATION)#关闭定位 - EventMesh.txt_log("GSV_sig_ok_count<3:timer:{} ok_count:{} count:{}".format(self.location_timer_count,self.GSV_sig_ok_count,self.GGA_count)) + EventMesh.txt_log("GSV_sig_ok_count<3:timer:{} ok_count:{} ".format(self.location_timer_count,self.GSV_sig_ok_count)) self.Location_send([self.gps_data,self.wifi_data,self.cell_data]) #break # if self.location_type != 1 and self.location_timer_count >= 60*4 : #4分钟关闭