|
@@ -1,39 +1,69 @@
|
|
local util_netled = {}
|
|
local util_netled = {}
|
|
|
|
|
|
-local netled = gpio.setup(27, 0, gpio.PULLUP)
|
|
|
|
-
|
|
|
|
local netled_default_duration = 200
|
|
local netled_default_duration = 200
|
|
-local netled_default_interval = 2000
|
|
|
|
|
|
+local netled_default_interval = 3000
|
|
|
|
|
|
local netled_duration = netled_default_duration
|
|
local netled_duration = netled_default_duration
|
|
local netled_interval = netled_default_interval
|
|
local netled_interval = netled_default_interval
|
|
|
|
|
|
|
|
+local netled_inited = false
|
|
|
|
+
|
|
|
|
+-- 开机时呼吸灯效果
|
|
sys.taskInit(
|
|
sys.taskInit(
|
|
function()
|
|
function()
|
|
|
|
+ local nums = {0, 1, 2, 4, 6, 12, 16, 21, 27, 34, 42, 51, 61, 72, 85, 100, 100}
|
|
while true do
|
|
while true do
|
|
- netled(1)
|
|
|
|
- sys.waitUntil("NET_LED_UPDATE", netled_duration)
|
|
|
|
- netled(0)
|
|
|
|
- sys.waitUntil("NET_LED_UPDATE", netled_interval)
|
|
|
|
|
|
+ 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
|
|
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)
|
|
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_duration = duration or netled_default_duration
|
|
netled_interval = interval or netled_default_interval
|
|
netled_interval = interval or netled_default_interval
|
|
- log.info("publish NET_LED_UPDATE")
|
|
|
|
|
|
+ log.debug("EVENT.NET_LED_UPDATE", duration, interval, restore)
|
|
sys.publish("NET_LED_UPDATE")
|
|
sys.publish("NET_LED_UPDATE")
|
|
if restore then
|
|
if restore then
|
|
- sys.timerStart(
|
|
|
|
- function()
|
|
|
|
- netled_duration = netled_default_duration
|
|
|
|
- netled_interval = netled_default_interval
|
|
|
|
- log.info("publish NET_LED_UPDATE")
|
|
|
|
- sys.publish("NET_LED_UPDATE")
|
|
|
|
- end,
|
|
|
|
- restore
|
|
|
|
- )
|
|
|
|
|
|
+ sys.timerStart(util_netled.blink, restore)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
|