From 97e443627b04fb330f3a18a69a473229466ca7aa Mon Sep 17 00:00:00 2001 From: hcj <1224667075@qq.com> Date: Fri, 28 Feb 2025 16:28:39 +0800 Subject: [PATCH] =?utf8?q?=E6=9B=BF=E6=8D=A2=E8=B5=84=E6=BA=90=E6=96=87?= =?utf8?q?=E4=BB=B6=E4=B8=ADPY?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../fs/user/system/cat1ota/cat1Service.py | 166 +++++++++--------- .../slip/cat1Service/cat1_server.cpp | 6 +- 2 files changed, 86 insertions(+), 86 deletions(-) diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/system/cat1ota/cat1Service.py b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/system/cat1ota/cat1Service.py index 3faffdd82..c631c75a5 100755 --- a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/system/cat1ota/cat1Service.py +++ b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/system/cat1ota/cat1Service.py @@ -89,11 +89,11 @@ CURRENT_APP_TYPE="pysrv" #设置通话音量 voiceCall.setVolume(10) -#clog.info("voice call volume {}".format(voiceCall.getVolume())) -# lpm_fd = pm.create_wakelock("system_lock", len("system_lock")) -pm.autosleep(1) -# pm.wakelock_lock(lpm_fd) -#clog.info("create_wakelock {}".format(pm.get_wakelock_num())) +clog.info("voice call volume {}".format(voiceCall.getVolume())) +lpm_fd = pm.create_wakelock("system_lock", len("system_lock")) +# pm.autosleep(1) +pm.wakelock_lock(lpm_fd) +clog.info("create_wakelock {}".format(pm.get_wakelock_num())) telecomTimerCount = 0 def get_versionkeyname_by_py(app_type): return str("{}version".format(app_type)) @@ -112,16 +112,19 @@ if not ql_fs.path_exists(CONFIG_JSON): ql_fs.touch(CONFIG_JSON,data) def set_version_to_json_config(app_type,keyvalue): - config_data = ql_fs.read_json(CONFIG_JSON) - config_data.update( {str(get_versionkeyname_by_py(app_type)):keyvalue}) - ql_fs.touch(CONFIG_JSON, config_data) - #clog.info("{}={}".format(get_versionkeyname_by_py(app_type),keyvalue)) - #clog.info("{}".format(config_data)) + try : + config_data = ql_fs.read_json(CONFIG_JSON) + config_data.update( {str(get_versionkeyname_by_py(app_type)):keyvalue}) + ql_fs.touch(CONFIG_JSON, config_data) + clog.info("{}={}".format(get_versionkeyname_by_py(app_type),keyvalue)) + clog.info("{}".format(config_data)) + except Exception as e: + clog.error("set_version_to_json_config") def get_version_from_json_config(app_type): config_data = ql_fs.read_json(CONFIG_JSON) keyvalue = config_data.get( get_versionkeyname_by_py(app_type),get_default_versionvalue_by_py(app_type)) - #clog.info("{}={}".format(get_versionkeyname_by_py(app_type),keyvalue)) + clog.info("{}={}".format(get_versionkeyname_by_py(app_type),keyvalue)) return keyvalue set_version_to_json_config(CURRENT_APP_TYPE,PROJECT_VERSION) @@ -144,16 +147,16 @@ audio.set_qdai_cfg(1,0,0,1,0,0,1,1) # level - 引脚电平,int类型,0 - 设置引脚为低电平, 1- 设置引脚为高电平。 # recvDataPin = Pin(Pin.GPIO22, Pin.IN, Pin.PULL_PU, 0) def ExtIntfun(args): - # #clog.info('### interrupt {} ###'.format(args)) # args[0]:gpio号 args[1]:上升沿或下降沿 + # clog.info('### interrupt {} ###'.format(args)) # args[0]:gpio号 args[1]:上升沿或下降沿 if args[1] == 0: - #clog.info("disable autosleep") - pm.autosleep(0) - # pm.wakelock_lock(lpm_fd) + clog.info("disable autosleep") + # pm.autosleep(0) + pm.wakelock_lock(lpm_fd) elif args[1] == 1: - #clog.info("enable autosleep") - # pm.wakelock_unlock(lpm_fd) - pm.autosleep(1) - # #clog.info("recvDataPin={}".format(recvDataPin.read())) + clog.info("enable autosleep") + pm.wakelock_unlock(lpm_fd) + # pm.autosleep(1) + # clog.info("recvDataPin={}".format(recvDataPin.read())) extint = ExtInt(ExtInt.GPIO22, ExtInt.IRQ_RISING_FALLING, ExtInt.PULL_DISABLE, ExtIntfun) extint.enable() @@ -197,13 +200,13 @@ class Cat1Service: self.__wait_resp = 0 self.__waiting_netstat = 0 slip.destroy() - #clog.info('slip uart={0}'.format (self.__uart)) + clog.info('slip uart={0}'.format (self.__uart)) ret = slip.construct(self.__uart, self.__mode, 0) if ret != 0: clog.error('slip netif construct fail') return None - #clog.info('slip network card create success') + clog.info('slip network card create success') # self.__queue = Queue(1) self.__sock = self.__socket_init() self.__threadid = _thread.start_new_thread(self.__Socket_Thread, ()) @@ -277,10 +280,10 @@ class Cat1Service: # cell_data = hex(cmd_tmp) # decimal_number = int(cell_data, 16) # cmd = "%02x"%(decimal_number) # 使用两位表示,不足前面补0 - #clog.info(cmd) # 输出: 07 - #clog.info("btmcu_cmd_handler cmd {0} , args {1}".format(cmd,parm)) + clog.info(cmd) # 输出: 07 + clog.info("btmcu_cmd_handler cmd {0} , args {1}".format(cmd,parm)) if cmd == "00": - #clog.info(cmd) + clog.info(cmd) # UDP_CMD_GET_CAT1VER modem_ver = modem.getDevFwVersion() self.reply_cmd('00',"pyVer:{}@modemVer:{}".format(PROJECT_VERSION,modem_ver)) @@ -290,7 +293,7 @@ class Cat1Service: ret = voiceCall.callStart(str(parm)) # if ret != 0: # ret = voiceCall.callStart(str(parm)) - #clog.info("ret={} {} {}".format(ret,cmd,parm)) + clog.info("ret={} {} {}".format(ret,cmd,parm)) if ret != 0: self.reply_cmd('0F',"callcmd_fail") else: @@ -298,7 +301,7 @@ class Cat1Service: else: self.reply_cmd('0F',"callcmd_fail") elif cmd == "02": - #clog.info(cmd) + clog.info(cmd) # UDP_CMD_HUNGUP ret = voiceCall.callEnd() if ret != 0: @@ -308,7 +311,7 @@ class Cat1Service: else: self.reply_cmd('0F',"callend_success") elif cmd == "03": - #clog.info(cmd) + clog.info(cmd) # UDP_CMD_ANSWER ret = voiceCall.callAnswer() if ret != 0: @@ -323,17 +326,17 @@ class Cat1Service: clog.info(cmd) # UDP_CMD_SEND_SMS elif cmd == "06": - #clog.info(cmd) + clog.info(cmd) # UDP_CMD_GET_TIME time=utime.localtime() zone=utime.getTimeZone() #(2024, 3, 2, 18, 31, 32, 5, 62),8 # 返回当前时间戳,参数为元组 # timestamp = utime.mktime(time) - # #clog.info(timestamp) + # clog.info(timestamp) self.reply_cmd('06',"{0}@{1}".format(time,zone)) elif cmd == "07": - #clog.info("cmd ==== 07!") + clog.info("cmd ==== 07!") # UDP_CMD_GET_RECV_NETWORKSTAT simstat = sim.getStatus() imei = modem.getDevImei() @@ -344,20 +347,20 @@ class Cat1Service: # ([voice_state, voice_lac, voice_cid, voice_rat, voice_reject_cause, voice_psc], [data_state, data_lac, data_cid, data_rat, data_reject_cause, data_psc]) operator = net.operatorName() signal = net.csqQueryPoll() - #clog.info("imei:{0},sim:{1},oper:{2},signal:{3},net:{4}".format(imei,simstat,operator,signal,netstat)) + clog.info("imei:{0},sim:{1},oper:{2},signal:{3},net:{4}".format(imei,simstat,operator,signal,netstat)) self.reply_cmd('07',"imei:{0}@sim:{1}@oper:{2}@signal:{3}@net:{4}".format(imei,simstat,operator,signal,netstat)) elif cmd == "09": - #clog.info("{},{}".format(cmd,parm)) + clog.info("{},{}".format(cmd,parm)) # UDP_CMD_ATCMD # net.setModemFun(0) # net.setModemFun(1) resp=bytearray(50) ret=atcmd.sendSync("{}\r\n".format(parm),resp,'',10) if ret == 0: - #clog.info("reply:{},ret:{}".format(resp.decode(),ret)) + clog.info("reply:{},ret:{}".format(resp.decode(),ret)) self.reply_cmd('09',"{}".format(resp.decode())) else: - #clog.info("cmd error ret:{}".format(ret)) + clog.info("cmd error ret:{}".format(ret)) self.reply_cmd('09',"{}".format("at error")) elif cmd == "10" or cmd == "12" or cmd == "14": #获取固件版本号或者获取BT保存的SIM卡的ICCID BLE那边是否开启电信入库功能 @@ -375,7 +378,7 @@ class Cat1Service: pass elif cmd == "13": on = int(parm) - #clog.info("set_dmp_change_mode on:{}".format(on)) + clog.info("set_dmp_change_mode on:{}".format(on)) eventMesh.publish("set_dmp_change_mode",on) elif cmd == "16": @@ -400,7 +403,7 @@ class Cat1Service: if cmd == "10": self.software_version = str(parm) eventMesh.publish("set_dev_version",self.software_version) - #clog.info("software_version:{},{}".format(self.software_version,parm)) + clog.info("software_version:{},{}".format(self.software_version,parm)) elif cmd == "12": pass elif cmd == "14":# @@ -422,10 +425,10 @@ class Cat1Service: if cmd == "10": self.software_version = str(parm) eventMesh.publish("set_dev_version",self.software_version) - #clog.info("software_version:{},{}".format(self.software_version,parm)) + clog.info("software_version:{},{}".format(self.software_version,parm)) elif cmd == "16": #获取BLE mac地址 eventMesh.publish("set_dev_mac",str(parm)) - #clog.info("parm:{}\r\n".format(parm)) + clog.info("parm:{}\r\n".format(parm)) pass def get_factory_status(self,event,msg): @@ -451,12 +454,12 @@ class Cat1Service: def delete_sms_cb(self,*argc): eventMesh.publish_async("remove_all_sms_cb","",1*1024) def remove_all_sms_cb(self, event, msg): - #clog.info("remove_all_sms_cb\r\n") + clog.info("remove_all_sms_cb\r\n") msg_nums = sms.getMsgNums() #短信数量 if msg_nums == -1: msg_nums = 0 sms_data = sms.getSaveLoc() - #clog.info("{}\r\n".format(sms_data)) + clog.info("{}\r\n".format(sms_data)) if sms_data == -1: return sms_max = sms_data[0][2] #最大存储短信数量 @@ -471,7 +474,7 @@ class Cat1Service: if sms_data == -1: return sms_max = sms_data[0][2] #最大存储短信数量 - #clog.info("recv:{}".format(int(msg))) + clog.info("recv:{}".format(int(msg))) message=self.sms_get_message_info(int(msg)) if message == -1: #说明没有这条短信 return @@ -612,11 +615,11 @@ class Cat1Service: SMS_lis={} SMS_lis_count = 0 sms_data = sms.getSaveLoc() - #clog.info(sms_data) + clog.info(sms_data) if sms_data == -1: return sms_max = sms_data[0][2]#最大存储短信数量 - #clog.info(sms_max) + clog.info(sms_max) self.msg_nums = sms.getMsgNums() if self.msg_nums_old != self.msg_nums: self.send_data = [] @@ -645,7 +648,7 @@ class Cat1Service: count = len(self.send_data) for i in range(count): text = self.send_data[i] - #clog.info("text:{} {} {}\r\n".format(text[0],text[1],text[2])) + clog.info("text:{} {} {}\r\n".format(text[0],text[1],text[2])) msg_total = "@code:"+str(text[0])+"@totalcodenum:"+str(text[1])+"@currcodeid:"+str(text[2])+"@data:"+str(text[3]) self.reply_cmd('17',msg_total) @@ -685,16 +688,16 @@ class Cat1Service: return 0 self.__waiting_netstat = 1 stage, state = checkNet.waitNetworkReady(30) - # pm.wakelock_unlock(lpm_fd) + pm.wakelock_unlock(lpm_fd) if stage == 3 and state == 1: - #clog.info('Network connection successful.') + clog.info('Network connection successful.') self.set_network_config() self.__net_connected = 1 eventMesh.publish("set_network_state",self.__net_connected) self.__waiting_netstat = 0 return 0 else: - #clog.info('Network connection failed, stage={}, state={}'.format(stage, state)) + clog.info('Network connection failed, stage={}, state={}'.format(stage, state)) self.reset_network_config() self.__net_connected = 0 eventMesh.publish("set_network_state",self.__net_connected) @@ -717,10 +720,10 @@ class Cat1Service: def reply_cmd(self,cmd,_timesync): try : - #clog.info('reply_cmd 1') + clog.info('reply_cmd 1') self.clear_remain() message = str(_timesync) - #clog.info('reply_cmd 2') + clog.info('reply_cmd 2') self.__Socket_UDP_noreply(cmd, message) except: clog.info('reply_cmd') @@ -755,16 +758,16 @@ class Cat1Service: def reset_network_config(self): if (self.__net_connected == 0): - #clog.info("skip reset_network_config") + clog.info("skip reset_network_config") return 0 Info = dataCall.getInfo(1,0) - #clog.info("Info{}".format(Info)) + clog.info("Info{}".format(Info)) default_NIC_ip = Info[2][2] # 假设默认网卡ip地址为10.10.1.1,请根据实际情况更改 segment_ip = '172.16.4.0' # 假设ap模式网段范围是[192.168.4.0 ~ 192.168.4.255],请根据实际情况更改 mask = '255.255.255.0' # 假设子网掩码为255.255.255.0,请根据实际情况更改 # 配置默认网卡,通过默认网卡进行网络转发 cat1service.set_default_NIC(default_NIC_ip) - #clog.info("default_NIC_ip {0} segment_ip {1}".format(default_NIC_ip,segment_ip)) + clog.info("default_NIC_ip {0} segment_ip {1}".format(default_NIC_ip,segment_ip)) #添加路由规则,只有该网段IP才进行转发 cat1service.router_add(segment_ip, mask) @@ -779,16 +782,16 @@ class Cat1Service: if (self.__net_connected == 1) : - #clog.info("skip set_network_config") + clog.info("skip set_network_config") return 0 Info = dataCall.getInfo(1,0) - #clog.info("Info{}".format(Info)) + clog.info("Info{}".format(Info)) default_NIC_ip = Info[2][2] # 假设默认网卡ip地址为10.10.1.1,请根据实际情况更改 segment_ip = '172.16.1.0' # 假设ap模式网段范围是[192.168.4.0 ~ 192.168.4.255],请根据实际情况更改 mask = '255.255.255.0' # 假设子网掩码为255.255.255.0,请根据实际情况更改 # 配置默认网卡,通过默认网卡进行网络转发 cat1service.set_default_NIC(default_NIC_ip) - #clog.info("default_NIC_ip {0} segment_ip {1}".format(default_NIC_ip,segment_ip)) + clog.info("default_NIC_ip {0} segment_ip {1}".format(default_NIC_ip,segment_ip)) #添加路由规则,只有该网段IP才进行转发 cat1service.router_add(segment_ip, mask) @@ -838,7 +841,7 @@ class Cat1Service: return tlv_pack # 解码tlv数据包 def __unpack_tlv_format(self, msg): - #clog.info('__unpack_tlv_format {}\r\n'.format(msg)) + clog.info('__unpack_tlv_format {}\r\n'.format(msg)) self.msg = str(msg)[2:]#这是去除head FE tag = self.msg[0:2] length = self.msg[2:6] @@ -847,7 +850,7 @@ class Cat1Service: if len(value) == 0 or len(value) > 9999 or len(tag) != 2 or len_str != self.msg[2:6]: clog.error('__unpack_tlv_format err') return -1 - #clog.info('__unpack_tlv_format: {} {} {}\r\n'.format(tag,length,value)) + clog.info('__unpack_tlv_format: {} {} {}\r\n'.format(tag,length,value)) unpack = (tag,length,value) return unpack # socket通信(UDP)模块 @@ -857,7 +860,7 @@ class Cat1Service: def Socket_SEND_Thread(self): while True: try: - #clog.info("send====") + clog.info("send====") data=self.send_data_q.get() self.ack_sem=1 # # if data[2]: @@ -866,7 +869,7 @@ class Cat1Service: self.__Socket_UDP_write( data[0], data[1]) - #clog.info("Socket_SEND_Thread data:{} {}".format(data[0],data[1])) + clog.info("Socket_SEND_Thread data:{} {}".format(data[0],data[1])) count=20 while count & self.ack_sem : @@ -877,7 +880,7 @@ class Cat1Service: # else : self.__Socket_UDP_write( data[0], data[1]) - #clog.info("Socket_SEND_Thread while data:{} {}".format(data[0],data[1])) + clog.info("Socket_SEND_Thread while data:{} {}".format(data[0],data[1])) if data: clog.info("data ok!!") @@ -899,10 +902,10 @@ class Cat1Service: # 向服务端发送消息 server_addr = ('172.16.1.5',1000) - #clog.info("__Socket_UDP send msg {}".format(msg)) + clog.info("__Socket_UDP send msg {}".format(msg)) self.__err = 0 self.__sock.sendto(msg,server_addr) - #clog.info("__Socket_UDP send 2") + clog.info("__Socket_UDP send 2") self.__wait_resp = 1 # data = self.__queue.get() self.__wait_resp = 0 @@ -929,10 +932,10 @@ class Cat1Service: # 向服务端发送消息 server_addr = ('172.16.1.5',1000) - #clog.info("__Socket_UDP_noreply send msg {}".format(msg)) + clog.info("__Socket_UDP_noreply send msg {}".format(msg)) self.__err = 0 data_size = self.__sock.sendto(msg,server_addr) - #clog.info("self.__sock data_size {}".format(data_size)) + clog.info("self.__sock data_size {}".format(data_size)) self.__wait_resp = 0 return 0 @@ -940,20 +943,20 @@ class Cat1Service: def __Socket_Thread(self): while True: try: - #clog.info("recv====") + clog.info("recv====") data=self.__sock.recv(1024) - #clog.info("data:{}".format(data)) + clog.info("data:{}".format(data)) if data: value = self.__unpack_tlv_format(data.decode()) if value != -1: - #clog.info('mode: {0}, recv {1} bytes, Data: {2}'.format (value[0],len(data), value[2])) + clog.info('mode: {0}, recv {1} bytes, Data: {2}'.format (value[0],len(data), value[2])) if value[1] == 'FF': self.btmcu_cmd_handler(value[0],value[2]) else: # self.__value = value # self.__queue.put('1') self.btmcu_cmd_handler(value[0],value[2]) - #clog.info("End else Thread") + clog.info("End else Thread") else: clog.error("data error!!") except Exception as recverr: @@ -968,7 +971,7 @@ class Cat1Service: - #clog.info("End Socket Thread") + clog.info("End Socket Thread") @@ -982,7 +985,7 @@ class Cat1Service: # UDP_CMD_GET_TIME = '6', // 获取Cat1 时间 ,YYYYMMDD HHmmss zone # UDP_CMD_GET_NETWORKSTAT = '7', //获取Cat1 信号信息,VOLTE信息,信号强度,SIM卡状态 # 下文进行系统配置 -#clog.info("Cat1Service start") +clog.info("Cat1Service start") cat1service = Cat1Service() @@ -991,39 +994,38 @@ cat1service = Cat1Service() #voice call callback function def voice_callback(args): if args[0] == 10: - #clog.info('voicecall incoming call, PhoneNO: ', args[6]) if eventMesh.publish("get_volte_switch") == 0: #关闭VOLTE功能 - #clog.info('voicecall auto end:') + clog.info('voicecall auto end:') voiceCall.callEnd() else: # gpioWakeBT.write(1) cat1service.notifyIncomingcall(args[6]) elif args[0] == 11: if eventMesh.publish("get_volte_switch") == 1: #开启VOLTE功能 - #clog.info('voicecall connected, PhoneNO: ', args[6]) + clog.info('voicecall connected, PhoneNO: \n'.format(args[6])) cat1service.notifyConnecteCall(args[6]) elif args[0] == 12: - #clog.info('voicecall disconnect') + clog.info('voicecall disconnect') if eventMesh.publish("get_volte_switch") == 1: #开启VOLTE功能 - #clog.info('voicecall disconnected, PhoneNO: ', args[6]) + clog.info('voicecall disconnected, PhoneNO: \n'.format(args[6])) cat1service.notifyDisconnectCall(args[6]) elif args[0] == 13: - clog.info('voicecall is waiting, PhoneNO: ', args[6]) + clog.info('voicecall is waiting, PhoneNO: \n'.format(args[6])) elif args[0] == 14: - clog.info('voicecall dialing, PhoneNO: ', args[6]) + clog.info('voicecall dialing, PhoneNO: \n'.format(args[6])) elif args[0] == 15: - clog.info('voicecall alerting, PhoneNO: ', args[6]) + clog.info('voicecall alerting, PhoneNO: \n'.format(args[6])) elif args[0] == 16: - clog.info('voicecall holding, PhoneNO: ', args[6]) + clog.info('voicecall holding, PhoneNO: \n'.format(args[6])) else: - clog.info('voice_callback , args[0]: ', args[0]) + clog.info('voice_callback , args[0]: \n'.format(args[6])) #电话消息反馈 voiceCall.setCallback(voice_callback) def checknet_cb(arg): - #clog.info("start checktime!!") + clog.info("start checktime!!") # if 1: #CHINA_TELECOM_DM_FUN_ENABLE == 1:#这是手表每30s检查一次 # if eventMesh.publish("get_dmp_change_mode") == 1: # telecomDmpCb.telecom_dmp_power_on_count() @@ -1046,7 +1048,7 @@ delaybootupmsg_timer = osTimer() delaybootupmsg_timer.start(1000,0,bootupmsg_cb) # def checkpin_cb(arg): -# #clog.info("recvDataPin={}".format(recvDataPin.read())) +# clog.info("recvDataPin={}".format(recvDataPin.read())) # timerCheckRevPin = osTimer() # timerCheckRevPin.start(1000,1,checkpin_cb) diff --git a/code/sdk/drivers/peripheral/slip/cat1Service/cat1_server.cpp b/code/sdk/drivers/peripheral/slip/cat1Service/cat1_server.cpp index 11e741423..fa6fcd21b 100644 --- a/code/sdk/drivers/peripheral/slip/cat1Service/cat1_server.cpp +++ b/code/sdk/drivers/peripheral/slip/cat1Service/cat1_server.cpp @@ -1217,12 +1217,10 @@ static void time_dial_func(void) dial_count++; } else - { - - #else - cat1_handle_call_disconnected("callfail"); #endif + { + cat1_handle_call_disconnected("callfail"); } } -- 2.17.1