12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- 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 }
- local len = #nums
- while true do
- for i = 1, len, 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 = len, 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
|