代码拉取完成,页面将自动刷新
--- 模块功能: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
)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。