AI_talk_end_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
AI_talk_end_screen.add_flag(lv.obj.FLAG.HIDDEN) #
-AI_screen_list_screen = lv.obj(AI_talk_end_screen)
-AI_screen_list_screen.set_pos(0, 0)
-AI_screen_list_screen.set_size(LCD_SIZE_W, LCD_SIZE_H-60)
-AI_screen_list_screen.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
-AI_screen_list_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-al_success_title1 = lv.label(AI_talk_end_screen)
-al_success_title1.set_pos(0, 10)
-al_success_title1.set_size(LCD_SIZE_W, 40)
+AI_screen_list_screen_title = lv.obj(AI_talk_end_screen)
+AI_screen_list_screen_title.set_pos(0, 0)
+AI_screen_list_screen_title.set_size(LCD_SIZE_W,40)
+AI_screen_list_screen_title.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+AI_screen_list_screen_title.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+al_success_title1 = lv.label(AI_screen_list_screen_title)
+al_success_title1.set_pos(0, 5)
+al_success_title1.set_size(LCD_SIZE_W, 25)
al_success_title1.set_text("AI智能助手")
al_success_title1.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
al_success_title1.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
# AI_press_btn.add_style(style_common_bg_rect_btn_pressed, lv.PART.MAIN | lv.STATE.PRESSED)
# AI_press_btn.set_style_radius(30,0)
-al_talk_end_screen_icon1 = lv.img(AI_talk_end_screen)
+AI_talk_end_bt_screen = lv.obj(AI_talk_end_screen)
+AI_talk_end_bt_screen.set_pos(0, 210)
+AI_talk_end_bt_screen.set_size(LCD_SIZE_W,LCD_SIZE_H-210)
+print("AI_talk_end_bt_screen")
+AI_talk_end_bt_screen.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+AI_talk_end_bt_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+
+al_talk_end_screen_icon1 = lv.img(AI_talk_end_bt_screen)
al_talk_end_screen_icon1.set_size(50,50)
-al_talk_end_screen_icon1.set_pos(15,220)
+al_talk_end_screen_icon1.set_pos(15,5)
al_talk_end_screen_icon1.add_flag(lv.obj.FLAG.CLICKABLE)
al_talk_end_screen_icon1.set_src("E:/static/AI/ai_result_can_bt.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_screen)
+al_talk_end_screen_cancel_bt = lv.label(AI_talk_end_bt_screen)
al_talk_end_screen_cancel_bt.set_text(" ")
-al_talk_end_screen_cancel_bt.set_size(80, 282-210)
-al_talk_end_screen_cancel_bt.set_pos(0,210)
+al_talk_end_screen_cancel_bt.set_size(80, 72)
+al_talk_end_screen_cancel_bt.set_pos(0,0)
al_talk_end_screen_cancel_bt.add_flag(lv.obj.FLAG.CLICKABLE)
-al_talk_end_screen_icon2 = lv.img(AI_talk_end_screen)
+al_talk_end_screen_icon2 = lv.img(AI_talk_end_bt_screen)
al_talk_end_screen_icon2.set_size(150,50)
-al_talk_end_screen_icon2.set_pos(80,220)
+al_talk_end_screen_icon2.set_pos(80,5)
al_talk_end_screen_icon2.add_flag(lv.obj.FLAG.CLICKABLE)
al_talk_end_screen_icon2.set_src("E:/static/AI/ai_result_bt.png")
al_talk_end_screen_icon2.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
AI_press_label_bt = lv.label(al_talk_end_screen_icon2)
AI_press_label_bt.set_text(" ")
-AI_press_label_bt.set_size(240-150, 282-210)
-AI_press_label_bt.set_pos(0,210)
+AI_press_label_bt.set_size(240-150, 72)
+AI_press_label_bt.set_pos(0,0)
AI_press_label_bt.add_flag(lv.obj.FLAG.CLICKABLE)
AI_press_label = lv.label(al_talk_end_screen_icon2)
style_font_28_green_bg_gray = lv.style_t()
style_font_28_green_bg_gray.init()
+# style_font_28_green_bg_gray.set_bg_color(lv.color_make(79,195,76))
+# style_font_28_green_bg_gray.set_bg_opa(255)
+# style_font_28_green_bg_gray.set_radius(5)
+# style_font_28_green_bg_gray.set_border_width(0)
+# style_font_28_green_bg_gray.set_pad_left(0)
+# style_font_28_green_bg_gray.set_pad_right(0)
+# style_font_28_green_bg_gray.set_pad_top(0)
+# style_font_28_green_bg_gray.set_pad_bottom(0)
style_font_28_green_bg_gray.set_text_color(lv.color_make(255, 255, 255)) #字体文本颜色
style_font_28_green_bg_gray.set_text_font_v2("font_28.bin",28,0)
-# style_font_28_green_bg_gray.set_bg_opa(255)
-ai_requestion_obj = lv.obj(AI_talk_end_screen)
-ai_requestion_obj.set_pos(30, 40)
-ai_requestion_obj.set_size(LCD_SIZE_W-30-5, 58)
-ai_requestion_obj.add_style(style_green_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-AI_listen_text = lv.label(ai_requestion_obj)
-AI_listen_text.set_pos(0, 5)
-AI_listen_text.set_size(LCD_SIZE_W-30-5-10, lv.SIZE.CONTENT)
+#列表obj
+style_wechat_s_btn = lv.style_t()
+style_wechat_s_btn.init()
+style_wechat_s_btn.set_radius(5)
+style_wechat_s_btn.set_bg_opa(255)
+style_wechat_s_btn.set_border_width(0)
+style_wechat_s_btn.set_pad_left(0)
+style_wechat_s_btn.set_pad_right(0)
+style_wechat_s_btn.set_pad_top(0)
+style_wechat_s_btn.set_pad_bottom(0)
+style_wechat_s_btn.set_bg_color(lv.color_make(79,195,76))
+style_wechat_s_btn.set_shadow_opa(0)
+
+AI_end_screen_list_screen = lv.obj(AI_talk_end_screen)
+AI_end_screen_list_screen.set_pos(10, 30)
+AI_end_screen_list_screen.set_size(LCD_SIZE_W-10,180)
+AI_end_screen_list_screen.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+AI_end_screen_list_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+AI_end_screen_list_screen.set_flex_flow(lv.FLEX_FLOW.COLUMN)#自动排成一列对齐
+
+AI_end_screen_list_detail_screen = lv.obj(AI_end_screen_list_screen)
+AI_end_screen_list_detail_screen.set_pos(0, 5)
+AI_end_screen_list_detail_screen.set_size(230,lv.SIZE.CONTENT)
+AI_end_screen_list_detail_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+
+AI_end_screen_list_detail_screen1 = lv.obj(AI_end_screen_list_detail_screen)
+AI_end_screen_list_detail_screen1.set_pos(30,10)
+AI_end_screen_list_detail_screen1.set_size(190,lv.SIZE.CONTENT)
+AI_end_screen_list_detail_screen1.add_style(style_wechat_s_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+AI_listen_text = lv.label(AI_end_screen_list_detail_screen1)
+AI_listen_text.set_pos(5, 10)
+AI_listen_text.set_size(175, lv.SIZE.CONTENT)
AI_listen_text.set_text(" ")
AI_listen_text.set_long_mode(lv.label.LONG.WRAP)
-AI_listen_text.set_style_text_align(lv.TEXT_ALIGN.RIGHT, 0)
+AI_listen_text.set_style_text_align(lv.TEXT_ALIGN.LEFT, 0)
AI_listen_text.add_style(style_font_28_green_bg_gray, lv.PART.MAIN | lv.STATE.DEFAULT)
style_gray_screen = lv.style_t()
#灰色背景黑色字
style_font_28_black_bg_gray = lv.style_t()
style_font_28_black_bg_gray.init()
+# style_font_28_black_bg_gray.set_radius(5)
+# style_font_28_black_bg_gray.set_bg_opa(255)
+# style_font_28_black_bg_gray.set_border_width(0)
+# style_font_28_black_bg_gray.set_pad_left(0)
+# style_font_28_black_bg_gray.set_pad_right(0)
+# style_font_28_black_bg_gray.set_pad_top(0)
+# style_font_28_black_bg_gray.set_pad_bottom(0)
+# style_font_28_black_bg_gray.set_bg_color(lv.color_make(66,66,66)) #字体文本颜色
style_font_28_black_bg_gray.set_text_color(lv.color_make(153, 153, 153)) #字体文本颜色
style_font_28_black_bg_gray.set_text_font_v2("font_28.bin",28,0)
-msg_detail_cont_obj = lv.obj(AI_talk_end_screen)
-msg_detail_cont_obj.set_pos(5, 120)
-msg_detail_cont_obj.set_size(LCD_SIZE_W-20, 86)
-msg_detail_cont_obj.add_style(style_gray_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+style_wechat_r_btn = lv.style_t()
+style_wechat_r_btn.init()
+style_wechat_r_btn.set_radius(5)
+style_wechat_r_btn.set_bg_opa(255)
+style_wechat_r_btn.set_border_width(0)
+style_wechat_r_btn.set_pad_left(0)
+style_wechat_r_btn.set_pad_right(0)
+style_wechat_r_btn.set_pad_top(0)
+style_wechat_r_btn.set_pad_bottom(0)
+style_wechat_r_btn.set_bg_color(lv.color_make(66,66,66))
+style_wechat_r_btn.set_border_width(0)
+style_wechat_r_btn.set_shadow_opa(0)
+
+
+msg_detail_cont_obj = lv.obj(AI_end_screen_list_screen)
+msg_detail_cont_obj.set_pos(0, 5)
+msg_detail_cont_obj.set_size(220,lv.SIZE.CONTENT)
+msg_detail_cont_obj.add_style(style_wechat_r_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
+
AI_label = lv.label(msg_detail_cont_obj)
-AI_label.set_pos(0, 5)
-AI_label.set_size(LCD_SIZE_W-20-10, lv.SIZE.CONTENT)
+AI_label.set_pos(5, 10)
+AI_label.set_size(205, lv.SIZE.CONTENT)
AI_label.set_long_mode(lv.label.LONG.WRAP)
AI_label.set_style_text_align(lv.TEXT_ALIGN.LEFT, 0)
AI_label.add_style(style_font_28_black_bg_gray, lv.PART.MAIN | lv.STATE.DEFAULT)
AI_listen_screen.add_flag(lv.obj.FLAG.HIDDEN) #先隐藏
ai_talk_requestion_obj = lv.obj(AI_listen_screen)
-ai_talk_requestion_obj.set_pos(10, 20)
+ai_talk_requestion_obj.set_pos(15, 20)
ai_talk_requestion_obj.set_size(LCD_SIZE_W-25, 58)
ai_talk_requestion_obj.add_style(style_green_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
al_listen_screen_title1.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+# al_listen_screen_icon1 = lv.gif(AI_listen_screen)
+# al_listen_screen_icon1.set_size(140,45)
+# al_listen_screen_icon1.set_pos((240-140)//2,110)
+# # al_listen_screen_icon1.set_src("E:/static/AI/AI_LISTEN_GIF001.png")
+# al_listen_screen_icon1.set_src("E:/static/AI/listen_gif.gif")
+
+# al_listen_screen_icon1.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+
al_listen_screen_icon1 = lv.img(AI_listen_screen)
al_listen_screen_icon1.set_size(140,45)
al_listen_screen_icon1.set_pos((240-140)//2,110)
al_listen_screen_icon1.set_src("E:/static/AI/AI_LISTEN_GIF001.png")
+# al_listen_screen_icon1.set_src("E:/static/AI/listen_gif.gif")
+
al_listen_screen_icon1.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
al_listen_screen_icon = lv.img(AI_listen_screen)
al_think_screen_title1.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
al_think_screen_title1.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+# al_think_screen_icon = lv.gif(AI_think_screen)
+# al_think_screen_icon.set_size(130,130)
+# al_think_screen_icon.set_pos((240-130)//2,65)
+# # al_think_screen_icon.set_src("E:/static/AI/AI_THINK001.png")
+# al_think_screen_icon.set_src("E:/static/AI/think_gif.gif")
+# al_think_screen_icon.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
al_think_screen_icon = lv.img(AI_think_screen)
al_think_screen_icon.set_size(130,130)
al_think_screen_icon.set_pos((240-130)//2,65)
al_think_screen_icon.set_src("E:/static/AI/AI_THINK001.png")
+# al_think_screen_icon.set_src("E:/static/AI/think_gif.gif")
+
al_think_screen_icon.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
al_think_screen_icon1 = lv.img(AI_think_screen)
self.img_show_count_flag = 0
self.tts_data_tmp = bytes()
self.press_state = 0
+ self.AI_label_answer = ""
self.AI_label_str = ""
self.AI_client_tts_play_data_len = 0
self.refresh_texttimer = osTimer()
self.refresh_count = 0
self.AI_listen_text = ""
self.AI_label_str = ""
+ self.AI_label_answer = ""
self.tts_time_count = 0
def talk_end_cancel_cb(self,e):#对话结束已经播放音频取消继续对话按钮
self.Close()
+ self.AI_label_answer = ""
AI_no_net_screen.add_flag(lv.obj.FLAG.HIDDEN) #隐藏
AI_listen_screen.add_flag(lv.obj.FLAG.HIDDEN)
AI_think_screen.add_flag(lv.obj.FLAG.HIDDEN) #先隐藏
def talk_end_continue_cb(self,e):#连接超时确定按钮回调或者继续对话按钮
self.Close()
+ self.AI_label_answer = ""
AI_no_net_screen.add_flag(lv.obj.FLAG.HIDDEN) #隐藏
AI_talk_end_screen.add_flag(lv.obj.FLAG.HIDDEN) #先隐藏
AI_think_screen.add_flag(lv.obj.FLAG.HIDDEN) #先隐藏
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) #
+
+ # self.AI_label_answer = ""
+ AI_end_screen_list_screen.scroll_to(0, 0, lv.ANIM.OFF)
+ AI_label.set_pos(5, 10)
+ AI_label.set_text(self.AI_label_answer)
AI_label.set_text("语音识别中...")
- ai_requestion_obj.scroll_to(0, 0, lv.ANIM.OFF)
- msg_detail_cont_obj.scroll_to(0, 0, lv.ANIM.OFF)
+
+ # self.AI_listen_text = "嗯。"
+ str_len = len(self.AI_listen_text)*20
+ if str_len > 165:
+ str_len = 165
+ print("len:{} str_len:{} self.AI_listen_text:{}\r\n".format(len(self.AI_listen_text),str_len,self.AI_listen_text))
+ # AI_end_screen_list_detail_screen1.set_pos(170-str_len,10)
+
+ # AI_listen_text.set_size(str_len,lv.SIZE.CONTENT)
+
+ # AI_listen_text.set_pos(0, 10)
+ # AI_listen_text.set_size(str_len,lv.SIZE.CONTENT)
AI_listen_text.set_text(self.AI_listen_text)
EventMesh.publish("system_sleep_rest")#防止黑屏
self.refresh_count = 0
- self.refresh_texttimer.start(500,1,self.ai_talk_end_show_text)
-
+ self.refresh_texttimer.start(500,1,self.ai_talk_end_show_text)#stop() #(500,1,self.ai_talk_end_show_text)
def ai_talk_end_show_text(self,*argc):
+ EventMesh.publish("publish_message_event_ui",{"func":self.ai_talk_end_lcd_on,"data":0})
+ def ai_talk_end_lcd_on(self,data):
EventMesh.publish("system_sleep_rest")#防止黑屏
+
+ def ai_talk_end_show_text_cb(self,data):
+ AI_label.set_text(self.AI_label_answer)
+
pass
- def connect_timerout_popup(self):#连接超时弹窗提示
+ def connect_timerout_popup(self,msg):#连接超时弹窗提示
self.Close()
AI_talk_screen.add_flag(lv.obj.FLAG.HIDDEN) #
AI_no_net_screen.add_flag(lv.obj.FLAG.HIDDEN) #隐藏
AI_not_listen_text_screen.add_flag(lv.obj.FLAG.HIDDEN) #
AI_think_screen.add_flag(lv.obj.FLAG.HIDDEN) #先隐藏
AI_connect_timerout_screen.clear_flag(lv.obj.FLAG.HIDDEN) #先隐藏
+ if msg == 1: #连接超时
+ al_connect_timerout_title2.set_text("连接超时")
+ else:
+ al_connect_timerout_title2.set_text("网络连接异常")
def text_show_think(self,*argc):
EventMesh.publish("publish_message_event_ui",{"func":self.text_show_think_cb,"data":0})
def think_end_result(self):
- if self.timer_out_count > 4:
+ if self.timer_out_count > 1:
if self.img_show_count_flag == 1:
return
self.timer_out_count = 0
self.refresh_texttimer.stop()
self.ai_talk_end()
def text_show_think_cb(self,data): #文本刷新
- if self.timer_out_count > 4:
- if self.img_show_count_flag == 1:
- return
- self.timer_out_count = 0
+ if self.img_show_count_flag == 1:
+ self.refresh_texttimer.stop()
+ return
+ if self.AI_label_str != "":
+ self.timer_out_count = 1
self.img_show_count_flag = 1
self.refresh_texttimer.stop()
self.ai_talk_end()
#连接超时
self.img_show_count = 0
self.img_show_count_tmp = 0
- self.connect_timerout_popup()
+ self.connect_timerout_popup(1)
return
if self.img_show_count > 10:
AI_talk_screen.clear_flag(lv.obj.FLAG.HIDDEN) #先隐藏
self.aud.setVolume(11)#设置最大声录音
-
+ self.AI_label_answer = ""
self.AI_client_chat_play_str = ''
self.AI_init()
self.AI_client_tts_data_len = 0
# except Exception as e:
# usys.print_exception(e)
#print('audio-play finish.')
- def AI_init(self,):
+ def AI_init(self):
self.AI_audio_queue_thread_id = _thread.start_new_thread(self.AI_audio_queue_thread, ())
self.AI_send_data_queue_thread_id = _thread.start_new_thread(self.AI_send_data_queue_thread, ())
- self.AI_client_tts_timer.start(1000,1,self.AI_client_tts_timer_cb)
+
#按下录音
def talking_cb(self,e):
self.refresh_count = 0
self.img_show_count = 0
self.img_show_count_tmp = 0
- self.AI_client_tts_timer.start(1000,1,self.AI_client_tts_timer_cb)
+
EventMesh.publish("publish_message_event_ui",{"func":self.talking,"data":e})
self.Close()
print("talking3")
self.AI_init()
+ self.AI_client_tts_timer.start(1000,1,self.AI_client_tts_timer_cb)
except Exception as e:
usys.print_exception(e)
al_listen_screen_title1.set_text("识别中...")
print("websocket_connect_chat:{}!!!!!!!!!!!!!!!!!!!!!".format(self.AI_client_chat_isconnect))
#if self.AI_client_chat_isconnect == 0:
# 创建客户端, debug=True输出日志, ip和端口需要自己填写, 或者是域名
- self.AI_client_chat = uwebsocket.Client.connect('ws://121.40.67.151:9099/chat/ws', debug=False)
+ try:
+ self.AI_client_chat = uwebsocket.Client.connect('ws://121.40.67.151:9099/chat/ws', debug=False)
+ except Exception as e: #网络连接异常
+ usys.print_exception(e)
+ print("websocket_connect_chat error!!!\r\n")
+ self.connect_timerout_popup(2)
+ return
# 线程接收数据
if self.AI_client_chat_recv_id != 0:
try:
print("AI_client_chat_recv chat_data = {}".format(chat_data))
self.AI_label_str+=str(chat_data)
self.AI_client_chat_play_str+=str(chat_data)
-
+ self.think_end_result()
if self.TTS_PRO_TYPE == 1:
AI_label.set_text(self.AI_label_str)
# EventMesh.publish("system_sleep_rest")#防止黑屏
def websocket_connect_tts(self):
print("websocket_connect_tts:{}!!!!!!!!!!!!!!!!!!!!!!".format(self.AI_client_tts_isconnect))
if self.AI_client_tts_isconnect == 0:
- self.AI_client_tts = uwebsocket.Client.connect('ws://121.40.67.151:9099/tts/long-text-stream', debug=False)
+ try:
+ # self.AI_client_tts = uwebsocket.Client.connect('ws://40.67.151:9099/tts/', debug=False)
+ self.AI_client_tts = uwebsocket.Client.connect('ws://121.40.67.151:9099/tts/long-text-stream', debug=False)
+ except Exception as e: #网络连接异常
+ usys.print_exception(e)
+ print("websocket_connect_tts ERROR:{}\r\n".format(e))
+ self.connect_timerout_popup(2)
+ return
+ print("websocket_connect_tts:self.AI_client_tts {}\r\n".format(self.AI_client_tts))
# 线程接收数据
if self.AI_client_tts_recv_id != 0:
try:
usys.print_exception(e)
def AI_client_tts_timer_cb(self,*argc):
# EventMesh.publish("system_sleep_rest")#防止黑屏
+
self.tts_time_count+=1
if self.TTS_PRO_TYPE == 1:
#tts数据入队
print("EndSynthesis!!!!!!!!!!!!!!!!!\r\n")
print("EndSynthesis!!!!!!!!!!!!!!!!!!\r\n")
#self.tts_data_tmp=self.tts_data_tmp[9:-100]
- self.websocket_deconnect_tts()#断开
+ try:
+ self.websocket_deconnect_tts()#断开
+ except Exception as e: #网络连接异常
+ usys.print_exception(e)
+
+
self.tts_time_count = 60#立即发送剩余数据
self.AI_client_tts_put_data()
self.websocket_deconnect_asr()#先断一次,预防出错
except Exception as e:
usys.print_exception(e)
- self.AI_client_asr = uwebsocket.Client.connect('ws://121.40.67.151:9099/asr/ws', debug=False)
+
+ try:
+ self.AI_client_asr = uwebsocket.Client.connect('ws://121.40.67.151:9099/asr/ws', debug=False)
+ except Exception as e: #网络连接异常
+ usys.print_exception(e)
+ print("websocket_connect_asr error!!!\r\n")
+ self.connect_timerout_popup(2)
+ return
# 线程接收数据
if self.AI_client_asr_recv_id != 0:
try:
#data[0].send(data[1])
if data[0] == self.AI_client_chat_num:
if self.AI_client_chat_isconnect == 0:
- self.websocket_connect_chat()
+ try:
+ self.websocket_connect_chat()
+ except Exception as e: #网络连接异常
+ usys.print_exception(e)
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 self.AI_client_asr_isconnect == 0:
- self.websocket_connect_asr()
+ try:
+ self.websocket_connect_asr()
+ except Exception as e: #网络连接异常
+ usys.print_exception(e)
print("asr send_data:{}".format(len(data[1])))
self.AI_client_asr.send(data[1])
if data[0] == self.AI_client_tts_num:
if self.AI_client_tts_isconnect == 0:
- self.websocket_connect_tts()
+ try:
+ self.websocket_connect_tts()
+ except Exception as e: #网络连接异常
+ usys.print_exception(e)
print("tts send_data:{}".format((data[1])))
self.AI_client_tts.send(data[1])
except Exception as e:
usys.print_exception(e)
if data[0] == self.AI_client_chat_num:
self.AI_client_chat_isconnect = 0
- self.websocket_connect_chat()
+ try:
+ self.websocket_connect_chat()
+ except Exception as e: #网络连接异常
+ usys.print_exception(e)
if data[0] == self.AI_client_asr_num:
self.AI_client_asr_isconnect = 0
- self.websocket_connect_asr()
+ try:
+ self.websocket_connect_asr()
+ except Exception as e: #网络连接异常
+ usys.print_exception(e)
if data[0] == self.AI_client_tts_num:
count =10
while 1:
if count<=0:
break
self.AI_client_tts_isconnect = 0
- self.websocket_connect_tts()
+ try:
+ self.websocket_connect_tts()
+ except Exception as e: #网络连接异常
+ usys.print_exception(e)
#self.AI_client_tts_start()
if self.AI_client_tts_isconnect == 1:
try:
print("audio_queue:len:{},data{}".format(len(data[0]),data[1]))
if len(data[0]) > 1:
if self.TTS_PRO_TYPE == 0:
- AI_label.set_text(data[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:
- tmp=self.aud.playStream(3, data[0])#播放音频流
+ 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_chat_play_str = ""
self.AI_client_tts_tra_flag = 0
self.record.stop()#关闭录音
+ self.AI_label_answer = ""
self.refresh_count = 0
self.refresh_texttimer.stop()
self.clear_flag()
no_sim_power_screen_cancel.set_ext_click_area(20)
self.meta = no_sim_power_screen
- no_sim_power_screen_comfirm.add_event_cb(lambda e: EventMesh.callback_wrapper(self.confirm(e)),
+ no_sim_power_screen.add_event_cb(lambda e:EventMesh.callback_wrapper(self.button_cb(e,1)), lv.EVENT.GESTURE, None)
+ no_sim_power_screen_comfirm.add_event_cb(lambda e: EventMesh.callback_wrapper(self.button_cb(e,2)),
lv.EVENT.SHORT_CLICKED, None)
- no_sim_power_screen_cancel.add_event_cb(lambda e: EventMesh.callback_wrapper(self.cancel(e)),
+ no_sim_power_screen_cancel.add_event_cb(lambda e: EventMesh.callback_wrapper(self.button_cb(e,3)),
lv.EVENT.SHORT_CLICKED, None)
- no_sim_power_screen_comfirm.add_event_cb(lambda e: EventMesh.callback_wrapper(self.confirm(e)),
- lv.EVENT.PRESSING, None)
-
- no_sim_power_screen_cancel.add_event_cb(lambda e: EventMesh.callback_wrapper(self.cancel(e)),
- lv.EVENT.PRESSING, None)
-
-
- def confirm(self,e):
+ def button_cb(self,e,msg):
code = e.get_code()
- if code == lv.EVENT.PRESSING:
- #print("PRESSING")
- self.is_sliding += 1
+ indev = lv.indev_get_act()
+ lv.indev_t.wait_release(indev)
+ dir = lv.indev_t.get_gesture_dir(indev)
+ if code == lv.EVENT.GESTURE:
+ if dir == lv.DIR.RIGHT:
+ EventMesh.publish("return_prev_screen")
+
elif code == lv.EVENT.SHORT_CLICKED:
- #utime.sleep_ms(10)
- print("1self.is_sliding",self.is_sliding)
- if self.is_sliding <= 5 and self.is_sliding != 0:#如果是在滑动中则不需要点击事件
- self.is_sliding =0
- EventMesh.publish("load_screen", {"screen": "poweroff_comfirm"})
-
- self.is_sliding =0
-
-
- def cancel(self,e):
- EventMesh.publish("return_prev_screen")
-
- def done_left_to_right(self):
- EventMesh.publish("return_prev_screen")
+ if msg != 1:
+ if msg == 2:
+ EventMesh.publish("load_screen", {"screen": "poweroff_comfirm"})
+ elif msg == 3:
+ EventMesh.publish("return_prev_screen")
- def done_right_to_left(self):
- EventMesh.publish("return_prev_screen")
+ # def done_right_to_left(self):
+ # EventMesh.publish("return_prev_screen")
- def done_bottom_to_top(self):
- EventMesh.publish("return_prev_screen")
+ # def done_bottom_to_top(self):
+ # EventMesh.publish("return_prev_screen")
def done_return(self):
EventMesh.publish("return_prev_screen")
- def done_top_to_bottom(self):
- EventMesh.publish("return_prev_screen")
+ # def done_top_to_bottom(self):
+ # EventMesh.publish("return_prev_screen")
def btn8_press(self):
EventMesh.publish("return_prev_screen")
no_sim_auto_screen_cancel.set_ext_click_area(20)
self.meta = no_sim_auto_screen
- no_sim_auto_screen_comfirm.add_event_cb(lambda e: EventMesh.callback_wrapper(self.confirm(e)),
+
+ no_sim_auto_screen.add_event_cb(lambda e:EventMesh.callback_wrapper(self.button_cb(e,0)), lv.EVENT.GESTURE, None)
+
+ no_sim_auto_screen_comfirm.add_event_cb(lambda e: EventMesh.callback_wrapper(self.button_cb(e,1)),
lv.EVENT.SHORT_CLICKED, None)
- no_sim_auto_screen_cancel.add_event_cb(lambda e: EventMesh.callback_wrapper(self.cancel(e)),
+ no_sim_auto_screen_cancel.add_event_cb(lambda e: EventMesh.callback_wrapper(self.button_cb(e,2)),
lv.EVENT.SHORT_CLICKED, None)
-
- no_sim_auto_screen_comfirm.add_event_cb(lambda e: EventMesh.callback_wrapper(self.confirm(e)),
- lv.EVENT.PRESSING, None)
- no_sim_auto_screen_cancel.add_event_cb(lambda e: EventMesh.callback_wrapper(self.cancel(e)),
- lv.EVENT.PRESSING, None)
self.timer.start(1*1000,1,self.fun)
self.count = 0
+
+ def button_cb(self,e,msg):
+ code = e.get_code()
+ indev = lv.indev_get_act()
+ lv.indev_t.wait_release(indev)
+ dir = lv.indev_t.get_gesture_dir(indev)
+ if code == lv.EVENT.GESTURE:
+ if dir == lv.DIR.RIGHT:
+ EventMesh.publish("return_prev_screen")
+
+ elif code == lv.EVENT.SHORT_CLICKED:
+ if msg != 0:
+ if msg == 1:
+ EventMesh.publish("load_screen", {"screen": "poweroff_comfirm"})
+ else:
+ EventMesh.publish("return_prev_screen")
+
+
def fun(self,*argc):
EventMesh.publish("system_sleep_rest")#防止黑屏
self.count+=1
message_full_cancel.add_flag(lv.obj.FLAG.CLICKABLE)
message_full_cancel.set_ext_click_area(20)
self.meta = message_full_screen
-
- message_full_confirm.add_event_cb(lambda e: EventMesh.callback_wrapper(self.confirm(e)),lv.EVENT.SHORT_CLICKED, None)
- message_full_cancel.add_event_cb(lambda e: EventMesh.callback_wrapper(self.concel(e)),lv.EVENT.SHORT_CLICKED, None)
+ message_full_screen.add_event_cb(lambda e:EventMesh.callback_wrapper(self.button_cb(e,0)), lv.EVENT.GESTURE, None)
- message_full_confirm.add_event_cb(lambda e: EventMesh.callback_wrapper(self.confirm(e)),lv.EVENT.PRESSING, None)
- message_full_cancel.add_event_cb(lambda e: EventMesh.callback_wrapper(self.concel(e)),lv.EVENT.PRESSING, None)
+ message_full_confirm.add_event_cb(lambda e: EventMesh.callback_wrapper(self.button_cb(e,1)),lv.EVENT.SHORT_CLICKED, None)
+ message_full_cancel.add_event_cb(lambda e: EventMesh.callback_wrapper(self.button_cb(e,2)),lv.EVENT.SHORT_CLICKED, None)
+
+ # message_full_confirm.add_event_cb(lambda e: EventMesh.callback_wrapper(self.confirm(e)),lv.EVENT.PRESSING, None)
+ # message_full_cancel.add_event_cb(lambda e: EventMesh.callback_wrapper(self.concel(e)),lv.EVENT.PRESSING, None)
def remove_all_sms_cb(self, event, msg):
sms.deleteMsg(1,4)
+ def button_cb(self, e, msg):
+ code = e.get_code()
+ indev = lv.indev_get_act()
+ lv.indev_t.wait_release(indev)
+ dir = lv.indev_t.get_gesture_dir(indev)
+ if code == lv.EVENT.GESTURE:
+ if dir == lv.DIR.RIGHT:
+ EventMesh.publish("load_screen", {"screen": "main_menu"})
+ elif code == lv.EVENT.SHORT_CLICKED:
+ if msg != 0:
+ if msg == 1:
+ EventMesh.publish("load_screen", {"screen": "remove_message_popup"})
+ EventMesh.publish_async("remove_all_sms_cb","",1*1024)
+ elif msg == 2:
+ EventMesh.publish("return_prev_screen")
+
def confirm(self, e):
code = e.get_code()
if code == lv.EVENT.PRESSING:
self.is_sliding =0
-
+
def concel(self, e):
EventMesh.publish("return_prev_screen")