From: dxy15521469561 <1731678236@qq.com> Date: Thu, 25 Jan 2024 08:54:37 +0000 (+0800) Subject: C06S: X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=ac39790fcba0a310e7bd43676c247e8ee8f9fc9d;p=mirrors%2FASR1603_G5.git C06S: 设备联动 D15视频通话死机的问题 --- diff --git a/2.sdk/Helios_SDK/components/juphoon/lib/libjrtc.a b/2.sdk/Helios_SDK/components/juphoon/lib/libjrtc.a index a9efd93f..5dad75cb 100644 Binary files a/2.sdk/Helios_SDK/components/juphoon/lib/libjrtc.a and b/2.sdk/Helios_SDK/components/juphoon/lib/libjrtc.a differ diff --git a/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/main_init.py b/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/main_init.py index 6a354822..d38b69e7 100644 --- a/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/main_init.py +++ b/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/main_init.py @@ -279,6 +279,7 @@ def main_init(): app.append_manager(setSmsIndexManager()) app.append_manager(setclassTimeManager()) app.append_manager(setCallStateManager()) + app.append_manager(mgr.getsosInfoManager()) except Exception as e: usys.print_exception(e) #print("init21:{}".format(utime.localtime())) diff --git a/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/mgr.py b/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/mgr.py index 89fd629b..4c78462e 100644 --- a/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/mgr.py +++ b/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/mgr.py @@ -726,7 +726,7 @@ class DeviceInfoManager(Abstract): self.vbat_count = 0 self.vbat_buf=[] - + self.get_sos = 0 self.curr_battery_level = 4200 self.bat_count = 0 @@ -943,9 +943,21 @@ class DeviceInfoManager(Abstract): time_tmp = utime.mktime(date_tmp) # print("date_tmp......01....{} time_tmp:{}\r\n".format(date_tmp,time_tmp)) - """电量小于20% 5分钟提醒一次""" - EventMesh.publish(constants.PROTOCOL.MSGQ_SEND) + """sos下发通知 没有收到1分钟请求一次""" + sos_state = EventMesh.publish("get_sos_status") + + screen_NAME = EventMesh.publish("get_screen_NAME") + # print("sos_state:{} screen_NAME:{}\n".format(sos_state,screen_NAME)) + if sos_state != None and screen_NAME != None: + if sos_state == 1 and screen_NAME != "sos_rev": + self.get_sos+=1 + if self.get_sos >= 6: + self.get_sos = 0 + EventMesh.publish(constants.PROTOCOL.MSGQ_SEND) + else: + self.get_sos = 0 + """电量小于20% 5分钟提醒一次""" get_low_btn = EventMesh.publish("get_low_bat_btn")# battery = EventMesh.publish("screen_get_battery") # print("get_low_btn:{} self.bat_time:{}".format(get_low_btn,self.bat_time)) @@ -1980,6 +1992,7 @@ class DeviceInfoManager(Abstract): def get_imei(self, topic, msg): if not self.imei: self.imei = modem.getDevImei() + # self.imei = "876226002021444"#视频通话测试账号 return self.imei def get_cid(self, topic, msg): @@ -2956,7 +2969,7 @@ class gethistoryDataManager(Abstract): return self.old_step #获取旧的时间戳 class getOldTimeManager(Abstract): - # 获取天气数据 + # def __init__(self): self.time_sec = 0 tmp_data = EventMesh.publish("get_storage_config","old_time") @@ -3777,4 +3790,32 @@ class setclassTimeManager(Abstract):#设置上课禁用时间 EventMesh.publish("load_screen", {"screen": "main_menu"}) pass - \ No newline at end of file + +class getsosInfoManager(Abstract):#平台下发sos内容 + def __init__(self): + self.sos_message = "" + + def post_processor_after_instantiation(self): + EventMesh.subscribe("set_sos_message", self.set_sos_message)#设置关机时间 + EventMesh.subscribe("get_sos_message", self.get_sos_message) + + def set_sos_message(self, event, msg): + if msg != None: + if len(str(msg)) != 0: + self.sos_message = msg + + + def get_sos_message(self, event, msg): + if self.sos_message : + return self.sos_message + else: + return None + + + + + + + + + diff --git a/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/protocol.py b/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/protocol.py index aee967c0..5e09c390 100644 --- a/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/protocol.py +++ b/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/protocol.py @@ -27,6 +27,12 @@ def server_init(server_type = None): if server_type == None: server_type = 1 #print("server_init:server_type:{}".format(server_type)) + #,9000 117.50.2.99,9000 + # d_server_addr = "117.50.2.99" + # d_server_port = 9000 + # d_md5_key = "bZld0ALsZTt15tKEZhOlLPgbsO75BLTP" + # d_PID = "SZKW" + d_server_addr = "api.xcloudtech.com" d_server_port = 9000 d_md5_key = "bZld0ALsZTt15tKEZhOlLPgbsO75BLTP" @@ -2373,7 +2379,7 @@ class MESSAGE_SOS_ProtoCol(ProtoCol): send_data = self.PID+"*%s*000b*MESSAGE_SOS"%(self.imei) MD5_SIGN = self.pack_MD5_head(send_data) data = "[%s%s]"%(str(MD5_SIGN),send_data) - #Wechat_log("POWEROFF_ProtoCol:send:%s"%(data)) + print("MESSAGE_SOS:send:%s"%(data)) # 通过socket发送到服务器端 EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND, data) @@ -2387,11 +2393,13 @@ class MESSAGE_SOS_ProtoCol(ProtoCol): msg_s = msg.decode('ascii') msg_s = msg_s.split('MESSAGE_SOS,')[1] - print("MESSAGE_SOS!!!!!!!!!!!!") - for phonebook_tmp in msg_s: - if len(phonebook_tmp) != 0: - phonebook_name = UnicodeHexStr_To_Utf8Str(phonebook_tmp) - EventMesh.publish("load_screen", {"screen": "sos_rev","meta":phonebook_name}) + phonebook_name = "" + phonebook_tmp = msg_s + # print("phonebook_tmp!!!!!!!!!!!!",phonebook_tmp) + phonebook_name = UnicodeHexStr_To_Utf8Str(phonebook_tmp) + # print("phonebook_name!!!!!!!!!!!!",phonebook_name) + EventMesh.publish("set_sos_message", phonebook_name)# + EventMesh.publish("load_screen", {"screen": "sos_rev"}) diff --git a/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/ui.py b/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/ui.py index 63d9bb82..aacb608c 100644 --- a/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/ui.py +++ b/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/ui.py @@ -4850,18 +4850,19 @@ class CountdownEndScreen(Screen): countdown_end_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) self.meta = countdown_end_screen self.FIND_timer_count = 0 - self.FIND_timer.start(3000, 1, self.FIND_timer_cb) + self.FIND_timer.start(1000, 1, self.FIND_timer_cb) EventMesh.publish("close_count_show_info") self.aud.play(1, 1, 'E:/static/audio_audio_haixiu.mp3') #播放声音 def FIND_timer_cb(self, *args): EventMesh.publish("system_sleep_rest")#防止黑屏 self.FIND_timer_count += 1 - if self.FIND_timer_count >= 4: #120秒 + if self.FIND_timer_count >= 30: #120秒 self.stop_FIND() EventMesh.publish("return_prev_screen") return - self.aud.play(1, 1, 'E:/static/audio_audio_haixiu.mp3') + if self.FIND_timer_count % 4 == 0: + self.aud.play(1, 1, 'E:/static/audio_audio_haixiu.mp3') def stop_FIND(self) : @@ -6054,6 +6055,7 @@ sos_recv_screen = None sos_recv_screen_label = None sos_recv_screen_comfirm=None sos_recv_screen_label2 = None +sos_recv_screen_label2_btn =None class sosrecvScreen(Screen):#设备接收平台发送的 NAME = "sos_rev" def __init__(self): @@ -6062,26 +6064,46 @@ class sosrecvScreen(Screen):#设备接收平台发送的 self.meta_type = "popup" self.timer = osTimer() self.count = 0 + self.sos_state = 0 + EventMesh.subscribe("get_sos_status",self.get_sos_status) def initialization(self): self.count = 0 - global sos_recv_screen,sos_recv_screen_label,sos_recv_screen_label2,sos_recv_screen_comfirm + self.sos_state = 1 + EventMesh.publish("set_UI_high_priority",1) + global sos_recv_screen,sos_recv_screen_label,sos_recv_screen_label2,sos_recv_screen_comfirm,sos_recv_screen_label2_btn if sos_recv_screen == None : sos_recv_screen = lv.obj() print("sos_recv_screen") sos_recv_screen.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF) # add style for watchface sos_recv_screen.add_style(style_screen, lv.PART.MAIN|lv.STATE.DEFAULT) + + sos_recv_new_screen = lv.obj(sos_recv_screen) + sos_recv_new_screen.set_size(240,200) + sos_recv_new_screen.set_pos(0,10) + print("sos_recv_new_screen") + sos_recv_new_screen.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF) + # add style for watchface + sos_recv_new_screen.add_style(style_screen, lv.PART.MAIN|lv.STATE.DEFAULT) + + sos_recv_new_btn_screen = lv.obj(sos_recv_screen) + sos_recv_new_btn_screen.set_size(240,62) + sos_recv_new_btn_screen.set_pos(0,220) + print("sos_recv_new_screen") + sos_recv_new_btn_screen.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF) + # add style for watchface + sos_recv_new_btn_screen.add_style(style_screen, lv.PART.MAIN|lv.STATE.DEFAULT) # - sos_recv_screen_label = lv.label(sos_recv_screen) - sos_recv_screen_label.set_size(240, 220-20) - sos_recv_screen_label.set_pos(0, 20) + sos_recv_screen_label = lv.label(sos_recv_new_screen) + sos_recv_screen_label.set_size(235,lv.SIZE.CONTENT) + sos_recv_screen_label.set_pos(5,10) sos_recv_screen_label.set_text(" ") sos_recv_screen_label.add_style(style_font_youyuan_20, lv.PART.MAIN|lv.STATE.DEFAULT) - sos_recv_screen_comfirm = lv.img(sos_recv_screen) + sos_recv_screen_comfirm = lv.img(sos_recv_new_btn_screen) sos_recv_screen_comfirm.set_size(176, 46) - sos_recv_screen_comfirm.set_pos(32, 220) + sos_recv_screen_comfirm.set_pos(32, 0) sos_recv_screen_comfirm.set_src("E:/static/off_icon.png") sos_recv_screen_comfirm.add_flag(lv.obj.FLAG.CLICKABLE) sos_recv_screen_comfirm.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) @@ -6091,19 +6113,46 @@ class sosrecvScreen(Screen):#设备接收平台发送的 sos_recv_screen_label2.align(lv.ALIGN.CENTER, 0, 5) sos_recv_screen_label2.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) + sos_recv_screen_label2_btn = lv.label(sos_recv_new_btn_screen) + sos_recv_screen_label2_btn.set_text(" ") + sos_recv_screen_label2_btn.set_size(240, 62) + sos_recv_screen_label2_btn.set_pos(0, 0) + sos_recv_screen_label2_btn.add_flag(lv.obj.FLAG.CLICKABLE) + # sos_recv_screen_label2_btn.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) + self.meta = sos_recv_screen + sos_recv_screen_label2_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.confirm(e)), + lv.EVENT.SHORT_CLICKED, None) sos_recv_screen_comfirm.add_event_cb(lambda e: EventMesh.callback_wrapper(self.confirm(e)), lv.EVENT.SHORT_CLICKED, None) - self.meta_info = "需要你的帮助,是好滴还是我hi海带丝电池给谁hi都会死hi换货地址好ID号i海底火山hi大海hi属地化似乎机顶盒试试几点合适试试是是是" - sos_recv_screen_label.set_text("{}".format(self.meta_info)) + # print("sos recv self.meta_info",self.meta_info) + # self.meta_info = "需要你的帮助,是好滴还是我hi海带丝电池给谁是是是hi都会死好滴你的还是1hi的hi收到hi都会死hi换货地址好ID号i海底火山hi大海hi属地化似乎机顶盒试试几点合适试试是是是" + + sos_message = EventMesh.publish("get_sos_message") + if sos_message != None: + if len(str(sos_message)) != 0: + sos_recv_screen_label.set_text("{}".format(sos_message)) + else: + sos_recv_screen_label.set_text(" ") + else: + sos_recv_screen_label.set_text(" ") + EventMesh.publish("set_motor_time",[1,2,10*10,10,5])#设置马达参数 self.timer.start(1*1000,1,self.motor_cb) + + def get_sos_status(self,event,msg): + + return self.sos_state + def confirm(self,e): + self.sos_state = 0 + self.timer.stop() EventMesh.publish(constants.PROTOCOL.MESSAGE_SOS_SEND) EventMesh.publish("close_motor_infor")#关闭马达和定时器 + EventMesh.publish("set_UI_high_priority",0) EventMesh.publish("return_prev_screen") def motor_cb(self,*argc): @@ -6116,25 +6165,22 @@ class sosrecvScreen(Screen):#设备接收平台发送的 # def Close(self): + EventMesh.publish("set_UI_high_priority",0) + self.timer.stop() EventMesh.publish("close_motor_infor")#关闭马达和定时器 def done_return(self): + EventMesh.publish("set_UI_high_priority",0) EventMesh.publish("return_prev_screen") def btn1_release(self): - EventMesh.publish("return_prev_screen") - - def done_left_to_right(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_top_to_bottom(self): + EventMesh.publish("set_UI_high_priority",0) EventMesh.publish("return_prev_screen") def btn8_press(self): + EventMesh.publish("set_UI_high_priority",0) EventMesh.publish("load_screen", {"screen": "main_menu"}) + #from usr.ui_WatchFaceScreen import WatchFaceScreen class UI(object): def __init__(self): @@ -6319,8 +6365,9 @@ class UI(object): EventMesh.publish("publish_message_event_ui",{"func":self.ui_press_do,"data":event}) def ui_press_do(self, event): screen_NAME = EventMesh.publish("get_screen_NAME") - if screen_NAME == "poweron" or screen_NAME == "system_init": - return + if screen_NAME != None: + if screen_NAME == "poweron" or screen_NAME == "system_init": + return self.system_sleep_timeout_rest() # print("ui press {} self.screen_old:{}".format(self.screen_prev,self.screen_old)) # print("ui_press_do") @@ -6349,8 +6396,9 @@ class UI(object): EventMesh.publish("publish_message_event_ui",{"func":self.btn_press_do,"data":event}) def btn_press_do(self, event): screen_NAME = EventMesh.publish("get_screen_NAME") - if screen_NAME == "poweron" or screen_NAME == "system_init": - return + if screen_NAME != None: + if screen_NAME == "poweron" or screen_NAME == "system_init": + return print("btn_press: {}".format(event)) #主表盘按电源键,息屏 @@ -6397,8 +6445,9 @@ class UI(object): def btn_release(self, event, msg): screen_NAME = EventMesh.publish("get_screen_NAME") - if screen_NAME == "poweron" or screen_NAME == "system_init": - return + if screen_NAME != None: + if screen_NAME == "poweron" or screen_NAME == "system_init": + return print("btn_release: {}".format(event)) # if self.main_flag != 1 and self.sleep_flag == 0: # self.__lcd_on() diff --git a/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/versions.py b/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/versions.py index 0cd0b64f..2bf3df12 100644 --- a/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/versions.py +++ b/2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/versions.py @@ -1,2 +1,2 @@ Version="V1.0" -Build_Time="2023-12-29 17:18:43" +Build_Time="2024-01-25 16:47:49" diff --git a/2.sdk/project/C06S/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_VOLTE/images/firmware_base_release_pack.zip b/2.sdk/project/C06S/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_VOLTE/images/firmware_base_release_pack.zip index 859b77f2..5fb8defa 100644 Binary files a/2.sdk/project/C06S/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_VOLTE/images/firmware_base_release_pack.zip and b/2.sdk/project/C06S/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_VOLTE/images/firmware_base_release_pack.zip differ diff --git a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/btn_device_ec800m_d15.py b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/btn_device_ec800m_d15.py index 3b588db9..62de12ca 100644 --- a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/btn_device_ec800m_d15.py +++ b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/btn_device_ec800m_d15.py @@ -860,7 +860,7 @@ if EventMesh.model == "D15" : self.video_count = 0 return - if video_state == 4 or self.video_call_state == 0 :#视频电话呼出 如果接通了就不需要了 + if video_state == 4 or self.video_call_state == 0:#视频电话呼出 如果接通了就不需要了 self.video_call_state = 0 self.video_count=0 print("video calling") @@ -3238,7 +3238,7 @@ if EventMesh.model == "D15" : self.pwKey_press_count = 0 def sosKey_extint_cb(self,args): - EventMesh.debug_log('sosKey_extint_cb ',args) + power_off = EventMesh.publish("get_power_off_state")#获取关机标识 open_power = EventMesh.publish("get_power_on_state")#获取开机标识 if power_off != None and open_power != None: @@ -3257,14 +3257,14 @@ if EventMesh.model == "D15" : self.KeyCall1_status = self.extint_19.read_level() # self.KeyCall2_status = self.extint_17.read_level() - # EventMesh.debug_log('sosKey_extint_cb ',args,self.sosKey_status,self.WeChatKey_status,self.KeyCall1_status,self.KeyCall2_status,self.GPIO26_status) # args[0]:gpio号 args[1]:上升沿或下降沿 + EventMesh.debug_log('sosKey_extint_cb ',args,self.sosKey_status,self.WeChatKey_status,self.KeyCall1_status,self.KeyCall2_status,self.GPIO26_status) # args[0]:gpio号 args[1]:上升沿或下降沿 if self.WeChatKey_status != 0 and self.GPIO26_status != 0 and self.KeyCall1_status != 0 and self.KeyCall2_status != 0: if self.sosKey_status == 0:#按下 if NEW_ENABLE == 0:#新的按键功能定义 video_state = EventMesh.publish("get_video_state") if video_state != 0:#视频通话打入或者接听后允许挂断视频通话 if video_state == 6 or get_video == 0: - + EventMesh.debug_log("sosKey_extint_cb",get_video,video_state) EventMesh.publish("video_reject_cb",2)#挂断视频通话 self.sosKey_press_count=0 self.wechatKey_timer.stop() diff --git a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/mgr_d15.py b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/mgr_d15.py index 1b9e0f0a..52bed14e 100644 --- a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/mgr_d15.py +++ b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/mgr_d15.py @@ -5095,14 +5095,13 @@ if EventMesh.model == "D15": EventMesh.subscribe("video_no_network",self.video_no_network)#打着突然掉网或者未绑定设备 每10s检测一次 - EventMesh.subscribe("video_anwer_led",self.video_anwer_led) - EventMesh.subscribe("clear_video_timer_state",self.clear_video_timer_state) EventMesh.subscribe("set_vedio_init",self.set_vedio_init) EventMesh.subscribe("set_app_dev_end_state",self.set_app_dev_end_state)#设置是app 设备 还是主动信号不好的挂断当前的视频通话 + EventMesh.subscribe("get_app_dev_end_state",self.get_app_dev_end_state)#设置是app 设备 还是主动信号不好的挂断当前的视频通话 def set_video_state(self, event, msg):#视频通话 1是刚播进去 2 是手机拨进去 3是正在加入中 5是已接通出现画面 self.video_state = msg @@ -5225,14 +5224,17 @@ if EventMesh.model == "D15": self.timer.start(1*1000,1,self.publish_led_event_cb) - def video_time_cb(self,data): + def video_time_cb(self,data):#1s定时器 实时监测视频通话的状态 3是拨进未接通 5是接通出画面了 EventMesh.publish("system_sleep_rest")#防止黑屏 call_state = jrtc.get_state() - video_state = EventMesh.publish("get_video_state") + video_state = EventMesh.publish("get_video_state")#这个函数获取为了防止不进回调不置0 get_video_state = EventMesh.publish("get_video_in_out_state") dev_mode = EventMesh.publish("get_dev_app_mode") + # print("call_state",call_state,video_state) + if self.video_led_state == 1 or self.video_timer == 1:#手表挂断不在进入 + self.timer.stop() + return - # print("call_state",call_state,video_state,get_video_state,dev_mode) if video_state != 0 or call_state != 0: if get_video_state == 0 and call_state != 0:#双方接通如果是信号不好就开始计算30 30s过后还没有出画面就挂断当前视频通话 self.video_count+=1 @@ -5275,11 +5277,11 @@ if EventMesh.model == "D15": self.timer.stop() EventMesh.publish("video_reject_cb",1) else: - if self.video_state_time == 0: - self.video_state_time = 1 - self.video_count = 0 - self.timer.stop() - EventMesh.publish("video_reject_cb",1) + self.video_state_time = 0 + self.video_count = 0 + self.timer.stop() + EventMesh.publish("set_video_state", 0) + EventMesh.publish("video_reject_cb",1) def video_waite_event_time_cb(self,*argc):#正在接听中,请稍候 EventMesh.publish("video_answer_mode_timer_cb",1) @@ -5305,18 +5307,18 @@ if EventMesh.model == "D15": def video_answer_cb(self,event,msg):#手表端拒绝视频通话 EventMesh.publish("set_video_in_out_state",0) - EventMesh.publish("stop_led_timer")#设置参数 - EventMesh.publish("close_timer_all")# + EventMesh.publish("stop_led_timer")#关闭亮灯模式 + EventMesh.publish("close_timer_all")##关闭统一的计时器 EventMesh.publish("set_vedio_init")# - EventMesh.publish("open_vedio_infor") + EventMesh.publish("open_vedio_infor")#启动视频通话的SDK相关配置 + def clear_video_timer_state(self,event,msg):#清除标识 self.video_timer = 0 def video_reject_cb(self,event,msg):#手表端挂断视频通话 - # print("close_jrtc_event start",msg) if self.video_timer == 0: - self.video_timer = 1 + # print("close_jrtc_event start",self.video_timer) EventMesh.publish("stop_led_timer")#设置参数 EventMesh.publish("close_timer_all")# EventMesh.publish("close_video_timer") @@ -5328,7 +5330,7 @@ if EventMesh.model == "D15": call_type = int(EventMesh.publish("get_vedio_call_type"))# # print("video_reject_cb1111",self.video_led_state,self.video_answer) - print("close_jrtc_event ens") + # print("close_jrtc_event ens") if msg == 2: self.video_led_state = 1 EventMesh.publish("dev_video_end_timer_cb")#手表设备已挂断 @@ -5336,23 +5338,28 @@ if EventMesh.model == "D15": self.video_led_state = 0 EventMesh.publish("video_answer_mode_timer_cb",4)##提示对方已挂断 EventMesh.publish(constants.PROTOCOL.RCALLING_SEND,[call_id,meet_id,call_type]) - - print("close_jrtc_event ens1") + self.video_timer = 1 + call_state = jrtc.get_state() + # print("close_jrtc_event ens1",call_state) jrtc.close(0) - print("close_jrtc_event ens2") + # print("close_jrtc_event ens2",call_state) + + def set_app_dev_end_state(self,event,msg):#app拒绝视频通话 self.video_led_state = 0 #手表挂断不在进入 + def get_app_dev_end_state(self,event,msg):#app拒绝视频通话 + return self.video_led_state #手表挂断不在进入 + def app_rtalk_cb(self,event,msg):#app拒绝视频通话 - dev_mode = EventMesh.publish("get_dev_app_mode")#如果是app主动挂断需要提示音频文件 video_state = EventMesh.publish("get_video_state")#清除视频通话状态 - # print("app_rtalk_cb return,",self.video_led_state,dev_mode,video_state) - # 1手表挂断 3 信号不好自动挂断 - if self.video_led_state == 1 or dev_mode == 0 or video_state == 0:#手表挂断不在进入 + # print("app_rtalk_cb return 1",self.video_led_state,dev_mode,video_state) + if self.video_led_state == 1 or self.video_timer == 1:#手表挂断不在进入 return + # print("app_rtalk_cb return 2",self.video_led_state,dev_mode,video_state) self.video_timer = 1 self.video_led_state = 0 EventMesh.publish(constants.EVENT.SYSTEM_UP)# @@ -5364,41 +5371,24 @@ if EventMesh.model == "D15": EventMesh.publish("close_timer_all")# EventMesh.publish("set_video_in_out_state",0)#清除视频通话拨进还是拨出的状态 + EventMesh.publish("close_video_timer") # print("app_rtalk_cb ",dev_mode,self.video_led_state,video_state) - - EventMesh.publish("video_answer_mode_timer_cb",4)##提示对方已挂断 - EventMesh.publish("set_dev_app_mode", 0) - EventMesh.publish("close_video_timer") EventMesh.publish("set_video_state",0)#清除视频通话状态 EventMesh.publish("set_video_in_out_state",0)#清除视频通话拨进还是拨出的状态 - - def video_anwer_led(self,event,msg): #1绿灯 2白灯 3红灯 - # print("video_anwer_led",msg) - if msg == 1: - # self.video_led_state = 0 - # EventMesh.publish("set_led_time_arg",[1,2,8*1,led_mode.FLASH_LIGHT_GREEN,8,4,led_mode.VIDEO_MEASURE_MODE])# - pass - elif msg == 2:#网络不好或者正在接听中 - # if self.video_led_state == 1: - # self.video_led_state = 0 - # EventMesh.publish("set_led_time_arg",[1,2,8*1,led_mode.FLASH_LIGHT_WHITE,8,4,led_mode.VIDEO_MEASURE_MODE])# - # else: - # self.video_led_state = 0 - pass - else:#对方手机app挂断或者信号不好挂断 - # EventMesh.publish("set_led_time_arg",[1,2,8*1,led_mode.FLASH_LIGHT_RED,8,4,led_mode.VIDEO_MEASURE_MODE])# - pass - + EventMesh.publish("video_answer_mode_timer_cb",4)##提示对方已挂断 + video_state = EventMesh.publish("get_video_state") + # print("app_rtalk_cb end",video_state) def jrtc_cb(close_sta):#注册回调 print("jrtc callback:", close_sta) if close_sta == 0 or close_sta == 1: - pass - # EventMesh.publish("set_video_in_out_state",0) - # EventMesh.publish("set_video_state",0) - # jrtc.close(0) + EventMesh.publish("set_video_state", 0) + EventMesh.publish("set_video_in_out_state",0) + # if EventMesh.publish("get_app_dev_end_state") == 0: + # jrtc.close(0) + jrtc.set_callback(jrtc_cb) import fota diff --git a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/ui.py b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/ui.py index 95f0d37d..633d8352 100644 --- a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/ui.py +++ b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/ui.py @@ -217,7 +217,6 @@ class UI(object): EventMesh.debug_log("__lcd_on") if self.sleep_lock == 1: EventMesh.debug_log("__lcd_on:sleep_lock:error!") - utime.sleep_ms(200) self.sleep_lock = 1 self.sleep_flag = 1 @@ -228,11 +227,10 @@ class UI(object): self.system_sleep_timer.start(1000, 1, self.system_sleep_timer_cb) EventMesh.publish("set_lcd_state",self.sleep_flag) - utime.sleep_ms(2) #lv.autoSleep(0) pm.autosleep(0) pm.sclkEx_set(0, 1, 5) - utime.sleep_ms(60) + self.sleep_lock = 0 @@ -244,7 +242,6 @@ class UI(object): EventMesh.debug_log("__lcd_off") if self.sleep_lock == 1: EventMesh.debug_log("__lcd_on:sleep_lock:error!") - utime.sleep_ms(200) self.sleep_lock = 1 self.sleep_flag = 0 diff --git a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui.py b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui.py index 841ea823..1232a452 100644 --- a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui.py +++ b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui.py @@ -8367,7 +8367,8 @@ video_img_test = None def jrtc_cb(close_sta): print("jrtc callback:", close_sta) if close_sta == 0 or close_sta == 1: - jrtc.close(0) + pass + # jrtc.close(0) jrtc.set_callback(jrtc_cb) class VedioShowScreen(Screen):#正在视频通话中 # diff --git a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui_health.py b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui_health.py index 0edc12ee..f983b970 100644 --- a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui_health.py +++ b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui_health.py @@ -144,15 +144,15 @@ class HealthScreen(Screen):#健康测量 super().__init__() self.is_sliding = 0 self.meta = health_screen - # setting_language.add_event_cb(lambda e: self.load_screen(e, {"screen": "language"}), lv.EVENT.CLICKED, None) - health_hr_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.health_cb(e, "heartrate")), lv.EVENT.CLICKED, None) - # setting_themeswitch.add_event_cb(lambda e: self.load_screen(e, {"screen": "themeswitch"}), lv.EVENT.CLICKED, None) - health_spo2_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.health_cb(e, "spo2")), lv.EVENT.CLICKED, None) - health_temp_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.health_cb(e, "temperature")), lv.EVENT.CLICKED, None) + # setting_language.add_event_cb(lambda e: self.load_screen(e, {"screen": "language"}), lv.EVENT.SHORT_CLICKED, None) + health_hr_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.health_cb(e, "heartrate")), lv.EVENT.SHORT_CLICKED, None) + # setting_themeswitch.add_event_cb(lambda e: self.load_screen(e, {"screen": "themeswitch"}), lv.EVENT.SHORT_CLICKED, None) + health_spo2_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.health_cb(e, "spo2")), lv.EVENT.SHORT_CLICKED, None) + health_temp_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.health_cb(e, "temperature")), lv.EVENT.SHORT_CLICKED, None) health_hr_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.health_cb(e,"heartrate")), lv.EVENT.PRESSING, None) - # setting_themeswitch.add_event_cb(lambda e: self.load_screen(e, {"screen": "themeswitch"}), lv.EVENT.CLICKED, None) + # setting_themeswitch.add_event_cb(lambda e: self.load_screen(e, {"screen": "themeswitch"}), lv.EVENT.PRESSING, None) health_spo2_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.health_cb(e, "spo2")), lv.EVENT.PRESSING, None) health_temp_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.health_cb(e, "temperature")), lv.EVENT.PRESSING, None) @@ -162,7 +162,7 @@ class HealthScreen(Screen):#健康测量 #print("PRESSING") self.is_sliding += 1 - elif code == lv.EVENT.CLICKED: + 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:#如果是在滑动中则不需要点击事件 diff --git a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui_setting.py b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui_setting.py index b39d460c..338cf007 100644 --- a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui_setting.py +++ b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui_setting.py @@ -1502,7 +1502,7 @@ class totalvolumeScreen(Screen): self.aud.setVolume(self.volum_size) EventMesh.publish("set_volum_size",self.volum_size) # print("self.read_data:size :{}".format(self.read_data)) - + self.aud.stop() self.aud.play(1, 1, 'E:/static/audio_audio_haixiu.mp3') #播放声音 def Close(self):