local result = mqttClient:publish("$dp",msgPack(),0)中$dp的含义

我使用的是Air800 M4的板子在通过MQTT发送数据到OneNet。请问该语句local result = mqttClient:publish("$dp",msgPack(),0)中$dp是什么意思啊 。我查过API,知道应该是topic的意思,但是我的数据流显示不出来。attachments-2018-09-tzBkdPca5b9eb66f01b8e.

这里是我的程序:

--- 模块功能: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 msgPack()

    local torigin = 

 {

        datastreams = 

        {{

          id = "111",

          datapoints = 

          {{

            at = "",

            value = 

            {

              66,

            }

          }}

        }}

      }



    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("43082120",600,"171296","sub123456")

            --阻塞执行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",msgPack(),0)

            if result then

            log.info("onenet send","success")

            else

            log.info("onenet send","failed")

                end

            sys.wait(20000)

            end

            --断开MQTT连接

            mqttClient:disconnect()

        end

    end

)

请大佬解答。谢谢啦

请先 登录 后评论

2 个回答

技术销售Delectate
擅长:IT

$dp,指的就是主题 $dp

该主题不含通配符。更多信息,请阅读:http://ask.openluat.com/article/68


请先 登录 后评论
冷红林
擅长:互联网

这个是onenet的规定,如果上传数据流,就要像这个topic发消息

请先 登录 后评论

相似问题