D10:
authordxy15521469561 <1731678236@qq.com>
Wed, 20 Dec 2023 03:18:26 +0000 (11:18 +0800)
committerdxy15521469561 <1731678236@qq.com>
Wed, 20 Dec 2023 03:18:26 +0000 (11:18 +0800)
功能优化

20 files changed:
2.sdk/new_version.bat
2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/EventMesh.py
2.sdk/project/C06S/sdk/services/microPython/ports/quectel/core/ui_setting.py
2.sdk/project/D10/audio.bin
2.sdk/project/D10/audio/R_BLOOD_SUGAR.mp3 [new file with mode: 0644]
2.sdk/project/D10/list.json
2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/EventMesh.py
2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/btn_device_ec800m.py
2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/constants.py
2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/led.py
2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/main_init.py
2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/mgr.py
2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/protocol.py
2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/ui.py
2.sdk/project/D10/usr/static/audio.bin
2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/EventMesh.py
2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui_setting.py
2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/EventMesh.py
2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui_setting.py
2.sdk/project/S6/sdk/services/microPython/ports/quectel/core/EventMesh.py

index 39f7010..c4947b9 100644 (file)
@@ -1,2 +1,2 @@
-echo Version="%1_V1.0" > project\%1%\sdk\services\microPython\ports\quectel\core\versions.py
+echo Version="V1.0" > project\%1%\sdk\services\microPython\ports\quectel\core\versions.py
 echo Build_Time="%date:~0,4%-%date:~5,2%-%date:~8,2% %time:~0,8%" >> project\%1%\sdk\services\microPython\ports\quectel\core\versions.py
\ No newline at end of file
index b1df605..2b472e3 100644 (file)
@@ -1,6 +1,12 @@
 import _thread
 import usys
+import versions
 
+MODEL = "CO6S_" #项目型号
+
+
+version = "{}{}".format(MODEL,versions.Version)
+builTime = "{}".format(versions.Build_Time)
 
 class EventStore(object):
     def __init__(self):
index 939e166..3e7fe7d 100644 (file)
@@ -865,7 +865,7 @@ version_label3 = lv.label(version_screen)
 version_label3.set_pos(10, 70)
 version_label3.set_size(230, 30)
 version_label3.set_long_mode(lv.label.LONG.WRAP)
-version_label3.set_text(versions.Version)
+version_label3.set_text(EventMesh.version)
 version_label3.set_style_text_align(lv.TEXT_ALIGN.LEFT, 0)
 version_label3.add_style(style_font_youyuan_20_gray, lv.PART.MAIN | lv.STATE.DEFAULT)
 
@@ -889,7 +889,7 @@ version_label6 = lv.label(version_screen)
 version_label6.set_pos(10, 160)
 version_label6.set_size(230, 60)
 version_label6.set_long_mode(lv.label.LONG.WRAP)
-version_label6.set_text(versions.Build_Time)
+version_label6.set_text(EventMesh.builTime)
 version_label6.set_style_text_align(lv.TEXT_ALIGN.LEFT, 0)
 version_label6.add_style(style_font_youyuan_20_gray, lv.PART.MAIN | lv.STATE.DEFAULT)
 
index c28c3d9..e3aa0cf 100644 (file)
Binary files a/2.sdk/project/D10/audio.bin and b/2.sdk/project/D10/audio.bin differ
diff --git a/2.sdk/project/D10/audio/R_BLOOD_SUGAR.mp3 b/2.sdk/project/D10/audio/R_BLOOD_SUGAR.mp3
new file mode 100644 (file)
index 0000000..cde7933
Binary files /dev/null and b/2.sdk/project/D10/audio/R_BLOOD_SUGAR.mp3 differ
index be59b77..0388fc0 100644 (file)
@@ -1 +1 @@
-['audio_find_haixiu', 'R_ALARM_NEW', 'R_CALL_mp3', 'R_CHARGE_FULL', 'R_CHARGE_IN', 'R_CHARGE_OUT', 'R_DRINK_ALARM', 'R_FALL_ALARM', 'R_HOME_ALARM', 'R_HSENSOR_RESULT_FAILE', 'R_HSENSOR_RESULT_HR_TITLE', 'R_HSENSOR_RESULT_OK', 'R_HSENSOR_SPO2_TITLE', 'R_HSENSOR_TEMP_TITLE', 'R_MEDICINE_ALARM', 'R_NO_SET_SOS_DIAL', 'R_NO_SIM', 'R_POWER_OFF_1', 'R_READ_STEP_0', 'R_READ_STEP_1', 'R_READ_STEP_2', 'R_READ_STEP_3', 'R_READ_STEP_4', 'R_READ_TIME_0', 'R_READ_TIME_1', 'R_READ_TIME_2', 'R_READ_TIME_3', 'R_READ_TIME_4', 'R_READ_TIME_5', 'R_READ_TIME_6', 'R_READ_TIME_7', 'R_READ_TIME_8', 'R_READ_TIME_9', 'R_READ_TIME_MIN', 'R_READ_TIME_ZHENG', 'R_RESET_ALARM', 'R_RESET_END_ALARM', 'R_SIM_CONNECT', 'R_SIM_FAILE', 'R_SLEEP_ALARM', 'R_SOS_ALERT', 'R_TSENSOR_RESULT_VALUE_DOT', 'R_UNREAD_WECHAT', 'R_WAKEUP_ALARM', 'R_WECHAT_RECV']
\ No newline at end of file
+['audio_find_haixiu', 'R_ALARM_NEW', 'R_BLOOD_SUGAR', 'R_CALL_mp3', 'R_CHARGE_FULL', 'R_CHARGE_IN', 'R_CHARGE_OUT', 'R_DRINK_ALARM', 'R_FALL_ALARM', 'R_HOME_ALARM', 'R_HSENSOR_RESULT_FAILE', 'R_HSENSOR_RESULT_HR_TITLE', 'R_HSENSOR_RESULT_OK', 'R_HSENSOR_SPO2_TITLE', 'R_HSENSOR_TEMP_TITLE', 'R_MEDICINE_ALARM', 'R_NO_SET_SOS_DIAL', 'R_NO_SIM', 'R_POWER_OFF_1', 'R_READ_STEP_0', 'R_READ_STEP_1', 'R_READ_STEP_2', 'R_READ_STEP_3', 'R_READ_STEP_4', 'R_READ_TIME_0', 'R_READ_TIME_1', 'R_READ_TIME_2', 'R_READ_TIME_3', 'R_READ_TIME_4', 'R_READ_TIME_5', 'R_READ_TIME_6', 'R_READ_TIME_7', 'R_READ_TIME_8', 'R_READ_TIME_9', 'R_READ_TIME_MIN', 'R_READ_TIME_ZHENG', 'R_RESET_ALARM', 'R_RESET_END_ALARM', 'R_SIM_CONNECT', 'R_SIM_FAILE', 'R_SLEEP_ALARM', 'R_SOS_ALERT', 'R_TSENSOR_RESULT_VALUE_DOT', 'R_UNREAD_WECHAT', 'R_WAKEUP_ALARM', 'R_WECHAT_RECV']
\ No newline at end of file
index 4efabf3..d8c05d5 100644 (file)
@@ -1,7 +1,14 @@
 import _thread
 import usys
+import versions
 
 
+model = "D10_"
+# model = "G10W_DT_YBX_"
+
+softversion = "{}{}".format(model,versions.Version)
+builTime = "{}".format(versions.Build_Time)
+
 class EventStore(object):
     def __init__(self):
         self.map = dict()
index 5efab45..0a3b2ab 100644 (file)
@@ -17,7 +17,8 @@ from machine import RTC
 from queue import Queue
 import _thread
 import usys
-
+import sms
+from Gsensor import SC7A20
 # motor_pin = Pin(Pin.GPIO20, Pin.OUT, Pin.PULL_PD, 0)
 motor_pin = 1
 def open_motor():
@@ -26,7 +27,8 @@ def open_motor():
 def close_motor():
     motor_pin.write(0)
 
-audio_buf = ['audio_find_haixiu', 'R_ALARM_NEW', 'R_CALL_mp3', 'R_CHARGE_FULL', 'R_CHARGE_IN', 'R_CHARGE_OUT', 'R_DRINK_ALARM', 'R_FALL_ALARM', 'R_HOME_ALARM', 'R_HSENSOR_RESULT_FAILE', 'R_HSENSOR_RESULT_HR_TITLE', 'R_HSENSOR_RESULT_OK', 'R_HSENSOR_SPO2_TITLE', 'R_HSENSOR_TEMP_TITLE', 'R_MEDICINE_ALARM', 'R_NO_SET_SOS_DIAL', 'R_NO_SIM', 'R_POWER_OFF_1', 'R_READ_STEP_0', 'R_READ_STEP_1', 'R_READ_STEP_2', 'R_READ_STEP_3', 'R_READ_STEP_4', 'R_READ_TIME_0', 'R_READ_TIME_1', 'R_READ_TIME_2', 'R_READ_TIME_3', 'R_READ_TIME_4', 'R_READ_TIME_5', 'R_READ_TIME_6', 'R_READ_TIME_7', 'R_READ_TIME_8', 'R_READ_TIME_9', 'R_READ_TIME_MIN', 'R_READ_TIME_ZHENG', 'R_RESET_ALARM', 'R_RESET_END_ALARM', 'R_SIM_CONNECT', 'R_SIM_FAILE', 'R_SLEEP_ALARM', 'R_SOS_ALERT', 'R_TSENSOR_RESULT_VALUE_DOT', 'R_UNREAD_WECHAT', 'R_WAKEUP_ALARM', 'R_WECHAT_RECV']
+audio_buf = ['audio_find_haixiu', 'R_ALARM_NEW', 'R_BLOOD_SUGAR', 'R_CALL_mp3', 'R_CHARGE_FULL', 'R_CHARGE_IN', 'R_CHARGE_OUT', 'R_DRINK_ALARM', 'R_FALL_ALARM', 'R_HOME_ALARM', 'R_HSENSOR_RESULT_FAILE', 'R_HSENSOR_RESULT_HR_TITLE', 'R_HSENSOR_RESULT_OK', 'R_HSENSOR_SPO2_TITLE', 'R_HSENSOR_TEMP_TITLE', 'R_MEDICINE_ALARM', 'R_NO_SET_SOS_DIAL', 'R_NO_SIM', 'R_POWER_OFF_1', 'R_READ_STEP_0', 'R_READ_STEP_1', 'R_READ_STEP_2', 'R_READ_STEP_3', 'R_READ_STEP_4', 'R_READ_TIME_0', 'R_READ_TIME_1', 'R_READ_TIME_2', 'R_READ_TIME_3', 'R_READ_TIME_4', 'R_READ_TIME_5', 'R_READ_TIME_6', 'R_READ_TIME_7', 'R_READ_TIME_8', 'R_READ_TIME_9', 'R_READ_TIME_MIN', 'R_READ_TIME_ZHENG', 'R_RESET_ALARM', 'R_RESET_END_ALARM', 'R_SIM_CONNECT', 'R_SIM_FAILE', 'R_SLEEP_ALARM', 'R_SOS_ALERT', 'R_TSENSOR_RESULT_VALUE_DOT', 'R_UNREAD_WECHAT', 'R_WAKEUP_ALARM', 'R_WECHAT_RECV']
+
 class call:
     CALL_OUT = 1
     CALL_IN = 2
@@ -51,6 +53,10 @@ class intervManager(Abstract):
         self.find_timer1 = osTimer()
         self.fall_flag = 0
 
+        self.factory_timer = osTimer()
+        
+        self.restart_timer = osTimer()
+
         self.aud = audio.Audio(0)
         self.aud.set_pa(Pin.GPIO29)
         self.aud.setVolume(11)
@@ -162,6 +168,8 @@ class intervManager(Abstract):
         EventMesh.subscribe("play_spo2_value", self.play_spo2_value)#播放心率数值
         EventMesh.subscribe("play_temp_value", self.play_temp_value)#播放体温数值
 
+        EventMesh.subscribe("play_sugar_value", self.play_sugar_value)#播放血糖数值
+
 
         EventMesh.subscribe("set_usb", self.set_usb)#
         EventMesh.subscribe("get_usb", self.get_usb)#
@@ -226,6 +234,11 @@ class intervManager(Abstract):
         EventMesh.subscribe("reset_end_alarm_event", self.reset_end_alarm_event)#休息结束了
 
         EventMesh.subscribe("get_fall_down_state", self.get_fall_down_state)#跌倒报警标识
+
+        EventMesh.subscribe("app_factory", self.app_factory)#app恢复出厂
+
+        EventMesh.subscribe("app_restart", self.app_restart)#远程重启
+
     
 
     def interInfo_queue_thread(self):
@@ -843,7 +856,7 @@ class intervManager(Abstract):
                     audio_buf.index("R_READ_STEP_1"),audio_buf.index("R_READ_STEP_4"))
                     EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
                 else:
-                    step_tmp = str(step)
+                    step_tmp = str(step)#500
                     bai_value = int(step_tmp[0])#百
                     shi_value = int(step_tmp[1])#十
                     ge_value = int(step_tmp[2])#个
@@ -859,10 +872,17 @@ class intervManager(Abstract):
                             audio_buf.index("R_READ_TIME_{}".format(ge_value)),audio_buf.index("R_READ_STEP_4"))
                             EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
                     else:
-                        str_data = 'mp3files={}.mp3+{}.mp3+{}.mp3+{}.mp3+{}.mp3'.format(audio_buf.index("R_READ_TIME_{}".format(bai_value)),\
-                        audio_buf.index("R_READ_STEP_2"),audio_buf.index("R_READ_TIME_0"),audio_buf.index("R_READ_TIME_{}".format(ge_value)),\
-                        audio_buf.index("R_READ_STEP_4"))
-                        EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
+                        if shi_value == 0 and ge_value == 0:#500 600
+                            str_data = 'mp3files={}.mp3+{}.mp3+{}.mp3'.format(audio_buf.index("R_READ_TIME_{}".format(bai_value)),\
+                            audio_buf.index("R_READ_STEP_2"),audio_buf.index("R_READ_STEP_4"))
+                            EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
+                            pass
+                        else:
+
+                            str_data = 'mp3files={}.mp3+{}.mp3+{}.mp3+{}.mp3+{}.mp3'.format(audio_buf.index("R_READ_TIME_{}".format(bai_value)),\
+                            audio_buf.index("R_READ_STEP_2"),audio_buf.index("R_READ_TIME_0"),audio_buf.index("R_READ_TIME_{}".format(ge_value)),\
+                            audio_buf.index("R_READ_STEP_4"))
+                            EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
                         pass
             elif step <= 10000:#千
                 if step == 10000:
@@ -1061,36 +1081,35 @@ class intervManager(Abstract):
                 if get_hr_state != 0:
                     
                     EventMesh.publish("set_hr_state",0)#2代表后台进入测试,定时测心率 1ui界面测试洗心率 
-                    if get_hr_state == 3 or get_hr_state == 1:
-                        EventMesh.publish("stop_led_timer")#设置参数
                     if get_hr_state == 1:
+                        EventMesh.publish("stop_led_timer")#设置参数
                         EventMesh.publish("set_start_measure_time",0)#设置开始测量的时间戳时间
+
                     EventMesh.debug_log("stop debug8")
                     EventMesh.publish(constants.EVENT.STOP_HEART) 
                 elif get_spo2_state != 0:
                     EventMesh.publish("set_spo2_state",0)#2代表后台进入测试
-                    if get_spo2_state == 3 or get_spo2_state == 1:
+                    if get_spo2_state == 1:
                         EventMesh.publish("stop_led_timer")#设置参数
                     EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN)
                     EventMesh.debug_log("stop debug13")
                 elif get_bp_state != 0:
                     EventMesh.publish("set_bp_state",0)#2代表后台进入测试
-                    if get_bp_state == 3 or get_bp_state == 1:
+                    if get_bp_state == 1:
                         EventMesh.publish("stop_led_timer")#设置参数
                     EventMesh.publish(constants.EVENT.STOP_HEART)
                     EventMesh.debug_log("stop bp debug1")
                 elif get_bg_state != 0:
                     EventMesh.publish("set_bg_state",0)#2代表后台进入测试
-                    if get_bg_state == 3 or get_bg_state == 1:#手动开灯关闭灯
+                    if get_bg_state == 1:#手动开灯关闭灯
                         EventMesh.publish("stop_led_timer")#设置参数
                     EventMesh.publish(constants.EVENT.STOP_HEART)
                     EventMesh.debug_log("stop BG  debug14")
                 if get_temp_state != 0:
                     
                     EventMesh.publish("set_temp_state",0)#2代表后台进入测试
-                    if get_temp_state == 1 or get_temp_state == 3:
-                        EventMesh.publish("stop_led_timer")#设置参数
                     if get_temp_state == 1:
+                        EventMesh.publish("stop_led_timer")#设置参数
                         EventMesh.publish("get_start_temp_measure_time",0)#
                     EventMesh.publish(constants.EVENT.STOP_TEMP)
                     EventMesh.debug_log("stop temp  debug14")
@@ -1137,6 +1156,35 @@ class intervManager(Abstract):
     def get_usb(self, event, msg):
         return self.usbState
     
+
+
+    def app_factory(self,event,msg):
+        if msg != None:
+            number = str(msg)
+            sms.sendPduMsg(number, 'fact# send ok', 'UCS2')
+        ret = 0
+        ret = ql_fs.path_exists("/usr/static/storage_file")#
+        if ret == True:
+            ql_fs.rmdirs("/usr/static/storage_file")
+            ql_fs.mkdirs("/usr/static/storage_file")
+        if EventMesh.publish(constants.EVENT.GET_CONNECT) == 1:
+            EventMesh.publish(constants.PROTOCOL.DLT_SEND)
+       
+        self.factory_timer.start(6*1000,0,self.factory_cb)
+        pass
+    def factory_cb(self,*argc):
+        self.aud.stopPlayStream()
+        Power.powerRestart()
+
+    def app_restart(self,event,msg):#远程发短信重启
+        if msg != None:
+            number = str(msg)
+            sms.sendPduMsg(number, 'rest# send ok', 'UCS2')
+        self.restart_timer.start(3*1000,0,self.app_restart_cb)
+        pass
+    def app_restart_cb(self,*argc):
+        Power.powerRestart()
+
     def open_power_on(self, event, msg): #msg 1 开机 2 关机 3 重启  4恢复出厂设置 5静音关机
         EventMesh.publish("close_timer_all")#
         if msg == 1:
@@ -1151,11 +1199,20 @@ class intervManager(Abstract):
                 self.call_state = 0
                 voiceCall.callEnd()
             step = EventMesh.publish("get_old_step_value")
+            # step1 = SC7A20().get_step()
+            # step1 = EventMesh.publish(constants.EVENT.GET_STEP)
+            # step2 = EventMesh.publish("get_storage_config","old_step")
             self.read_data = EventMesh.publish("get_storage_data")
+            # EventMesh.publish("set_test_data5",[1,step,step1,step2])
             if step != 0:
                 EventMesh.publish("set_storage_config",["old_step",step])
             date_tmp = utime.localtime()
             time_tmp = utime.mktime(date_tmp)
+            # step3 = EventMesh.publish("get_old_step_value")
+            # step4 = SC7A20().get_step()
+            # step4 = EventMesh.publish(constants.EVENT.GET_STEP)
+            # step5 = EventMesh.publish("get_storage_config","old_step")
+            # EventMesh.publish("set_test_data6",[1,step3,step4,step5])
             EventMesh.publish("set_storage_config",["old_time",time_tmp])#关机保存一个是时间
             EventMesh.publish("set_storage_config",["power_state",0])
             self.pwk_timer1.start(3000,0,self.power_off_audio_cb)
@@ -1193,9 +1250,19 @@ class intervManager(Abstract):
                 self.call_state = 0
                 voiceCall.callEnd()
             step = EventMesh.publish("get_old_step_value")
+            # step1 = SC7A20().get_step()
+            # step1 = EventMesh.publish(constants.EVENT.GET_STEP)
+            # step2 = EventMesh.publish("get_storage_config","old_step")
             self.read_data = EventMesh.publish("get_storage_data")
+            # EventMesh.publish("set_test_data7",[1,step,step1,step2])
             if step != 0:
                 EventMesh.publish("set_storage_config",["old_step",step])
+
+            # step3 = EventMesh.publish("get_old_step_value")
+            # step4 = SC7A20().get_step()
+            # step4 = EventMesh.publish(constants.EVENT.GET_STEP)
+            # step5 = EventMesh.publish("get_storage_config","old_step")
+            # EventMesh.publish("set_test_data8",[1,step3,step4,step5])
             date_tmp = utime.localtime()
             time_tmp = utime.mktime(date_tmp)
             EventMesh.publish("set_storage_config",["old_time",time_tmp])#关机保存一个是时间
@@ -1218,15 +1285,15 @@ class intervManager(Abstract):
         power_state = EventMesh.publish("get_storage_config","power_state")
         if power_state == None:
             power_state = 0
-        print("power_state",power_state)
+        # print("power_state",power_state)
         if power_state <= 0:
             self.aud.play(1,1,'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,6*8,led_mode.FLASH_LIGHT_GREEN,6,3,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)
+        self.power_on_flag = 0
+        self.pwk_timer2.start(5000,0,self.power_on_cb)
 
     def get_power_on_state(self, event, msg):
         return self.power_on_flag
@@ -1237,16 +1304,14 @@ class intervManager(Abstract):
         # 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,6*8,led_mode.FLASH_LIGHT_RED,6,3,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)
+        self.power_off = 1
+        self.pwk_timer2.start(6000,0,self.publish_power_down_event_cb)
     
     def power_off_no_audio_cb(self, msg):
         EventMesh.debug_log("power_off_no_audio_cb")
         EventMesh.publish("set_led_time_arg",[1,2,6*8,led_mode.FLASH_LIGHT_RED,6,3,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)
+        self.power_off = 1
+        self.pwk_timer2.start(6000,0,self.publish_power_down_event_cb)
 
     def set_power_off_cb(self, msg):
         self.power_off = 1
@@ -1261,24 +1326,24 @@ class intervManager(Abstract):
         get_bg_state = EventMesh.publish("get_bg_state")
         get_bp_state = EventMesh.publish("get_bp_state")
         if get_hr_state != None and get_spo2_state != None and get_temp_state != None and get_bg_state != None and get_bp_state != None:
-            if get_hr_state == 1 or get_hr_state == 3:
+            if get_hr_state != 0:
                 EventMesh.publish("set_hr_state",0)#2代表后台进入测试,定时测心率 1ui界面测试洗心率 
                 EventMesh.debug_log("sstop hr")
                 EventMesh.publish(constants.EVENT.STOP_HEART) 
-            if get_spo2_state == 1 or get_spo2_state == 3:
+            if get_spo2_state != 0 :
                 EventMesh.debug_log("stop spo2")
                 EventMesh.publish("set_spo2_state",0)#2代表后台进入测试
                 EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN)
-            if get_temp_state == 1 or get_temp_state == 3:
+            if get_temp_state != 0:
                 EventMesh.debug_log("stop temp")
                 EventMesh.publish("set_temp_state",0)
                 EventMesh.publish(constants.EVENT.STOP_TEMP)#手动体温测试
-            if  get_bg_state == 1 or get_bg_state == 3:
+            if  get_bg_state != 0:
                 EventMesh.publish("set_bg_state",0)#2代表后台进入测试,定时测心率 1ui界面测试洗心率 
                 EventMesh.debug_log("sstop bg")
                 EventMesh.publish(constants.EVENT.STOP_HEART) 
 
-            if  get_bp_state  == 1 or get_bp_state  == 3:
+            if  get_bp_state != 0:
                 EventMesh.publish("set_bp_state",0)#2代表后台进入测试,定时测心率 1ui界面测试洗心率 
                 EventMesh.debug_log("sstop bp")
                 EventMesh.publish(constants.EVENT.STOP_HEART) 
@@ -1468,6 +1533,48 @@ class intervManager(Abstract):
                         EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
 
 
+    def play_sugar_value(self, event, msg): #播放血糖数值
+        flag = EventMesh.publish("get_call_state") 
+        if msg != None:
+            if flag == 0 and self.fall_flag == 0:
+                EventMesh.publish("close_timer_all")#
+                if msg != 0:
+                    # str_data = 'mp3files={}.mp3'.format(audio_buf.index("R_HSENSOR_RESULT_OK"))
+                    # EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
+                    EventMesh.publish("set_hr_blood_led",2)#测量成功
+                    # self.timer.start(2*1000,1,self.play_spo2_fun)
+                    self.play_sugar_fun(msg)
+                else:
+                    str_data = 'mp3files={}.mp3'.format(audio_buf.index("R_HSENSOR_RESULT_FAILE"))
+                    EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
+                    EventMesh.publish("set_hr_blood_led",3)#测量异常
+            else:
+                EventMesh.publish("set_hr_blood_led",3)#测量异常
+
+    def play_sugar_fun(self,argc):#播放血糖测试值
+        flag = EventMesh.publish("get_call_state") 
+        
+        if flag == 0 and self.fall_flag == 0:#电话通话中 或者呼叫中挂断中断
+            EventMesh.publish("close_timer_all")#
+            data = str(argc)
+            data_shi = 0
+            data_ge = 0
+            if data.find(".") != -1:
+                data_shi = int(data.split(".")[0])
+                data_ge = int(data.split(".")[1])
+            else:
+                data_shi = int(data)
+                data_ge = 0
+
+            if data_shi != 0 and data_ge != 0:
+                str_data = 'mp3files={}.mp3+{}.mp3+{}.mp3+{}.mp3'.format(audio_buf.index("R_BLOOD_SUGAR"),audio_buf.index("R_READ_TIME_{}".format(data_shi)),\
+                audio_buf.index("R_TSENSOR_RESULT_VALUE_DOT"),audio_buf.index("R_READ_TIME_{}".format(data_ge)))
+                EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
+        else:
+            EventMesh.publish("set_hr_blood_led",3)#测量异常
+
+
+
     def play_spo2_value(self, event, msg): #播放血样数值
         flag = EventMesh.publish("get_call_state") 
         if msg != None:
@@ -1500,9 +1607,15 @@ class intervManager(Abstract):
                 audio_buf.index("R_READ_STEP_2"))
                 EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
             else:
-                str_data = 'mp3files={}.mp3+{}.mp3+{}.mp3+{}.mp3'.format(audio_buf.index("R_HSENSOR_SPO2_TITLE"),audio_buf.index("R_READ_TIME_{}".format(data//10)),\
-                audio_buf.index("R_READ_STEP_3"),audio_buf.index("R_READ_TIME_{}".format(data%10)))
-                EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
+                if data % 10 == 0:
+                    str_data = 'mp3files={}.mp3+{}.mp3+{}.mp3'.format(audio_buf.index("R_HSENSOR_SPO2_TITLE"),audio_buf.index("R_READ_TIME_{}".format(data//10)),\
+                    audio_buf.index("R_READ_STEP_3"))
+                    EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
+                    pass
+                else:
+                    str_data = 'mp3files={}.mp3+{}.mp3+{}.mp3+{}.mp3'.format(audio_buf.index("R_HSENSOR_SPO2_TITLE"),audio_buf.index("R_READ_TIME_{}".format(data//10)),\
+                    audio_buf.index("R_READ_STEP_3"),audio_buf.index("R_READ_TIME_{}".format(data%10)))
+                    EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
 
 
     def set_sim_mode(self, event, msg): #mode 1 蓝灯闪烁 可识别卡 但未联网 2 可绑定appsim正常 3 手表不识别卡或者未插卡
@@ -1613,7 +1726,7 @@ class intervManager(Abstract):
             elif self.old_hour <= 9:#8:09 9:20 9:45
                 if self.old_min <= 9:#9点09分
                     if self.old_min <= 0:
-                        str_data = 'mp3files={}.mp3+{}.mp3+{}.mp3+{}.mp3+{}.mp3'.format(audio_buf.index("R_READ_TIME_{}".format(self.old_hour))\
+                        str_data = 'mp3files={}.mp3+{}.mp3'.format(audio_buf.index("R_READ_TIME_{}".format(self.old_hour))\
                         ,audio_buf.index("R_TSENSOR_RESULT_VALUE_DOT"))
                         EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
                         pass
@@ -1637,7 +1750,7 @@ class intervManager(Abstract):
 
 
             else:#12:0
-                if self.old_min == 0:#12:00 13:00 15:00 20
+                if self.old_min == 0:#12:00 13:00 15:00 20 10 11 12 13 14 15
                     self.play_count+=1
                     hour_shi = self.old_hour//10
                     hour_ge = self.old_hour%10
@@ -1685,11 +1798,17 @@ class intervManager(Abstract):
                     else:
                         if self.old_hour < 20:#19:00
                             if self.old_min <= 9:#19:09 
-                                str_data = 'mp3files={}.mp3+{}.mp3+{}.mp3+{}.mp3+{}.mp3+{}.mp3'.format(audio_buf.index("R_READ_STEP_3")\
-                                ,audio_buf.index("R_READ_TIME_{}".format(self.old_hour % 10)),audio_buf.index("R_TSENSOR_RESULT_VALUE_DOT")\
-                                ,audio_buf.index("R_READ_TIME_0"),audio_buf.index("R_READ_TIME_{}".format(self.old_min % 10))\
-                                ,audio_buf.index("R_READ_TIME_MIN"))
-                                EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
+                                if self.old_min == 0:
+                                    str_data = 'mp3files={}.mp3+{}.mp3+{}.mp3'.format(audio_buf.index("R_READ_STEP_3")\
+                                    ,audio_buf.index("R_READ_TIME_{}".format(self.old_hour % 10)),audio_buf.index("R_TSENSOR_RESULT_VALUE_DOT"))
+                                    EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
+                                    pass
+                                else:
+                                    str_data = 'mp3files={}.mp3+{}.mp3+{}.mp3+{}.mp3+{}.mp3+{}.mp3'.format(audio_buf.index("R_READ_STEP_3")\
+                                    ,audio_buf.index("R_READ_TIME_{}".format(self.old_hour % 10)),audio_buf.index("R_TSENSOR_RESULT_VALUE_DOT")\
+                                    ,audio_buf.index("R_READ_TIME_0"),audio_buf.index("R_READ_TIME_{}".format(self.old_min % 10))\
+                                    ,audio_buf.index("R_READ_TIME_MIN"))
+                                    EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
                                 
                             else:#19:18 19:40 19:56
                                 if self.old_min % 10 == 0:#十9点2十分 十9点3十分
@@ -1714,10 +1833,16 @@ class intervManager(Abstract):
                             #20:08 20:18  20:20
                             if hour_ge == 0:
                                 if self.old_min <= 9:
-                                    str_data = 'mp3files={}.mp3+{}.mp3+{}.mp3+{}.mp3+{}.mp3+{}.mp3'.format(audio_buf.index("R_READ_TIME_{}".format(hour_shi))\
-                                    ,audio_buf.index("R_READ_STEP_3"),audio_buf.index("R_TSENSOR_RESULT_VALUE_DOT"),audio_buf.index("R_READ_TIME_0")\
-                                    ,audio_buf.index("R_READ_TIME_{}".format(min_ge)),audio_buf.index("R_READ_TIME_MIN"))
-                                    EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
+                                    if self.old_min == 0:
+                                        str_data = 'mp3files={}.mp3+{}.mp3+{}.mp3'.format(audio_buf.index("R_READ_TIME_{}".format(hour_shi))\
+                                        ,audio_buf.index("R_READ_STEP_3"),audio_buf.index("R_TSENSOR_RESULT_VALUE_DOT"))
+                                        EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
+                                        pass
+                                    else:
+                                        str_data = 'mp3files={}.mp3+{}.mp3+{}.mp3+{}.mp3+{}.mp3+{}.mp3'.format(audio_buf.index("R_READ_TIME_{}".format(hour_shi))\
+                                        ,audio_buf.index("R_READ_STEP_3"),audio_buf.index("R_TSENSOR_RESULT_VALUE_DOT"),audio_buf.index("R_READ_TIME_0")\
+                                        ,audio_buf.index("R_READ_TIME_{}".format(min_ge)),audio_buf.index("R_READ_TIME_MIN"))
+                                        EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
 
                                 else:
                                     if min_ge == 0:#2十点2十分
@@ -1733,11 +1858,18 @@ class intervManager(Abstract):
 
                             else:#21:08 21:18
                                 if self.old_min <= 9:
-                                    str_data = 'mp3files={}.mp3+{}.mp3+{}.mp3+{}.mp3+{}.mp3+{}.mp3+{}.mp3'.format(audio_buf.index("R_READ_TIME_{}".format(hour_shi))\
-                                    ,audio_buf.index("R_READ_STEP_3"),audio_buf.index("R_READ_TIME_{}".format(hour_ge))\
-                                    ,audio_buf.index("R_TSENSOR_RESULT_VALUE_DOT"),audio_buf.index("R_READ_TIME_0")\
-                                    ,audio_buf.index("R_READ_TIME_{}".format(min_ge)),audio_buf.index("R_READ_TIME_MIN"))
-                                    EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
+                                    if self.old_min == 0:
+                                        str_data = 'mp3files={}.mp3+{}.mp3+{}.mp3+{}.mp3'.format(audio_buf.index("R_READ_TIME_{}".format(hour_shi))\
+                                        ,audio_buf.index("R_READ_STEP_3"),audio_buf.index("R_READ_TIME_{}".format(hour_ge))\
+                                        ,audio_buf.index("R_TSENSOR_RESULT_VALUE_DOT"))
+                                        EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
+                                        pass
+                                    else:
+                                        str_data = 'mp3files={}.mp3+{}.mp3+{}.mp3+{}.mp3+{}.mp3+{}.mp3+{}.mp3'.format(audio_buf.index("R_READ_TIME_{}".format(hour_shi))\
+                                        ,audio_buf.index("R_READ_STEP_3"),audio_buf.index("R_READ_TIME_{}".format(hour_ge))\
+                                        ,audio_buf.index("R_TSENSOR_RESULT_VALUE_DOT"),audio_buf.index("R_READ_TIME_0")\
+                                        ,audio_buf.index("R_READ_TIME_{}".format(min_ge)),audio_buf.index("R_READ_TIME_MIN"))
+                                        EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
                                 else:
                                     if min_ge == 0:#2十3点3十分
                                         str_data = 'mp3files={}.mp3+{}.mp3+{}.mp3+{}.mp3+{}.mp3+{}.mp3+{}.mp3'.format(audio_buf.index("R_READ_TIME_{}".format(hour_shi))\
@@ -2103,6 +2235,10 @@ class BtnDevice(Abstract):
         if power_off != None:
             if power_off == 1:
                 return
+        open_power = EventMesh.publish("get_power_on_state")#获取开机标识
+        if open_power != None:
+            if open_power == 0:
+                return
         fall_down = EventMesh.publish("get_fall_down_state")#跌倒报警标识
         if fall_down != None:
             if fall_down != 0:
@@ -2226,6 +2362,7 @@ class BtnDevice(Abstract):
             usys.print_exception(e)
         if self.pwKey_press_count >= 1:
             # EventMesh.debug_log("pwKey_timeout_cb:self.pwKey_press_count >= 1")
+            
             EventMesh.publish("stop_led_timer")#设置参数
             EventMesh.publish("dialing_out_event")#电话呼叫中voiceCall.callEnd()
             
@@ -2235,7 +2372,6 @@ class BtnDevice(Abstract):
                 EventMesh.publish("set_sos_flag",0)
                 EventMesh.publish("set_sos_num",0)
                 EventMesh.publish("set_hangup_mode",0)
-            
             EventMesh.publish("close_hr_sop2")#
             flag = EventMesh.publish("get_call_state") 
             if flag != 1:
@@ -2248,6 +2384,10 @@ class BtnDevice(Abstract):
         if power_off != None:
             if power_off == 1:
                 return
+        open_power = EventMesh.publish("get_power_on_state")#获取开机标识
+        if open_power != None:
+            if open_power == 0:
+                return
         self.sosKey_status = self.sosKey.read_level()
         # EventMesh.debug_log('### key22_extint_cb  {} self.GPIO22_status:{}'.format(args,self.sosKey_status)) # args[0]:gpio号 args[1]:上升沿或下降沿
         if self.WeChatKey_status != 0 and self.GPIO26_status != 0:
@@ -2355,8 +2495,13 @@ class BtnDevice(Abstract):
     def wechatKey_extint_cb(self,args):
         power_off = EventMesh.publish("get_power_off_state")#获取关机标识
         if power_off != None:
-            if power_off == 1:
+            if power_off != 0:
                 return
+        open_power = EventMesh.publish("get_power_on_state")#获取开机标识
+        if open_power != None:
+            if open_power == 0:
+                return
+
         self.WeChatKey_status = self.wechatKey.read_level()
         # EventMesh.debug_log('### wechatKey_extint_cb  {} self.WeChatKey_status:{}'.format(args,self.WeChatKey_status)) # args[0]:gpio号 args[1]:上升沿或下降沿
         if self.sosKey_status != 0 and self.GPIO26_status != 0:
index 5d7ea8d..ea2e1ae 100644 (file)
@@ -137,6 +137,9 @@ class PROTOCOL:
 
     SLEEPTIME_SEND = "SLEEPTIME_SEND"
     SLEEPTIME_RECV = "SLEEPTIME_RECV"
+
+    FACTORY_SEND = "FACTORY_SEND"
+    FACTORY_RECV = "FACTORY_RECV"
     
 
 class EVENT:
index f861048..9dc7378 100644 (file)
@@ -288,8 +288,8 @@ class ledEventManager(Abstract):#灯事件
                             else:
                                 self.wechat_btn = 0
                                 # if get_hr_state != 0 or get_spo2_state != 0 or temp_state != 0 or bp_state != 0 or bg_state != 0 :#心率血氧优先级高
-                                if get_hr_state == 1 or get_hr_state == 3 or get_spo2_state == 1 or get_spo2_state == 3 or temp_state == 1 or temp_state == 3 \
-                                or bp_state == 1 or bp_state == 3 or bg_state == 1 or bg_state == 3:
+                                if get_hr_state == 1 or get_spo2_state == 1 or temp_state == 1 \
+                                or bp_state == 1  or bg_state == 1:
                                     if self.working_led_mode != led_mode.HEALTH_LED_MODE:#如果不在亮微聊模式需要亮微聊模式
                                         # EventMesh.debug_log("set_hr_blood_led!!!!!!!!!!")
                                         str_buf = [1,2,10*70*2,led_mode.FLASH_LIGHT_RED_GREEN,10,5,led_mode.HEALTH_LED_MODE]#測量成功
@@ -301,10 +301,8 @@ class ledEventManager(Abstract):#灯事件
                                     else:
                                         # EventMesh.debug_log("set_hr_blood_led stop!!!!!!!!!!")
                                         return
-                                if  get_hr_state == 0 and get_spo2_state == 0 and temp_state == 0 and bp_state == 0 and bg_state == 0\
-                                    and get_hr_state == 2 and get_spo2_state == 2 and temp_state == 2 and bp_state == 2 and bg_state == 2:
+                                else:# 0 2都认为其他模式灯亮 不是测试健康灯
                                     self.working_led_mode = led_mode.OTHER_MEASURE_MODE
-                        
         self.open_timer(msg)
 
 
@@ -323,9 +321,10 @@ class ledEventManager(Abstract):#灯事件
                     get_hr_state = EventMesh.publish("get_hr_state")
                     get_spo2_state = EventMesh.publish("get_spo2_state")
                     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 == 1 or get_spo2_state == 1 or get_temp_state == 1:#手动触发
-                            if get_hr_state == 3 or get_spo2_state == 3 or get_temp_state == 3:
+                    get_bp_state = EventMesh.publish("get_bp_state")
+                    get_bg_state = EventMesh.publish("get_bg_state")
+                    if get_hr_state != None and  get_spo2_state != None and get_temp_state != None and get_bp_state != None and get_bg_state != None:
+                        if get_hr_state == 1 or get_spo2_state == 1 or get_temp_state == 1 or get_bp_state == 1 or get_bg_state == 1:
                                 EventMesh.publish("close_hr_sop2")
                                 EventMesh.publish("close_led_pin")
                                 return
@@ -535,8 +534,6 @@ class ledEventManager(Abstract):#灯事件
     
     def close_all_led(self, event, msg):
         self.close_all_led_do(0)
-        # EventMesh.debug_log("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):   
         open_power = EventMesh.publish("get_power_on_state")#获取开机标识
         if open_power != None:
@@ -562,8 +559,8 @@ class ledEventManager(Abstract):#灯事件
                         bg_state = EventMesh.publish("get_bg_state")
                         # EventMesh.debug_log("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 == 1 or get_spo2_state == 3 or get_hr_state == 1 or get_hr_state == 3 or temp_state == 1 or bp_state == 1 \
-                                or bg_state == 1 or bg_state == 3 or temp_state == 3 or bp_state == 3:
+                            if wechat_state == 1 or get_spo2_state == 1  or get_hr_state == 1  or temp_state == 1 or bp_state == 1 \
+                                or bg_state == 1 :
                                 return
         if self.timer_state == 1:
             self.timer.stop()
index f326bb5..dd3e552 100644 (file)
@@ -77,11 +77,10 @@ def main_init():
     #     TEMP_ProtoCol,DLT_ProtoCol,WT_ProtoCol,UD_ProtoCol,REMIND_ProtoCol, CR_ProtoCol,KA_ProtoCol,FIND_ProtoCol,POWEROFF_ProtoCol,Time_ProtoCol,TKS_ProtoCol,FALLDOWN_ProtoCol,\
     #         ProtoColResolver,SILENCETIME2_ProtoCol,PHL_ProtoCol,MONITOR_ProtoCol,bootoff_ProtoCol,WDSTART_ProtoCol,LOWBAT_ProtoCol,sosHome_dial_ProtoCol,SockManager,NetManager
     import  protocol  
-    import mgr as mgr
+    import mgr 
     EventMesh.debug_log("init7:{}".format(utime.localtime()))
     
-    from mgr import ClockManager,deleteSmsManager,testSmsSetIPManager,ConfigStoreManager,sosInfoCallManager,getBootOffManager,getSosFlagManager,CountdownManager, LocationManager, getVolumSizeManager,gethistoryDataManager,getUpLoadDataManager, getplayAudiodStateManager,\
-    AddrBookManager,MsgdetailManager,PhoneCallingManager,getOldTimeManager,getStorageDataManager,getBrightnessManager,getHrTimeManager,getTempTimeManager,getLowBatManager
+    
     EventMesh.debug_log("init8:{}".format(utime.localtime()))
     
     # from appWechat import TK_ProtoCol,MESSAGE_ProtoCol
@@ -96,7 +95,7 @@ def main_init():
 
     app = watchApp()
     app.set_ui(ui)
-    app.append_manager(getStorageDataManager())
+    app.append_manager(mgr.getStorageDataManager())
     app.append_manager(mgr.AlarmVolumeLevelManager()) \
         .append_manager(mgr.MsgVolumeLevelManager()) \
         .append_manager(mgr.PhoneVolumeLevelManager()) \
@@ -116,33 +115,34 @@ def main_init():
         # .append_manager(mgr.CountdownManager()) \
 
    
-    app.append_manager(ConfigStoreManager())
+    app.append_manager(mgr.ConfigStoreManager())
     app.append_manager(protocol.NetManager())
-    app.append_manager(LocationManager())
-    app.append_manager(AddrBookManager())
+    app.append_manager(mgr.LocationManager())
+    app.append_manager(mgr.AddrBookManager())
     app.append_manager(mgr.MsgManager())
-    app.append_manager(MsgdetailManager())
+    app.append_manager(mgr.MsgdetailManager())
     app.append_manager(mgr.CallLogManager())
     app.append_manager(mgr.getWeatherDataManager())
-    app.append_manager(PhoneCallingManager())
-    app.append_manager(ClockManager())
+    app.append_manager(mgr.PhoneCallingManager())
+    app.append_manager(mgr.ClockManager())
+    app.append_manager(mgr.sendDevinfoManager())
    
-    app.append_manager(gethistoryDataManager())
-    app.append_manager(getHrTimeManager())
-    app.append_manager(getBrightnessManager())
+    app.append_manager(mgr.gethistoryDataManager())
+    app.append_manager(mgr.getHrTimeManager())
+    app.append_manager(mgr.getBrightnessManager())
     
-    app.append_manager(getUpLoadDataManager())
-    app.append_manager(getVolumSizeManager())
-    app.append_manager(getTempTimeManager())
-    app.append_manager(getplayAudiodStateManager())
-    app.append_manager(getLowBatManager())
-    app.append_manager(getBootOffManager())
-    app.append_manager(getOldTimeManager())
-    app.append_manager(getSosFlagManager())
-    app.append_manager(CountdownManager())
-    app.append_manager(sosInfoCallManager())
-    app.append_manager(testSmsSetIPManager())
-    app.append_manager(deleteSmsManager())
+    app.append_manager(mgr.getUpLoadDataManager())
+    app.append_manager(mgr.getVolumSizeManager())
+    app.append_manager(mgr.getTempTimeManager())
+    app.append_manager(mgr.getplayAudiodStateManager())
+    app.append_manager(mgr.getLowBatManager())
+    app.append_manager(mgr.getBootOffManager())
+    app.append_manager(mgr.getOldTimeManager())
+    app.append_manager(mgr.getSosFlagManager())
+    app.append_manager(mgr.CountdownManager())
+    app.append_manager(mgr.sosInfoCallManager())
+    app.append_manager(mgr.testSmsSetIPManager())
+    app.append_manager(mgr.deleteSmsManager())
 
     EventMesh.debug_log("init21:{}".format(utime.localtime()))    
     
@@ -195,6 +195,7 @@ def main_init():
     pcr.add_support(protocol.REMIND_CH_REST_ProtoCol())
     pcr.add_support(protocol.SLEEP_DATA_ProtoCol())
     pcr.add_support(protocol.SLEEPTIME_ProtoCol())
+    pcr.add_support(protocol.FACTORY_ProtoCol())
 
     sm = protocol.SockManager()
     sm.add_support_resolver(pcr)
index 2145807..a65f0ae 100644 (file)
@@ -42,6 +42,9 @@ import voiceCall
 from misc import PWM
 from led import led_mode,open_led_green,close_led_green,open_led_red,close_led_red,close_led_white
 from queue import Queue
+
+heartbeat_time = 7*60 #心跳时间
+
 def get_autoblood_value():#血压值
     data = RTC().datetime()
     hour = int(data[4])
@@ -787,6 +790,12 @@ class DeviceInfoManager(Abstract):
 
         self.bg_times = 0
 
+        self.bp_timeSecond = 0
+        self.bpauto_state = 0
+
+        self.spo2_timeSecond = 0
+        self.spo2auto_state = 0
+
         self.vbat_count = 0
 
         self.vbat_buf=[]
@@ -1041,6 +1050,8 @@ class DeviceInfoManager(Abstract):
         self.old_hr_time = 0
         self.old_spo2_time = 0
         self.BG_state = 0
+        self.bpauto_state = 0
+        self.spo2auto_state = 0
         pass
 
     def clear_temp_state(self,event,msg):
@@ -1074,7 +1085,7 @@ class DeviceInfoManager(Abstract):
         #         EventMesh.publish(constants.EVENT.START_LOCATION,constants.PROTOCOL.UD_SEND) #开始UD定位
 
         """7分钟一次心跳"""
-        if  math.fabs(time_tmp - self.KA_time) > 7*60: #7分钟一次心跳
+        if  math.fabs(time_tmp - self.KA_time) > heartbeat_time: #7分钟一次心跳
             self.KA_time = time_tmp
             EventMesh.publish(constants.PROTOCOL.KA_SEND)
 
@@ -1095,6 +1106,7 @@ class DeviceInfoManager(Abstract):
                     #EventMesh.txt_log("NO status")
                     EventMesh.debug_log("NO status")
                     EventMesh.publish(constants.EVENT.CLOSE_LOCATION)#关闭定位 
+        
         EventMesh.publish(constants.EVENT.PUSH_STEP, self.get_step_count())
 
         """电池平均值"""
@@ -1128,28 +1140,27 @@ class DeviceInfoManager(Abstract):
 
         data = RTC().datetime()
 
-        hour = data[4]
-        min = data[5]
+        hour = int(data[4])
+        min = int(data[5])
+
+
 
         cur_month = int(data[1])
         cur_day = int(data[2])
         cur_year = int(data[0])
 
         old_Timesec = EventMesh.publish("get_old_time_data")
-        next_alarm_time = utime.localtime(int(old_Timesec))
-        old_step_state = EventMesh.publish("get_old_step_data")
         # EventMesh.debug_log("hour:{} {} cur_month:{} {} next_alarm_time:{} old_Timesec:{}".format(hour,min,cur_month,cur_day,next_alarm_time,old_Timesec))
-        if old_step_state == None:
-            old_step_state = 0
         # EventMesh.debug_log("old_Timesec",old_Timesec)
-        if old_Timesec != None and old_step_state != None:
-            month = next_alarm_time[1] #00:00
-            day = next_alarm_time[2]
-            year = next_alarm_time[0]
+        if old_Timesec != None:
+            next_alarm_time = utime.localtime(int(old_Timesec))
+            month = int(next_alarm_time[1]) #00:00 18
+            day = int(next_alarm_time[2])
+            year = int(next_alarm_time[0])
             if month != cur_month or day != cur_day or year != cur_year:#年 月 日只要其中一个都不一样就清零
-                step = EventMesh.publish("get_old_step_value")
                 EventMesh.publish("set_old_time_data",time_tmp)
                 self.gsensor.reset_step()
+
                 EventMesh.publish("set_old_step_value",0)
                 
                 hr = EventMesh.publish("get_old_hr_data")
@@ -1159,35 +1170,29 @@ class DeviceInfoManager(Abstract):
                 spo2 = EventMesh.publish("get_old_spo2_data")
                 if spo2 != 0:
                     EventMesh.publish("set_old_spo2_data", 0)
-                EventMesh.publish("set_old_step_data",[1,time_tmp])
                 EventMesh.debug_log("clear step1111")
             else:
-                EventMesh.publish("set_old_step_data",[4,time_tmp])
+                pass
                 
                 
         if hour == 23:#清步数23:59
-            if min <= 59 and min >= 58:#58 59
-                clear_step_state = EventMesh.publish("get_old_step_data")
-                if clear_step_state == None:
-                    clear_step_state = 0
-                if self.clear_step == 0:
-                    self.clear_step = 1
-                    step = EventMesh.publish("get_old_step_value")
-                    EventMesh.publish("set_old_time_data",time_tmp)
-                    self.gsensor.reset_step()
-                    EventMesh.publish("set_old_step_value",0)
-                        
-                    hr = EventMesh.publish("get_old_hr_data")
-                    if hr != 0:
-                        EventMesh.publish("set_old_hr_data", 0)
-                    
-                    spo2 = EventMesh.publish("get_old_spo2_data")
-                    if spo2 != 0:
-                        EventMesh.publish("set_old_spo2_data", 0)
-                    EventMesh.publish("set_old_step_data",[2,time_tmp])
-                    EventMesh.debug_log("clear step2222")
+            if min == 59:#58 59
+                # if self.clear_step == 0:
+                #     self.clear_step = 1
+                EventMesh.publish("set_old_time_data",time_tmp)
+                self.gsensor.reset_step()
+                EventMesh.publish("set_old_step_value",0)
+
+                hr = EventMesh.publish("get_old_hr_data")
+                if hr != 0:
+                    EventMesh.publish("set_old_hr_data", 0)
+                
+                spo2 = EventMesh.publish("get_old_spo2_data")
+                if spo2 != 0:
+                    EventMesh.publish("set_old_spo2_data", 0)
+                EventMesh.debug_log("clear step2222")
+
             else:
-                EventMesh.publish("set_old_step_data",[3,time_tmp])
                 self.clear_step = 0
         else:
             self.clear_step = 0
@@ -1215,14 +1220,9 @@ class DeviceInfoManager(Abstract):
             if battery[0] != '1':
                 self.no_smi_count+=10
                 # EventMesh.debug_log("self.no_smi_count",self.no_smi_count)
-                if self.no_smi_count >= (15*60):
+                if self.no_smi_count >= (15*60):#(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")#未插卡
+                    EventMesh.publish("open_power_on",2)#  #未检测到sim卡15分钟后关机
                   
         else:
             self.no_smi_count = 0
@@ -1233,7 +1233,7 @@ class DeviceInfoManager(Abstract):
             sms_data = sms.getSaveLoc()
             sms_max = sms_data[0][2]
             if msg_nums >= sms_max-1:
-                EventMesh.publish("remove_all_sms_cb")#
+                EventMesh.publish("delete_sms_event")#
 
         #佩戴检测
         WEAR = EventMesh.publish(constants.EVENT.GET_WEAR)#佩戴数据
@@ -1278,12 +1278,6 @@ class DeviceInfoManager(Abstract):
             self.get_hr_state = 0
         if self.get_spo2_state == None:
             self.get_spo2_state = 0 
-
-        hr_time = {}
-        hr_time = EventMesh.publish("get_time_hr_spo2")#获取时间是否大于0
-
-        bg_time = {}
-        bg_time = EventMesh.publish("get_bgauto_time")
        
         call_state = EventMesh.publish("get_call_state")
         if call_state == None:
@@ -1357,19 +1351,76 @@ class DeviceInfoManager(Abstract):
                 
                 # print("bp get_bp_state ",get_bp_state,self.old_bp_time)
 
+                
+                if get_hr_state != None:
+                    if get_hr_state == 3:
+                        self.old_hr_time+=1
+                        if self.old_hr_time == 1:
+                            EventMesh.publish("set_hr_state",3)#2代表后台进入测试
+                            # EventMesh.publish("set_hr_blood_led",1)
+                            EventMesh.publish(constants.EVENT.START_HEART)
+                            print("hr start 3")
+                        elif self.old_hr_time > 6:
+                            self.old_hr_time = 0
+                            EventMesh.publish("set_hr_state",0)#2代表后台进入测试
+                            EventMesh.debug_log("stop hr 3 debug3")
+                            EventMesh.publish(constants.EVENT.STOP_HEART)
+                            heart_value = EventMesh.publish(constants.EVENT.GET_HEART)
+                            EventMesh.debug_log("heart_value:{}".format(heart_value))
+                            if heart_value > 50 and heart_value != None:
+                                # EventMesh.publish("play_hr_value",heart_value)
+                                EventMesh.publish(constants.PROTOCOL.HEART_SEND,heart_value)#上传心率数据
+                            else:                         
+                                # EventMesh.publish("play_hr_value",0) 
+                                pass
+                                # EventMesh.publish("play_hr_value",0)
+                            #获取心率数据上传数据app
+                            EventMesh.debug_log("STOP_HEART:3")
+                    else:
+                        self.old_hr_time = 0
+                else:
+                    self.old_hr_time = 0
+
+
+                if get_spo2_state != None:
+                    if get_spo2_state == 3:
+                        self.old_spo2_time+=1
+                        if self.old_spo2_time == 1:
+                            EventMesh.publish("set_spo2_state",3)#2代表后台进入测试
+                            # EventMesh.publish("set_hr_blood_led",1)
+                            EventMesh.publish(constants.EVENT.START_BLOOD_OXYGEN)#K开血氧
+                            print("spo2 start 3")
+                        elif self.old_spo2_time > 6:
+                            self.old_spo2_time = 0
+                            EventMesh.publish("set_spo2_state",0)#2代表后台进入测试
+                            EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN)
+                            spo2_value = EventMesh.publish(constants.EVENT.GET_BLOOD_OXYGEN)
+                            if spo2_value > 85 and spo2_value != None:
+                                # EventMesh.publish("play_spo2_value",spo2_value)
+                                # EventMesh.publish("set_old_spo2_data",spo2_value)
+                                EventMesh.publish(constants.PROTOCOL.OXYGEN_SEND,spo2_value)
+                            else:                      
+                                # EventMesh.publish("play_spo2_value",0)
+                                print("spo2 stop 3")
+                    else:
+                        self.old_spo2_time = 0
+                else:
+                    self.old_spo2_time = 0
+
+
                 if get_bp_state != None:
                     if get_bp_state == 3:
                         self.old_bp_time+=1
                         if self.old_bp_time == 1:
                             EventMesh.publish("set_bp_state",3)#2代表后台进入测试
-                            EventMesh.publish("set_hr_blood_led",1)
+                            # EventMesh.publish("set_hr_blood_led",1)
                             EventMesh.publish(constants.EVENT.START_HEART)
                             print("bp start ")
                         elif self.old_bp_time > 6:
                             self.old_bp_time = 0
                             
                             EventMesh.publish("set_bp_state",0)#2代表后台进入测试
-                            EventMesh.publish("stop_led_timer")#设置参数
+                            # EventMesh.publish("stop_led_timer")#设置参数
                             blood_data = get_autoblood_value()
                             if blood_data == None:
                                 blood_data[0] = 0
@@ -1393,19 +1444,25 @@ class DeviceInfoManager(Abstract):
                         self.old_bg_time+=1
                         if self.old_bg_time == 1:
                             EventMesh.publish("set_bg_state",3)#2代表后台进入测试
-                            EventMesh.publish("set_hr_blood_led",1)
+                            # EventMesh.publish("set_hr_blood_led",1)
                             EventMesh.publish(constants.EVENT.START_HEART)
                             print("bg start ")
                         elif self.old_bg_time > 6:
                             self.old_bg_time = 0
                             EventMesh.publish("set_bg_state",0)#2代表后台进入测试
-                            EventMesh.publish("stop_led_timer")#设置参数
+                            EventMesh.publish(constants.EVENT.STOP_HEART)
+                            # EventMesh.publish("stop_led_timer")#设置参数
                             bg_data = get_blood_sugar_value()
                             if bg_data == None:
                                 bg_data = 0
                             if bg_data != 0:
+                                # EventMesh.publish("play_sugar_value", bg_data)#播放血糖数值
                                 EventMesh.publish(constants.PROTOCOL.BLOODGLUSOCE_SEND,bg_data)
-                            EventMesh.publish(constants.EVENT.STOP_HEART)
+                            else:
+                                # EventMesh.publish("play_sugar_value", 0)#播放血糖数值
+                                pass
+
+                            
                             print("bg stop ")
                     else:
                         self.old_bg_time = 0
@@ -1413,72 +1470,13 @@ class DeviceInfoManager(Abstract):
                     self.old_bg_time = 0
 
                 
-                if get_hr_state != None:
-                    if get_hr_state == 3:
-                        self.old_hr_time+=1
-                        if self.old_hr_time == 1:
-                            EventMesh.publish("set_hr_state",3)#2代表后台进入测试
-                            EventMesh.publish("set_hr_blood_led",1)
-                            EventMesh.publish(constants.EVENT.START_HEART)
-                            print("hr start 3")
-                        elif self.old_hr_time > 6:
-                            self.old_hr_time = 0
-                            EventMesh.publish("set_hr_state",0)#2代表后台进入测试
-                            EventMesh.debug_log("stop hr 3 debug3")
-                            EventMesh.publish(constants.EVENT.STOP_HEART)
-                            heart_value = EventMesh.publish(constants.EVENT.GET_HEART)
-                            EventMesh.debug_log("heart_value:{}".format(heart_value))
-                            if heart_value > 50 and heart_value != None:
-                                # EventMesh.publish("play_hr_value",heart_value)
-                                EventMesh.publish("set_history_hr_value",heart_value)
-                                EventMesh.publish(constants.PROTOCOL.HEART_SEND,heart_value)#上传心率数据
-                            else:
-                                EventMesh.publish("stop_led_timer")#设置参数
-                                pass
-                                # EventMesh.publish("play_hr_value",0)
-                            #获取心率数据上传数据app
-                            EventMesh.debug_log("STOP_HEART:3")
-                    else:
-                        self.old_hr_time = 0
-                else:
-                    self.old_hr_time = 0
-
-
-                if get_spo2_state != None:
-                    if get_spo2_state == 3:
-                        self.old_spo2_time+=1
-                        if self.old_spo2_time == 1:
-                            EventMesh.publish("set_spo2_state",3)#2代表后台进入测试
-                            EventMesh.publish("set_hr_blood_led",1)
-                            EventMesh.publish(constants.EVENT.START_BLOOD_OXYGEN)#K开血氧
-                            print("spo2 start 3")
-                        elif self.old_spo2_time > 6:
-                            self.old_spo2_time = 0
-                            EventMesh.publish("set_spo2_state",0)#2代表后台进入测试
-                            EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN)
-                            spo2_value = EventMesh.publish(constants.EVENT.GET_BLOOD_OXYGEN)
-                            if spo2_value > 85 and spo2_value != None:
-                                # EventMesh.publish("play_spo2_value",0)
-                                EventMesh.publish("set_history_spo2_value",spo2_value)
-                                EventMesh.publish("set_old_spo2_data",spo2_value)
-                                EventMesh.publish(constants.PROTOCOL.OXYGEN_SEND,spo2_value)
-                            else:
-                                EventMesh.publish("stop_led_timer")#设置参数
-                                pass
-                            print("spo2 stop 3")
-                                # EventMesh.publish("play_spo2_value",0)
-                    else:
-                        self.old_spo2_time = 0
-                else:
-                    self.old_spo2_time = 0
-
                 if get_temp_state != None:
                     if get_temp_state == 3:#单次测量
                         self.temp_one_state+=1
                         if self.temp_one_state == 1:
                             EventMesh.debug_log("AUTO one temp:2") 
                             EventMesh.publish("set_temp_state",3)
-                            EventMesh.publish("set_hr_blood_led",1)
+                            # EventMesh.publish("set_hr_blood_led",1)
                             EventMesh.publish(constants.EVENT.START_TEMP)   
                         elif self.temp_one_state > 3:
                             self.temp_one_state = 0
@@ -1499,18 +1497,20 @@ class DeviceInfoManager(Abstract):
                                 
                             if temp != None:
                                 if temp != 0:
-                                    EventMesh.publish("set_history_temp_value",temp)
+                                    # EventMesh.publish("set_history_temp_value",temp)
                                     # EventMesh.publish("play_temp_value",temp)#播放体温数值
                                     EventMesh.publish(constants.PROTOCOL.TEMP_SEND,[tmp_f_tmp,tmp_d_tmp])
                                 else:
-                                    EventMesh.publish("set_history_temp_value",0)
+                                    # EventMesh.publish("set_history_temp_value",0)
+                                    pass
                                     # EventMesh.publish("play_temp_value",0)#播放体温数值
-                            EventMesh.publish("stop_led_timer")#设置参数
+                            # EventMesh.publish("stop_led_timer")#设置参数
                             EventMesh.publish(constants.EVENT.STOP_TEMP)
                             EventMesh.debug_log("AUTO once temp:{} tmp_f:{} tmp_f_tmp:{} tmp_d:{} tmp_d_tmp:{}".format(temp,tmp_f,tmp_f_tmp,tmp_d,tmp_d_tmp)) 
                                     
 
 
+      
                 
                 # EventMesh.debug_log("get_temp_time:{} self.temp_one_state:{}".format(get_temp_time,self.temp_one_state))
                 if get_temp_time != None:#定时测量体温
@@ -1564,7 +1564,22 @@ class DeviceInfoManager(Abstract):
                             else:
                                 self.temp_state = 0
                                 self.old_temp_time = 0
-                        
+                    else:
+                        temp_state  = EventMesh.publish("get_temp_state") 
+                        if temp_state == 2:
+                            EventMesh.publish("set_temp_state",0)#2代表后台进入测试
+                            # EventMesh.publish("stop_led_timer")#设置参数
+                            EventMesh.debug_log("temp stop debug3")
+                            EventMesh.publish(constants.EVENT.STOP_TEMP)
+                        self.temp_state = 0
+                        self.temp_time = 0
+                        self.old_temp_time = 0
+
+
+
+                hr_time = {}
+                hr_time = EventMesh.publish("get_time_hr_spo2")#获取时间是否大于0
+
                 if hr_time[0] !=  None:
                     self.mearsure_btn = int(hr_time[0])
                     self.mearsure_timer = int(hr_time[1])
@@ -1617,13 +1632,110 @@ class DeviceInfoManager(Abstract):
                                 EventMesh.debug_log("33stop debug3")
                                 # EventMesh.publish("stop_led_timer")#设置参数
                                 EventMesh.publish(constants.EVENT.STOP_HEART)
-                
+                get_spo2time = EventMesh.publish("get_spo2_time")#血压自动测试
+                # print("get_spo2time",get_spo2time)
+                if get_spo2time != None:#血压时间不为0
+                    spo2_on = int(get_spo2time[0])
+                    spo2_time = int(get_spo2time[1])
+                    if spo2_on != 0 and spo2_time != 0:
+                        get_hr_state = EventMesh.publish("get_hr_state")
+                        get_spo2_state = EventMesh.publish("get_spo2_state")
+                        get_bp_state  = EventMesh.publish("get_bp_state")
+                        get_bg_state  = EventMesh.publish("get_bg_state")
+                        # print("state bg2",get_hr_state,get_spo2_state,get_bp_state,get_bg_state)
+                        if (get_hr_state == 0 and get_bp_state == 0 and get_bg_state == 0) and (get_spo2_state == 2 or get_spo2_state == 0):#心率血压血氧不在测试就测试血糖自动测量
+                            if (time_tmp-self.spo2_timeSecond) >= spo2_time:#大于一个周期的时间,保存的时间戳时间 1678 0 1678 30 1678 
+                                self.spo2_timeSecond = time_tmp
+                                self.spo2auto_state = 0
+                            # print("time_tmp spo2",time_tmp,self.spo2_timeSecond,time_tmp-self.spo2_timeSecond,self.bg_timer,self.bpauto_state)
+                            if (time_tmp - self.spo2_timeSecond) == 0 and self.spo2auto_state == 0:
+                                EventMesh.debug_log("START_spo2:auto")
+                                EventMesh.publish("set_spo2_state",2)#2代表后台进入测试
+                                EventMesh.publish(constants.EVENT.START_BLOOD_OXYGEN)#K开血氧
+                                self.spo2auto_state = 1
+                            elif (time_tmp - self.spo2_timeSecond) >= 60 and self.spo2auto_state == 1:
+                                EventMesh.publish("set_spo2_state",0)#2代表后台进入测试
+                                EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN)
+                                spo2_value = EventMesh.publish(constants.EVENT.GET_BLOOD_OXYGEN)
+                                if spo2_value > 85 and spo2_value != None:
+                                    EventMesh.publish("set_old_spo2_data",spo2_value)
+                                    EventMesh.publish(constants.PROTOCOL.OXYGEN_SEND,spo2_value)
+                                print("spo2 auto stop ")
+                                self.spo2auto_state = 0
+                        else:
+                            self.spo2auto_state = 0
+                    else:
+                        self.spo2_timeSecond = 0
+                        self.spo2auto_state = 0
+                        spo2_state = EventMesh.publish("get_spo2_state")#心率
+                        if spo2_state == 2:
+                            EventMesh.publish("set_spo2_state",0)#2代表后台进入测试
+                            EventMesh.debug_log("spo2 stop debug3")
+                            # EventMesh.publish("stop_led_timer")#设置参数
+                            EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN)
+
+
+                get_bptime = EventMesh.publish("get_bp_time")#血压自动测试
+                # print("get_bptime",get_bptime)
+                if get_bptime != None:#血压时间不为0
+                    bp_on = int(get_bptime[0])
+                    bp_time = int(get_bptime[1])
+                    if bp_on != 0 and bp_time != 0:
+                        get_hr_state = EventMesh.publish("get_hr_state")
+                        get_spo2_state = EventMesh.publish("get_spo2_state")
+                        get_bp_state  = EventMesh.publish("get_bp_state")
+                        get_bg_state  = EventMesh.publish("get_bg_state")
+                        # print("state bg2",get_hr_state,get_spo2_state,get_bp_state,get_bg_state)
+                        
+                        if (get_hr_state == 0 and get_spo2_state == 0 and get_bg_state == 0) and (get_bp_state == 2 or get_bp_state == 0):#心率血压血氧不在测试就测试血糖自动测量
+                            if (time_tmp-self.bp_timeSecond) >= bp_time:#大于一个周期的时间,保存的时间戳时间 1678 0 1678 30 1678 
+                                self.bp_timeSecond = time_tmp
+                                self.bpauto_state = 0
+                            # print("time_tmp bp",time_tmp,self.bp_timeSecond,time_tmp-self.bp_timeSecond,self.bg_timer,self.bpauto_state)
+                            if (time_tmp - self.bp_timeSecond) == 0 and self.bpauto_state == 0:
+                                EventMesh.debug_log("START_bp:auto")
+                                EventMesh.publish("set_bp_state",2)#2代表后台进入测试
+                                # EventMesh.publish("set_hr_blood_led",1)
+                                EventMesh.publish(constants.EVENT.START_HEART)
+                                self.bpauto_state = 1
+                            elif (time_tmp - self.bp_timeSecond) >= 60 and self.bpauto_state == 1:
+                                EventMesh.publish("set_bp_state",0)#2代表后台进入测试
+                                blood_data = get_autoblood_value()
+                                if blood_data == None:
+                                    blood_data[0] = 0
+                                    blood_data[1] = 0
+
+                                max_value = blood_data[0]
+                                min_value = blood_data[1]
+                                if max_value != 0 and min_value != 0:
+                                    EventMesh.publish("set_old_blood_data",[max_value,min_value])
+                                    
+                                    EventMesh.publish(constants.PROTOCOL.BLOOD_SEND,[max_value,min_value])
+                                EventMesh.publish(constants.EVENT.STOP_HEART)
+                                print("bp auto stop ")
+                                self.bpauto_state = 0
+                        else:
+                            self.bpauto_state = 0
+                    else:
+                        self.bp_timeSecond = 0
+                        self.bpauto_state = 0
+                        bp_state = EventMesh.publish("get_bp_state")#心率
+                        if bp_state == 2:
+                            EventMesh.publish("set_bp_state",0)#2代表后台进入测试
+                            EventMesh.debug_log("bp stop debug3")
+                            # EventMesh.publish("stop_led_timer")#设置参数
+                            EventMesh.publish(constants.EVENT.STOP_HEART)
+
+
+
+                bg_time = {}
+                bg_time = EventMesh.publish("get_bgauto_time")
                 if bg_time[0] != None:
                 
-                    self.bg_btn = int(bg_time[0])
-                    self.bg_timer = int(bg_time[1]) 
+                    bg_btn = int(bg_time[0])
+                    bg_timer = int(bg_time[1]) 
                     # print("state bg2",self.bg_btn,self.bg_timer)
-                    if self.bg_btn >= 1 and self.bg_timer > 0:#开关打开并且时间大于0就可以测试血糖
+                    if bg_btn >= 1 and bg_timer > 0:#开关打开并且时间大于0就可以测试血糖
                         get_hr_state = EventMesh.publish("get_hr_state")
                         get_spo2_state = EventMesh.publish("get_spo2_state")
                         get_bp_state  = EventMesh.publish("get_bp_state")
@@ -1631,10 +1743,10 @@ class DeviceInfoManager(Abstract):
                         # print("state bg2",get_hr_state,get_spo2_state,get_bp_state,get_bg_state)
                         
                         if (get_hr_state == 0 and get_spo2_state == 0 and get_bp_state == 0) and (get_bg_state == 2 or get_bg_state == 0):#心率血压血氧不在测试就测试血糖自动测量
-                            if (time_tmp-self.bg_times) >= self.bg_timer:#大于一个周期的时间,保存的时间戳时间 1678 0 1678 30 1678 
+                            if (time_tmp-self.bg_times) >= bg_timer:#大于一个周期的时间,保存的时间戳时间 1678 0 1678 30 1678 
                                 self.bg_times = time_tmp
                                 self.BG_state = 0
-                            # print("time_tmp bg",time_tmp,self.bg_times,time_tmp-self.bg_times,self.bg_timer,self.BG_state)
+                            # print("time_tmp bg",time_tmp,self.bg_times,time_tmp-self.bg_times,bg_timer,self.BG_state)
                             if (time_tmp - self.bg_times) == 0 and self.BG_state == 0:
                                 EventMesh.debug_log("START_bg:1")
                                 EventMesh.publish("set_bg_state",2)#2代表后台进入测试
@@ -1683,6 +1795,12 @@ class DeviceInfoManager(Abstract):
                 self.BG_state = 0
                 self.temp_time = time_tmp
 
+                self.bp_timeSecond = time_tmp
+                self.bpauto_state = 0
+
+                self.spo2_timeSecond = time_tmp
+                self.spo2auto_state = 0
+
                 self.temp_state = 0
                 self.temp_one_state = 0
                 self.old_temp_time = 0  
@@ -1721,27 +1839,27 @@ class DeviceInfoManager(Abstract):
                     if get_hr_state == 2 or get_hr_state == 3:
                         
                         EventMesh.publish("set_hr_state",0)#2代表后台进入测试,定时测心率 1ui界面测试洗心率 
-                        if get_hr_state == 3:
-                            EventMesh.publish("stop_led_timer")#设置参数
+                        # if get_hr_state == 3:
+                        #     EventMesh.publish("stop_led_timer")#设置参数
                         EventMesh.debug_log("stop debug8")
                         EventMesh.publish(constants.EVENT.STOP_HEART) 
                     elif get_spo2_state == 2 or get_spo2_state == 3:
                         
                         EventMesh.publish("set_spo2_state",0)#2代表后台进入测试
-                        if get_spo2_state == 3:
-                            EventMesh.publish("stop_led_timer")#设置参数
+                        # if get_spo2_state == 3:
+                        #     EventMesh.publish("stop_led_timer")#设置参数
                         EventMesh.publish(constants.EVENT.STOP_BLOOD_OXYGEN)
                         EventMesh.debug_log("stop debug13")
                     elif get_bp_state == 2 or get_bp_state == 3:
                         EventMesh.publish("set_bp_state",0)#2代表后台进入测试
-                        if get_bp_state == 3:
-                            EventMesh.publish("stop_led_timer")#设置参数
+                        # if get_bp_state == 3:
+                        #     EventMesh.publish("stop_led_timer")#设置参数
                         EventMesh.publish(constants.EVENT.STOP_HEART)
                         EventMesh.debug_log("stop debug14")
                     elif get_bg_state == 2 or get_bg_state == 3:
                         EventMesh.publish("set_bg_state",0)#2代表后台进入测试
-                        if get_bg_state == 3:
-                            EventMesh.publish("stop_led_timer")#设置参数
+                        # if get_bg_state == 3:
+                        #     EventMesh.publish("stop_led_timer")#设置参数
                         EventMesh.publish(constants.EVENT.STOP_HEART)
                         EventMesh.debug_log("stop debug15")
 
@@ -1772,8 +1890,8 @@ class DeviceInfoManager(Abstract):
                             else:
                                 EventMesh.publish("set_history_temp_value",0)
                                 # EventMesh.publish("play_temp_value",0)#播放体温数值
-                        if get_temp_state == 3:
-                            EventMesh.publish("stop_led_timer")#设置参数
+                        # if get_temp_state == 3:
+                        #     EventMesh.publish("stop_led_timer")#设置参数
                         
                         EventMesh.publish(constants.EVENT.STOP_TEMP)
 
@@ -1917,7 +2035,6 @@ class DeviceInfoManager(Abstract):
                 # EventMesh.publish("set_led_time_arg",[1000,400,52,led_mode.FLASH_LIGHT_RED,led_mode.DEFAULT_LONG_LIGHT_MODE,led_mode.OTHER_MEASURE_MODE])#開始測量
 
         
-
         self.normal_alarm()
         #喝水提醒
         self.drink_alarm()
@@ -1940,8 +2057,6 @@ class DeviceInfoManager(Abstract):
 
     #普通闹钟
     def normal_alarm(self):
-        date_tmp = utime.localtime()
-        time_tmp = utime.mktime(date_tmp)
         data = RTC().datetime()
         hour = data[4]
         min = data[5]
@@ -2032,8 +2147,6 @@ class DeviceInfoManager(Abstract):
 
     #吃药提醒
     def medicine_alarm(self):
-        date_tmp = utime.localtime()
-        time_tmp = utime.mktime(date_tmp)
         data = RTC().datetime()
         hour = data[4]
         min = data[5]
@@ -2086,8 +2199,6 @@ class DeviceInfoManager(Abstract):
                                 break
     #该起床了
     def wakeup_alarm(self):
-        date_tmp = utime.localtime()
-        time_tmp = utime.mktime(date_tmp)
         data = RTC().datetime()
         hour = data[4]
         min = data[5]
@@ -2154,8 +2265,6 @@ class DeviceInfoManager(Abstract):
 
     #该睡觉了
     def sleep_alarm(self):
-        date_tmp = utime.localtime()
-        time_tmp = utime.mktime(date_tmp)
         data = RTC().datetime()
         hour = data[4]
         min = data[5]
@@ -2223,14 +2332,8 @@ class DeviceInfoManager(Abstract):
                     j+=1
 
 
-
-
-
-
     #该回家了
     def home_alarm(self):
-        date_tmp = utime.localtime()
-        time_tmp = utime.mktime(date_tmp)
         data = RTC().datetime()
         hour = data[4]
         min = data[5]
@@ -2272,8 +2375,6 @@ class DeviceInfoManager(Abstract):
     
     #该休息了
     def reset_alarm(self):
-        date_tmp = utime.localtime()
-        time_tmp = utime.mktime(date_tmp)
         data = RTC().datetime()
         hour = data[4]
         min = data[5]
@@ -2440,17 +2541,18 @@ class DeviceInfoManager(Abstract):
         """
         获取步数
         """
+        # print("11111:{}".format(EventMesh.publish("get_storage_config","clear_state3")))
         XYZ = self.gsensor.get_x_y_z()
         tmp = 0
-       
+        step =[0,0,0,0]
         tmp =  self.gsensor.get_step() 
         # EventMesh.debug_log("x:%d,y:%d,z:%d tmp %d",XYZ[0],XYZ[1],XYZ[2],tmp)
-        self.step[0]= tmp 
-        self.step[1] = XYZ[0]
-        self.step[2] = XYZ[1]
-        self.step[3] = XYZ[2]
-        
-        return self.step
+        step[0]= tmp 
+        step[1] = XYZ[0]
+        step[2] = XYZ[1]
+        step[3] = XYZ[2]
+        # print("1222:{}".format(EventMesh.publish("get_storage_config","clear_state3")))
+        return step
 
     def get_ic_cid(self, event, msg):
         """
@@ -3502,6 +3604,7 @@ class gethistoryDataManager(Abstract):
                 ujson.dump(self.read_histroy_hr_data,fd)
             pass
         else:
+            EventMesh.publish("set_storage_config",["old_hr",msg])
             pass
 
 
@@ -3543,6 +3646,7 @@ class gethistoryDataManager(Abstract):
     
     def set_old_step_value(self, event, msg): 
         self.oldstep = msg
+        EventMesh.publish("set_storage_config",["old_step",msg])
         
         
     def get_old_step_value(self, event, msg): 
@@ -3573,6 +3677,56 @@ class getOldTimeManager(Abstract):
         EventMesh.subscribe("get_old_step_data", self.get_old_step_data)
         EventMesh.subscribe("set_old_step_data", self.set_old_step_data)
 
+        EventMesh.subscribe("set_test_data1", self.set_test_data1)
+
+        EventMesh.subscribe("set_test_data2", self.set_test_data2)
+
+        EventMesh.subscribe("set_test_data3", self.set_test_data3)
+
+        EventMesh.subscribe("set_test_data4", self.set_test_data4)
+
+        EventMesh.subscribe("set_test_data5", self.set_test_data5)
+
+        EventMesh.subscribe("set_test_data6", self.set_test_data6)
+
+        EventMesh.subscribe("set_test_data7", self.set_test_data7)
+
+        EventMesh.subscribe("set_test_data8", self.set_test_data8)
+       
+
+    def set_test_data1(self, event, msg):
+        EventMesh.publish("set_storage_config",["clear_state1",msg])
+
+    
+    def set_test_data2(self, event, msg):
+        
+        EventMesh.publish("set_storage_config",["clear_state2",msg])
+
+
+    def set_test_data3(self, event, msg):
+        EventMesh.publish("set_storage_config",["clear_state3",msg])
+
+    def set_test_data4(self, event, msg):
+        EventMesh.publish("set_storage_config",["clear_state4",msg])
+
+    def set_test_data5(self, event, msg):
+        EventMesh.publish("set_storage_config",["clear_state5",msg])
+
+    def set_test_data6(self, event, msg):
+        EventMesh.publish("set_storage_config",["clear_state6",msg])
+
+    def set_test_data7(self, event, msg):
+        EventMesh.publish("set_storage_config",["clear_state7",msg])
+
+    def set_test_data8(self, event, msg):
+        EventMesh.publish("set_storage_config",["clear_state8",msg])
+
+    # f = open("/usr/static/storage_file/config.json",'r',encoding="utf-8")
+    # print(f.read())
+
+    def get_old_step_data(self, event, msg):
+        return [self.time_step,self.step_second]
+
     def get_old_time_data(self, event, msg):
         return self.time_sec
     
@@ -3718,19 +3872,28 @@ class getTempTimeManager(Abstract):
         if read_data != None:
             self.set_time = read_data
 
-        self.set_bptime = 0
+        self.get_bgstate = 0
         self.get_bpstate = 0
-        read_data = EventMesh.publish("get_storage_config","bp_time")
 
+        self.bptime_on = 0
+        self.bptime_time = 0
+        read_data=EventMesh.publish("get_storage_config","bpauto_btn")
         if read_data != None:
-            self.set_bptime = read_data
+            self.bptime_on = read_data
 
-        self.set_bgtime = 0
-        self.get_bgstate = 0
-        read_data = EventMesh.publish("get_storage_config","bg_time")
+        EventMesh.publish("get_storage_config","bpauto_time")
+        if read_data != None:
+            self.bptime_time = read_data
+
+        self.spo2time_on = 0
+        self.spo2time_time = 0
+        read_data = EventMesh.publish("get_storage_config","spo2auto_btn")
+        if read_data != None:
+            self.spo2time_on = read_data
 
+        read_data = EventMesh.publish("get_storage_config","spo2auto_time")
         if read_data != None:
-            self.set_bgtime = read_data
+            self.spo2time_time = read_data
 
     def post_processor_after_instantiation(self):
         EventMesh.subscribe("set_temp_time", self.set_temp_time)
@@ -3745,21 +3908,13 @@ class getTempTimeManager(Abstract):
         EventMesh.subscribe("set_bp_state", self.set_bp_state)
         EventMesh.subscribe("get_bp_state", self.get_bp_state)
 
-        EventMesh.subscribe("set_bg_time", self.set_bg_time)
-        EventMesh.subscribe("get_bg_time", self.get_bg_time)
 
         EventMesh.subscribe("set_bg_state", self.set_bg_state)
         EventMesh.subscribe("get_bg_state", self.get_bg_state)
 
-    def set_bg_time(self, event, msg): 
-        self.set_bgtime = msg
-        EventMesh.publish("set_storage_config",["bg_time",self.set_time])
+        EventMesh.subscribe("set_spo2_time", self.set_spo2_time)
+        EventMesh.subscribe("get_spo2_time", self.get_spo2_time)
 
-    def get_bg_time(self, event, msg): 
-        if self.set_bgtime:
-            return self.set_bgtime
-        else :
-            return 0
         
     def set_bg_state(self, event, msg): 
         self.get_bgstate = msg
@@ -3774,18 +3929,31 @@ class getTempTimeManager(Abstract):
         else :
             return 0
 
+    def set_spo2_time(self, event, msg): 
+        self.spo2time_on = msg[0]
+        self.spo2time_time = msg[1]
+        EventMesh.publish("set_storage_config",["spo2auto_btn",self.spo2time_on])
+        EventMesh.publish("set_storage_config",["spo2auto_time",self.spo2time_time])
 
 
+    def get_spo2_time(self, event, msg): 
+        
+        return [self.spo2time_on,self.spo2time_time]
+
 
     def set_bp_time(self, event, msg): 
-        self.set_bptime = msg
-        EventMesh.publish("set_storage_config",["bp_time",self.set_time])
+        self.bptime_on = msg[0]
+        self.bptime_time = msg[1]
+        EventMesh.publish("set_storage_config",["bpauto_btn",self.bptime_on])
+        EventMesh.publish("set_storage_config",["bpauto_time",self.bptime_time])
 
     def get_bp_time(self, event, msg): 
-        if self.set_bptime:
-            return self.set_bptime
-        else :
-            return 0
+        if self.bptime_on == None:
+            self.bptime_on = 0
+        if self.bptime_time == None:
+            self.bptime_time = 0
+        return [self.bptime_on,self.bptime_time]
+    
         
     def set_bp_state(self, event, msg): 
         self.get_bpstate = msg
@@ -3909,8 +4077,8 @@ class getStorageDataManager(Abstract):#获取内存数据
             # EventMesh.debug_log("set_storage_key_data2:{}".format(self.config_data[msg[0]]))
             EventMesh.publish("publish_message_event_ui",{"func":self.set_storage_save,"data":0})
     def set_storage_save(self, data): 
-            with open("/usr/static/storage_file/config.json",'w+',encoding="utf-8") as fd:
-                ujson.dump(self.config_data,fd)
+        with open("/usr/static/storage_file/config.json",'w+',encoding="utf-8") as fd:
+            ujson.dump(self.config_data,fd)
     def get_storage_data(self, event, msg): 
         # EventMesh.debug_log("get_storage_data:{}".format(self.config_data))
         return self.config_data 
@@ -3930,11 +4098,10 @@ class getStorageDataManager(Abstract):#获取内存数据
 #定位频率
 class getUpLoadDataManager(Abstract):#
     def __init__(self):
-        self.upload_time = 1800
+        self.upload_time = 2*60*60
         read_data = EventMesh.publish("get_storage_config","upload_time")
         if read_data != None:
             self.upload_time = read_data 
-           
 
     def post_processor_after_instantiation(self):
         EventMesh.subscribe("set_upload_data", self.set_upload_data)
@@ -3944,6 +4111,8 @@ class getUpLoadDataManager(Abstract):#
         self.upload_time = msg
 
     def get_upload_data(self, event, msg): 
+        if self.upload_time == None:
+            self.upload_time = 2*60*60
         return self.upload_time 
 
 class getplayAudiodStateManager(Abstract):#获取设置播放音频状态
@@ -4107,7 +4276,7 @@ class getBootOffManager(Abstract):#开关机时间
         if read_data != None:
             self.poweroff_time = read_data
         else:
-            self.poweroff_time = [{"poweroff_on":1,"start_hour":6,"start_min":0,"end_hour":0,"end_min":0}]
+            self.poweroff_time = [{"poweroff_on":0,"start_hour":6,"start_min":0,"end_hour":0,"end_min":0}]
         
 
 
@@ -4117,6 +4286,7 @@ class getBootOffManager(Abstract):#开关机时间
 
     def set_boot_off_time(self, event, msg): 
         EventMesh.debug_log("set_boot_off_time",msg)
+
         EventMesh.publish("set_storage_config",["poweroff_alarm",msg])
         self.poweroff_time = msg
         EventMesh.publish("set_rtc_alarm")
@@ -4186,6 +4356,81 @@ class testSmsSetIPManager(Abstract):#
             return [self.newip,self.newcom]
         
 
+# MMI Version:UIX8910_C55_DS_D12G_PRO18_FZD_V1.0_Release
+# Build:07-07-2022 16:12:58
+# IMEI:861218001025267
+# IP:api.xcloudtech.com
+# PORT:9000
+# UPLOAD:300
+# Battery:3948, 64
+# Udebug: 0
+# ConnectTime: 7
+import protocol
+
+class sendDevinfoManager(Abstract):#发送设备信息
+    def __init__(self):
+        self.timer = osTimer()
+        pass
+
+    def post_processor_after_instantiation(self):
+        EventMesh.subscribe("send_devinfo_event", self.send_devinfo_event)#删除短信
+
+    def send_devinfo_event(self, event, msg): 
+        number = str(msg)
+        versions = EventMesh.softversion
+        Build = EventMesh.builTime
+        IMEI = EventMesh.publish(constants.EVENT.GET_IMEI)
+        IP = ""
+        new_ip = EventMesh.publish("get_storage_config","set_new_ip_addr")
+        new_com = EventMesh.publish("get_storage_config","set_new_com")
+        server_data = protocol.server_init()
+       
+        if new_ip != None:
+            if len(new_ip) != 0:
+                IP = new_ip
+            else:
+                IP = server_data[0]
+        else:
+            IP = server_data[0]
+        
+        PORT = ''
+        if new_com != None:
+            if len(new_com) != 0:
+                PORT = new_com
+            else:
+                PORT = server_data[1]
+        else:
+            PORT = server_data[1]
+        
+        UPLOAD = EventMesh.publish("get_upload_data")
+
+        level = EventMesh.publish("get_curr_battery_level")
+        if level == None:
+            level = 4200
+        bat = EventMesh.publish("screen_get_battery")[1]
+        if bat == None:
+            bat = 100
+        Battery = str(level) +',' +  str(bat)
+
+        ConnectTime = heartbeat_time//60
+        data1 = "Version:{}\nBuild:{}".format(versions,Build)
+
+        data2 = "IMEI:{}\nIP:{}\nPORT:{}".format(IMEI,IP,PORT)
+        
+        data3 = "UPLOAD:{}\nBattery:{}\nConnectTime:{}".format(UPLOAD,Battery,ConnectTime)
+
+        send_state1 = -1
+        send_state2 = -1
+        # print("data",data1,data2,data3)
+        send_state1 = sms.sendPduMsg(number, data1, 'UCS2')
+
+        if send_state1 == 0:
+            send_state2 = sms.sendPduMsg(number, data2, 'UCS2')
+
+        if send_state2 == 0:
+            sms.sendPduMsg(number, data3, 'UCS2')
+        
+
 class deleteSmsManager(Abstract):#删除信息
     def __init__(self):
         self.timer = osTimer()
@@ -4366,55 +4611,55 @@ class ClockManager(Abstract):
                     if end_min_total == current_minute:#结束的时间分钟等于关机时间分钟数则关机
                         ubs_state = EventMesh.publish("get_usb")#'
                         
-                        
+                        if ubs_state == 2 or ubs_state == 0:
 
-                        if next_minute >= current_minute:#开机时间大于当前时间 9:00 > = 8:00
-                            interval_minute = next_minute - current_minute
+                            if next_minute > current_minute:#开机时间大于当前时间 9:00 > = 8:00 
+                                interval_minute = next_minute - current_minute
+                                
+                                EventMesh.debug_log("开机距离下一次响铃的的分钟数:", interval_minute,next_minute)
+                            else:#8:00 9:00
+                                #7*60*24 7天一个周期 7*60*24 - 
+                                interval_minute = next_minute + (24*60-current_minute)
+                                EventMesh.debug_log("开机08888距离下一次响铃的的分钟数:", interval_minute,next_minute)
+
+                            #反向获取时间戳
+                            time = utime.localtime()
+                            EventMesh.debug_log("开机9获取utime的时间戳:", time)
+                            rtc_mktime = utime.mktime(time)-time[5]
+                            EventMesh.debug_log("开机10反向获取utime的mktime:", rtc_mktime)
+
+                            #加上下一次响铃需要的时间
+                            next_alarm_mktime = rtc_mktime + interval_minute*60 #转换成s单位 时间戳
+                            EventMesh.debug_log("开机11下一次响铃的mktime:", next_alarm_mktime)
+
+                            #格式化时间戳,得到下一次闹钟的时间
+                            next_alarm_time = utime.localtime(next_alarm_mktime)
+                            EventMesh.debug_log("开机12下一次响铃的准确时间:", next_alarm_time)
+                            #将时间转换为rtc的格式
+                            data_l = [2021, 7, 9, 5, 12, 30, 0, 0]
+                            #给rtc时间赋值
+                            data_l[0] = next_alarm_time[0] #year
+                            data_l[1] = next_alarm_time[1] #month                    
+                            data_l[2] = next_alarm_time[2] #day                     
+                            data_l[4] = next_alarm_time[3] #hour               
+                            data_l[5] = next_alarm_time[4] #minute   
+                            data_e=tuple(data_l)
+                            EventMesh.debug_log("开机13将该时间转换为RTC元组:", data_e)
                             
-                            EventMesh.debug_log("开机距离下一次响铃的的分钟数:", interval_minute,next_minute)
-                        else:#8:00 9:00
-                            #7*60*24 7天一个周期 7*60*24 - 
-                            interval_minute = next_minute + (24*60-current_minute)
-                            EventMesh.debug_log("开机08888距离下一次响铃的的分钟数:", interval_minute,next_minute)
-
-                        #反向获取时间戳
-                        time = utime.localtime()
-                        EventMesh.debug_log("开机9获取utime的时间戳:", time)
-                        rtc_mktime = utime.mktime(time)-time[5]
-                        EventMesh.debug_log("开机10反向获取utime的mktime:", rtc_mktime)
-
-                        #加上下一次响铃需要的时间
-                        next_alarm_mktime = rtc_mktime + interval_minute*60 #转换成s单位 时间戳
-                        EventMesh.debug_log("开机11下一次响铃的mktime:", next_alarm_mktime)
-
-                        #格式化时间戳,得到下一次闹钟的时间
-                        next_alarm_time = utime.localtime(next_alarm_mktime)
-                        EventMesh.debug_log("开机12下一次响铃的准确时间:", next_alarm_time)
-                        #将时间转换为rtc的格式
-                        data_l = [2021, 7, 9, 5, 12, 30, 0, 0]
-                        #给rtc时间赋值
-                        data_l[0] = next_alarm_time[0] #year
-                        data_l[1] = next_alarm_time[1] #month                    
-                        data_l[2] = next_alarm_time[2] #day                     
-                        data_l[4] = next_alarm_time[3] #hour               
-                        data_l[5] = next_alarm_time[4] #minute   
-                        data_e=tuple(data_l)
-                        EventMesh.debug_log("开机13将该时间转换为RTC元组:", data_e)
-                        
-                        self.rtc.register_callback(self._rtc_callback)
+                            self.rtc.register_callback(self._rtc_callback)
 
-                        FLAG = self.rtc.set_alarm(data_e)
-                        if FLAG == 0:
-                            EventMesh.debug_log("开机11成功设置rtc的到期时间:", data_e)
-                        else:
-                            EventMesh.debug_log("开机时设置rtc的到期时间失败:", data_e)
-                        self.rtc.enable_alarm(1)
-                        if ubs_state == 2 or ubs_state == 0:
+                            FLAG = self.rtc.set_alarm(data_e)
+                            if FLAG == 0:
+                                EventMesh.debug_log("开机11成功设置rtc的到期时间:", data_e)
+                            else:
+                                EventMesh.debug_log("开机时设置rtc的到期时间失败:", data_e)
+                            self.rtc.enable_alarm(1)
+                            
                             EventMesh.debug_log("结束时设置rtc的到期时间失败:", data_e)
                             EventMesh.publish("open_power_on", 5)#静音关机
                             return
                         else:
-                            EventMesh.debug_log("充电关机失败:", data_e)
+                            EventMesh.publish("set_rtc_alarm")
                             #self.rtc.datetime([2023, 12, 1, 5, 5, 59, 30, 0])
                             return
             
@@ -4425,75 +4670,82 @@ class ClockManager(Abstract):
         msg_data = EventMesh.publish("get_boot_off_time")
         if msg_data != None:
             power_offdata = msg_data[0]
-            start_hour = power_offdata["start_hour"]
-            start_min = power_offdata["start_min"]
-            end_hour = power_offdata["end_hour"]
-            end_min = power_offdata["end_min"]
-
-            next_minute = start_hour*60+start_min #10:11
-
-            start_total = start_hour*60+start_min #10:11
-            end_total = end_hour*60+end_min #10:11
-            rtc_now_time = self.rtc.datetime()
-            current_minute = rtc_now_time[4]*60 + rtc_now_time[5]#当前时间
-
-            minute_list = []
-            minute_list.append(start_total)#23*60=
-            minute_list.append(end_total)
-            minute_list.append(current_minute)#[460,480,340]
-            minute_list = sorted(minute_list)
-            current_index = minute_list.index(current_minute)
-            # print("minute_list",minute_list,start_total,end_total,current_index,power_offdata)
-            
-            
-            next_index = current_index + 1
-            if next_index >= len(minute_list):
-                next_minute = minute_list[0]
-                print("07下一个闹钟的分钟数:", next_minute)
-            else:
-                next_minute = minute_list[next_index]
-                print("07下一个闹钟的分钟数:", next_minute)
+            start_hour = int(power_offdata["start_hour"])
+            start_min = int(power_offdata["start_min"])
+            end_hour = int(power_offdata["end_hour"])
+            end_min = int(power_offdata["end_min"])
+            off_on = int(power_offdata["poweroff_on"])
+            if off_on == 1:
+                next_minute = start_hour*60+start_min #10:11
+
+                start_total = start_hour*60+start_min #10:11
+                end_total = end_hour*60+end_min #10:11
+                rtc_now_time = self.rtc.datetime()
+                current_minute = rtc_now_time[4]*60 + rtc_now_time[5]#当前时间
+
+
+                minute_list = []
+                if start_total != current_minute:
+                    minute_list.append(start_total)#23*60=
+                if end_total != current_minute:
+                    minute_list.append(end_total)
+                minute_list.append(current_minute)#[927,927,930]
+                minute_list = sorted(minute_list)
+                current_index = minute_list.index(current_minute)
+                print("minute_list",minute_list,start_total,end_total,current_index,power_offdata)
+                
+                
+                next_index = current_index + 1
+                if next_index >= len(minute_list):
+                    next_minute = minute_list[0]
+                    print("07下一个闹钟的分钟数:", next_minute)
+                else:
+                    next_minute = minute_list[next_index]
+                    print("08下一个闹钟的分钟数:", next_minute)
 
-            if next_minute >= current_minute:
-                interval_minute = next_minute - current_minute
-                print("08距离下一次响铃的的分钟数:", interval_minute)
-            else:
-                interval_minute = (24*60 - current_minute) + next_minute
-                print("08距离下一次响铃的的分钟数:", interval_minute)
-
-
-            #反向获取时间戳
-            time = utime.localtime()
-            EventMesh.debug_log("关机09获取utime的时间戳:", time)
-            time
-            rtc_mktime = utime.mktime(time)-time[5]
-            EventMesh.debug_log("关机10反向获取utime的mktime:", rtc_mktime)
-
-            #加上下一次响铃需要的时间
-            next_alarm_mktime = rtc_mktime + interval_minute*60 #转换成s单位 时间戳
-            EventMesh.debug_log("关机11下一次响铃的mktime:", next_alarm_mktime)
-
-            #格式化时间戳,得到下一次闹钟的时间
-            next_alarm_time = utime.localtime(next_alarm_mktime)
-            EventMesh.debug_log("关机12下一次响铃的准确时间:", next_alarm_time)
-            #将时间转换为rtc的格式
-            data_l = [2021, 7, 9, 5, 12, 30, 0, 0]
-            #给rtc时间赋值
-            data_l[0] = next_alarm_time[0] #year
-            data_l[1] = next_alarm_time[1] #month                    
-            data_l[2] = next_alarm_time[2] #day                     
-            data_l[4] = next_alarm_time[3] #hour               
-            data_l[5] = next_alarm_time[4] #minute   
-            data_e=tuple(data_l)
-            EventMesh.debug_log("关机13将该时间转换为RTC元组:", data_e)
-            
-            self.rtc.register_callback(self._rtc_callback)
+                print("minute_list1",minute_list,current_index,next_minute)
+                if next_minute > current_minute:
+                    interval_minute = next_minute - current_minute
+                    print("09距离下一次响铃的的分钟数:", interval_minute)#14 31 14 29 14 31 24*60-
+                else:
+                    interval_minute = (24*60 - current_minute) + next_minute
+                    print("10距离下一次响铃的的分钟数:", interval_minute)
+
+
+                #反向获取时间戳
+                time = utime.localtime()
+                EventMesh.debug_log("关机09获取utime的时间戳:", time)
+                time
+                rtc_mktime = utime.mktime(time)-time[5]
+                EventMesh.debug_log("关机10反向获取utime的mktime:", rtc_mktime)
+
+                #加上下一次响铃需要的时间
+                next_alarm_mktime = rtc_mktime + interval_minute*60 #转换成s单位 时间戳
+                EventMesh.debug_log("关机11下一次响铃的mktime:", next_alarm_mktime)
+
+                #格式化时间戳,得到下一次闹钟的时间
+                next_alarm_time = utime.localtime(next_alarm_mktime)
+                EventMesh.debug_log("关机12下一次响铃的准确时间:", next_alarm_time)
+                #将时间转换为rtc的格式
+                data_l = [2021, 7, 9, 5, 12, 30, 0, 0]
+                #给rtc时间赋值
+                data_l[0] = next_alarm_time[0] #year
+                data_l[1] = next_alarm_time[1] #month                    
+                data_l[2] = next_alarm_time[2] #day                     
+                data_l[4] = next_alarm_time[3] #hour               
+                data_l[5] = next_alarm_time[4] #minute   
+                data_e=tuple(data_l)
+                EventMesh.debug_log("关机13将该时间转换为RTC元组:", data_e)
+                
+                self.rtc.register_callback(self._rtc_callback)
 
-            FLAG = self.rtc.set_alarm(data_e)
-            if FLAG == 0:
-                EventMesh.debug_log("关机11成功设置rtc的到期时间:", data_e)
+                FLAG = self.rtc.set_alarm(data_e)
+                if FLAG == 0:
+                    EventMesh.debug_log("关机11成功设置rtc的到期时间:", data_e)
+                else:
+                    EventMesh.debug_log("关机时设置rtc的到期时间失败:", data_e)
+                self.rtc.enable_alarm(1)
             else:
-                EventMesh.debug_log("关机时设置rtc的到期时间失败:", data_e)
-            self.rtc.enable_alarm(1)
+                self.rtc.enable_alarm(0)
                    
 
index bdb0178..4c07fa3 100644 (file)
@@ -23,7 +23,7 @@ import usys
 
 
 def server_init(server_type = None):
-    #服务器选择1,防走丢,2大锤,3三基同创,4童信,5云米,6荣为 8:ds未知 dey.hinwatch. com:9968  9:183.62.239.121:31869
+    #服务器选择1,防走丢,2大锤,3三基同创,4童信,5云米,6荣为 8:ds未知 dey.hinwatch. com:9968  9:183.62.239.121:31869 10:183.62.239.121:33461
     if server_type == None:
         server_type = 1
     #EventMesh.debug_log("server_init:server_type:{}".format(server_type))
@@ -73,6 +73,9 @@ def server_init(server_type = None):
     elif server_type == 9:
         d_server_addr = "183.62.239.121"
         d_server_port = 31869
+    elif server_type == 10:
+        d_server_addr = "183.62.239.121"
+        d_server_port = 33461
 
     return [d_server_addr,d_server_port,d_md5_key,d_PID]
 from queue import Queue
@@ -262,7 +265,7 @@ class SockManager(Abstract):
             utime.sleep(1)
 
     def send(self, topic, msg):
-        EventMesh.debug_log("TCP:send data:{}".format(msg))
+        # EventMesh.debug_log("TCP:send data:{}".format(msg))
         if EventMesh.publish("get_sim_Status") != 1: #没sim,则不发送
             EventMesh.publish(constants.EVENT.SET_CONNECT, 0)#标记断网
             EventMesh.debug_log("dataCall not connect")
@@ -552,7 +555,7 @@ class KA_ProtoCol(ProtoCol):
             self.roll_count = 0
 
 
-        # EventMesh.debug_log("ka roll_count:",roll_count)
+        # EventMesh.debug_log("ka roll_count:",self.roll_count)
 
         
         battery_caption =  bat_tmp[1]
@@ -1094,28 +1097,29 @@ class HRSTART_ProtoCol(ProtoCol):
         msg_tmp = msg_tmp[1]
         EventMesh.debug_log("HRSTART_ProtoCol RECV msg:{} msg_:{}".format(msg,msg_tmp))
         hrTotal = int(msg_tmp)
-        if hrTotal == 0:#关闭自动测量
-            EventMesh.debug_log("HRSTART_ 1")
-            EventMesh.publish("set_time_hr_spo2",[0,0])
+        if hrTotal == 1:#单次测量
+            EventMesh.debug_log("HRSTART_ 2".format(hrTotal))
+            get_hr_state = EventMesh.publish("get_hr_state")
+            get_spo2_state = EventMesh.publish("get_spo2_state")
+            get_bp_state = EventMesh.publish("get_bp_state")
+            get_bg_state = EventMesh.publish("get_bg_state")
+            # if (get_hr_state == 3 ) or (get_spo2_state == 0 and get_hr_state == 0):#只要两个不在测量 单次优先级最低
+            if (get_spo2_state == 0 and get_hr_state == 0 and get_bg_state == 0 and get_bp_state == 0):
+                battery = EventMesh.publish("screen_get_battery")
+                if battery != None:
+                    if battery[0] != "1":
+                        EventMesh.publish("set_hr_state",3)#3代表单次测量
+            pass
         else:
-            if hrTotal == 1:#单次测量
-                EventMesh.debug_log("HRSTART_ 2".format(hrTotal))
-                get_hr_state = EventMesh.publish("get_hr_state")
-                get_spo2_state = EventMesh.publish("get_spo2_state")
-                # if (get_hr_state == 3 ) or (get_spo2_state == 0 and get_hr_state == 0):#只要两个不在测量 单次优先级最低
-                if (get_spo2_state == 0 and get_hr_state == 0):
-                    battery = EventMesh.publish("screen_get_battery")
-                    if battery != None:
-                        if battery[0] != "1":
-                            EventMesh.publish("set_hr_state",3)#3代表单次测量
-                pass
-            else:
-                if hrTotal > 0 and hrTotal <= 300:
-                    hrTotal = 300
-                elif hrTotal >= 65536:
-                    hrTotal = 65536
-                EventMesh.debug_log("HRSTART_ 3".format(hrTotal))
-                EventMesh.publish("set_time_hr_spo2",[1,hrTotal])
+            if hrTotal > 0 and hrTotal <= 300:
+                hrTotal = 300
+            elif hrTotal >= 65536:
+                hrTotal = 65536
+            EventMesh.debug_log("HRSTART_ 3".format(hrTotal))
+            on = 0
+            if hrTotal != 0:
+                on = 1
+            EventMesh.publish("set_time_hr_spo2",[on,hrTotal])
 
 
         EventMesh.publish(constants.PROTOCOL.HRTSTART_SEND)
@@ -1196,16 +1200,36 @@ class OXYGEN_One_ProtoCol(ProtoCol):#单次测量
         msg_tmp = msg.decode('ascii')
         msg_tmp = msg_tmp.split(',')
         msg_tmp = msg_tmp[1]
-        state = int(msg_tmp)
-        get_hr_state = EventMesh.publish("get_hr_state")
-        get_spo2_state = EventMesh.publish("get_spo2_state")
-        if state == 1:
-            # if (get_hr_state == 3 ) or (get_spo2_state == 0 and get_hr_state == 0):#只要两个不在测量 单次优先级最低
-            if (get_spo2_state == 0 and get_hr_state == 0):
+
+        oxstartTotal = int(msg_tmp)
+        # oxstartTotal = 300
+        print("oxstartTotal:{}".format(oxstartTotal))
+        if oxstartTotal == 1:#单次测量
+            get_bp_state = EventMesh.publish("get_bp_state")
+            get_hr_state = EventMesh.publish("get_hr_state")
+            get_spo2_state = EventMesh.publish("get_spo2_state")
+            get_bg_state = EventMesh.publish("get_bp_state")
+            print("get_bp_state:{}".format(get_bp_state))
+            if get_bp_state == 0 and get_hr_state == 0 and get_spo2_state == 0 and get_bg_state == 0:#只要两个不在测量 单次优先级最低
                 battery = EventMesh.publish("screen_get_battery")
                 if battery != None:
                     if battery[0] != "1":
                         EventMesh.publish("set_spo2_state",3)#3代表单次测量
+        else:
+            if oxstartTotal > 0 and oxstartTotal <= 300:
+                oxstartTotal = 300
+            elif oxstartTotal >= 65536:
+                oxstartTotal = 65536
+
+            # if oxstartTotal == 0:#关闭自动测量
+            #     EventMesh.debug_log("bpSTART_ 1")
+            #     EventMesh.publish("set_spo2_time",[0,0])
+            # else:
+            on = 0
+            if oxstartTotal != 0:
+                on = 1
+            EventMesh.publish("set_spo2_time",[on,oxstartTotal])
+
         EventMesh.publish(constants.PROTOCOL.OXSTART_SEND)
 
 class TEMP_ProtoCol(ProtoCol):
@@ -1315,13 +1339,15 @@ class bldstart_ProtoCol(ProtoCol):
         msg_tmp = msg_tmp[1]
 
         bldstartTotal = int(msg_tmp)
+        # bldstartTotal = 300
         print("bldstartTotal:{}".format(bldstartTotal))
         if bldstartTotal == 1:#单次测量
             get_bp_state = EventMesh.publish("get_bp_state")
             get_hr_state = EventMesh.publish("get_hr_state")
             get_spo2_state = EventMesh.publish("get_spo2_state")
+            get_bg_state = EventMesh.publish("get_bg_state")
             print("get_bp_state:{}".format(get_bp_state))
-            if get_bp_state == 0 and get_hr_state == 0 and get_spo2_state == 0:#只要两个不在测量 单次优先级最低
+            if get_bp_state == 0 and get_hr_state == 0 and get_spo2_state == 0 and get_bg_state == 0:#只要两个不在测量 单次优先级最低
                 battery = EventMesh.publish("screen_get_battery")
                 if battery != None:
                     if battery[0] != "1":
@@ -1331,7 +1357,12 @@ class bldstart_ProtoCol(ProtoCol):
                 bldstartTotal = 300
             elif bldstartTotal >= 65536:
                 bldstartTotal = 65536
-            EventMesh.publish("set_bp_time", bldstartTotal)
+
+            on = 0
+            if bldstartTotal != 0:#关闭自动测量
+                on = 1
+            print("on:{} bldstartTotal:{} ".format(on,bldstartTotal))
+            EventMesh.publish("set_bp_time",[on,bldstartTotal])
            
         EventMesh.publish(constants.PROTOCOL.BLDSTART_SEND)
 
@@ -1421,11 +1452,14 @@ class bgstart_ProtoCol(ProtoCol):
             elif bgstartTotal >= 65536:
                 bgstartTotal = 65536
            
-            if bgstartTotal == 0:#关闭自动测量
-                EventMesh.debug_log("bgSTART_ 1")
-                EventMesh.publish("set_bgauto_time",[0,0])
-            else:
-                EventMesh.publish("set_bgauto_time",[1,bgstartTotal])
+            # if bgstartTotal == 0:#关闭自动测量
+            #     EventMesh.debug_log("bgSTART_ 1")
+            #     EventMesh.publish("set_bgauto_time",[0,0])
+            # else:
+            on = 0
+            if bgstartTotal != 0:
+                on = 1
+            EventMesh.publish("set_bgauto_time",[on,bgstartTotal])
            
         EventMesh.publish(constants.PROTOCOL.BGSTART_SEND)
 
@@ -1648,12 +1682,12 @@ class sosHome_dial_ProtoCol(ProtoCol):
 
         # EventMesh.debug_log("sosHome_dial_ProtoCol:send data :{} {}".format(len(msg_tmp),msg_tmp))
         #b'[SZKW*860132060006970*0015*sosHome_dial_ProtoCol,15521469561,10086,15521469561]'
+        # print("sosnumber msg_tmp",msg_tmp)
         i = 0
         for i in range(len(msg_tmp)-1):
             # EventMesh.debug_log("sos:send data :{}".format(msg_tmp[i+1]))
             if len(msg_tmp[i+1]) != 0:
                 EventMesh.publish("set_storage_config",["SOS_NUMBER{}".format(i+1),msg_tmp[i+1]])
-                # EventMesh.debug_log("read_data:{} msg_tmp:{}".format(read_data,msg_tmp[i+1]))
        
         if (len(msg_tmp)-1) == 3:
             EventMesh.publish("set_dial_sos_number",[msg_tmp[1],msg_tmp[2],msg_tmp[3]])
@@ -1720,6 +1754,7 @@ class Time_ProtoCol(ProtoCol):
         
         timeSecond = int(msg_data[1])
         #EventMesh.debug_log("type {} timeSecond {}".format((msg_data[1]),timeSecond))
+        # timeSecond = 1703001360
         next_alarm_time = utime.localtime(timeSecond)
         #EventMesh.debug_log("next_alarm_time",next_alarm_time)
         #EventMesh.debug_log("local time",msg)
@@ -2716,6 +2751,42 @@ class SLEEPTIME_ProtoCol(ProtoCol):#睡眠时间
 
         EventMesh.publish(constants.PROTOCOL.SLEEPTIME_SEND) 
 
+# 平台发送:
+# [XT*YYYYYYYYYYYYYYY*LEN*FACTORY]
+# 实例:[XT*334588000000156*0007*FACTORY]
+# 终端回复:
+# [XT*YYYYYYYYYYYYYYY*LEN*FACTORY]
+# 实例:[XT*334588000000156*0007*FACTORY]
+# 说明:终端恢复出厂设置,里面设置的号码都将清空
+class FACTORY_ProtoCol(ProtoCol):#睡眠时间
+    """
+    实例:[XT*334588000000156*0008*FACTORY]
+    终端回复
+    [XT*YYYYYYYYYYYYYYY*LEN*WLKEY]
+    实例:[XT*334588000000156*0006*FACTORY]
+    """
+    TYPE = "FACTORY"
+    
+    def send(self, event, msg):
+        send_data = self.PID+"*%s*0007*FACTORY"%(self.imei)
+        MD5_SIGN = self.pack_MD5_head(send_data)
+        data = "[%s%s,%s]"%(str(MD5_SIGN),send_data,msg)
+        EventMesh.debug_log("FACTORY:send:%s"%(data))
+        # 通过socket发送到服务器端
+        EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND, data)
+
+    def recv(self, event, msg):
+
+        EventMesh.debug_log("FACTORY!!!!!!!!!")
+        # msg = msg[1:-1]
+        # msg_tmp = msg.decode('ascii')
+        # msg_data = msg_tmp.split(',')
+        # EventMesh.debug_log("WLKEY_ProtoCol".format(msg_data[1]))
+        # EventMesh.publish("set_storage_config",["WLKEY",msg_data[1]])
+
+        EventMesh.publish(constants.PROTOCOL.FACTORY_SEND) 
+        EventMesh.publish("app_factory",None)#app恢复出厂
+
 class ProtoColResolver(object):
     def __init__(self):
         self.protocol_list = []
index 8c31f04..349edc4 100644 (file)
@@ -41,6 +41,7 @@ def msg_cb(args):
         tmp = sms.searchTextMsg(index)
         detail = tmp[1]#内容
         # EventMesh.debug_log("msg_cb:detail {}".format,detail)
+
         if  detail.find("SETIP:") != -1:#寻找是否有这个字符串
             tmp_test = detail.split("SETIP:")[1]
             if  tmp_test.find(":") != -1:
@@ -49,8 +50,16 @@ def msg_cb(args):
                 new_com = tmp_test.split(':')[1]
                 # new_md5 = detail.split(':')[3]
                 if len(new_ip) > 0 and len(new_com) > 0:
-                    EventMesh.publish("set_new_ip", [new_ip,new_com,tmp[0]])#设置关机时间
+                    EventMesh.publish("set_new_ip", [new_ip,new_com,tmp[0]])#
                     # EventMesh.publish("set_new_ip", [new_ip,new_com,new_md5])#设置关机时间
+        if detail.find("ts#") != -1:
+            EventMesh.publish("send_devinfo_event", tmp[0])#删除短信
+            pass
+        if detail.find("fact#") != -1:#恢复出厂设置
+            EventMesh.publish("app_factory",tmp[0])#app恢复出厂
+        
+        if detail.find("rest#") != -1:#重启
+            EventMesh.publish("app_restart",tmp[0])#
         
     if index >= sms_max-1:#删除短信
         EventMesh.publish("delete_sms_event")#删除短信
index c28c3d9..e3aa0cf 100644 (file)
Binary files a/2.sdk/project/D10/usr/static/audio.bin and b/2.sdk/project/D10/usr/static/audio.bin differ
index b0d2a6a..3f601bc 100644 (file)
@@ -2,6 +2,17 @@ import _thread
 import usys
 import  uos
 import utime
+import versions
+
+MODEL = "K01_" #项目型号
+
+
+version = "{}{}".format(MODEL,versions.Version)
+builTime = "{}".format(versions.Build_Time)
+
+
+
+
 class EventStore(object):
     def __init__(self):
         self.map = dict()
index 9fb22dd..5b95aeb 100644 (file)
@@ -818,7 +818,7 @@ version_label3 = lv.label(version_screen)
 version_label3.set_pos(10, 25)
 version_label3.set_size(118, 40)
 version_label3.set_long_mode(lv.label.LONG.WRAP)
-version_label3.set_text(versions.Version)
+version_label3.set_text(EventMesh.version)
 version_label3.set_style_text_align(lv.TEXT_ALIGN.LEFT, 10)
 version_label3.add_style(style_font_youyuan_20_gray, lv.PART.MAIN | lv.STATE.DEFAULT)
 
@@ -842,7 +842,7 @@ version_label6 = lv.label(version_screen)
 version_label6.set_pos(10, 75)
 version_label6.set_size(118, 40)
 version_label6.set_long_mode(lv.label.LONG.WRAP)
-version_label6.set_text(versions.Build_Time)
+version_label6.set_text(EventMesh.builTime)
 version_label6.set_style_text_align(lv.TEXT_ALIGN.LEFT, 10)
 version_label6.add_style(style_font_youyuan_20_gray, lv.PART.MAIN | lv.STATE.DEFAULT)
 
index 84c8fc7..e774514 100644 (file)
@@ -1,6 +1,13 @@
 import _thread
 import usys
 
+import versions
+
+MODEL = "K5_" #项目型号
+
+
+version = "{}{}".format(MODEL,versions.Version)
+builTime = "{}".format(versions.Build_Time)
 
 class EventStore(object):
     def __init__(self):
index cd4b289..bc77f77 100644 (file)
@@ -786,7 +786,7 @@ version_label3 = lv.label(version_screen)
 version_label3.set_pos(10, 70)
 version_label3.set_size(230, 30)
 version_label3.set_long_mode(lv.label.LONG.WRAP)
-version_label3.set_text(versions.Version)
+version_label3.set_text(EventMesh.version)
 version_label3.set_style_text_align(lv.TEXT_ALIGN.LEFT, 0)
 version_label3.add_style(style_font_youyuan_20_gray, lv.PART.MAIN | lv.STATE.DEFAULT)
 
@@ -810,7 +810,7 @@ version_label6 = lv.label(version_screen)
 version_label6.set_pos(10, 160)
 version_label6.set_size(230, 60)
 version_label6.set_long_mode(lv.label.LONG.WRAP)
-version_label6.set_text(versions.Build_Time)
+version_label6.set_text(EventMesh.builTime)
 version_label6.set_style_text_align(lv.TEXT_ALIGN.LEFT, 0)
 version_label6.add_style(style_font_youyuan_20_gray, lv.PART.MAIN | lv.STATE.DEFAULT)
 
index d25a59c..8964e41 100644 (file)
@@ -1,6 +1,12 @@
 import _thread
 import usys
+import versions
 
+MODEL = "S6_" #项目型号
+
+
+version = "{}{}".format(MODEL,versions.Version)
+builTime = "{}".format(versions.Build_Time)
 
 class EventStore(object):
     def __init__(self):