From: dxy15521469561 <1731678236@qq.com> Date: Mon, 25 Sep 2023 07:22:19 +0000 (+0800) Subject: D10: X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.css?a=commitdiff_plain;h=8f109f91f129964409cf2c7b18396d153dcd640e;p=mirrors%2FASR1603_G5.git D10: 优化bug K01: 菜单滑动变点击事件处理 --- diff --git a/2.sdk/Helios_SDK/services/microPython/lib/lvgl/lv_conf.h b/2.sdk/Helios_SDK/services/microPython/lib/lvgl/lv_conf.h index 1f690280..e46fc58a 100644 --- a/2.sdk/Helios_SDK/services/microPython/lib/lvgl/lv_conf.h +++ b/2.sdk/Helios_SDK/services/microPython/lib/lvgl/lv_conf.h @@ -181,7 +181,7 @@ #define LV_DISP_DEF_REFR_PERIOD 30 /*[ms]*/ /*Input device read period in milliseconds*/ -#define LV_INDEV_DEF_READ_PERIOD 10 /*[ms]*/ +#define LV_INDEV_DEF_READ_PERIOD 30 /*[ms]*/ /*Use a custom tick source that tells the elapsed time in milliseconds. *It removes the need to manually update the tick with `lv_tick_inc()`)*/ diff --git a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/btn_device_ec800m.py b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/btn_device_ec800m.py index cfdced7b..707aa8aa 100644 --- a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/btn_device_ec800m.py +++ b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/btn_device_ec800m.py @@ -39,8 +39,10 @@ class intervManager(Abstract): def __init__(self): self.timer = osTimer() - self.pwk_timer = osTimer() + self.pwk_timer1 = osTimer() + self.pwk_timer2 = osTimer() self.timer1 = osTimer() + self.timer1_sos = osTimer() self.aud = audio.Audio(0) self.aud.set_pa(Pin.GPIO29) self.aud.setVolume(11) @@ -155,6 +157,7 @@ class intervManager(Abstract): EventMesh.subscribe("call_test_event", self.call_test_event)#电话拨进响铃测试 EventMesh.subscribe("dial_out_call_center_cb", self.dial_out_call_center_cb)#电话拨出去 + EventMesh.subscribe("sos_out_call_center_cb", self.sos_out_call_center_cb)#sos拨打 EventMesh.subscribe("close_audio_play", self.close_audio_play)#关闭音频 @@ -181,6 +184,18 @@ class intervManager(Abstract): EventMesh.subscribe("recv_wechat_audio", self.recv_wechat_audio)# + + EventMesh.subscribe("sos_short_press", self.sos_short_press)#sos短按事件 + + + def sos_short_press(self,args,msg): + EventMesh.publish("interup_call_event")#如果在电话中强制挂断电话 + EventMesh.publish("close_audio_play")#强制关闭音频文件播放 + EventMesh.publish("STOP_FIND_WATCH")#停止查找设备 + EventMesh.publish("STOP_ALARM_RING")#停止闹钟响铃 + EventMesh.publish("play_cur_time_event")#播报当前时间 + #播报当前时间 + def recv_wechat_audio(self,event,str_data):#接收微聊语音播放 if self.press_btn == 0: str_data = 'mp3files={}.mp3'.format(audio_buf.index("R_WECHAT_RECV")) @@ -191,12 +206,12 @@ class intervManager(Abstract): def audio_event_queue_thread(self): while True: data = self.audio_event_queue.get() - #print("interInfo_queue_thread:data = {}".format(data)) + #print("audio_event_queue:data = {}".format(data)) if data != None: try: data["func"](data["data"]) except Exception as e: - print("interInfo_queue_thread:ERROR:{}".format(e)) + print("audio_event_queue:ERROR:{}".format(e)) usys.print_exception(e) def publish_message_event_audio(self,event,msg): self.audio_event_queue.put(msg) @@ -208,13 +223,14 @@ class intervManager(Abstract): def play_audio_file_do(self,data):#msg 拼接的路径文件 open_power = EventMesh.publish("get_power_on_state")#获取开机标识 power_off = EventMesh.publish("get_power_off_state")#获取开机标识 + print("play_audio_file",data[0],data[1],open_power,power_off)#路径 str_data[1] 是否需要被打断 if open_power != None: if open_power == 0: return if power_off != None: if power_off == 1: return - print("play_audio_file",data[0],data[1])#路径 str_data[1] 是否需要被打断 + print("play_audio_file end",data[0],data[1])#路径 str_data[1] 是否需要被打断 self.aud.montage_play('U:/static/audio.bin',1,data[1],data[0]) @@ -250,12 +266,12 @@ class intervManager(Abstract): EventMesh.publish("publish_message_event_interInfo",{"func":self.Alarm_timer_cb,"data":0}) def powe_resatrt_down_fun(self, *args): - EventMesh.publish("close_all_led")#关闭所有的灯 + EventMesh.publish("close_led_pin") self.aud.stopPlayStream() Power.powerRestart() def power_down_fun(self, *args): - EventMesh.publish("close_all_led")#关闭所有的灯 + EventMesh.publish("close_led_pin") self.aud.stopPlayStream() Power.powerDown() @@ -275,7 +291,7 @@ class intervManager(Abstract): def close_timer_all(self, event, msg): - self.timer.stop() + print("close_timer_all!!!!!!!!!!!!!!!!!!!") open_power = EventMesh.publish("get_power_on_state")#获取开机标识 power_off = EventMesh.publish("get_power_off_state")#获取开机标识 if open_power != None: @@ -286,6 +302,8 @@ class intervManager(Abstract): return self.aud.stopPlayStream() + self.timer.stop() + def answer_call_event(self, event, msg): # @@ -355,7 +373,33 @@ class intervManager(Abstract): self.timer1.start(2000, 0, self.time_out_phone) str_data = 'mp3files={}.mp3'.format(audio_buf.index("R_SOS_ALERT")) EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件 + + def sos_out_call_center_cb(self, event, msg):#sos电话呼叫中 + open_power = EventMesh.publish("get_power_on_state")#获取开机标识 + if open_power != None: + if open_power == 0: + return + power_off = EventMesh.publish("get_power_off_state")#获取开机标识 + if power_off != None: + if power_off == 1: + return + print("sos_out_call_center_cb",msg) + if self.call_state == 0: + EventMesh.publish("close_timer_all")# + if msg == None: + str_data = 'mp3files={}.mp3'.format(audio_buf.index("R_NO_SET_SOS_DIAL")) + EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件 + # EventMesh.publish("play_audio_file",str_data)#获取播放音频文件('U:/static/audio.bin',1,1,str_data) + else: + self.timer1_sos.start(30000, 0, self.sos_time_out_phone) + str_data = 'mp3files={}.mp3'.format(audio_buf.index("R_SOS_ALERT")) + EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件 + def sos_time_out_phone(self, msg):#30s超时未打通或者信号不好则重新拨打 + sos_flag = EventMesh.publish("get_sos_flag") + if sos_flag == 1: + if self.call_state == 0: + EventMesh.publish("set_sos_info_call") def time_out_phone(self, msg):#电话拨出去 voiceCall.callStart(self.phone_num) @@ -632,37 +676,38 @@ class intervManager(Abstract): if msg == 1: self.usbState = msg - + str_buf = [1,1,10,led_mode.LONG_LIGHT_RED,4,2,led_mode.CHARGE_IN_MODE] + EventMesh.publish("set_led_time_arg",str_buf)# if flag == 3 or flag == 1 or flag == 0:#电话通话中 或者呼叫中挂断中断 EventMesh.publish("close_timer_all")# str_data = 'mp3files={}.mp3'.format(audio_buf.index("R_CHARGE_IN")) EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data) - - EventMesh.publish("set_led_time_arg",None)# print("charge R_CHARGE_IN") elif msg == 2: self.usbState = msg + EventMesh.publish("stop_led_timer")#设置参数 + # EventMesh.publish("set_led_time_arg",[0,1000,1,led_mode.FLASH_LIGHT_GREEN,led_mode.DEFAULT_LONG_LIGHT_MODE,led_mode.CHARGE_OUT_MODE])#測量成功 + EventMesh.publish("set_led_time_arg",[1,1,0,led_mode.FLASH_LIGHT_GREEN,4,4,led_mode.CHARGE_OUT_MODE])#測量成功 print("charge R_CHARGE_OUT") if flag == 3 or flag == 1 or flag == 0:#电话通话中 或者呼叫中挂断中断 EventMesh.publish("close_timer_all")# str_data = 'mp3files={}.mp3'.format(audio_buf.index("R_CHARGE_OUT")) EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data) - EventMesh.publish("stop_led_timer")#设置参数 - # EventMesh.publish("set_led_time_arg",[0,1000,1,led_mode.FLASH_LIGHT_GREEN,led_mode.DEFAULT_LONG_LIGHT_MODE,led_mode.CHARGE_OUT_MODE])#測量成功 - EventMesh.publish("set_led_time_arg",[1,1,0,led_mode.FLASH_LIGHT_GREEN,4,4,led_mode.CHARGE_OUT_MODE])#測量成功 + elif msg == 3: self.usbState = msg print("charge full") - + str_buf = [1,1,10,led_mode.LONG_LIGHT_GREEN,4,2,led_mode.CHARGE_FULL_MODE] + EventMesh.publish("set_led_time_arg",str_buf)# if flag == 3 or flag == 1 or flag == 0:#电话通话中 或者呼叫中挂断中断 EventMesh.publish("close_timer_all")# str_data = 'mp3files={}.mp3'.format(audio_buf.index("R_CHARGE_FULL")) EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data) - EventMesh.publish("set_led_time_arg",None)# + def get_usb(self, event, msg): @@ -671,13 +716,11 @@ class intervManager(Abstract): def open_power_on(self, event, msg): #msg 1 开机 2 关机 3 重启 4恢复出厂设置 EventMesh.publish("close_timer_all")# if msg == 1: - self.power_on_flag = 1 - str_data = 'mp3files={}.mp3'.format(audio_buf.index("R_POWER_OFF_1")) - EventMesh.publish("play_audio_file",[str_data,0])#获取播放音频文件('U:/static/audio.bin',1,1,str_data) - EventMesh.publish("set_led_time_arg",[1,2,4*8,led_mode.FLASH_LIGHT_GREEN,4,2,led_mode.OTHER_MEASURE_MODE])#測量成功 - # EventMesh.publish("set_led_time_arg",[1000,200,10,led_mode.FLASH_LIGHT_GREEN,led_mode.DEFAULT_LONG_LIGHT_MODE,led_mode.OTHER_MEASURE_MODE])#设置参数 - self.power_on_flag = 0 - self.pwk_timer.start(5000,0,self.power_on_cb) + + # str_data = 'mp3files={}.mp3'.format(audio_buf.index("R_POWER_OFF_1")) + # EventMesh.publish("play_audio_file",[str_data,0])#获取播放音频文件('U:/static/audio.bin',1,1,str_data) + self.pwk_timer1.start(3000,0,self.power_on_audio_cb) + elif msg == 2: flag = EventMesh.publish("get_call_state") if flag != 0:#电话呼叫中 @@ -687,21 +730,18 @@ class intervManager(Abstract): if step != 0: EventMesh.publish("set_storage_config",["old_step",step]) date_tmp = utime.localtime() - EventMesh.publish("set_storage_config",["old_time",date_tmp])#关机保存一个是时间 - str_data = 'mp3files={}.mp3'.format(audio_buf.index("R_POWER_OFF_1")) + time_tmp = utime.mktime(date_tmp) + EventMesh.publish("set_storage_config",["old_time",time_tmp])#关机保存一个是时间 - EventMesh.publish("play_audio_file",[str_data,0])#获取播放音频文件('U:/static/audio.bin',1,1,str_data) - EventMesh.publish("set_led_time_arg",[1,2,4*8,led_mode.FLASH_LIGHT_RED,4,2,led_mode.OTHER_MEASURE_MODE])# - self.power_off = 1 - # EventMesh.publish("set_led_time_arg",[1000,200,10,led_mode.FLASH_LIGHT_RED,led_mode.DEFAULT_LONG_LIGHT_MODE,led_mode.OTHER_MEASURE_MODE])# - self.timer.start(6000,0,self.publish_power_down_event_cb) + self.pwk_timer1.start(3000,0,self.power_off_audio_cb) elif msg == 3: flag = EventMesh.publish("get_call_state") if flag != 0:#电话呼叫中 voiceCall.callEnd() - str_data = 'mp3files={}.mp3'.format(audio_buf.index("R_POWER_OFF_1")) - EventMesh.publish("play_audio_file",[str_data,0])#获取播放音频文件('U:/static/audio.bin',1,1,str_data) - # EventMesh.publish("stop_led_timer")#设置参数 + self.aud.play(1,0,'U:/static/R_POWER_OFF_1.mp3') + # str_data = 'mp3files={}.mp3'.format(audio_buf.index("R_POWER_OFF_1")) + # EventMesh.publish("play_audio_file",[str_data,0])#获取播放音频文件('U:/static/audio.bin',1,1,str_data) + EventMesh.publish("stop_led_timer")#设置参数 self.power_off = 1 self.timer.start(8000,0,self.publish_resatrt_down_event_cb) #EventMesh.publish("set_led_time_arg",[3000,4000,1,led_mode.LONG_LIGHT_GREEN,led_mode.DEFAULT_LONG_LIGHT_MODE])# @@ -728,17 +768,44 @@ class intervManager(Abstract): def power_on_cb(self, msg): #msg 开机标识 self.power_on_flag = 1 + def clear_power_on_cb(self, msg): #msg 开机标识 + self.power_on_flag = 0 + def power_on_audio_cb(self, msg): + self.power_on_flag = 1 + print("power_on_audio_cb") + self.aud.play(1,0,'U:/static/R_POWER_OFF_1.mp3') + # str_data = 'mp3files={}.mp3'.format(audio_buf.index("R_POWER_OFF_1")) + # EventMesh.publish("play_audio_file",[str_data,0])#获取播放音频文件('U:/static/audio.bin',1,1,str_data) + EventMesh.publish("set_led_time_arg",[1,2,4*8,led_mode.FLASH_LIGHT_GREEN,4,2,led_mode.OTHER_MEASURE_MODE])#測量成功 + # EventMesh.publish("set_led_time_arg",[1000,200,10,led_mode.FLASH_LIGHT_GREEN,led_mode.DEFAULT_LONG_LIGHT_MODE,led_mode.OTHER_MEASURE_MODE])#设置参数 + self.pwk_timer1.start(2000,0,self.clear_power_on_cb) + self.pwk_timer2.start(6000,0,self.power_on_cb) + def get_power_on_state(self, event, msg): return self.power_on_flag + def power_off_audio_cb(self, msg): + print("power_off_audio_cb") + self.aud.play(1,0,'U:/static/R_POWER_OFF_1.mp3') + # str_data = 'mp3files={}.mp3'.format(audio_buf.index("R_POWER_OFF_1")) + # EventMesh.publish("play_audio_file",[str_data,0])#获取播放音频文件('U:/static/audio.bin',1,1,str_data) + EventMesh.publish("set_led_time_arg",[1,2,4*8,led_mode.FLASH_LIGHT_RED,4,2,led_mode.POWER_OFF_MODE])# + + self.pwk_timer1.start(2000,0,self.set_power_off_cb) + self.pwk_timer2.start(7000,0,self.publish_power_down_event_cb) + + def set_power_off_cb(self, msg): + self.power_off = 1 + def get_power_off_state(self, event, msg): return self.power_off - def close_hr_sop2(self, event, msg): #msg 关闭心率血氧测试 + def close_hr_sop2(self, event, msg): #msg 关闭心率血氧体温测试 get_hr_state = EventMesh.publish("get_hr_state") get_spo2_state = EventMesh.publish("get_spo2_state") - if get_hr_state != None and get_spo2_state != None: + get_temp_state = EventMesh.publish("get_temp_state") + if get_hr_state != None or get_spo2_state != None or get_temp_state != None: if get_hr_state != 0: EventMesh.publish("set_hr_state",0)#2代表后台进入测试,定时测心率 1ui界面测试洗心率 print("sstop hr") @@ -747,6 +814,10 @@ class intervManager(Abstract): print("stop spo2") EventMesh.publish("set_spo2_state",0)#2代表后台进入测试 EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN) + if get_temp_state != 0: + print("stop temp") + EventMesh.publish("set_temp_state",0) + EventMesh.publish(constants.EVENT.STOP_TEMP)#手动体温测试 def set_manual_measure_mode(self, event, msg): #手动测试 1心率 2 血氧 3 体温 get_hr_state = EventMesh.publish("get_hr_state") @@ -968,6 +1039,7 @@ class intervManager(Abstract): flag = EventMesh.publish("get_call_state") if flag != 2:#电话通话中 或者呼叫中挂断中断 EventMesh.publish("close_timer_all")# + # EventMesh.publish("stop_led_timer")#设置参数 mode = 0 signal = EventMesh.publish("screen_get_sig") if signal != None: @@ -979,23 +1051,21 @@ class intervManager(Abstract): else:#未插卡 mode = 3 if mode == 1:#白色灯 - EventMesh.publish("set_led_time_arg",[1,1,6,led_mode.FLASH_LIGHT_WHITE,4,2,led_mode.OTHER_MEASURE_MODE])#測量成功 + EventMesh.publish("set_led_time_arg",[1,2,10,led_mode.FLASH_LIGHT_WHITE,10,5,led_mode.OTHER_MEASURE_MODE])#測量成功 # EventMesh.publish("set_led_time_arg",[1000,400,1,led_mode.FLASH_LIGHT_WHITE,led_mode.DEFAULT_LONG_LIGHT_MODE,led_mode.OTHER_MEASURE_MODE])#设置参数 str_data = 'mp3files={}.mp3'.format(audio_buf.index("R_SIM_FAILE")) EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data) pass elif mode == 2:#蓝灯色灯 - EventMesh.publish("set_led_time_arg",[1,1,6,led_mode.FLASH_LIGHT_GREEN,4,2,led_mode.OTHER_MEASURE_MODE])#測量成功 + EventMesh.publish("set_led_time_arg",[1,2,10,led_mode.FLASH_LIGHT_GREEN,10,5,led_mode.OTHER_MEASURE_MODE])#測量成功 # EventMesh.publish("set_led_time_arg",[1000,400,1,led_mode.FLASH_LIGHT_GREEN,led_mode.DEFAULT_LONG_LIGHT_MODE,led_mode.OTHER_MEASURE_MODE])#设置参数 str_data = 'mp3files={}.mp3'.format(audio_buf.index("R_SIM_CONNECT")) EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data) pass elif mode == 3:#红灯闪烁 + EventMesh.publish("set_led_time_arg",[1,2,10,led_mode.FLASH_LIGHT_RED,10,5,led_mode.OTHER_MEASURE_MODE])#測量成功 str_data = 'mp3files={}.mp3'.format(audio_buf.index("R_NO_SIM")) EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data) - EventMesh.publish("set_led_time_arg",[1,1,6,led_mode.FLASH_LIGHT_RED,4,2,led_mode.OTHER_MEASURE_MODE])#測量成功 - # EventMesh.publish("set_led_time_arg",[1000,400,1,led_mode.FLASH_LIGHT_RED,led_mode.DEFAULT_LONG_LIGHT_MODE,led_mode.OTHER_MEASURE_MODE])#设置参数 - pass pass def dial_sos_phone(self, event, msg): #拨打紧急求助电话 @@ -1010,13 +1080,13 @@ class intervManager(Abstract): if sos_number != None: if len(sos_number) != 0: EventMesh.publish("close_timer_all")# - EventMesh.publish("save_phonename",sos_number[0]) - EventMesh.publish("save_phonenum",sos_number[0]) - EventMesh.publish("set_sos_num",0) + # EventMesh.publish("save_phonename",sos_number[0]) + # EventMesh.publish("save_phonenum",sos_number[0]) + # EventMesh.publish("set_sos_num",0) EventMesh.publish("set_sos_flag",1) - str_data = 'mp3files={}.mp3'.format(audio_buf.index("R_SOS_ALERT")) - EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件 - voiceCall.callStart(sos_number[0]) + # str_data = 'mp3files={}.mp3'.format(audio_buf.index("R_SOS_ALERT")) + # EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件 + # voiceCall.callStart(sos_number[0]) else:#未设置sos紧急求助号码 EventMesh.publish("close_timer_all")# str_data = 'mp3files={}.mp3'.format(audio_buf.index("R_NO_SET_SOS_DIAL")) @@ -1030,7 +1100,11 @@ class intervManager(Abstract): EventMesh.publish("close_timer_all")# str_data = 'mp3files={}.mp3'.format(audio_buf.index("R_NO_SIM")) EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data) - + + + + + def send_find_watch(self, event, msg): #发送查找设备指令 open_power = EventMesh.publish("get_power_on_state")#获取开机标识 if open_power != None: @@ -1097,6 +1171,7 @@ class intervManager(Abstract): if self.alarm_state == 1: self.alarm_state = 0 self.alarm_timer_count = 0 + # EventMesh.publish("stop_led_timer")#设置参数 self.aud.stopPlayStream() #停止播放 self.timer.stop() @@ -1510,7 +1585,7 @@ class intervManager(Abstract): time_tmp = utime.mktime(date_tmp) if state != None: if state == 1: - EventMesh.publish("set_led_time_arg",[1,1,4,led_mode.FLASH_LIGHT_GREEN,2,1,led_mode.OTHER_MEASURE_MODE])#測量成功 + EventMesh.publish("set_led_time_arg",[1,2,8,led_mode.FLASH_LIGHT_GREEN,8,4,led_mode.OTHER_MEASURE_MODE])#測量成功 # EventMesh.publish("set_led_time_arg",[1000,400,1,led_mode.FLASH_LIGHT_GREEN,led_mode.DEFAULT_LONG_LIGHT_MODE,led_mode.OTHER_MEASURE_MODE])#设置参数 if self.updateTime == 0: self.updateTime = time_tmp @@ -1585,6 +1660,9 @@ class BtnDevice(Abstract): self.btnInfo_queue = Queue() _thread.start_new_thread(self.btnInfo_queue_thread, ()) EventMesh.subscribe("publish_message_event_btnInfo",self.publish_message_event_btnInfo) + + EventMesh.subscribe("close_wechat_btn_timer", self.close_wechat_btn_timer)#来电强制关闭微聊语音 + def btnInfo_queue_thread(self): while True: data = self.btnInfo_queue.get() @@ -1613,8 +1691,7 @@ class BtnDevice(Abstract): def post_processor_after_instantiation(self): # self.keypad.init() # self.keypad.set_callback(self.key_callback) - EventMesh.subscribe("sos_short_press", self.sos_short_press)#sos短按事件 - EventMesh.subscribe("close_wechat_btn_timer", self.close_wechat_btn_timer)#来电强制关闭微聊语音 + self.pk.powerKeyEventRegister(self.powerKey_callback) self.extint = ExtInt(ExtInt.GPIO26, ExtInt.IRQ_RISING_FALLING, ExtInt.PULL_DISABLE, self.pwk_extint_cb) @@ -1628,16 +1705,6 @@ class BtnDevice(Abstract): key19 = Pin(Pin.GPIO19, Pin.OUT, Pin.PULL_PU, 0) - def sos_short_press(self,args,msg): - EventMesh.publish("interup_call_event")#如果在电话中强制挂断电话 - EventMesh.publish("close_audio_play")#强制关闭音频文件播放 - EventMesh.publish("stop_led_timer")#设置参数关闭定时器 同时也关闭所有的灯再开相对应的灯 - EventMesh.publish("STOP_FIND_WATCH")#停止查找设备 - EventMesh.publish("STOP_ALARM_RING")#停止闹钟响铃 - EventMesh.publish("play_cur_time_event")#播报当前时间 - #播报当前时间 - - def pwk_extint_cb(self,args):#侧边按键 self.GPIO26_status = self.extint.read_level() print('### key20_extint_cb {} self.GPIO26_status :{}'.format(args,self.GPIO26_status)) # args[0]:gpio号 args[1]:上升沿或下降沿 @@ -1695,7 +1762,8 @@ class BtnDevice(Abstract): EventMesh.publish("publish_message_event_btnInfo",{"func":self.pwKey_timeout_cb,"data":0}) def pwKey_timeout_cb(self, data):#侧边按键 - if self.pwKey_press_count >= 1: + if self.pwKey_press_count == 1: + EventMesh.publish("stop_led_timer")#设置参数 EventMesh.publish("dialing_out_event")#电话呼叫中voiceCall.callEnd() self.pwKey_press_count = 0 # EventMesh.publish(constants.EVENT.START_LOCATION) #开始定位 @@ -1708,7 +1776,7 @@ class BtnDevice(Abstract): EventMesh.publish("close_hr_sop2")# flag = EventMesh.publish("get_call_state") if flag != 1: - EventMesh.publish("set_sim_mode")#播報imei号 + EventMesh.publish("set_sim_mode")# def sosKey_extint_cb(self,args): power_off = EventMesh.publish("get_power_off_state")#获取关机标识 @@ -1763,35 +1831,40 @@ class BtnDevice(Abstract): EventMesh.publish("publish_message_event_btnInfo",{"func":self.sosKey_timeout_cb,"data":0}) def sosKey_timeout_cb(self, data):# print("sosKey_press_count!!!!!!!!!!!!!! ",self.sosKey_press_count) - if self.sosKey_press_count >= 10:# + if self.sosKey_press_count == 10:# self.sosKey_press_count = 0 # EventMesh.publish("reset_factor_setiing")# pass - elif self.sosKey_press_count >= 6:# + elif self.sosKey_press_count == 6:# self.sosKey_press_count = 0 + EventMesh.publish("stop_led_timer")#设置参数 EventMesh.publish("set_manual_measure_mode",2)#测量血氧 # EventMesh.publish("play_imei_event")#播報imei号 pass - elif self.sosKey_press_count >= 5: - self.sosKey_press_count = 0 - EventMesh.publish("set_manual_measure_mode",3)#测量体温 - pass - elif self.sosKey_press_count >= 4:#拨打app快捷号码 + # elif self.sosKey_press_count >= 5:#功能暂时屏蔽 + # self.sosKey_press_count = 0 + # # EventMesh.publish("stop_led_timer")#设置参数 + # # EventMesh.publish("set_manual_measure_mode",3)#测量体温 + # pass + elif self.sosKey_press_count == 4:#拨打app快捷号码 self.sosKey_press_count = 0 + EventMesh.publish("stop_led_timer")#设置参数 EventMesh.publish("play_center_phone")#拨打快捷号码 # EventMesh.publish("call_phonebook_three_call") pass - elif self.sosKey_press_count >= 3:#测试心率 + elif self.sosKey_press_count == 3:#测试心率 self.sosKey_press_count = 0 + EventMesh.publish("stop_led_timer")#设置参数 EventMesh.publish("set_manual_measure_mode",1)# pass - elif self.sosKey_press_count >= 2:#播报当前步数 + elif self.sosKey_press_count == 2:#播报当前步数 self.sosKey_press_count = 0 + EventMesh.publish("stop_led_timer")#设置参数 EventMesh.publish("play_cur_step_event")# pass - elif self.sosKey_press_count >= 1:#挂断来电 短语音播报 + elif self.sosKey_press_count == 1:#挂断来电 短语音播报 self.sosKey_press_count = 0 - + EventMesh.publish("stop_led_timer")#设置参数 # EventMesh.publish("call_test_event") EventMesh.publish("sos_short_press")#sos短按事件 pass @@ -1921,29 +1994,35 @@ class BtnDevice(Abstract): def wechatKey_timeout_cb(self,data):#微聊键 print("wechatKey_timeout_cb!!!!!!!!!!!!!! ",self.wechatKey_press_count) - if self.wechatKey_press_count >= 10:#短按十次解绑app + if self.wechatKey_press_count == 10:#短按十次解绑app self.wechatKey_press_count = 0 + EventMesh.publish("stop_led_timer")#设置参数 EventMesh.publish("open_power_on", 4)#恢复出厂 pass - elif self.wechatKey_press_count >= 6:#短按六次播报imei号 + elif self.wechatKey_press_count == 6:#短按六次播报imei号 self.wechatKey_press_count = 0 + EventMesh.publish("stop_led_timer")#设置参数 EventMesh.publish("play_imei_event")#播報imei号 pass - elif self.wechatKey_press_count >= 4:#拨打通讯录号码三 + elif self.wechatKey_press_count == 4:#拨打通讯录号码三 self.wechatKey_press_count = 0 + EventMesh.publish("stop_led_timer")#设置参数 EventMesh.publish("call_phonebook_three_call") pass - elif self.wechatKey_press_count >= 3:#拨打通讯录号码二 + elif self.wechatKey_press_count == 3:#拨打通讯录号码二 self.wechatKey_press_count = 0 + EventMesh.publish("stop_led_timer")#设置参数 EventMesh.publish("call_phonebook_two_call") pass - elif self.wechatKey_press_count >= 2:#拨打通讯录号码一 + elif self.wechatKey_press_count == 2:#拨打通讯录号码一 + EventMesh.publish("stop_led_timer")#设置参数 self.wechatKey_press_count = 0 EventMesh.publish("call_phonebook_one_call") # EventMesh.publish("interup_call_event")# pass - elif self.wechatKey_press_count >= 1:#播放最后收到的语音 + elif self.wechatKey_press_count == 1:#播放最后收到的语音 self.wechatKey_press_count = 0 + EventMesh.publish("stop_led_timer")#设置参数 call_state = EventMesh.publish("get_call_state") if call_state == 2:#电话拨进需要接听 EventMesh.publish("answer_call_event")#接听电话 diff --git a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/led.py b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/led.py index 38e92564..cdc0a4a1 100644 --- a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/led.py +++ b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/led.py @@ -94,6 +94,7 @@ class led_mode: CHARGE_IN_MODE = 203 #充电模式 CHARGE_OUT_MODE = 204 #充电已移出 CHARGE_FULL_MODE = 205 #充电已满 + POWER_OFF_MODE = 206 #关机模式 @@ -183,9 +184,11 @@ class ledEventManager(Abstract):#灯事件 EventMesh.publish("set_led_time_arg",[1,2,10*70*2,led_mode.FLASH_LIGHT_RED_GREEN,10,5,led_mode.HEALTH_LED_MODE])#測量成功 # EventMesh.publish("set_led_time_arg",[1000,200,300,led_mode.FLASH_LIGHT_RED_GREEN,led_mode.DEFAULT_LONG_LIGHT_MODE,led_mode.HEALTH_LED_MODE])#開始測量 elif msg == 2: - EventMesh.publish("set_led_time_arg",[1,1,30,led_mode.FLASH_LIGHT_GREEN,31,10*3,led_mode.OTHER_MEASURE_MODE])#測量成功 + EventMesh.publish("set_led_time_arg",[1,2,60,led_mode.FLASH_LIGHT_GREEN,60,30,led_mode.OTHER_MEASURE_MODE])#測量成功 # EventMesh.publish("set_led_time_arg",[3000,1000,1,led_mode.LONG_LIGHT_GREEN,led_mode.DEFAULT_LONG_LIGHT_MODE,led_mode.OTHER_MEASURE_MODE])#測量成功 - elif msg == 3: + elif msg == 3:#测量失败 + EventMesh.publish("stop_led_timer") + # EventMesh.publish("set_led_time_arg",[1,1,1,led_mode.FLASH_LIGHT_RED,31,10*3,led_mode.OTHER_MEASURE_MODE])#測量成功 pass # EventMesh.publish("set_led_time_arg",[1,1,30,led_mode.FLASH_LIGHT_RED,31,10*3,led_mode.OTHER_MEASURE_MODE])#测量失败 #加音频文件 @@ -217,6 +220,7 @@ class ledEventManager(Abstract):#灯事件 if self.timer_state == 0: self.timer_state = 1 self.timer.stop() + # self.timer.start(LED_TIMER_OUT,1,self.led_fun_cb) self.timer.start(LED_TIMER_OUT,1,self.publish_led_event_cb) @@ -234,76 +238,73 @@ class ledEventManager(Abstract):#灯事件 if power_off == 1: return usb_in = EventMesh.publish("get_usb")# - # print("usb_in",usb_in) - if usb_in != None: - if usb_in == 1 or usb_in == 3:#正在充电或者充电已满都不要被打断 - if self.timer_state == 1: - self.timer_state = 0 - self.timer.stop() - if usb_in == 1: - if self.working_led_mode != led_mode.CHARGE_IN_MODE: - str_buf = [1,1,10,led_mode.LONG_LIGHT_RED,4,2,led_mode.CHARGE_IN_MODE] - self.open_timer(str_buf) - self.working_led_mode = led_mode.CHARGE_IN_MODE - - elif usb_in == 3: - if self.working_led_mode != led_mode.CHARGE_FULL_MODE: - str_buf = [1,1,10,led_mode.LONG_LIGHT_GREEN,4,2,led_mode.CHARGE_FULL_MODE] - self.open_timer(str_buf) - self.working_led_mode = led_mode.CHARGE_FULL_MODE - - return - else: - if msg[5] != led_mode.HEALTH_LED_MODE: - self.working_led_mode = led_mode.OTHER_MEASURE_MODE - - get_hr_state = EventMesh.publish("get_hr_state") - get_spo2_state = EventMesh.publish("get_spo2_state") - - wechat_state = EventMesh.publish("get_wechat_state") - temp_state = EventMesh.publish("get_spo2_state") - print("get_hr_state",get_hr_state,get_spo2_state,temp_state,wechat_state,self.working_led_mode) - if wechat_state != None: #获取微聊状态 - if wechat_state == 1: - if self.working_led_mode != led_mode.WECHAT_LED_MODE:#如果不在亮微聊模式需要亮微聊模式 + if msg != None: + if msg[6] != led_mode.POWER_OFF_MODE:#插入usb关机以防不亮红绿灯 + # print("usb_in",usb_in) + if usb_in != None: + if usb_in == 1 or usb_in == 3:#正在充电或者充电已满都不要被打断 + if self.timer_state == 1: self.timer_state = 0 self.timer.stop() - str_buf = [1,1,1,led_mode.LONG_LIGHT_GREEN,4,2,led_mode.WECHAT_LED_MODE] - self.open_timer(str_buf) - self.working_led_mode = led_mode.WECHAT_LED_MODE - return - else: - return - - else: - self.wechat_btn = 0 - if get_hr_state != 0 or get_spo2_state != 0 or temp_state != 0 :#心率血氧优先级高 - if self.working_led_mode != led_mode.HEALTH_LED_MODE:#如果不在亮微聊模式需要亮微聊模式 - print("set_hr_blood_led!!!!!!!!!!") - str_buf = [1,2,10*70*2,led_mode.FLASH_LIGHT_RED_GREEN,10,5,led_mode.HEALTH_LED_MODE]#測量成功 - self.timer_state = 0 - self.timer.stop() + if usb_in == 1: + if self.working_led_mode != led_mode.CHARGE_IN_MODE: + str_buf = [1,1,10,led_mode.LONG_LIGHT_RED,4,2,led_mode.CHARGE_IN_MODE] self.open_timer(str_buf) - self.working_led_mode = led_mode.HEALTH_LED_MODE - return - else: - print("set_hr_blood_led stop!!!!!!!!!!") - return - if get_hr_state == 0 and get_spo2_state == 0 and temp_state == 0: + self.working_led_mode = led_mode.CHARGE_IN_MODE + + elif usb_in == 3: + if self.working_led_mode != led_mode.CHARGE_FULL_MODE: + str_buf = [1,1,10,led_mode.LONG_LIGHT_GREEN,4,2,led_mode.CHARGE_FULL_MODE] + self.open_timer(str_buf) + self.working_led_mode = led_mode.CHARGE_FULL_MODE + + return + else: + if msg[5] != led_mode.HEALTH_LED_MODE: self.working_led_mode = led_mode.OTHER_MEASURE_MODE - + + get_hr_state = EventMesh.publish("get_hr_state") + get_spo2_state = EventMesh.publish("get_spo2_state") + + wechat_state = EventMesh.publish("get_wechat_state") + temp_state = EventMesh.publish("get_temp_state") + print("get_hr_state",get_hr_state,get_spo2_state,temp_state,wechat_state,self.working_led_mode) + if wechat_state != None: #获取微聊状态 + if wechat_state == 1: + if self.working_led_mode != led_mode.WECHAT_LED_MODE:#如果不在亮微聊模式需要亮微聊模式 + self.timer_state = 0 + self.timer.stop() + str_buf = [1,1,1,led_mode.LONG_LIGHT_GREEN,4,2,led_mode.WECHAT_LED_MODE] + self.open_timer(str_buf) + self.working_led_mode = led_mode.WECHAT_LED_MODE + return + else: + return + + else: + self.wechat_btn = 0 + if get_hr_state != 0 or get_spo2_state != 0 or temp_state != 0 :#心率血氧优先级高 + if self.working_led_mode != led_mode.HEALTH_LED_MODE:#如果不在亮微聊模式需要亮微聊模式 + print("set_hr_blood_led!!!!!!!!!!") + str_buf = [1,2,10*70*2,led_mode.FLASH_LIGHT_RED_GREEN,10,5,led_mode.HEALTH_LED_MODE]#測量成功 + self.timer_state = 0 + self.timer.stop() + self.open_timer(str_buf) + self.working_led_mode = led_mode.HEALTH_LED_MODE + return + else: + print("set_hr_blood_led stop!!!!!!!!!!") + return + if get_hr_state == 0 and get_spo2_state == 0 and temp_state == 0: + self.working_led_mode = led_mode.OTHER_MEASURE_MODE + self.open_timer(msg) - def stop_led_timer(self, event, msg): - open_power = EventMesh.publish("get_power_on_state")#获取开机标识 - if open_power != None: - if open_power == 0: - return - EventMesh.publish("close_all_led")#关闭所有的灯 + # EventMesh.publish("set_led_time_arg",[1,2,2*300,led_mode.FLASH_LIGHT_RED_GREEN,2,1,led_mode.HEALTH_LED_MODE])#測量成功 def led_fun_cb(self, data):# - if self.led_enable ==0 and self.led_total_time == 0: + if self.led_enable == 0 or self.led_total_time == 0: return # print("self.long_count",self.long_count) if self.led_total_time != 0: @@ -319,20 +320,20 @@ class ledEventManager(Abstract):#灯事件 else: EventMesh.publish("stop_led_timer")#关闭所有的灯 elif self.led_mode == 2: - self.long_count+=1 - if self.long_count % (self.led_open_time) < self.led_close_time: # 4*cnt cnt 多少次 4 开启时间保护关闭时间 2 关闭时间 100ms 4-2关闭时间为200ms 开启时间也为200ms + # print("led red!!!!!!!") + + if self.long_count % (self.led_open_time) <= self.led_close_time: # 4*cnt cnt 多少次 4 开启时间保护关闭时间 2 关闭时间 100ms 4-2关闭时间为200ms 开启时间也为200ms close_led_green() close_led_white() open_led_red() - pass else: close_led_green() close_led_white() close_led_red() - pass - if self.long_count >= self.led_total_time:#大于总的时间 4 + if self.long_count >= self.led_total_time-1:#大于总的时间 4 EventMesh.publish("stop_led_timer")#设置参数 - pass + return + self.long_count+=1 #绿灯闪烁 elif self.long_light_mode == led_mode.FLASH_LIGHT_GREEN:# if self.led_mode == 1:#长亮时间限制 @@ -348,8 +349,8 @@ class ledEventManager(Abstract):#灯事件 elif self.led_mode == 2: - self.long_count+=1 - if self.long_count % (self.led_open_time) < self.led_close_time: # 4*cnt cnt 多少次 4 开启时间保护关闭时间 2 关闭时间 100ms 4-2关闭时间为200ms 开启时间也为200ms + + if self.long_count % (self.led_open_time) <= self.led_close_time: # 4*cnt cnt 多少次 4 开启时间保护关闭时间 2 关闭时间 100ms 4-2关闭时间为200ms 开启时间也为200ms close_led_red() close_led_white() open_led_green() @@ -359,9 +360,11 @@ class ledEventManager(Abstract):#灯事件 close_led_white() close_led_red() pass - if self.long_count >= self.led_total_time:#大于总的时间 4 + + if self.long_count >= self.led_total_time-1:#大于总的时间 4 EventMesh.publish("stop_led_timer")#设置参数 - pass + return + self.long_count+=1 #蓝灯闪烁 暂时是白色灯 elif self.long_light_mode == led_mode.FLASH_LIGHT_WHITE:# if self.led_mode == 1:#长亮时间限制 @@ -374,8 +377,7 @@ class ledEventManager(Abstract):#灯事件 else: EventMesh.publish("stop_led_timer")#关闭所有的灯 elif self.led_mode == 2: - self.long_count+=1 - if self.long_count % (self.led_open_time) < self.led_close_time: # 4*cnt cnt 多少次 4 开启时间保护关闭时间 2 关闭时间 100ms 4-2关闭时间为200ms 开启时间也为200ms + if self.long_count % (self.led_open_time) <= self.led_close_time: # 4*cnt cnt 多少次 4 开启时间保护关闭时间 2 关闭时间 100ms 4-2关闭时间为200ms 开启时间也为200ms close_led_red() close_led_green() open_led_white() @@ -385,14 +387,15 @@ class ledEventManager(Abstract):#灯事件 close_led_white() close_led_red() pass - if self.long_count >= self.led_total_time:#大于总的时间 4 + if self.long_count >= self.led_total_time-1:#大于总的时间 4 EventMesh.publish("stop_led_timer")#设置参数 - pass + return + self.long_count+=1 #红绿灯闪烁 elif self.long_light_mode == led_mode.FLASH_LIGHT_RED_GREEN:# - self.long_count+=1 - if self.long_count % (self.led_open_time) < self.led_close_time: # 4*cnt cnt 多少次 4 开启时间保护关闭时间 2 关闭时间 100ms 4-2关闭时间为200ms 开启时间也为200ms + + if self.long_count % (self.led_open_time) <= self.led_close_time: # 4*cnt cnt 多少次 4 开启时间保护关闭时间 2 关闭时间 100ms 4-2关闭时间为200ms 开启时间也为200ms close_led_white()#白色灯 close_led_green() open_led_red() @@ -402,13 +405,13 @@ class ledEventManager(Abstract):#灯事件 close_led_red() open_led_green() pass - if self.long_count >= self.led_total_time:#大于总的时间 4 + if self.long_count >= self.led_total_time-1:#大于总的时间 4 EventMesh.publish("stop_led_timer")#设置参数 - pass + return + self.long_count+=1 #红蓝灯闪烁 蓝变成白色灯 elif self.long_light_mode == led_mode.FLASH_LIGHT_RED_WHITE:# - self.long_count+=1 - if self.long_count % (self.led_open_time) < self.led_close_time: # 4*cnt cnt 多少次 4 开启时间保护关闭时间 2 关闭时间 100ms 4-2关闭时间为200ms 开启时间也为200ms + if self.long_count % (self.led_open_time) <= self.led_close_time: # 4*cnt cnt 多少次 4 开启时间保护关闭时间 2 关闭时间 100ms 4-2关闭时间为200ms 开启时间也为200ms close_led_white()#白色灯 close_led_green() open_led_red() @@ -418,14 +421,15 @@ class ledEventManager(Abstract):#灯事件 close_led_red() open_led_white() pass - if self.long_count >= self.led_total_time:#大于总的时间 4 + if self.long_count >= self.led_total_time-1:#大于总的时间 4 EventMesh.publish("stop_led_timer")#设置参数 - pass + return + self.long_count+=1 #蓝绿灯闪烁 elif self.long_light_mode == led_mode.FLASH_LIGHT_GREEN_WHITE:# - self.long_count+=1 - if self.long_count % (self.led_open_time) < self.led_close_time: # 4*cnt cnt 多少次 4 开启时间保护关闭时间 2 关闭时间 100ms 4-2关闭时间为200ms 开启时间也为200ms + + if self.long_count % (self.led_open_time) <= self.led_close_time: # 4*cnt cnt 多少次 4 开启时间保护关闭时间 2 关闭时间 100ms 4-2关闭时间为200ms 开启时间也为200ms close_led_white()#白色灯 close_led_red() open_led_green() @@ -435,54 +439,98 @@ class ledEventManager(Abstract):#灯事件 close_led_red() open_led_white() pass - if self.long_count >= self.led_total_time:#大于总的时间 4 + if self.long_count >= self.led_total_time-1:#大于总的时间 4 EventMesh.publish("stop_led_timer")#设置参数 - pass + return + self.long_count+=1 #红灯长亮 elif self.long_light_mode == led_mode.LONG_LIGHT_RED:# close_led_white()#白色灯 close_led_green() open_led_red() + self.timer.stop() + self.timer_state = 0 + self.led_total_time = 0 + self.led_enable = 0 + self.led_mode = 0 + self.long_light_mode = 0 + self.led_open_time = 0 + self.led_close_time = 0 + self.working_led_mode = 0 + self.long_count = 0 + #绿灯长亮 elif self.long_light_mode == led_mode.LONG_LIGHT_GREEN:# close_led_white()#白色灯 close_led_red() open_led_green() + self.timer.stop() + self.timer_state = 0 + self.led_total_time = 0 + self.led_enable = 0 + self.led_mode = 0 + self.long_light_mode = 0 + self.led_open_time = 0 + self.led_close_time = 0 + self.working_led_mode = 0 + self.long_count = 0 #蓝灯长亮 elif self.long_light_mode == led_mode.LONG_LIGHT_WHITE:# close_led_green()#白色灯 close_led_red() open_led_white() + self.timer.stop() + self.timer_state = 0 + self.led_total_time = 0 + self.led_enable = 0 + self.led_mode = 0 + self.long_light_mode = 0 + self.led_open_time = 0 + self.led_close_time = 0 + self.working_led_mode = 0 + self.long_count = 0 def close_led_pin(self, event, msg): + print("close_led_pin!!!") + if self.timer_state == 1: + self.timer_state = 0 + self.timer.stop() close_led_red() close_led_green() close_led_white() + def stop_led_timer(self, event, msg): + EventMesh.publish("close_all_led")#关闭所有的灯 + def close_all_led(self, event, msg): - - print("close_all_led!!2222222!!") - EventMesh.publish("publish_message_event_ledInfo",{"func":self.close_all_led_do,"data":0}) + self.close_all_led_do(0) + # print("close_all_led!!2222222!!") + # EventMesh.publish("publish_message_event_ledInfo",{"func":self.close_all_led_do,"data":0}) def close_all_led_do(self,data): - print("close_all_led!!!!") - usb_in = EventMesh.publish("get_usb")# - if usb_in != None: - if usb_in == 1 or usb_in == 3:#正在充电或者充电已满都不要被打断 - if self.timer_state == 1: - self.timer_state = 0 - self.timer.stop() + open_power = EventMesh.publish("get_power_on_state")#获取开机标识 + if open_power != None: + if open_power == 0: return - else: - get_hr_state = EventMesh.publish("get_hr_state") - get_spo2_state = EventMesh.publish("get_spo2_state") - - wechat_state = EventMesh.publish("get_wechat_state") - temp_state = EventMesh.publish("get_spo2_state") - print("get_hr_state",get_hr_state,get_spo2_state,wechat_state,self.working_led_mode) - if wechat_state != None: #获取微聊状态 - if wechat_state == 1 or get_spo2_state != 0 or get_hr_state != 0 or temp_state != 0: + usb_in = EventMesh.publish("get_usb")# + open_power_off = EventMesh.publish("get_power_off_state")#获取开机标识 + if open_power_off != None: + if open_power_off != 1: + if usb_in != None: + if usb_in == 1 or usb_in == 3:#正在充电或者充电已满都不要被打断 + if self.timer_state == 1: + self.timer_state = 0 + self.timer.stop() return - + else: + get_hr_state = EventMesh.publish("get_hr_state") + get_spo2_state = EventMesh.publish("get_spo2_state") + + wechat_state = EventMesh.publish("get_wechat_state") + temp_state = EventMesh.publish("get_temp_state") + print("get_hr_state",get_hr_state,get_spo2_state,wechat_state,self.working_led_mode) + if wechat_state != None: #获取微聊状态 + if wechat_state == 1 or get_spo2_state != 0 or get_hr_state != 0 or temp_state != 0: + return if self.timer_state == 1: self.timer.stop() self.timer_state = 0 @@ -501,284 +549,4 @@ class ledEventManager(Abstract):#灯事件 def led_test_fun_cb(self, data): return - if 0: - # print("self.freq_time :{} self.freq_num:{} self.flash_light:{}".format(self.freq_time,self.freq_num,self.flash_light)) - if self.freq_time != 0 and self.freq_num != 0 and self.flash_light != 0: - if self.flash_light == led_mode.LONG_LIGHT_RED: - if self.total_time != 0: - if self.long_light_mode == led_mode.DEFAULT_LONG_LIGHT_MODE:#不是长亮模式 只需要长亮3 5 7 s这样就关闭长亮 - count = self.total_time//LED_TIMER_OUT#100ms单位 - self.long_count+=1 - if self.long_count == 1: - close_led_green() - close_led_white() - open_led_red()#亮红灯 高电平 - - elif self.long_count >= count :#不开长亮 只亮3 5 s这样就直接关闭 - close_led_red()#亮红灯 低电平 - EventMesh.publish("stop_led_timer")#设置参数 - - elif self.long_light_mode == led_mode.OPEN_LONG_LIGHT_MODE:#开启长亮,需要手动发指令关闭长亮模式 - EventMesh.publish("stop_led_timer")#设置参数 - close_led_green() - close_led_white() - open_led_red()#亮红灯 高电平 - - - elif self.long_light_mode == led_mode.CLOSE_LONG_LIGHT_MODE:#关闭长亮模式 - close_led_red()#亮红灯 低电平 - EventMesh.publish("stop_led_timer")#设置参数 - else: - EventMesh.publish("stop_led_timer")#设置参数 - - elif self.flash_light == led_mode.LONG_LIGHT_GREEN: - if self.total_time != 0: - if self.long_light_mode == led_mode.DEFAULT_LONG_LIGHT_MODE:#不是长亮模式 只需要长亮3 5 7 s这样就关闭长亮 - count = self.total_time//LED_TIMER_OUT#100ms单位 - self.long_count+=1 - if self.long_count == 1: - close_led_red() - close_led_white() - open_led_green()#亮绿灯 高电平 - - elif self.long_count >= count :#不开长亮 只亮3 5 s这样就直接关闭 - close_led_green()#亮绿灯 低电平 - EventMesh.publish("stop_led_timer")#设置参数 - - elif self.long_light_mode == led_mode.OPEN_LONG_LIGHT_MODE:#开启长亮,需要手动发指令关闭长亮模式 - EventMesh.publish("stop_led_timer")#设置参数 - close_led_red() - close_led_white() - open_led_green()#亮绿灯 高电平 - - - elif self.long_light_mode == led_mode.CLOSE_LONG_LIGHT_MODE:#关闭长亮模式 - close_led_green()#亮绿灯 低电平 - EventMesh.publish("stop_led_timer")#设置参数 - - else: - EventMesh.publish("stop_led_timer")#设置参数 - - elif self.flash_light == led_mode.LONG_LIGHT_WHITE: - if self.total_time != 0: - if self.long_light_mode == led_mode.DEFAULT_LONG_LIGHT_MODE:#不是长亮模式 只需要长亮3 5 7 s这样就关闭长亮 - count = self.total_time//LED_TIMER_OUT#100ms单位 - self.long_count+=1 - if self.long_count == 1: - close_led_green() - close_led_red() - open_led_white()#亮绿灯 高电平 - elif self.long_count >= count: - close_led_white()#亮绿灯 低电平 - EventMesh.publish("stop_led_timer")#设置参数 - - elif self.long_light_mode == led_mode.OPEN_LONG_LIGHT_MODE:#开启长亮,需要手动发指令关闭长亮模式 - EventMesh.publish("stop_led_timer")#设置参数 - close_led_green() - close_led_red() - open_led_white()#亮绿灯 高电平 - - elif self.long_light_mode == led_mode.CLOSE_LONG_LIGHT_MODE:#开启长亮,需要手动发指令关闭长亮模式 - close_led_white()#亮绿灯 低电平 - EventMesh.publish("stop_led_timer")#设置参数 - - else:#防止长亮时未设置长亮总时长 未设置不开灯 - EventMesh.publish("stop_led_timer")#设置参数 - - elif self.flash_light == led_mode.FLASH_LIGHT_RED:#红灯快速闪烁 灭灯时间和闪烁时间一致 - if self.total_time != 0: - count = self.freq_num - self.freq = self.freq_time // LED_TIMER_OUT# - self.long_count+=1 - # print("self.freq : {} FLASH_LIGHT_RED count :{} self.long_count:{} self.total_count:{}".format(self.freq,count,self.long_count,self.total_count)) - if self.long_count == 1:#间隔多久闪一次 100ms单位 - close_led_green() - close_led_white() - open_led_red()#亮白灯 高电平 - elif self.long_count == self.freq+1: - self.total_count+=1 - close_led_red()#亮白灯 低电平 - if self.long_count >= self.freq*2: - self.long_count = 0 - - # print("self.total_count:{}".format(self.total_count)) - if self.total_count >= count: - close_led_red()#亮白灯 低电平 - self.total_count = 0 - self.long_count = 0 - EventMesh.publish("stop_led_timer")#设置参数 - - - else:#防止长亮时未设置长亮总时长 未设置不开灯 - EventMesh.publish("stop_led_timer")#设置参数 - elif self.flash_light == led_mode.FLASH_LIGHT_GREEN:#绿灯快速闪烁 - if self.total_time != 0: - count = self.freq_num - self.freq = self.freq_time // LED_TIMER_OUT# - self.long_count+=1 - # print("self.freq : {} FLASH_LIGHT_GREEN count :{} self.long_count:{} self.total_count:{}".format(self.freq,count,self.long_count,self.total_count)) - if self.long_count == 1:#间隔多久闪一次 100ms单位 - close_led_red() - close_led_white() - open_led_green()#亮白灯 高电平 - elif self.long_count == self.freq+1: - self.total_count+=1 - close_led_green()#亮白灯 低电平 - if self.long_count >= self.freq*2: - self.long_count = 0 - - # print("self.total_count:{}".format(self.total_count)) - if self.total_count >= count: - close_led_green()#亮白灯 低电平 - self.total_count = 0 - self.long_count = 0 - EventMesh.publish("stop_led_timer")#设置参数 - - else:#防止长亮时未设置长亮总时长 未设置不开灯 - EventMesh.publish("stop_led_timer")#设置参数 - - elif self.flash_light == led_mode.FLASH_LIGHT_WHITE:#白灯灯快速闪烁 - if self.total_time != 0: - count = self.freq_num - self.freq = self.freq_time // LED_TIMER_OUT# - self.long_count+=1 - # print("self.freq : {} FLASH_LIGHT_WHITE count :{} self.long_count:{} self.total_count:{}".format(self.freq,count,self.long_count,self.total_count)) - if self.long_count == 1:#间隔多久闪一次 100ms单位 - close_led_green() - close_led_red() - open_led_white()#亮白灯 高电平 - elif self.long_count == self.freq+1: - self.total_count+=1 - close_led_white()#亮白灯 低电平 - if self.long_count >= self.freq*2: - self.long_count = 0 - - # print("self.total_count:{}".format(self.total_count)) - if self.total_count >= count: - close_led_white()#亮白灯 低电平 - self.total_count = 0 - self.long_count = 0 - EventMesh.publish("stop_led_timer")#设置参数 - - else:#防止长亮时未设置长亮总时长 未设置不开灯 - EventMesh.publish("stop_led_timer")#设置参数 - - elif self.flash_light == led_mode.INTERVAL_LIGHT_RED:#间隔闪烁 - if self.total_time != 0: - count = self.freq_num - self.freq = self.freq_time // LED_TIMER_OUT# - self.long_count+=1 - # print("self.freq : {} FLASH_LIGHT_RED count :{} self.long_count:{} self.total_count:{}".format(self.freq,count,self.long_count,self.total_count)) - if self.long_count == 1:#间隔多久闪一次 100ms单位 - close_led_green() - close_led_white() - open_led_red()#亮白灯 高电平 - elif self.long_count == self.freq+1: - self.total_count+=1 - close_led_red()#亮白灯 低电平 - if self.long_count >= self.freq*2: - self.long_count = 0 - - # print("self.total_count:{}".format(self.total_count)) - if self.total_count >= count: - close_led_red()#亮白灯 低电平 - self.total_count = 0 - self.long_count = 0 - EventMesh.publish("stop_led_timer")#设置参数 - - - else:#防止长亮时未设置长亮总时长 未设置不开灯 - EventMesh.publish("stop_led_timer")#设置参数 - - elif self.flash_light == led_mode.INTERVAL_LIGHT_GREEN:#绿灯快速闪烁 - if self.total_time != 0: - count = self.freq_num - self.freq = self.freq_time // LED_TIMER_OUT# - self.long_count+=1 - # print("self.freq : {} FLASH_LIGHT_GREEN count :{} self.long_count:{} self.total_count:{}".format(self.freq,count,self.long_count,self.total_count)) - if self.long_count == 1:#间隔多久闪一次 100ms单位 - close_led_red() - close_led_white() - open_led_green()#亮白灯 高电平 - elif self.long_count == self.freq+1: - self.total_count+=1 - close_led_green()#亮白灯 低电平 - if self.long_count >= self.freq*2: - self.long_count = 0 - - # print("self.total_count:{}".format(self.total_count)) - if self.total_count >= count: - close_led_green()#亮白灯 低电平 - self.total_count = 0 - self.long_count = 0 - EventMesh.publish("stop_led_timer")#设置参数 - - else:#防止长亮时未设置长亮总时长 未设置不开灯 - EventMesh.publish("stop_led_timer")#设置参数 - - elif self.flash_light == led_mode.INTERVAL_LIGHT_WHITE:#白灯灯快速闪烁 - if self.total_time != 0: - count = self.freq_num - self.freq = self.freq_time // LED_TIMER_OUT# - self.long_count+=1 - # print("self.freq : {} FLASH_LIGHT_WHITE count :{} self.long_count:{} self.total_count:{}".format(self.freq,count,self.long_count,self.total_count)) - if self.long_count == 1:#间隔多久闪一次 100ms单位 - close_led_green() - close_led_red() - open_led_white()#亮白灯 高电平 - elif self.long_count == self.freq+1: - self.total_count+=1 - close_led_white()#亮白灯 低电平 - if self.long_count >= self.freq*2: - self.long_count = 0 - - # print("self.total_count:{}".format(self.total_count)) - if self.total_count >= count: - close_led_white()#亮白灯 低电平 - self.total_count = 0 - self.long_count = 0 - EventMesh.publish("stop_led_timer")#设置参数 - - else:#防止长亮时未设置长亮总时长 未设置不开灯 - EventMesh.publish("stop_led_timer")#设置参数 - - elif self.flash_light == led_mode.FLASH_LIGHT_RED_GREEN:#红绿灯灯快速闪烁 - if self.total_time != 0: - count = self.freq_num - self.freq = self.freq_time // LED_TIMER_OUT# - self.long_count+=1 - if self.long_count == 1:#间隔多久闪一次 100ms单位 - close_led_white() - close_led_green()#亮白灯 低电平 - open_led_red()#紅 - elif self.long_count == 1*self.freq+1:#5 6 7 8 - close_led_red()#亮白灯 低电平 - close_led_green()#亮白灯 低电平 - - elif self.long_count == 2*self.freq+1:#5 6 7 8 - open_led_green()#ç¶  - - elif self.long_count == 3*self.freq+1:#5 6 7 8 - close_led_red()#亮白灯 低电平 - close_led_green()#亮白灯 低电平 - self.total_count += 1 - - if self.long_count >= 4*self.freq: - self.long_count = 0 - # print("self.total_count:{}".format(self.total_count)) - if self.total_count >= count: - close_led_green()#亮白灯 低电平 - close_led_red()#亮白灯 低电平 - self.long_count = 0 - EventMesh.publish("stop_led_timer")#设置参数 - - else:#防止长亮时未设置长亮总时长 未设置不开灯 - EventMesh.publish("stop_led_timer")#设置参数 - elif self.flash_light >= led_mode.LIGHT_NONE:#未知 - EventMesh.publish("stop_led_timer")#设置参数 - - else: - EventMesh.publish("stop_led_timer")#关闭定时器和关闭所有的led灯 - - - + diff --git a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/main_init.py b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/main_init.py index 3dc9c17c..b68fc6b4 100644 --- a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/main_init.py +++ b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/main_init.py @@ -193,6 +193,7 @@ def main_init(): if timeSecond != 0: next_alarm_time = utime.localtime(timeSecond) machine.RTC().datetime((next_alarm_time[0],next_alarm_time[1],next_alarm_time[2],next_alarm_time[6],next_alarm_time[3],next_alarm_time[4],next_alarm_time[5],0)) + EventMesh.publish("open_power_on", 1)# # EventMesh.publish("load_screen", {"screen": "main_menu"}) diff --git a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/mgr.py b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/mgr.py index 48617e11..0e0e7854 100644 --- a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/mgr.py +++ b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/mgr.py @@ -519,6 +519,22 @@ class sosInfoCallManager(Abstract): num_len = len(number)+2 # print("number:{} number_len :{} num:{} num_len:{}".format(number,len(number),num,num_len)) if num > num_len : + if len(number) == 1: + number1 = str(number[0]) + sms.sendPduMsg(number1, '我需要你的帮助', 'UCS2') + elif len(number) == 2: + number1 = str(number[0]) + sms.sendPduMsg(number1, '我需要你的帮助', 'UCS2') + + number2 = str(number[1]) + sms.sendPduMsg(number2, '我需要你的帮助', 'UCS2') + elif len(number) == 3: + number1 = str(number[0]) + sms.sendPduMsg(number1, '我需要你的帮助', 'UCS2') + number2 = str(number[1]) + sms.sendPduMsg(number2, '我需要你的帮助', 'UCS2') + number3 = str(number[2]) + sms.sendPduMsg(number3, '我需要你的帮助', 'UCS2') EventMesh.publish("set_sos_flag",0) EventMesh.publish("set_sos_num",0) else: @@ -661,7 +677,7 @@ class DeviceInfoManager(Abstract): self.Hr_Need_Open = 0 self.Spo2_Need_Open = 0 self.bat_time = 0 - self.sms_full_flag = 0 + self.vbat_full_flag = 0 self.clear_step = 0 self.test = 0 self.old_time = 0 @@ -906,11 +922,12 @@ class DeviceInfoManager(Abstract): hour = date_tmp[3] min = date_tmp[4] old_Timesec = EventMesh.publish("get_old_time_data") + # print("old_Timesec",old_Timesec) if old_Timesec != None: data = RTC().datetime() hour = data[4] min = data[5] - next_alarm_time = utime.localtime(old_Timesec) + next_alarm_time = utime.localtime(int(old_Timesec)) # print("data[5]:{} {} next_alarm_time:{} old_Timesec:{}".format(data[1],data[2],next_alarm_time,old_Timesec)) month = next_alarm_time[1] day = next_alarm_time[2] @@ -959,7 +976,6 @@ class DeviceInfoManager(Abstract): if get_low_btn == 1: self.bat_time+=10 # print("date_tmp:{} self.bat_time:{}".format(date_tmp,self.bat_time)) - if self.bat_time > 5*60: self.bat_time = 0 if battery[1] <= 20 and battery[1] > 0: @@ -972,33 +988,21 @@ class DeviceInfoManager(Abstract): ble=EventMesh.publish(constants.EVENT.GET_CONNECT) # print("ble",ble) if ble == 0:#未联网提示关机 - self.no_smi_count+=10 - print("self.no_smi_count",self.no_smi_count) - if self.no_smi_count >= (15*60): - self.no_smi_count = 0 - EventMesh.publish("open_power_on", 2)# #未检测到sim卡15分钟后关机 - - if self.no_smi_state < 6: - self.no_smi_state+=1 - if self.no_smi_state >= 6:#开机一分钟后提示未检测到sim卡 - EventMesh.publish("sim_no_cb")#未插卡 + if battery[0] != '1': + self.no_smi_count+=10 + # print("self.no_smi_count",self.no_smi_count) + if self.no_smi_count >= (15*60): + self.no_smi_count = 0 + EventMesh.publish("open_power_on", 2)# #未检测到sim卡15分钟后关机 + + if self.no_smi_state < 6: + self.no_smi_state+=1 + if self.no_smi_state >= 6:#开机一分钟后提示未检测到sim卡 + EventMesh.publish("sim_no_cb")#未插卡 else: self.no_smi_count = 0 - """检测短信已满,提示是否清掉""" - msg_nums = sms.getMsgNums() #获取短信条数 - if(msg_nums != -1): - sms_data = sms.getSaveLoc() - sms_max = sms_data[0][2] - if msg_nums >= sms_max-1: - self.sms_full_flag+=10 - if self.sms_full_flag >= 120: - self.sms_full_flag=0 - # EventMesh.publish("load_screen", {"screen": "message_full"}) - else: - self.sms_full_flag = 0 - """定时测量心率,血氧,体温""" WEAR = EventMesh.publish(constants.EVENT.GET_WEAR)#佩戴数据 self.get_hr_state = EventMesh.publish("get_hr_state") @@ -1597,15 +1601,23 @@ class DeviceInfoManager(Abstract): EventMesh.publish("play_unread_wechat_infor")#每10s检测是否有未读语音数据 - usb_state = EventMesh.publish("get_usb_state")# + usb_state = EventMesh.publish("get_usb")# + + if battery[0] == '1': - if battery[1] >= 100:#充电已满 - if self.charge_full_count == 0: - EventMesh.publish("set_usb",3)# - print("charge R_CHARGE_full") - self.charge_full_count = 1 + # print("battery[1]",battery[1]) + if self.vbat_full_flag <= 120: + self.vbat_full_flag+=10 + if self.vbat_full_flag == 80:#开机检测一次如果是充电标识为1就不再提示 + if usb_state != 1: + EventMesh.publish("set_usb",1)# else: - self.charge_full_count = 0 + if battery[1] >= 100: + if self.charge_full_count == 0:#充电已满 + EventMesh.publish("set_usb",3)# + print("charge R_CHARGE_full") + self.charge_full_count = 1 + else: self.charge_full_count = 0 low_power = battery[1] @@ -2206,7 +2218,7 @@ class LocationManager(Abstract): #gnss_r_data = [0,1] gnss_r_data = quecgnss.read(4096) #EventMesh.txt_log("gps Datalen:{}".format(gnss_r_data[0])) - print("location gnss_r_data:len{}\n{}".format(gnss_r_data[0],gnss_r_data[1].decode())) + # print("location gnss_r_data:len{}\n{}".format(gnss_r_data[0],gnss_r_data[1].decode())) #print("gnss_r_data len:{}".format(gnss_r_data[0])) if gnss_r_data[0] > 0 : #有数据 tmp_ok_count = 0 @@ -3117,29 +3129,29 @@ class getSosFlagManager(Abstract):#设置sos def set_sos_flag(self, event, msg): self.sos_flag = msg - # if self.sos_flag == 1: - # number = EventMesh.publish("get_dial_sos_number") + if self.sos_flag == 1: + number = EventMesh.publish("get_dial_sos_number") - # if number != None: - # if len(number) > 0: - # EventMesh.publish("save_phonename",number[0]) - # EventMesh.publish("save_phonenum",number[0]) - # EventMesh.publish("set_sos_num",0) - # phone_num = EventMesh.publish("get_phonenum") - # EventMesh.publish("dial_out_call_center_cb",phone_num)#电话拨出去 - # else: - # EventMesh.publish("dial_out_call_center_cb",None)#电话拨出去 + if number != None: + if len(number) > 0: + EventMesh.publish("save_phonename",number[0]) + EventMesh.publish("save_phonenum",number[0]) + EventMesh.publish("set_sos_num",0) + phone_num = EventMesh.publish("get_phonenum") + EventMesh.publish("sos_out_call_center_cb",phone_num)#电话拨出去 + else: + EventMesh.publish("sos_out_call_center_cb",None)#电话拨出去 def set_callnumer_cb(self, event, msg): self.callnumer = msg - self.call_timer.start(10000, 0, self.call_timer_cb)#延迟10S 继续拨打 + self.call_timer.start(5000, 0, self.call_timer_cb)#延迟10S 继续拨打 def call_timer_cb(self, *args, **kwargs): if self.sos_flag == 1: EventMesh.publish("save_phonename",str(self.callnumer)) EventMesh.publish("save_phonenum",str(self.callnumer)) phone_num = EventMesh.publish("get_phonenum") - EventMesh.publish("dial_out_call_center_cb",phone_num)#电话拨出去 + EventMesh.publish("sos_out_call_center_cb",phone_num)#电话拨出去 def get_sos_flag(self, event, msg): diff --git a/2.sdk/project/D10/usr/static/R_POWER_OFF_1.mp3 b/2.sdk/project/D10/usr/static/R_POWER_OFF_1.mp3 new file mode 100644 index 00000000..3ff519d1 Binary files /dev/null and b/2.sdk/project/D10/usr/static/R_POWER_OFF_1.mp3 differ diff --git a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/mgr.py b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/mgr.py index 3c3345ba..292abe3d 100644 --- a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/mgr.py +++ b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/mgr.py @@ -2054,7 +2054,7 @@ class LocationManager(Abstract): #gnss_r_data = [0,1] gnss_r_data = quecgnss.read(4096) #EventMesh.txt_log("gps Datalen:{}".format(gnss_r_data[0])) - print("location gnss_r_data:len{}\n{}".format(gnss_r_data[0],gnss_r_data[1].decode())) + #print("location gnss_r_data:len{}\n{}".format(gnss_r_data[0],gnss_r_data[1].decode())) #print("gnss_r_data len:{}".format(gnss_r_data[0])) if gnss_r_data[0] > 0 : #有数据 tmp_ok_count = 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 18426463..057a90e3 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 @@ -2642,6 +2642,7 @@ class ToolboxScreen(Screen): def __init__(self): super().__init__() + self.is_sliding = 0 self.meta = None def initialization(self): @@ -2778,23 +2779,61 @@ class ToolboxScreen(Screen): toolbox_stopwatch_img_label_btn.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) - toolbox_step_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "step"})), lv.EVENT.CLICKED, None) - toolbox_weather_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "weather"})), lv.EVENT.CLICKED, None) - toolbox_alarm_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "clk_list"})), lv.EVENT.CLICKED, None) + toolbox_step_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "step")), lv.EVENT.CLICKED, None) + toolbox_weather_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "weather")), lv.EVENT.CLICKED, None) + toolbox_alarm_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "clk_list")), lv.EVENT.CLICKED, None) # toolbox_sms_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "popup"})), lv.EVENT.CLICKED, None) - toolbox_countdown_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "countdown"})), lv.EVENT.CLICKED, None) - toolbox_stopwatch_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "stopwatch"})), lv.EVENT.CLICKED, None) + toolbox_countdown_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e,"countdown")), lv.EVENT.CLICKED, None) + toolbox_stopwatch_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "stopwatch")), lv.EVENT.CLICKED, None) - toolbox_step_img_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "step"})), lv.EVENT.CLICKED, None) - toolbox_weather_img_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "weather"})), lv.EVENT.CLICKED, None) - toolbox_alarm_img_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "clk_list"})), lv.EVENT.CLICKED, None) + toolbox_step_img_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "step")), lv.EVENT.CLICKED, None) + toolbox_weather_img_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "weather")), lv.EVENT.CLICKED, None) + toolbox_alarm_img_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "clk_list")), lv.EVENT.CLICKED, None) # toolbox_sms_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "popup"})), lv.EVENT.CLICKED, None) - toolbox_countdown_img_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "countdown"})), lv.EVENT.CLICKED, None) - toolbox_stopwatch_img_label_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "stopwatch"})), lv.EVENT.CLICKED, None) + toolbox_countdown_img_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "countdown")), lv.EVENT.CLICKED, None) + toolbox_stopwatch_img_label_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "stopwatch")), lv.EVENT.CLICKED, None) + toolbox_step_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "step")), lv.EVENT.PRESSING, None) + toolbox_weather_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "weather")), lv.EVENT.PRESSING, None) + toolbox_alarm_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "clk_list")), lv.EVENT.PRESSING, None) + # toolbox_sms_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "popup"})), lv.EVENT.CLICKED, None) + toolbox_countdown_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "countdown")), lv.EVENT.PRESSING, None) + toolbox_stopwatch_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "stopwatch")), lv.EVENT.PRESSING, None) + + toolbox_step_img_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e,"step")), lv.EVENT.PRESSING, None) + toolbox_weather_img_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "weather")), lv.EVENT.PRESSING, None) + toolbox_alarm_img_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "clk_list")), lv.EVENT.PRESSING, None) + # toolbox_sms_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "popup"})), lv.EVENT.CLICKED, None) + toolbox_countdown_img_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "countdown")), lv.EVENT.PRESSING, None) + toolbox_stopwatch_img_label_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "stopwatch")), lv.EVENT.PRESSING, None) + self.meta = toolbox_screen + def ui_tool_cb(self, e, msg): + code = e.get_code() + EventMesh.publish("publish_message_event_ui",{"func":self.ui_tool_cb_do,"data":[code,msg]}) + def ui_tool_cb_do(self, data): + #code = e.get_code() + + code = data[0] + msg = data[1] + + #print("code!!!!!!!!",code,msg) + if code == lv.EVENT.PRESSING: + #print("PRESSING") + self.is_sliding += 1 + + elif code == lv.EVENT.CLICKED: + #utime.sleep_ms(10) + print("1self.is_sliding",self.is_sliding) + if self.is_sliding <= 5 and self.is_sliding != 0:#如果是在滑动中则不需要点击事件 + EventMesh.publish("load_screen", {"screen": "{}".format(msg)}) + print("2self.is_sliding",self.is_sliding) + + self.is_sliding =0 + + def done_return(self): EventMesh.publish("load_screen", {"screen": "main_menu"}) @@ -2805,6 +2844,23 @@ class ToolboxScreen(Screen): EventMesh.publish("watch_top_show") EventMesh.publish("load_screen", {"screen": "main_menu"}) + def done_bottom_to_top(self): + #print("done_bottom_to_top") + self.is_sliding = 0 + pass + + def done_top_to_bottom(self): + #print("done_top_to_bottom") + self.is_sliding = 0 + pass + def done_left_to_right(self): + #print("done_left_to_right") + self.is_sliding = 0 + pass + def done_right_to_left(self): + #print("done_right_to_left") + self.is_sliding = 0 + pass incoming_call_screen = None incoming_call_img = None @@ -5499,6 +5555,8 @@ class CountdownScreen(Screen): print("hour_down:",self.hour) self.show_value() + + def start(self,e): global countdown_screen ,countdown_title,countdown_hour ,countdown_mao ,countdown_mao ,countdown_mao1 ,\ countdown_sec ,countdown_hour_up ,countdown_hour_up_btn ,countdown_hour_down ,countdown_hour_down_btn ,\ @@ -5752,6 +5810,8 @@ class CountdownEndScreen(Screen): countdown_end_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) countdown_end_label.set_long_mode(lv.label.LONG.WRAP) countdown_end_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) + + self.meta = countdown_end_screen self.FIND_timer_count = 0 EventMesh.publish("close_count_show_info") diff --git a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui_setting.py b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui_setting.py index e6e6bfdc..65903ed3 100644 --- a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui_setting.py +++ b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui_setting.py @@ -263,34 +263,85 @@ class SettingScreen(Screen): def __init__(self): super().__init__() + self.is_sliding = 0 + self.is_left_sliding = 0 self.meta = setting_screen # setting_language.add_event_cb(lambda e: self.load_screen(e, {"screen": "language"}), lv.EVENT.CLICKED, None) - setting_dialswitch_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "dialswitch"})), lv.EVENT.CLICKED, None) + setting_dialswitch_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "dialswitch")), (lv.EVENT.CLICKED ), None) # setting_themeswitch.add_event_cb(lambda e: self.load_screen(e, {"screen": "themeswitch"}), lv.EVENT.CLICKED, None) - setting_imei_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "imei"})), lv.EVENT.CLICKED, None) - setting_app_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "app"})), lv.EVENT.CLICKED, None) - setting_bright_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "brightness"})), lv.EVENT.CLICKED, None) - setting_volume_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "totalvolume"})), lv.EVENT.CLICKED, None) - setting_restore_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "restore"})), lv.EVENT.CLICKED, None) - setting_poweroff_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "poweroff"})), lv.EVENT.CLICKED, None) - setting_update_label_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "update"})), lv.EVENT.CLICKED, None) - setting_version_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "version"})), lv.EVENT.CLICKED, None) + setting_imei_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "imei")), (lv.EVENT.CLICKED ), None) + setting_app_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "app")), (lv.EVENT.CLICKED ), None) + setting_bright_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "brightness")), (lv.EVENT.CLICKED ), None) + setting_volume_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "totalvolume")), (lv.EVENT.CLICKED ), None) + setting_restore_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "restore")), (lv.EVENT.CLICKED ), None) + setting_poweroff_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "poweroff")), (lv.EVENT.CLICKED ), None) + setting_update_label_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "update")), (lv.EVENT.CLICKED ), None) + setting_version_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "version")), (lv.EVENT.CLICKED ), None) # img regist btton - # setting_language.add_event_cb(lambda e: self.load_screen(e, {"screen": "language"}), lv.EVENT.CLICKED, None) - setting_dialswitch_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "dialswitch"})), lv.EVENT.CLICKED, None) + # setting_language.add_event_cb(lambda e: self.load_screen(e, {"screen": "language"}), (lv.EVENT.CLICKED ), None) + setting_dialswitch_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "dialswitch")), (lv.EVENT.CLICKED ), None) + # setting_themeswitch.add_event_cb(lambda e: self.load_screen(e, {"screen": "themeswitch"}), (lv.EVENT.CLICKED ), None) + setting_imei_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "imei")), (lv.EVENT.CLICKED ), None) + setting_app_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "app")), (lv.EVENT.CLICKED ), None) + setting_bright_img.add_event_cb(lambda e:EventMesh.callback_wrapper( self.ui_setting_cb(e, "brightness")), (lv.EVENT.CLICKED ), None) + setting_volume_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "totalvolume")), (lv.EVENT.CLICKED ), None) + setting_restore_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "restore")), (lv.EVENT.CLICKED ), None) + setting_poweroff_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "poweroff")), (lv.EVENT.CLICKED ), None) + setting_update_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "update")), (lv.EVENT.CLICKED ), None) + setting_version_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "version")), (lv.EVENT.CLICKED ), None) + + setting_dialswitch_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "dialswitch")), lv.EVENT.PRESSING, None) # setting_themeswitch.add_event_cb(lambda e: self.load_screen(e, {"screen": "themeswitch"}), lv.EVENT.CLICKED, None) - setting_imei_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "imei"})), lv.EVENT.CLICKED, None) - setting_app_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "app"})), lv.EVENT.CLICKED, None) - setting_bright_img.add_event_cb(lambda e:EventMesh.callback_wrapper( self.load_screen(e, {"screen": "brightness"})), lv.EVENT.CLICKED, None) - setting_volume_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "totalvolume"})), lv.EVENT.CLICKED, None) - setting_restore_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "restore"})), lv.EVENT.CLICKED, None) - setting_poweroff_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "poweroff"})), lv.EVENT.CLICKED, None) - setting_update_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "update"})), lv.EVENT.CLICKED, None) - setting_version_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "version"})), lv.EVENT.CLICKED, None) + setting_imei_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "imei")), lv.EVENT.PRESSING, None) + setting_app_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "app")), lv.EVENT.PRESSING, None) + setting_bright_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "brightness")), lv.EVENT.PRESSING, None) + setting_volume_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "totalvolume")), lv.EVENT.PRESSING, None) + setting_restore_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "restore")), lv.EVENT.PRESSING, None) + setting_poweroff_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "poweroff")), lv.EVENT.PRESSING, None) + setting_update_label_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "update")), lv.EVENT.PRESSING, None) + setting_version_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "version")), lv.EVENT.PRESSING, None) - + # img regist btton + # setting_language.add_event_cb(lambda e: self.load_screen(e, {"screen": "language"}), lv.EVENT.CLICKED, None) + setting_dialswitch_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "dialswitch")), lv.EVENT.PRESSING, None) + # setting_themeswitch.add_event_cb(lambda e: self.load_screen(e, {"screen": "themeswitch"}), lv.EVENT.CLICKED, None) + setting_imei_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "imei")), lv.EVENT.PRESSING, None) + setting_app_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "app")), lv.EVENT.PRESSING, None) + setting_bright_img.add_event_cb(lambda e:EventMesh.callback_wrapper( self.ui_setting_cb(e, "brightness")), lv.EVENT.PRESSING, None) + setting_volume_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "totalvolume")), lv.EVENT.PRESSING, None) + setting_restore_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "restore")), lv.EVENT.PRESSING, None) + setting_poweroff_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "poweroff")), lv.EVENT.PRESSING, None) + setting_update_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "update")), lv.EVENT.PRESSING, None) + setting_version_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "version")), lv.EVENT.PRESSING, None) + def initialization(self): + self.is_left_sliding = 0 + self.is_sliding = 0 + pass + def ui_setting_cb(self, e, msg): + code = e.get_code() + EventMesh.publish("publish_message_event_ui",{"func":self.ui_setting_cb_do,"data":[code,msg]}) + def ui_setting_cb_do(self, data): + #code = e.get_code() + + code = data[0] + msg = data[1] + + #print("code!!!!!!!!",code,msg) + if code == lv.EVENT.PRESSING: + #print("PRESSING") + self.is_sliding += 1 + + elif code == lv.EVENT.CLICKED: + #utime.sleep_ms(10) + print("1self.is_sliding",self.is_sliding) + if self.is_sliding <= 5 and self.is_sliding != 0:#如果是在滑动中则不需要点击事件 + EventMesh.publish("load_screen", {"screen": "{}".format(msg)}) + print("2self.is_sliding",self.is_sliding) + + self.is_sliding =0 + def done_return(self): EventMesh.publish("load_screen", {"screen": "main_menu"}) @@ -301,6 +352,23 @@ class SettingScreen(Screen): def btn8_press(self): EventMesh.publish("watch_top_show") EventMesh.publish("load_screen", {"screen": "main_menu"}) + def done_bottom_to_top(self): + #print("done_bottom_to_top") + self.is_sliding = 0 + pass + + def done_top_to_bottom(self): + #print("done_top_to_bottom") + self.is_sliding = 0 + pass + def done_left_to_right(self): + #print("done_left_to_right") + self.is_sliding = 0 + pass + def done_right_to_left(self): + #print("done_right_to_left") + self.is_sliding = 0 + pass ################################################################## # -------------------------------------------language screen---------------------------------------------------------- language_screen = lv.obj() diff --git a/2.sdk/project/S6/sdk/services/microPython/ports/quectel/core/btn_device_ec800m.py b/2.sdk/project/S6/sdk/services/microPython/ports/quectel/core/btn_device_ec800m.py index 391e4adb..3b5678ec 100644 --- a/2.sdk/project/S6/sdk/services/microPython/ports/quectel/core/btn_device_ec800m.py +++ b/2.sdk/project/S6/sdk/services/microPython/ports/quectel/core/btn_device_ec800m.py @@ -632,7 +632,8 @@ class intervManager(Abstract): if step != 0: EventMesh.publish("set_storage_config",["old_step",step]) date_tmp = utime.localtime() - EventMesh.publish("set_storage_config",["old_timesecond",date_tmp])#关机保存一个是时间 + time_tmp = utime.mktime(date_tmp) + EventMesh.publish("set_storage_config",["old_time",time_tmp])#关机保存一个是时间 EventMesh.publish("set_motor_time",[1,2,4,4,2])#设置马达参数 EventMesh.publish("set_led_time_arg",[1,2,4*8,led_mode.FLASH_LIGHT_RED,4,2,led_mode.OTHER_MEASURE_MODE])#測量成功