12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- local util_netled = {}
- local netled_default_duration = 200
- local netled_default_interval = 3000
- local netled_duration = netled_default_duration
- local netled_interval = netled_default_interval
- local netled_inited = false
- -- 开机时呼吸灯效果
- sys.taskInit(
- function()
- local nums = {0, 1, 2, 4, 6, 12, 16, 21, 27, 34, 42, 51, 61, 72, 85, 100, 100}
- while true do
- for i = 1, #nums, 1 do
- pwm.open(4, 1000, nums[i])
- result = sys.waitUntil("NET_LED_INIT", 25)
- if result then
- pwm.close(4)
- return
- end
- end
- for i = #nums, 1, -1 do
- pwm.open(4, 1000, nums[i])
- result = sys.waitUntil("NET_LED_INIT", 25)
- if result then
- pwm.close(4)
- return
- end
- end
- end
- end
- )
- -- 注册网络后开始闪烁
- function util_netled.init()
- if netled_inited then
- return
- end
- netled_inited = true
- sys.publish("NET_LED_INIT")
- sys.taskInit(
- function()
- local netled = gpio.setup(27, 0, gpio.PULLUP)
- while true do
- netled(1)
- sys.waitUntil("NET_LED_UPDATE", netled_duration)
- netled(0)
- sys.waitUntil("NET_LED_UPDATE", netled_interval)
- end
- end
- )
- end
- function util_netled.blink(duration, interval, restore)
- if duration == netled_duration and interval == netled_interval then
- return
- end
- netled_duration = duration or netled_default_duration
- netled_interval = interval or netled_default_interval
- log.debug("EVENT.NET_LED_UPDATE", duration, interval, restore)
- sys.publish("NET_LED_UPDATE")
- if restore then
- sys.timerStart(util_netled.blink, restore)
- end
- end
- return util_netled
|