main
parent
76c798cddd
commit
18d92884a6
|
@ -1,5 +1,6 @@
|
||||||
local _C = {
|
local _C = {
|
||||||
TAG = "【配置】"
|
TAG = "【配置】",
|
||||||
|
CFLAG = false,
|
||||||
}
|
}
|
||||||
|
|
||||||
-- 日志等级
|
-- 日志等级
|
||||||
|
@ -9,7 +10,7 @@ PRODUCT_KEY = "0VrZxxSwrI7qE3GU8ddLFww5FbP3DqQu"
|
||||||
-- 默认配置
|
-- 默认配置
|
||||||
local default_config = {
|
local default_config = {
|
||||||
-- 联网最长等待时间(秒)
|
-- 联网最长等待时间(秒)
|
||||||
-- ip_ready_timeout_s = 30,
|
ip_ready_timeout_s = 30,
|
||||||
-- 配置接口地址
|
-- 配置接口地址
|
||||||
config_url = "http://miot.xaxi.cn/app/device/conf/",
|
config_url = "http://miot.xaxi.cn/app/device/conf/",
|
||||||
-- http请求最长等待时间(毫秒)
|
-- http请求最长等待时间(毫秒)
|
||||||
|
@ -34,27 +35,27 @@ function _C.init()
|
||||||
return 0
|
return 0
|
||||||
end
|
end
|
||||||
|
|
||||||
-- local function get_ip_ready_timeout_s()
|
local function get_ip_ready_timeout_s()
|
||||||
-- local timeout = fskv.get("config", "ip_ready_timeout_s")
|
local timeout = fskv.get("config", "ip_ready_timeout_s")
|
||||||
-- return (type(timeout) == "number") and timeout or default_config.ip_ready_timeout_s
|
return (type(timeout) == "number") and timeout or default_config.ip_ready_timeout_s
|
||||||
-- end
|
end
|
||||||
|
|
||||||
-- local function set_ip_ready_timeout_s(v)
|
local function set_ip_ready_timeout_s(v)
|
||||||
-- if type(v) ~= "number" then
|
if type(v) ~= "number" then
|
||||||
-- log.warn(COSO, _C.TAG, "缺少 ip_ready_timeout_s 字段")
|
log.warn(COSO, _C.TAG, "缺少 ip_ready_timeout_s 字段")
|
||||||
-- return
|
return
|
||||||
-- end
|
end
|
||||||
-- local _ip_ready_timeout_s = get_ip_ready_timeout_s()
|
local _ip_ready_timeout_s = get_ip_ready_timeout_s()
|
||||||
-- if v == _ip_ready_timeout_s then return end
|
if v == _ip_ready_timeout_s then return end
|
||||||
-- if v < 10 or v > 30 then
|
if v < 10 or v > 30 then
|
||||||
-- log.error(COSO, _C.TAG, "ip_ready_timeout_s 校验失败", v)
|
log.error(COSO, _C.TAG, "ip_ready_timeout_s 校验失败", v)
|
||||||
-- return
|
return
|
||||||
-- end
|
end
|
||||||
-- if not fskv.sett("config", "ip_ready_timeout_s", v) then
|
if not fskv.sett("config", "ip_ready_timeout_s", v) then
|
||||||
-- log.error(COSO, _C.TAG, "更新失败 ip_ready_timeout_s", v)
|
log.error(COSO, _C.TAG, "更新失败 ip_ready_timeout_s", v)
|
||||||
-- end
|
end
|
||||||
-- log.info(COSO, _C.TAG, "更新成功 ip_ready_timeout_s", v)
|
log.info(COSO, _C.TAG, "更新成功 ip_ready_timeout_s", v)
|
||||||
-- end
|
end
|
||||||
|
|
||||||
local function get_config_url()
|
local function get_config_url()
|
||||||
local url = fskv.get("config", "config_url")
|
local url = fskv.get("config", "config_url")
|
||||||
|
@ -207,9 +208,9 @@ local function set_t_o(v)
|
||||||
log.info(COSO, _C.TAG, "更新成功 t_o", v)
|
log.info(COSO, _C.TAG, "更新成功 t_o", v)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- function _C.get_net_timeout()
|
function _C.get_net_timeout()
|
||||||
-- return get_ip_ready_timeout_s()
|
return get_ip_ready_timeout_s()
|
||||||
-- end
|
end
|
||||||
|
|
||||||
function _C.get_d_u()
|
function _C.get_d_u()
|
||||||
return get_d_u()
|
return get_d_u()
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
require("globals")
|
require("globals")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
local function start()
|
local function start()
|
||||||
local wakeup_sta = {
|
local wakeup_sta = {
|
||||||
[0] = "上电开机",
|
[0] = "上电开机",
|
||||||
|
@ -11,10 +13,14 @@ local function start()
|
||||||
}
|
}
|
||||||
local wakeup, sleep = pm.lastReson()
|
local wakeup, sleep = pm.lastReson()
|
||||||
log.info(COSO, "【设备开机】",wakeup_sta[wakeup],slp_sta[sleep], rtos.buildDate(), rtos.firmware())
|
log.info(COSO, "【设备开机】",wakeup_sta[wakeup],slp_sta[sleep], rtos.buildDate(), rtos.firmware())
|
||||||
|
local code, connet_time
|
||||||
|
code = cfg.init()
|
||||||
|
if code ~= 0 then return sta.handling(code) end
|
||||||
|
log.info(COSO, "【数据库】", "初始化完成")
|
||||||
if sleep > 0 then
|
if sleep > 0 then
|
||||||
mobile.flymode(0,false)
|
mobile.flymode(0,false)
|
||||||
end
|
end
|
||||||
local code, connet_time = net.init(30)
|
code, connet_time = net.init(cfg.get_net_timeout())
|
||||||
if code ~= 0 then return sta.handling(code) end
|
if code ~= 0 then return sta.handling(code) end
|
||||||
log.info(COSO, "【网络】", "连接成功", connet_time)
|
log.info(COSO, "【网络】", "连接成功", connet_time)
|
||||||
sys.publish("config_check")
|
sys.publish("config_check")
|
||||||
|
@ -22,31 +28,27 @@ end
|
||||||
|
|
||||||
local function configTask()
|
local function configTask()
|
||||||
sys.waitUntil("config_check")
|
sys.waitUntil("config_check")
|
||||||
log.info(COSO, "【检查配置")
|
log.debug(COSO, "【DEV】", cfg.get_net_timeout())
|
||||||
local code = cfg.init()
|
|
||||||
if code ~= 0 then return sta.handling(code) end
|
|
||||||
log.info(COSO, "【数据库】", "初始化完成")
|
|
||||||
cfg.check()
|
|
||||||
log.debug(COSO, "【DEV】", cfg.get_d_u())
|
log.debug(COSO, "【DEV】", cfg.get_d_u())
|
||||||
log.debug(COSO, "【DEV】", cfg.get_g_u())
|
log.debug(COSO, "【DEV】", cfg.get_g_u())
|
||||||
log.debug(COSO, "【DEV】", cfg.get_ota())
|
log.debug(COSO, "【DEV】", cfg.get_ota())
|
||||||
log.debug(COSO, "【DEV】", cfg.get_s_u())
|
log.debug(COSO, "【DEV】", cfg.get_s_u())
|
||||||
log.debug(COSO, "【DEV】", cfg.get_t_o())
|
log.debug(COSO, "【DEV】", cfg.get_t_o())
|
||||||
|
cfg.check()
|
||||||
|
if cfg.get_ota() then
|
||||||
|
sys.publish("ota_update")
|
||||||
|
else
|
||||||
sys.publish("get_data")
|
sys.publish("get_data")
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local function dataTask()
|
local function dataTask()
|
||||||
sys.waitUntil("get_data")
|
sys.waitUntil("get_data")
|
||||||
sys.publish("report_data")
|
report.upload(data.getData())
|
||||||
end
|
sleep.goPSM(10 or cfg.get_s_u())
|
||||||
|
|
||||||
local function reportTask()
|
|
||||||
sys.waitUntil("report_data")
|
|
||||||
sleep.goPSM(10)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
sys.taskInit(start)
|
sys.taskInit(start)
|
||||||
sys.taskInit(configTask)
|
sys.taskInit(configTask)
|
||||||
sys.taskInit(dataTask)
|
sys.taskInit(dataTask)
|
||||||
sys.taskInit(reportTask)
|
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
local _C = {
|
||||||
|
TAG = "【数据获取】",
|
||||||
|
data = {
|
||||||
|
net = {},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
local function get_net_data()
|
||||||
|
|
||||||
|
_C.data.net = {
|
||||||
|
imei = mobile.imei(),
|
||||||
|
imsi = mobile.imsi(),
|
||||||
|
sn = mobile.sn():toHex(),
|
||||||
|
muid = mobile.muid(),
|
||||||
|
iccid = mobile.iccid(),
|
||||||
|
csq = mobile.csq(),
|
||||||
|
rssi = mobile.rssi(),
|
||||||
|
rsrq = mobile.rsrq(),
|
||||||
|
rsrp = mobile.rsrp(),
|
||||||
|
snr = mobile.snr(),
|
||||||
|
simid = mobile.simid(),
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
function _C.getData()
|
||||||
|
get_net_data()
|
||||||
|
return _C.data
|
||||||
|
end
|
||||||
|
|
||||||
|
function _C.updateData()
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
return _C
|
|
@ -6,4 +6,6 @@ cfg = require("config")
|
||||||
|
|
||||||
net = require("net")
|
net = require("net")
|
||||||
ota = require("ota")
|
ota = require("ota")
|
||||||
|
data = require("data")
|
||||||
sleep = require("sleep")
|
sleep = require("sleep")
|
||||||
|
report = require("report")
|
||||||
|
|
|
@ -1,20 +1,24 @@
|
||||||
local _C = {
|
local _C = {
|
||||||
TAG = "【4G网络】"
|
TAG = "【4G网络】",
|
||||||
|
READY = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sys.subscribe("IP_READY", function()
|
||||||
|
_C.READY = true
|
||||||
|
end)
|
||||||
|
|
||||||
function _C.init(v)
|
function _C.init(v)
|
||||||
|
if _C.READY then
|
||||||
|
return 0, 0
|
||||||
|
end
|
||||||
local start_time = os.clock()
|
local start_time = os.clock()
|
||||||
local result
|
while not (_C.READY or ((os.clock() - start_time) * 100 > v)) do
|
||||||
while not (result or ((os.clock() - start_time) * 100 > v)) do
|
if not _C.READY then
|
||||||
result = sys.waitUntil("IP_READY", 990)
|
sys.wait(1000)
|
||||||
if not result then
|
log.info(COSO, _C.TAG, "联网中:", (os.clock() - start_time) * 100, "超时:", v)
|
||||||
log.warn(COSO, _C.TAG, "联网中:", (os.clock() - start_time) * 100, "超时:", v)
|
|
||||||
sys.wait(10)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
return result and 0 or 3, (os.clock() - start_time) * 100
|
return _C.READY and 0 or 3, (os.clock() - start_time) * 100
|
||||||
end
|
end
|
||||||
|
|
||||||
return _C
|
return _C
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2,4 +2,14 @@ local _C = {
|
||||||
TAG = "【上报数据】"
|
TAG = "【上报数据】"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function _C.upload(v)
|
||||||
|
log.info(COSO, _C.TAG, json.encode(v))
|
||||||
|
local code, _, body = http.request("POST", "http://miot.xaxi.cn/app/device/data/", nil, json.encode(v), { timeout = cfg.get_t_o() }).wait()
|
||||||
|
log.debug(COSO, _C.TAG, code, body)
|
||||||
|
if code ~= 200 then return 1 end
|
||||||
|
body = json.decode(body)
|
||||||
|
if body.code ~= 0 then return 2 end
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
|
||||||
return _C
|
return _C
|
||||||
|
|
Loading…
Reference in New Issue