加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
mqttTask.lua 2.06 KB
一键复制 编辑 原始数据 按行查看 历史
xiaom 提交于 2019-10-12 14:51 . MQTT传送WGS84坐标到onenet
--- 模块功能:MQTT客户端处理框架
-- @author openLuat
-- @module mqtt.mqttTask
-- @license MIT
-- @copyright openLuat
-- @release 2018.03.28
module(...,package.seeall)
require"misc"
require"mqtt"
require"ntp"
ntp.timeSync()
require"testGps"
local ready = false
--- MQTT连接是否处于激活状态
-- @return 激活状态返回true,非激活状态返回false
-- @usage mqttTask.isReady()
function isReady()
return ready
end
local function getGps()
Mlat,Mlng = testGps.printGps()
log.info("testGps lat,lng",Mlat,Mlng)
local torigin =
{
datastreams =
{{
id = "gps",
datapoints =
{{
at = "",
value =
{
--lon = "121.4736522",
--lat = "031.2425864",
lon = Mlng,
lat = Mlat,
}
}}
}}
}
local msg = json.encode(torigin)
print("json data",msg)
local len = msg.len(msg)
buf = pack.pack("bbbA", 0x01,0x00,len,msg)
return buf
end
--启动MQTT客户端任务
sys.taskInit(
function()
while true do
--等待网络环境准备就绪
while not socket.isReady() do sys.waitUntil("IP_READY_IND") end
local imei = misc.getImei()
--创建一个MQTT客户端
local mqttClient = mqtt.client("555228364",600,"283655","123",nil,nil)
--阻塞执行MQTT CONNECT动作,直至成功
--如果使用ssl连接,打开--[[,{caCert="ca.crt"}]],根据自己的需求配置
while not mqttClient:connect("183.230.40.39",6002,"tcp"--[[,{caCert="ca.crt"}]]) do
sys.wait(2000)
end
while true do
local result = mqttClient:publish("$dp",getGps())
if result then
log.info("onenet send","success")
else
log.info("onenet send","failed")
end
sys.wait(20000)
end
--断开MQTT连接
mqttClient:disconnect()
end
end
)
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化