提交led文件
authordxy15521469561 <1731678236@qq.com>
Mon, 18 Sep 2023 07:24:50 +0000 (15:24 +0800)
committerdxy15521469561 <1731678236@qq.com>
Mon, 18 Sep 2023 07:24:50 +0000 (15:24 +0800)
2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/led.py [new file with mode: 0644]
2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/versions.py [deleted file]

diff --git a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/led.py b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/led.py
new file mode 100644 (file)
index 0000000..829658b
--- /dev/null
@@ -0,0 +1,777 @@
+from common import Abstract
+import osTimer
+import EventMesh
+from machine import Pin
+import utime
+
+from queue import Queue
+import _thread
+import usys
+
+led_red = Pin(Pin.GPIO36, Pin.OUT, Pin.PULL_PD, 0)
+
+led_green = Pin(Pin.GPIO44, Pin.OUT, Pin.PULL_PD, 0)
+
+led_white = Pin(Pin.GPIO21, Pin.OUT, Pin.PULL_PD, 0)
+
+
+
+def green_light_fast(num,freq):#快闪 num 循环闪烁次数 freq 交替闪烁的频率ms单位 
+    for i in range(num):
+        led_green.write(1)
+        utime.sleep_ms(freq)
+        led_green.write(0)
+        utime.sleep_ms(freq)
+
+def red_light_fast(num,freq):#快闪 #快闪 num 循环闪烁次数 freq 交替闪烁的频率ms单位 
+    for i in range(num):
+        led_red.write(1)
+        utime.sleep_ms(freq)
+        led_red.write(0)
+        utime.sleep_ms(freq)
+def red_light_slow(num,freq):#慢闪 #快闪 num 循环闪烁次数 freq 交替闪烁的频率ms单位 
+    for i in range(10):
+        led_red.write(1)
+        utime.sleep_ms(500)
+        led_red.write(0)
+        utime.sleep_ms(500)
+
+def red_green_light(num,freq):#红绿灯交替闪烁 
+    for i in range(num):
+        led_red.write(1)
+        utime.sleep_ms(freq)
+        led_red.write(0)
+        utime.sleep_ms(freq)
+        led_green.write(1)
+        utime.sleep_ms(freq)
+        led_green.write(0)
+        utime.sleep_ms(freq)
+
+def open_led_red():
+    led_red.write(1)
+
+def close_led_red():
+    led_red.write(0)
+
+def open_led_white():
+    led_white.write(1)
+
+def close_led_white():
+    led_white.write(0)
+
+def open_led_green():
+    led_green.write(1)
+
+def close_led_green():
+    led_green.write(0)
+
+
+
+LED_TIMER_OUT = 100 
+class led_mode:
+    LONG_LIGHT_RED = 1
+    LONG_LIGHT_GREEN = 2
+    LONG_LIGHT_WHITE = 3
+    FLASH_LIGHT_RED = 4
+    FLASH_LIGHT_GREEN = 5
+    FLASH_LIGHT_WHITE = 6
+    FLASH_LIGHT_RED_GREEN = 7
+    FLASH_LIGHT_RED_WHITE = 8
+    FLASH_LIGHT_GREEN_WHITE = 9
+    LIGHT_NONE = FLASH_LIGHT_GREEN_WHITE+1
+
+    DEFAULT_LONG_LIGHT_MODE = 0+LIGHT_NONE #默认是关闭
+    OPEN_LONG_LIGHT_MODE = 1+LIGHT_NONE#开启
+    CLOSE_LONG_LIGHT_MODE = 2+LIGHT_NONE#需要关闭
+    INTERVAL_LIGHT_RED  = 3+LIGHT_NONE
+    INTERVAL_LIGHT_GREEN  = 4+LIGHT_NONE
+    INTERVAL_LIGHT_WHITE  = 5+LIGHT_NONE
+
+    OTHER_MEASURE_MODE = 200
+
+    HEALTH_LED_MODE = 201 #健康测试模式
+    WECHAT_LED_MODE = 202 #微聊模式
+    CHARGE_IN_MODE = 203 #充电模式
+    CHARGE_OUT_MODE = 204 #充电已移出
+    CHARGE_FULL_MODE = 205 #充电已满
+
+
+
+
+
+class ledEventManager(Abstract):#灯事件
+    def __init__(self):
+        self.timer = osTimer()
+        self.freq_time = 0#交替闪烁时间 最小100ms 
+        self.freq_num = 0#交替闪烁的次数
+        self.flash_light = 0
+        self.total_time = 0
+        self.long_count = 0
+        self.timer_state = 0
+        self.total_count = 0
+        self.freq = 0
+        self.led_state = 0
+        self.long_light_mode = 0
+        self.hr_state = 0
+        self.wechat_btn = 1
+        self.need_hr_btn = 0
+        self.led_open_time = 0
+        self.led_close_time = 0
+        self.led_total_time = 0#闪的总时间
+        self.led_enable = 0
+        self.led_mode = 0
+        self.working_led_mode = None
+        self.ledInfo_queue = Queue()
+        _thread.start_new_thread(self.ledInfo_queue_thread, ())
+        EventMesh.subscribe("publish_message_event_ledInfo",self.publish_message_event_ledInfo)
+        pass
+        
+
+    def post_processor_after_instantiation(self):
+        EventMesh.subscribe("set_led_time_arg", self.set_led_time_arg)#设置参数
+        EventMesh.subscribe("get_led_state", self.get_led_state)#设置参数
+
+        EventMesh.subscribe("set_hr_blood_led", self.set_hr_blood_led)#设置参数
+
+        EventMesh.subscribe("set_find_watch_led", self.set_find_watch_led)#设置参数
+
+        EventMesh.subscribe("close_all_led", self.close_all_led)#设置参数
+
+        EventMesh.subscribe("stop_led_timer", self.stop_led_timer)#设置参数
+
+        EventMesh.subscribe("read_red_led_level", self.read_red_led_level)#读取红灯的电平状态
+
+        EventMesh.subscribe("read_green_led_level", self.read_green_led_level)#读取绿灯的电平状态
+
+        EventMesh.subscribe("read_white_led_level", self.read_white_led_level)#读取白灯的电平状态
+
+        EventMesh.subscribe("close_led_pin", self.close_led_pin)#读取白灯的电平状态def close_led_pin(self, event, msg):
+
+
+    def ledInfo_queue_thread(self):
+        while True:
+            data = self.ledInfo_queue.get()
+            #print("ledInfo_queue:data = {}".format(data))
+            if data != None:
+                try:
+                    data["func"](data["data"])
+                except Exception as e:
+                    print("ledInfo_queue:ERROR:{}".format(e))
+                    usys.print_exception(e)
+    def publish_message_event_ledInfo(self,event,msg):
+        self.ledInfo_queue.put(msg)
+
+    def publish_led_event_cb(self, *args, **kwargs):
+        EventMesh.publish("publish_message_event_ledInfo",{"func":self.led_fun_cb,"data":0})  
+
+    def read_red_led_level(self, event, msg): #
+        red_level = led_red.read()
+        return red_level
+
+    def read_green_led_level(self, event, msg): #
+        green_level = led_green.read()
+        return green_level
+    
+    def read_white_led_level(self, event, msg): #
+        white_level = led_green.read()
+        return white_level
+
+    def set_hr_blood_led(self, event, msg): #
+        print("set_hr_blood_led :{}".format(msg))
+        if msg != None:
+            if msg == 1:
+                EventMesh.publish("set_led_time_arg",[1,2,10*70,led_mode.FLASH_LIGHT_RED_GREEN,10,5,led_mode.HEALTH_LED_MODE])#測量成功
+                # EventMesh.publish("set_led_time_arg",[1000,200,300,led_mode.FLASH_LIGHT_RED_GREEN,led_mode.DEFAULT_LONG_LIGHT_MODE,led_mode.HEALTH_LED_MODE])#開始測量
+            elif msg == 2:
+                EventMesh.publish("set_led_time_arg",[1,1,300,led_mode.FLASH_LIGHT_GREEN,31,10*3,led_mode.OTHER_MEASURE_MODE])#測量成功
+                # EventMesh.publish("set_led_time_arg",[3000,1000,1,led_mode.LONG_LIGHT_GREEN,led_mode.DEFAULT_LONG_LIGHT_MODE,led_mode.OTHER_MEASURE_MODE])#測量成功
+            elif msg == 3:
+                EventMesh.publish("set_led_time_arg",[1,1,300,led_mode.FLASH_LIGHT_RED,31,10*3,led_mode.OTHER_MEASURE_MODE])#測量成功
+                # EventMesh.publish("set_led_time_arg",[3000,1000,1,led_mode.LONG_LIGHT_RED,led_mode.DEFAULT_LONG_LIGHT_MODE,led_mode.OTHER_MEASURE_MODE])#測量失敗
+                #加音频文件
+
+    def set_find_watch_led(self, event, msg): #查找设备
+        EventMesh.publish("OPEN_FIND_WATCH")#
+       
+        # EventMesh.publish("set_led_time_arg",[37000,1000,1,led_mode.LONG_LIGHT_GREEN,led_mode.DEFAULT_LONG_LIGHT_MODE,led_mode.OTHER_MEASURE_MODE])#查找设备绿灯长亮37s
+
+    def get_led_state(self, event, msg): #
+        return self.timer_state
+    def open_timer(self,msg): #msg 0 使能 1总的时间 2 灯模式 3 开启时间 4 关闭时间 
+        if msg != None:
+            if len(msg) != 0:
+                self.led_total_time = msg[2]#
+                print("open_timer:{}".format(msg))
+                if self.led_total_time != None:
+
+                    if self.led_total_time > 0:
+                        self.led_enable=msg[0]
+                        if self.led_enable != 0:
+                            self.led_mode = msg[1]
+                            self.long_light_mode = msg[3]
+                            self.led_open_time = msg[4]
+                            self.led_close_time = msg[5]
+                            self.working_led_mode = msg[6]
+                            self.long_count = 0
+
+                            if self.timer_state == 0:
+                                self.timer_state = 1
+                                self.timer.stop()
+                                
+                                EventMesh.publish("close_led_pin")
+                                self.timer.start(LED_TIMER_OUT,1,self.publish_led_event_cb)
+                
+        
+
+
+    def set_led_time_arg(self, event, msg): #msg 
+        
+        open_power = EventMesh.publish("get_power_on_state")#获取开机标识
+        power_off = EventMesh.publish("get_power_off_state")#获取开机标识
+        print("set_led_time_arg",msg,open_power,power_off)
+        if open_power != None:
+            if open_power == 0:
+                return
+        if power_off != None:
+            if power_off == 1:
+                return
+        usb_in = EventMesh.publish("get_usb")#
+        # print("usb_in",usb_in)
+        if usb_in != None:
+            if usb_in == 1 or usb_in == 3:#正在充电或者充电已满都不要被打断
+                if self.timer_state == 1:
+                    self.timer_state = 0
+                    self.timer.stop()
+                if usb_in == 1:
+                    if self.working_led_mode != led_mode.CHARGE_IN_MODE:
+                        str_buf = [1,1,10,led_mode.LONG_LIGHT_RED,4,2,led_mode.CHARGE_IN_MODE]
+                        self.open_timer(str_buf)
+                    self.working_led_mode = led_mode.CHARGE_IN_MODE
+
+                elif usb_in == 3:
+                    if self.working_led_mode != led_mode.CHARGE_FULL_MODE:
+                        str_buf = [1,1,10,led_mode.LONG_LIGHT_GREEN,4,2,led_mode.CHARGE_FULL_MODE]
+                        self.open_timer(str_buf)
+                    self.working_led_mode = led_mode.CHARGE_FULL_MODE
+                
+                return
+            else:
+                if msg[5] != led_mode.HEALTH_LED_MODE:
+                    self.working_led_mode = led_mode.OTHER_MEASURE_MODE
+
+                get_hr_state = EventMesh.publish("get_hr_state")
+                get_spo2_state = EventMesh.publish("get_spo2_state")
+                
+                wechat_state = EventMesh.publish("get_wechat_state")
+                print("get_hr_state",get_hr_state,get_spo2_state,wechat_state,self.working_led_mode)
+                if wechat_state != None: #获取微聊状态
+                    if wechat_state == 1:
+                        if self.working_led_mode != led_mode.WECHAT_LED_MODE:#如果不在亮微聊模式需要亮微聊模式
+                            self.timer_state = 0
+                            self.timer.stop()
+                            str_buf = [1,1,1,led_mode.LONG_LIGHT_GREEN,4,2,led_mode.WECHAT_LED_MODE]
+                            self.open_timer(str_buf)
+                            self.working_led_mode = led_mode.WECHAT_LED_MODE
+                            return
+                        else:
+                           return
+                            
+                    else:
+                        self.wechat_btn = 0
+                        if get_hr_state != 0 or get_spo2_state != 0 :#心率血氧优先级高
+                            if self.working_led_mode != led_mode.HEALTH_LED_MODE:#如果不在亮微聊模式需要亮微聊模式
+                                print("set_hr_blood_led!!!!!!!!!!")
+                                str_buf = [1,2,10*70,led_mode.FLASH_LIGHT_RED_GREEN,10,5,led_mode.HEALTH_LED_MODE]#測量成功
+                                self.timer_state = 0
+                                self.timer.stop()
+                                self.open_timer(str_buf)
+                                self.working_led_mode = led_mode.HEALTH_LED_MODE
+                                return
+                            else:
+                                print("set_hr_blood_led stop!!!!!!!!!!")
+                                return
+                        if  get_hr_state == 0 and get_spo2_state == 0:
+                            self.working_led_mode = led_mode.OTHER_MEASURE_MODE
+                
+        self.open_timer(msg)
+
+
+    def stop_led_timer(self, event, msg):
+        open_power = EventMesh.publish("get_power_on_state")#获取开机标识
+        if open_power != None:
+            if open_power == 0:
+                return
+        EventMesh.publish("close_all_led")#关闭所有的灯
+    # EventMesh.publish("set_led_time_arg",[1,2,2*300,led_mode.FLASH_LIGHT_RED_GREEN,2,1,led_mode.HEALTH_LED_MODE])#測量成功
+    def led_fun_cb(self, data):#
+        if self.led_enable ==0 and self.led_total_time == 0:
+            return
+        # print("self.long_count",self.long_count)
+        if self.led_total_time != 0:
+            #红灯闪烁
+            if self.long_light_mode == led_mode.FLASH_LIGHT_RED :#
+                if self.led_mode == 1:
+                    if self.led_total_time > 0:
+                        self.led_total_time-=1
+                        if self.led_total_time > 0:
+                            close_led_green()
+                            close_led_white()
+                            open_led_red()
+                        else:
+                            EventMesh.publish("stop_led_timer")#关闭所有的灯
+                elif self.led_mode == 2:
+                    self.long_count+=1
+                    if self.long_count % (self.led_open_time) <  self.led_close_time: # 4*cnt cnt 多少次 4 开启时间保护关闭时间 2 关闭时间 100ms 4-2关闭时间为200ms 开启时间也为200ms 
+                        close_led_green()
+                        close_led_white()
+                        open_led_red()
+                        pass
+                    else:
+                        close_led_green()
+                        close_led_white()
+                        close_led_red()
+                        pass
+                    if self.long_count >= self.led_total_time:#大于总的时间 4
+                        EventMesh.publish("stop_led_timer")#设置参数
+                        pass
+            #绿灯闪烁
+            elif self.long_light_mode == led_mode.FLASH_LIGHT_GREEN:#
+                if self.led_mode == 1:#长亮时间限制
+                    
+                    if self.led_total_time > 0:
+                        self.led_total_time-=1
+                        if self.led_total_time > 0:
+                            close_led_red()
+                            close_led_white()
+                            open_led_green()
+                        else:
+                            EventMesh.publish("stop_led_timer")#关闭所有的灯
+                        
+
+                elif self.led_mode == 2:
+                    self.long_count+=1
+                    if self.long_count % (self.led_open_time) <  self.led_close_time: # 4*cnt cnt 多少次 4 开启时间保护关闭时间 2 关闭时间 100ms 4-2关闭时间为200ms 开启时间也为200ms 
+                        close_led_red()
+                        close_led_white()
+                        open_led_green()
+                        pass
+                    else:
+                        close_led_green()
+                        close_led_white()
+                        close_led_red()
+                        pass
+                    if self.long_count >= self.led_total_time:#大于总的时间 4
+                        EventMesh.publish("stop_led_timer")#设置参数
+                        pass
+            #蓝灯闪烁 暂时是白色灯
+            elif self.long_light_mode == led_mode.FLASH_LIGHT_WHITE:#
+                if self.led_mode == 1:#长亮时间限制
+                    if self.led_total_time > 0:
+                        self.led_total_time-=1
+                        if self.led_total_time > 0:
+                            close_led_red()
+                            close_led_green()
+                            open_led_white()
+                        else:
+                            EventMesh.publish("stop_led_timer")#关闭所有的灯
+                elif self.led_mode == 2:
+                    self.long_count+=1
+                    if self.long_count % (self.led_open_time) <  self.led_close_time: # 4*cnt cnt 多少次 4 开启时间保护关闭时间 2 关闭时间 100ms 4-2关闭时间为200ms 开启时间也为200ms 
+                        close_led_red()
+                        close_led_green()
+                        open_led_white()
+                        pass
+                    else:
+                        close_led_green()
+                        close_led_white()
+                        close_led_red()
+                        pass
+                    if self.long_count >= self.led_total_time:#大于总的时间 4
+                        EventMesh.publish("stop_led_timer")#设置参数
+                        pass
+            #红绿灯闪烁
+            elif self.long_light_mode == led_mode.FLASH_LIGHT_RED_GREEN:#
+                self.long_count+=1
+                
+                if self.long_count % (self.led_open_time) <  self.led_close_time: # 4*cnt cnt 多少次 4 开启时间保护关闭时间 2 关闭时间 100ms 4-2关闭时间为200ms 开启时间也为200ms 
+                    close_led_white()#白色灯
+                    close_led_green()
+                    open_led_red()
+                    pass
+                else: 
+                    close_led_white()
+                    close_led_red()
+                    open_led_green()
+                    pass
+                if self.long_count >= self.led_total_time:#大于总的时间 4
+                    EventMesh.publish("stop_led_timer")#设置参数
+                    pass
+            #红蓝灯闪烁 蓝变成白色灯
+            elif self.long_light_mode == led_mode.FLASH_LIGHT_RED_WHITE:#
+                self.long_count+=1
+                if self.long_count % (self.led_open_time) <  self.led_close_time: # 4*cnt cnt 多少次 4 开启时间保护关闭时间 2 关闭时间 100ms 4-2关闭时间为200ms 开启时间也为200ms 
+                    close_led_white()#白色灯
+                    close_led_green()
+                    open_led_red()
+                    pass
+                else:
+                    close_led_green()
+                    close_led_red()
+                    open_led_white()
+                    pass
+                if self.long_count >= self.led_total_time:#大于总的时间 4
+                    EventMesh.publish("stop_led_timer")#设置参数
+                    pass
+            #蓝绿灯闪烁
+            elif self.long_light_mode == led_mode.FLASH_LIGHT_GREEN_WHITE:#
+
+                self.long_count+=1
+                if self.long_count % (self.led_open_time) <  self.led_close_time: # 4*cnt cnt 多少次 4 开启时间保护关闭时间 2 关闭时间 100ms 4-2关闭时间为200ms 开启时间也为200ms 
+                    close_led_white()#白色灯
+                    close_led_red()
+                    open_led_green()
+                    pass
+                else:
+                    close_led_green()
+                    close_led_red()
+                    open_led_white()
+                    pass
+                if self.long_count >= self.led_total_time:#大于总的时间 4
+                    EventMesh.publish("stop_led_timer")#设置参数
+                    pass
+            #红灯长亮
+            elif self.long_light_mode == led_mode.LONG_LIGHT_RED:#
+                close_led_white()#白色灯
+                close_led_green()
+                open_led_red()
+            #绿灯长亮
+            elif self.long_light_mode == led_mode.LONG_LIGHT_GREEN:#
+                close_led_white()#白色灯
+                close_led_red()
+                open_led_green()
+            #蓝灯长亮
+            elif self.long_light_mode == led_mode.LONG_LIGHT_WHITE:#
+                close_led_green()#白色灯
+                close_led_red()
+                open_led_white()
+    
+    def close_led_pin(self, event, msg):
+        close_led_red()
+        close_led_green()
+        close_led_white()
+
+    def close_all_led(self, event, msg):
+        print("close_all_led!!!!")
+        usb_in = EventMesh.publish("get_usb")#
+        if usb_in != None:
+            if usb_in == 1 or usb_in == 3:#正在充电或者充电已满都不要被打断
+                self.timer_state = 0
+                self.timer.stop()
+                return
+            else:
+                get_hr_state = EventMesh.publish("get_hr_state")
+                get_spo2_state = EventMesh.publish("get_spo2_state")
+                
+                wechat_state = EventMesh.publish("get_wechat_state")
+                print("get_hr_state",get_hr_state,get_spo2_state,wechat_state,self.working_led_mode)
+                if wechat_state != None: #获取微聊状态
+                    if wechat_state == 1 or get_spo2_state != 0 or get_hr_state != 0:
+                        return
+        self.timer_state = 0
+        self.timer.stop()
+        self.led_total_time = 0
+        self.led_enable = 0
+        self.led_mode = 0
+        self.long_light_mode = 0
+        self.led_open_time = 0
+        self.led_close_time = 0
+        self.working_led_mode = 0
+        self.long_count = 0
+        close_led_red()
+        close_led_green()
+        close_led_white()
+        print("close led!!!")
+
+    def led_test_fun_cb(self, data):
+        return
+        if 0:
+            # print("self.freq_time :{} self.freq_num:{} self.flash_light:{}".format(self.freq_time,self.freq_num,self.flash_light))
+            if self.freq_time != 0 and self.freq_num != 0 and self.flash_light != 0:
+                if self.flash_light == led_mode.LONG_LIGHT_RED:
+                    if self.total_time != 0:
+                        if self.long_light_mode == led_mode.DEFAULT_LONG_LIGHT_MODE:#不是长亮模式 只需要长亮3 5 7 s这样就关闭长亮
+                            count = self.total_time//LED_TIMER_OUT#100ms单位
+                            self.long_count+=1
+                            if self.long_count == 1:
+                                close_led_green()
+                                close_led_white()
+                                open_led_red()#亮红灯 高电平
+                        
+                            elif self.long_count >= count :#不开长亮 只亮3 5 s这样就直接关闭
+                                close_led_red()#亮红灯 低电平
+                                EventMesh.publish("stop_led_timer")#设置参数
+
+                        elif self.long_light_mode == led_mode.OPEN_LONG_LIGHT_MODE:#开启长亮,需要手动发指令关闭长亮模式
+                            EventMesh.publish("stop_led_timer")#设置参数
+                            close_led_green()
+                            close_led_white()
+                            open_led_red()#亮红灯 高电平
+                            
+
+                        elif self.long_light_mode == led_mode.CLOSE_LONG_LIGHT_MODE:#关闭长亮模式
+                            close_led_red()#亮红灯 低电平
+                            EventMesh.publish("stop_led_timer")#设置参数
+                    else:
+                        EventMesh.publish("stop_led_timer")#设置参数
+
+                elif self.flash_light == led_mode.LONG_LIGHT_GREEN:
+                    if self.total_time != 0:
+                        if self.long_light_mode == led_mode.DEFAULT_LONG_LIGHT_MODE:#不是长亮模式 只需要长亮3 5 7 s这样就关闭长亮
+                            count = self.total_time//LED_TIMER_OUT#100ms单位
+                            self.long_count+=1
+                            if self.long_count == 1:
+                                close_led_red()
+                                close_led_white()
+                                open_led_green()#亮绿灯 高电平
+                        
+                            elif self.long_count >= count :#不开长亮 只亮3 5 s这样就直接关闭
+                                close_led_green()#亮绿灯 低电平
+                                EventMesh.publish("stop_led_timer")#设置参数
+
+                        elif self.long_light_mode == led_mode.OPEN_LONG_LIGHT_MODE:#开启长亮,需要手动发指令关闭长亮模式
+                            EventMesh.publish("stop_led_timer")#设置参数
+                            close_led_red()
+                            close_led_white()
+                            open_led_green()#亮绿灯 高电平
+                            
+
+                        elif self.long_light_mode == led_mode.CLOSE_LONG_LIGHT_MODE:#关闭长亮模式
+                            close_led_green()#亮绿灯 低电平
+                            EventMesh.publish("stop_led_timer")#设置参数
+                        
+                    else:
+                        EventMesh.publish("stop_led_timer")#设置参数
+
+                elif self.flash_light == led_mode.LONG_LIGHT_WHITE:
+                    if self.total_time != 0:
+                        if self.long_light_mode == led_mode.DEFAULT_LONG_LIGHT_MODE:#不是长亮模式 只需要长亮3 5 7 s这样就关闭长亮
+                            count = self.total_time//LED_TIMER_OUT#100ms单位
+                            self.long_count+=1
+                            if self.long_count == 1:
+                                close_led_green()
+                                close_led_red()
+                                open_led_white()#亮绿灯 高电平
+                            elif self.long_count >= count:
+                                close_led_white()#亮绿灯 低电平
+                                EventMesh.publish("stop_led_timer")#设置参数
+
+                        elif self.long_light_mode == led_mode.OPEN_LONG_LIGHT_MODE:#开启长亮,需要手动发指令关闭长亮模式
+                            EventMesh.publish("stop_led_timer")#设置参数
+                            close_led_green()
+                            close_led_red()
+                            open_led_white()#亮绿灯 高电平
+                        
+                        elif self.long_light_mode == led_mode.CLOSE_LONG_LIGHT_MODE:#开启长亮,需要手动发指令关闭长亮模式
+                            close_led_white()#亮绿灯 低电平
+                            EventMesh.publish("stop_led_timer")#设置参数
+
+                    else:#防止长亮时未设置长亮总时长 未设置不开灯
+                        EventMesh.publish("stop_led_timer")#设置参数
+
+                elif self.flash_light == led_mode.FLASH_LIGHT_RED:#红灯快速闪烁 灭灯时间和闪烁时间一致
+                    if self.total_time != 0:
+                        count = self.freq_num
+                        self.freq = self.freq_time // LED_TIMER_OUT#
+                        self.long_count+=1
+                        # print("self.freq : {} FLASH_LIGHT_RED count :{} self.long_count:{} self.total_count:{}".format(self.freq,count,self.long_count,self.total_count))
+                        if self.long_count == 1:#间隔多久闪一次 100ms单位
+                            close_led_green()
+                            close_led_white()
+                            open_led_red()#亮白灯 高电平
+                        elif self.long_count == self.freq+1:
+                            self.total_count+=1
+                            close_led_red()#亮白灯 低电平
+                        if self.long_count >= self.freq*2:
+                            self.long_count = 0
+                        
+                        # print("self.total_count:{}".format(self.total_count))
+                        if self.total_count >= count:
+                            close_led_red()#亮白灯 低电平
+                            self.total_count = 0
+                            self.long_count = 0
+                            EventMesh.publish("stop_led_timer")#设置参数
+
+
+                    else:#防止长亮时未设置长亮总时长 未设置不开灯
+                        EventMesh.publish("stop_led_timer")#设置参数
+                elif self.flash_light == led_mode.FLASH_LIGHT_GREEN:#绿灯快速闪烁
+                    if self.total_time != 0:
+                        count = self.freq_num
+                        self.freq = self.freq_time // LED_TIMER_OUT#
+                        self.long_count+=1
+                        # print("self.freq : {} FLASH_LIGHT_GREEN count :{} self.long_count:{} self.total_count:{}".format(self.freq,count,self.long_count,self.total_count))
+                        if self.long_count == 1:#间隔多久闪一次 100ms单位
+                            close_led_red()
+                            close_led_white()
+                            open_led_green()#亮白灯 高电平
+                        elif self.long_count == self.freq+1:
+                            self.total_count+=1
+                            close_led_green()#亮白灯 低电平
+                        if self.long_count >= self.freq*2:
+                            self.long_count = 0
+                        
+                        # print("self.total_count:{}".format(self.total_count))
+                        if self.total_count >= count:
+                            close_led_green()#亮白灯 低电平
+                            self.total_count = 0
+                            self.long_count = 0
+                            EventMesh.publish("stop_led_timer")#设置参数
+
+                    else:#防止长亮时未设置长亮总时长 未设置不开灯
+                        EventMesh.publish("stop_led_timer")#设置参数
+
+                elif self.flash_light == led_mode.FLASH_LIGHT_WHITE:#白灯灯快速闪烁
+                    if self.total_time != 0:
+                        count = self.freq_num
+                        self.freq = self.freq_time // LED_TIMER_OUT#
+                        self.long_count+=1
+                        # print("self.freq : {} FLASH_LIGHT_WHITE count :{} self.long_count:{} self.total_count:{}".format(self.freq,count,self.long_count,self.total_count))
+                        if self.long_count == 1:#间隔多久闪一次 100ms单位
+                            close_led_green()
+                            close_led_red()
+                            open_led_white()#亮白灯 高电平
+                        elif self.long_count == self.freq+1:
+                            self.total_count+=1
+                            close_led_white()#亮白灯 低电平
+                        if self.long_count >= self.freq*2:
+                            self.long_count = 0
+                        
+                        # print("self.total_count:{}".format(self.total_count))
+                        if self.total_count >= count:
+                            close_led_white()#亮白灯 低电平
+                            self.total_count = 0
+                            self.long_count = 0
+                            EventMesh.publish("stop_led_timer")#设置参数
+
+                    else:#防止长亮时未设置长亮总时长 未设置不开灯
+                        EventMesh.publish("stop_led_timer")#设置参数
+
+                elif self.flash_light == led_mode.INTERVAL_LIGHT_RED:#间隔闪烁
+                    if self.total_time != 0:
+                        count = self.freq_num
+                        self.freq = self.freq_time // LED_TIMER_OUT#
+                        self.long_count+=1
+                        # print("self.freq : {} FLASH_LIGHT_RED count :{} self.long_count:{} self.total_count:{}".format(self.freq,count,self.long_count,self.total_count))
+                        if self.long_count == 1:#间隔多久闪一次 100ms单位
+                            close_led_green()
+                            close_led_white()
+                            open_led_red()#亮白灯 高电平
+                        elif self.long_count == self.freq+1:
+                            self.total_count+=1
+                            close_led_red()#亮白灯 低电平                                  
+                        if self.long_count >= self.freq*2:
+                            self.long_count = 0
+                        
+                        # print("self.total_count:{}".format(self.total_count))
+                        if self.total_count >= count:
+                            close_led_red()#亮白灯 低电平
+                            self.total_count = 0
+                            self.long_count = 0
+                            EventMesh.publish("stop_led_timer")#设置参数
+
+
+                    else:#防止长亮时未设置长亮总时长 未设置不开灯
+                        EventMesh.publish("stop_led_timer")#设置参数
+
+                elif self.flash_light == led_mode.INTERVAL_LIGHT_GREEN:#绿灯快速闪烁
+                    if self.total_time != 0:
+                        count = self.freq_num
+                        self.freq = self.freq_time // LED_TIMER_OUT#
+                        self.long_count+=1
+                        # print("self.freq : {} FLASH_LIGHT_GREEN count :{} self.long_count:{} self.total_count:{}".format(self.freq,count,self.long_count,self.total_count))
+                        if self.long_count == 1:#间隔多久闪一次 100ms单位
+                            close_led_red()
+                            close_led_white()
+                            open_led_green()#亮白灯 高电平
+                        elif self.long_count == self.freq+1:
+                            self.total_count+=1
+                            close_led_green()#亮白灯 低电平
+                        if self.long_count >= self.freq*2:
+                            self.long_count = 0
+                        
+                        # print("self.total_count:{}".format(self.total_count))
+                        if self.total_count >= count:
+                            close_led_green()#亮白灯 低电平
+                            self.total_count = 0
+                            self.long_count = 0
+                            EventMesh.publish("stop_led_timer")#设置参数
+
+                    else:#防止长亮时未设置长亮总时长 未设置不开灯
+                        EventMesh.publish("stop_led_timer")#设置参数
+
+                elif self.flash_light == led_mode.INTERVAL_LIGHT_WHITE:#白灯灯快速闪烁
+                    if self.total_time != 0:
+                        count = self.freq_num
+                        self.freq = self.freq_time // LED_TIMER_OUT#
+                        self.long_count+=1
+                        # print("self.freq : {} FLASH_LIGHT_WHITE count :{} self.long_count:{} self.total_count:{}".format(self.freq,count,self.long_count,self.total_count))
+                        if self.long_count == 1:#间隔多久闪一次 100ms单位
+                            close_led_green()
+                            close_led_red()
+                            open_led_white()#亮白灯 高电平
+                        elif self.long_count == self.freq+1:
+                            self.total_count+=1
+                            close_led_white()#亮白灯 低电平
+                        if self.long_count >= self.freq*2:
+                            self.long_count = 0
+                        
+                        # print("self.total_count:{}".format(self.total_count))
+                        if self.total_count >= count:
+                            close_led_white()#亮白灯 低电平
+                            self.total_count = 0
+                            self.long_count = 0
+                            EventMesh.publish("stop_led_timer")#设置参数
+
+                    else:#防止长亮时未设置长亮总时长 未设置不开灯
+                        EventMesh.publish("stop_led_timer")#设置参数
+
+                elif self.flash_light == led_mode.FLASH_LIGHT_RED_GREEN:#红绿灯灯快速闪烁
+                    if self.total_time != 0:
+                        count = self.freq_num
+                        self.freq = self.freq_time // LED_TIMER_OUT#
+                        self.long_count+=1
+                        if self.long_count == 1:#间隔多久闪一次 100ms单位
+                            close_led_white()
+                            close_led_green()#亮白灯 低电平
+                            open_led_red()#紅
+                        elif self.long_count == 1*self.freq+1:#5 6 7 8 
+                            close_led_red()#亮白灯 低电平
+                            close_led_green()#亮白灯 低电平
+                            
+                        elif self.long_count == 2*self.freq+1:#5 6 7 8 
+                            open_led_green()#綠
+                        
+                        elif self.long_count == 3*self.freq+1:#5 6 7 8 
+                            close_led_red()#亮白灯 低电平
+                            close_led_green()#亮白灯 低电平
+                            self.total_count += 1
+
+                        if self.long_count >= 4*self.freq:
+                            self.long_count = 0
+                        # print("self.total_count:{}".format(self.total_count))
+                        if self.total_count >= count:
+                            close_led_green()#亮白灯 低电平
+                            close_led_red()#亮白灯 低电平
+                            self.long_count = 0
+                            EventMesh.publish("stop_led_timer")#设置参数
+                        
+                    else:#防止长亮时未设置长亮总时长 未设置不开灯
+                        EventMesh.publish("stop_led_timer")#设置参数
+                elif self.flash_light >= led_mode.LIGHT_NONE:#未知
+                    EventMesh.publish("stop_led_timer")#设置参数
+                
+            else:
+                EventMesh.publish("stop_led_timer")#关闭定时器和关闭所有的led灯
+
+
+
diff --git a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/versions.py b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/versions.py
deleted file mode 100644 (file)
index 944abd9..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Version="810M_D10_V1.0" 
-Build_Time="2023-07-21  9:46:53"