-
Notifications
You must be signed in to change notification settings - Fork 0
/
sntpd.lua
45 lines (33 loc) · 961 Bytes
/
sntpd.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
-- file: sntpd.lua
local module = {}
module.SNTP_UNKNOWN = 0
module.SNTP_SYNCHRONIZED = 1
module.SNTP_FAILED = 2
local server = nil
local period = nil
local timeout = nil
local state = module.SNTP_UNKNOWN
function module.is_ready()
return state == module.SNTP_SYNCHRONIZED
end
function module.start(__config)
server = __config.server
period = __config.period
timeout = __config.timeout
module.sync()
end
function module.sync()
sntp.sync(server,
function(sec, usec, server, info)
print("\n\tSNTP - SYNCHRONIZED".."\n\tSeconds: "..sec.."\n\tMicroseconds: "..usec.."\n\tServer: "..server)
state = module.SNTP_SYNCHRONIZED
tmr.create():alarm(period * 1000, tmr.ALARM_SINGLE, module.sync)
end,
function(reason, info)
print("\n\tSNTP - FAILED".."\n\tReason: "..reason.."\n\tInfo (if any): "..info)
state = module.SNTP_FAILED
tmr.create():alarm(timeout * 1000, tmr.ALARM_SINGLE, module.sync)
end,
nil)
end
return module