From: dxy <1731678236qq.com> Date: Mon, 18 Aug 2025 10:28:26 +0000 (+0800) Subject: 优化协议功能 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=9475cab2ac75ea46426396c99bd725bbd73bf74e;p=mirrors%2FASR1603_G5.git 优化协议功能 --- diff --git a/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/ai_VC.py b/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/ai_VC.py index 70b34ba4..679bbfcc 100644 --- a/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/ai_VC.py +++ b/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/ai_VC.py @@ -349,13 +349,25 @@ class AI_UART(): ack_flag = 1 elif jsload_data["event"] == "bt_scan_rest":#扫描列表 EventMesh.publish("send_bt_scan_list",jsload_data) + ack_flag=1 elif jsload_data["event"]=="bt_connect_single": EventMesh.publish("save_bt_connect_list",jsload_data) + ack_flag=1 elif jsload_data["event"]=="need_send_bt_connect_list": self.get_bt_connect_timer.stop() self.get_bt_connect_flag = 0 EventMesh.publish("save_bt_connect_list",jsload_data) EventMesh.publish("send_bt_connect_list") + ack_flag=1 + + elif jsload_data["event"]=="get_ble_switch": + EventMesh.publish("send_ble_adv_switch") + ack_flag=1 + pass + elif jsload_data["event"]=="get_cat1_imei": + EventMesh.publish("send_imei_to_ble") + ack_flag=1 + pass elif jsload_data["event"] == "ack" :#电源按键按下 self.read_ack_flag = 1 @@ -374,18 +386,41 @@ class AI_UART(): # // "switch_bt_state":"0" # // } # // } #格式 + ble_state = EventMesh.publish("get_storage_config","switch_bt_state") + if ble_state == None: + ble_state = 0 + self.read_ack_flag=0 json_data = \ { "event": "switch_bt_state", "data":{ - "switch_bt_state":msg + "switch_bt_state":str(ble_state) } } json_str =ujson.dumps(json_data) print("send_ble_adv_switch{}".format(json_str)) self.send_data(json_str) + + + def send_reset_cb(self): + send_count = 5#最大重发5次,没ack或者返回error重发 + while 1: + send_count-=1 + self.read_ack_flag = 0 + EventMesh.publish("send_ble_adv_switch") + #utime.sleep_ms(100) + count =100 + while True: + count -=1 + if count <=0 or self.read_ack_flag != 0 : + break + utime.sleep_ms(10) + # print("ota_data:{} count:{}".format(len(json_str),count)) + if send_count <=0 or self.read_ack_flag == 1: + break + pass def send_get_connect_bt_state(self,event,msg): json_data = \ @@ -674,7 +709,7 @@ class AI_dev(Abstract): self.PIN_MOT=Pin(Pin.GPIO36, Pin.OUT, Pin.PULL_DISABLE, 0) self.extint_wakeup_cta1_timer = osTimer() - # self.extint_wakeup_cta1.enable() + self.extint_wakeup_cta1.enable() self.extint_AI.enable() self.pwk_key_status = 0 self.pwk_key_timer_count = 0 @@ -833,11 +868,12 @@ class AI_dev(Abstract): print("sys_sleep_cb!!!!!!!!!!!!!!!") print("sys_sleep_cb!!!!!!!!!!!!!!!") self.PIN_wakeup_bt.write(0) - def sys_up_cb(self,event=None,msg=None):#休眠前回调 + def sys_up_cb(self,event=None,msg=None):#唤醒前回调 print("sys_up_cb!!!!!!!!!!!!!!!") print("sys_up_cb!!!!!!!!!!!!!!!") print("sys_up_cb!!!!!!!!!!!!!!!") self.wakeup_BT() + self.PIN_wakeup_bt.write(1) def wakeup_BT(self,event=None,msg=None):#4G唤醒蓝牙 @@ -1122,6 +1158,8 @@ class AI_dev(Abstract): if Vbatt<=self.VBATT_tab["10"]: return 10 def audio_montage_play(self,event,msg): + self.wakeup_BT() + self.aud.stopPlayStream() self.aud.stopAll() str_data='mp3files=' @@ -1136,6 +1174,7 @@ class AI_dev(Abstract): self.aud.montage_play('U:/static/audio.bin',1,1,str_data) def paly_iccid_imei(self,event,msg): + self.wakeup_BT() str_data = 'mp3files={}.mp3+'.format(audio_buf.index("liuliangtishi"))#流量提示 imei = modem.getDevImei() iccid = sim.getIccid() @@ -1155,6 +1194,7 @@ class AI_dev(Abstract): self.aud.montage_play('U:/static/audio.bin',1,1,str_data) #鉴权出错,播放imei号 def paly_device_res_error(self,event,msg): + self.wakeup_BT() str_data = 'mp3files={}.mp3+'.format(audio_buf.index("jianquancuowu"))#AI功能异常,请联系客户查询,设备号为: imei = modem.getDevImei() imei = imei.upper() @@ -3639,14 +3679,9 @@ class AI_VC(Abstract): EventMesh.publish("set_play_new_voice_state",1) EventMesh.publish("update_play_new_voice_info") EventMesh.publish("play_new_voice_list") - - pass pass elif jsload_data["event"] == "audio.convert.failed": #音频转换失败了 - if EventMesh.publish("get_play_new_voice_state")== 1: - EventMesh.publish("set_play_new_voice_state",1) - EventMesh.publish("update_play_new_voice_info") - EventMesh.publish("play_new_voice_list") + pass else:#下发音频数据 diff --git a/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/protocol.py b/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/protocol.py index 94aa609e..a0f5890a 100644 --- a/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/protocol.py +++ b/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/protocol.py @@ -668,6 +668,9 @@ class WEB_CMD_ENUM: GET_CHAT_CONFIG_R="get_chat_config_R" GET_CHAT_CONFIG_S="get_chat_config_S" + CHAT_CONFIG_R = "chat_config_R" + CHAT_CONFIG_S = "chat_config_S" + class IOTSendCmdManager(Abstract): # def __init__(self): @@ -1288,8 +1291,23 @@ class SockMangager(Abstract): def get_play_new_voice_state(self,event,msg): return self.play_new_voice_state + def _1S_timer_cb(self,*argc): + EventMesh.publish("publish_AI_btnInfo",{"func":self._1S_timer_cb_}) + + def _1S_timer_cb_(self): + #self.iot_web_send_queue.put("ping") + get_VC_satrt_flag = EventMesh.publish("get_VC_satrt_flag") + if get_VC_satrt_flag == None: + get_VC_satrt_flag = 0 + if get_VC_satrt_flag == 0: + self.play_new_voice_list_timer_cb() + self._1S_timer.stop() def play_new_voice_list(self,event,msg): + if len(self.new_voice_list) != 0: + self._1S_timer.start(1000, 1, self._1S_timer_cb) + + def play_new_voice_list_timer_cb(self): print("play_new_voice_list:{}".format(len(self.new_voice_list))) if len(self.new_voice_list) != 0: @@ -1322,7 +1340,6 @@ class SockMangager(Abstract): time_tmp = utime.mktime(date_tmp) try: print("type:{}".format(msg)) - json_load = ujson.dumps(msg) data = msg["data"] bt_scan_rest ={ "cmd":"bt_scan_rest", @@ -1490,7 +1507,7 @@ class SockMangager(Abstract): # http://220.160.104.34:30800/ws-bus/test/voice-record/876226211472149?state=1, - # http://220.160.104.34:30800/ws-bus/test/876226211472149?testType=alarmList + # http://220.160.104.34:30800/ws-bus/test/860132066107046?testType=alarmList def hr_report_publish_event(self,data): HR_DATA = EventMesh.publish("GET_IOT_WEB_SEND_CMD",WEB_CMD_ENUM.HR_S_CMD) @@ -1567,11 +1584,7 @@ class SockMangager(Abstract): def close_websocket_timer(self,event,msg): self._1S_timer.stop() - def _1S_timer_cb(self,*argc): - EventMesh.publish("publish_AI_btnInfo",{"func":self._1S_timer_cb_}) - - def _1S_timer_cb_(self): - self.iot_web_send_queue.put("ping") + def socket_send_queue_thread(self): while True: @@ -2531,7 +2544,10 @@ class IOTWeb_chat_configProtoCol(ProtoCol): speed = data["speed"] vadDuration = data["vadDuration"] voiceId = data["voiceId"] - EventMesh.publish("SET_SPEECH_RATE",speed) + if vadDuration != None: + EventMesh.publish("SET_SPEECH_RATE",speed) + if voiceId != None: + EventMesh.publish("set_vad_silence",voiceId) EventMesh.publish(WEB_CMD_ENUM.CHAT_CONFIG_S) #获取AI对话音色配置 class IOTWeb_get_chat_configProtoCol(ProtoCol): @@ -2936,9 +2952,9 @@ class IOTWeb_bt_scanProtoCol(ProtoCol): date_tmp = utime.localtime() time_tmp = utime.mktime(date_tmp) s_msg = "" - if msg == "0": + if msg == "1": s_msg = "开始扫描附近设备" - elif msg == "1": + elif msg == "0": s_msg = "停止扫描附近设备" bt_scan = { "cmd":"dispatch_rest", @@ -2977,6 +2993,7 @@ class IOTWeb_bt_scanProtoCol(ProtoCol): elif data == "0": s_ret = "0" EventMesh.publish("send_ble_scan","0") + pass print("recv bt_scan{}".format(msg)) diff --git a/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/voice_record.py b/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/voice_record.py index 368a49f5..2b827167 100644 --- a/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/voice_record.py +++ b/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/voice_record.py @@ -195,7 +195,7 @@ class VOICE_RECORD(Abstract): #静默录音 if self.record_fd != None: utime.sleep_ms(1) else: - utime.sleep_ms(100) + utime.sleep_ms(30) self.start_voice_record_flag = 0 print("Voice_record_thread:exit") self.voice_record_thread_id = 0