From: dxy15521469561 <1731678236@qq.com> Date: Thu, 4 Jul 2024 09:32:26 +0000 (+0800) Subject: K01: X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=77c5b8646e6c98549f03e1268abfd78b084d2772;p=mirrors%2FASR1603_G5.git K01: 关闭和开启播放TTS按钮图片增加 --- diff --git a/2.sdk-ZY/project/K01/sdk/services/microPython/ports/quectel/core/ai.py b/2.sdk-ZY/project/K01/sdk/services/microPython/ports/quectel/core/ai.py index fb401e6a..639dae6c 100644 --- a/2.sdk-ZY/project/K01/sdk/services/microPython/ports/quectel/core/ai.py +++ b/2.sdk-ZY/project/K01/sdk/services/microPython/ports/quectel/core/ai.py @@ -168,7 +168,7 @@ al_talk_end_screen_icon1 = lv.img(AI_talk_end_bt_screen) al_talk_end_screen_icon1.set_size(26,26) al_talk_end_screen_icon1.set_pos(10,5) al_talk_end_screen_icon1.add_flag(lv.obj.FLAG.CLICKABLE) -al_talk_end_screen_icon1.set_src("U:/static/AI/ai_result_can_bt.png") +al_talk_end_screen_icon1.set_src("U:/static/AI/ai_result_can_start.png") al_talk_end_screen_icon1.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) al_talk_end_screen_cancel_bt = lv.label(AI_talk_end_bt_screen) @@ -714,6 +714,8 @@ class AIScreen(Screen):#AI_GUI self.hard_flag_next = 0 self.hard_flag_prev = 0 self.scroll_timer_count = 0 + self.play_flag = 0 + self.play_flag_init = 0 AI_screen.add_event_cb(lambda e: EventMesh.callback_wrapper(self.button_cb(e,1)), lv.EVENT.GESTURE, None) @@ -796,6 +798,17 @@ class AIScreen(Screen):#AI_GUI self.tts_time_outcount = 0 def talk_end_cancel_cb(self,e):#对话结束已经播放音频取消继续对话按钮 + if self.play_flag == 1: + self.play_flag = 0 + self.aud.stopPlayStream() + self.aud.stopAll() + print("talk_end_cancel_cb stop()\r\n") + EventMesh.publish("publish_message_event_ui",{"func":self.upload_img,"data":0}) + else: + self.play_flag = 1 + print("talk_end_cancel_cb start()\r\n") + EventMesh.publish("publish_message_event_ui",{"func":self.upload_img,"data":1}) + return self.Close() self.AI_label_answer = "" AI_no_net_screen.add_flag(lv.obj.FLAG.HIDDEN) #隐藏 @@ -805,7 +818,11 @@ class AIScreen(Screen):#AI_GUI AI_talk_end_screen.add_flag(lv.obj.FLAG.HIDDEN) # AI_not_listen_text_screen.add_flag(lv.obj.FLAG.HIDDEN) # AI_talk_screen.clear_flag(lv.obj.FLAG.HIDDEN) # - + def upload_img(self,msg): + if msg == 1: + al_talk_end_screen_icon1.set_src("U:/static/AI/ai_result_can_start.png") + else: + al_talk_end_screen_icon1.set_src("U:/static/AI/ai_result_can_stop.png") def talk_end_continue_cb(self,e):#连接超时确定按钮回调或者继续对话按钮 self.Close() @@ -1049,7 +1066,7 @@ class AIScreen(Screen):#AI_GUI def ai_talk_end(self):#语言识别完 思考结束显示最后的文本和音频数据 - + self.play_flag = 1 self.AI_label_answer = "" AI_end_screen_list_screen.scroll_to(0, 0, lv.ANIM.OFF) AI_label.set_pos(5, 10) @@ -1078,6 +1095,7 @@ class AIScreen(Screen):#AI_GUI AI_talk_screen.add_flag(lv.obj.FLAG.HIDDEN) # AI_not_listen_text_screen.add_flag(lv.obj.FLAG.HIDDEN) # AI_talk_end_screen.clear_flag(lv.obj.FLAG.HIDDEN) # + al_talk_end_screen_icon1.set_src("U:/static/AI/ai_result_can_start.png") AI_end_screen_list_screen2.add_flag(lv.obj.FLAG.HIDDEN) #隐藏2 AI_end_screen_list_screen.clear_flag(lv.obj.FLAG.HIDDEN) # @@ -1089,6 +1107,9 @@ class AIScreen(Screen):#AI_GUI pass def connect_timerout_popup(self,msg):#连接超时弹窗提示 + EventMesh.publish("publish_message_event_ui",{"func":self.connect_timerout_popup_cb,"data":msg}) + + def connect_timerout_popup_cb(self,msg): self.Close() AI_talk_screen.add_flag(lv.obj.FLAG.HIDDEN) # AI_no_net_screen.add_flag(lv.obj.FLAG.HIDDEN) #隐藏 @@ -1171,6 +1192,7 @@ class AIScreen(Screen):#AI_GUI AI_talk_screen.clear_flag(lv.obj.FLAG.HIDDEN) # pass def initialization(self): + self.play_flag = 1 self.TTS_PRO_TYPE = 0 AI_listen_screen.add_flag(lv.obj.FLAG.HIDDEN) AI_think_screen.add_flag(lv.obj.FLAG.HIDDEN) #先隐藏 @@ -1535,7 +1557,8 @@ class AIScreen(Screen):#AI_GUI def AI_client_tts_timer_cb(self,*argc): # EventMesh.publish("system_sleep_rest")#防止黑屏 self.tts_time_count+=1 - + if self.play_flag == 0: + return if self.TTS_PRO_TYPE == 1: #tts数据入队 self.AI_client_tts_put_data() @@ -1647,7 +1670,7 @@ class AIScreen(Screen):#AI_GUI print("AI_client_tts_recv close!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n") break try: - print("AI_client_tts_recv :{}".format(len(recv_data))) + # print("AI_client_tts_recv :{}".format(len(recv_data))) #结束标志{"header":{"event":"EndSynthesis","msg":"success","status":20000000,"task_id":"ffd727e620000803280c5a6498d0e321"}} if isinstance(recv_data, str): print("AI_client_tts_recv:str recv_data:{}".format(recv_data)) @@ -1811,7 +1834,8 @@ class AIScreen(Screen):#AI_GUI self.websocket_connect_chat() except Exception as e: #网络连接异常 usys.print_exception(e) - tmp = self.AI_client_chat.send(data[1]) + if self.AI_client_chat != None: + tmp = self.AI_client_chat.send(data[1]) print("chat send_data:{} tmp:{}".format(len(data[1]),tmp)) if data[0] == self.AI_client_asr_num: if isinstance(data[1], str): @@ -1822,7 +1846,8 @@ class AIScreen(Screen):#AI_GUI except Exception as e: #网络连接异常 usys.print_exception(e) print("asr send_data:{}".format(len(data[1]))) - self.AI_client_asr.send(data[1]) + if self.AI_client_asr != None: + self.AI_client_asr.send(data[1]) if data[0] == self.AI_client_tts_num: if self.AI_client_tts_isconnect == 0: try: @@ -1830,7 +1855,8 @@ class AIScreen(Screen):#AI_GUI except Exception as e: #网络连接异常 usys.print_exception(e) print("tts send_data:{}".format((data[1]))) - self.AI_client_tts.send(data[1]) + if self.AI_client_tts != None: + self.AI_client_tts.send(data[1]) except Exception as e: print("DeviceInfo_queue_thread:ERROR:{}".format(e)) usys.print_exception(e) @@ -1860,7 +1886,8 @@ class AIScreen(Screen):#AI_GUI #self.AI_client_tts_start() if self.AI_client_tts_isconnect == 1: try: - self.AI_client_tts.send(data[1]) + if self.AI_client_tts != None: + self.AI_client_tts.send(data[1]) break except Exception as e: usys.print_exception(e) @@ -1873,28 +1900,35 @@ class AIScreen(Screen):#AI_GUI try: if 1: #self.audio_play_state == 0: #print("AI_audio_queue_thread") - data = self.AI_audio_queue.get() - - #self.AI_client_tts_data_len=len(data) - print("audio_queue:len:{},data{}".format(len(data[0]),data[1])) - if len(data[0]) > 1: - if self.TTS_PRO_TYPE == 0: - - self.AI_label_answer+=data[1] - EventMesh.publish("publish_message_event_ui",{"func":self.ai_talk_end_show_text_cb,"data":0}) - # AI_label.set_text(self.AI_label_answer) - try: - - tmp= self.aud.playStream(3, data[0])#播放音频流 - print("出:{},{}!!!".format(len(data[0]),self.AI_client_tts_data_len)) - if tmp != 0: - print("2playStream:error tmp:{} data len:{}!!!!!!!!!!!!".format(tmp,len(data[0]))) - self.AI_client_tts_data_len -=len(data[0]) - mem = gc.mem_free() - print('1剩余内存RAM:{} KB'.format(mem / 1024)) - except Exception as e: - print("AI_audio_queue_thread:ERROR:") - usys.print_exception(e) + if self.play_flag == 1: + self.play_flag_init = 1 + data = self.AI_audio_queue.get() + + #self.AI_client_tts_data_len=len(data) + print("audio_queue:len:{},data{} self.play_flag:{}\r\n".format(len(data[0]),data[1],self.play_flag)) + if len(data[0]) > 1: + if self.TTS_PRO_TYPE == 0: + if self.play_flag == 1: + self.AI_label_answer+=data[1] + EventMesh.publish("publish_message_event_ui",{"func":self.ai_talk_end_show_text_cb,"data":0}) + # AI_label.set_text(self.AI_label_answer) + try: + if self.play_flag == 1: + tmp= self.aud.playStream(3, data[0])#播放音频流 + print("出:{},{}!!!".format(len(data[0]),self.AI_client_tts_data_len)) + if tmp != 0: + print("2playStream:error tmp:{} data len:{}!!!!!!!!!!!!".format(tmp,len(data[0]))) + self.AI_client_tts_data_len -=len(data[0]) + mem = gc.mem_free() + print('1剩余内存RAM:{} KB'.format(mem / 1024)) + except Exception as e: + print("AI_audio_queue_thread:ERROR:") + usys.print_exception(e) + else: + if self.play_flag_init == 1: + self.play_flag_init = 0 + self.aud.stopPlayStream() + utime.sleep_ms(2) except Exception as e: print("AI_audio_queue_thread:ERROR:") usys.print_exception(e) diff --git a/2.sdk-ZY/project/K01/sdk/services/microPython/ports/quectel/core/mgr.py b/2.sdk-ZY/project/K01/sdk/services/microPython/ports/quectel/core/mgr.py index 26abde9f..fd384fd9 100644 --- a/2.sdk-ZY/project/K01/sdk/services/microPython/ports/quectel/core/mgr.py +++ b/2.sdk-ZY/project/K01/sdk/services/microPython/ports/quectel/core/mgr.py @@ -2011,14 +2011,15 @@ class LocationManager(Abstract): old_step = 0 step = 0 step = EventMesh.publish("get_old_step_value") - if step != 0: + if step != None: tmp_data = EventMesh.publish("get_storage_config","old_step_new") if tmp_data != None: old_step = tmp_data if old_step != step: EventMesh.publish("set_storage_config",["old_step",step]) EventMesh.publish("set_storage_config",["old_step_new",step]) - + else: + step = 0 old_step = step # step = str(EventMesh.publish(constants.EVENT.GET_STEP)[0]) #翻转次数 diff --git a/2.sdk-ZY/project/K01/sdk/services/microPython/ports/quectel/core/ui_setting.py b/2.sdk-ZY/project/K01/sdk/services/microPython/ports/quectel/core/ui_setting.py index cb8a7d67..b37f2653 100644 --- a/2.sdk-ZY/project/K01/sdk/services/microPython/ports/quectel/core/ui_setting.py +++ b/2.sdk-ZY/project/K01/sdk/services/microPython/ports/quectel/core/ui_setting.py @@ -1134,7 +1134,7 @@ class RestartScreen(Screen): if code == lv.EVENT.RELEASED: value_slider = screen_slider_1.get_value() # print("RELEASED save_choice1111111!!!!!!",total_len,value_slider,state_on) - if total_len < 100-12: + if total_len < 100-15: screen_slider_1.set_value(10, False) screen_slider_img.set_pos(10,60) screen_slider_1.set_style_bg_color(lv.color_make(0x00,0x00,0x00), lv.PART.INDICATOR|lv.STATE.DEFAULT) diff --git a/2.sdk-ZY/project/K01/usr/static/AI/ai_result_can_bt.png b/2.sdk-ZY/project/K01/usr/static/AI/ai_result_can_bt.png deleted file mode 100644 index 8dbd751a..00000000 Binary files a/2.sdk-ZY/project/K01/usr/static/AI/ai_result_can_bt.png and /dev/null differ