菜单

附加MQTT参数-r --will-retain --will-topic --will-payload

下载

20250930版本中,协议设置中无附加发布参数、附加订阅参数。需如下操作
一、覆盖

1.模拟器版

进入组态软件所在目录,进入子目录plugins\cn.simtutai.device.mqtt_1.0.0.20250909\os\aws\win32
覆盖libTlsMqttDriver.dll文件,下载模拟器版文件【libTlsMqttDriver.zip

2.ARM版

进入组态软件所在目录,进入子目录plugins\cn.simtutai.device.mqtt_1.0.0.20250909\os\aws\arm
覆盖libTlsMqttDriver.so文件,下载ARM版文件【libTlsMqttDriver.zip

二、组态

根据Emqx实例,做好界面,注意,此时还没有附加参数

三、附加参数

打开HmiApp.cpp文件,在construct()方法中找到

    dm->addDevice("emqx", R"({"clientid":"test1","dll":"TlsMqttDriver","DeviceId":"emqx","cert":"","cafile":"./res/pic/emqxsl-ca.crt","processTimeout":"3000","issim":"true","password":"test1","numIterations":"1","port":"8883","host":"de031258.ala.cn-hangzhou.emqxsl.cn","oneConnetTime":"300","Protocol":"COMMONMQTT","if":"ETHNET","key":"","loopDelay":"100","username":"test1"})");


    dm->addDevice("emqx", R"({"clientid":"test1","dll":"TlsMqttDriver","DeviceId":"emqx","cert":"","cafile":"./res/pic/emqxsl-ca.crt","processTimeout":"3000","issim":"false","password":"test1","numIterations":"1","port":"8883","host":"de031258.ala.cn-hangzhou.emqxsl.cn","oneConnetTime":"300","Protocol":"COMMONMQTT","if":"ETHNET","key":"","loopDelay":"100","username":"test1"})");

在onReady()中加入代码:

红色部分:是上面复制下来的

绿色部分:是附加发布参数

兰色部分:是附加订阅参数

void HmiApp::onReady(){
    //用户在此添加客户化代码
#if __WIN32__
    string settings = R"({"clientid":"test1","dll":"TlsMqttDriver","DeviceId":"emqx","cert":"","cafile":"./res/pic/emqxsl-ca.crt","processTimeout":"3000","issim":"true","password":"test1","numIterations":"1","port":"8883","host":"de031258.ala.cn-hangzhou.emqxsl.cn","oneConnetTime":"300","Protocol":"COMMONMQTT","if":"ETHNET","key":"","loopDelay":"100","username":"test1","AdditionPubArgs":"-r","AdditionSubArgs":"--will-retain --will-topic testtopic --will-payload \"user offline!\""})";
#else
    string settings = R"({"clientid":"test1","dll":"TlsMqttDriver","DeviceId":"emqx","cert":"","cafile":"./res/pic/emqxsl-ca.crt","processTimeout":"3000","issim":"false","password":"test1","numIterations":"1","port":"8883","host":"de031258.ala.cn-hangzhou.emqxsl.cn","oneConnetTime":"300","Protocol":"COMMONMQTT","if":"ETHNET","key":"","loopDelay":"100","username":"test1","AdditionPubArgs":"-r","AdditionSubArgs":"--will-retain --will-topic testtopic --will-payload \"user offline!\""})";
#endif

//修改设备配置
    dm->getDevice("emqx")->setSettings(settings);
}

分别增加,"AdditionPubArgs":"-r"

和 ,"AdditionSubArgs":"--will-retain --will-topic testtopic --will-payload \"user offline!\""

注意,若消息中有空格,需要用双引号,并注意要转义,如上面的\"user offline!\"。

增加后的

 

上一个
Emqx实例
下一个
欧姆龙连接说明
最近修改: 2026-03-17Powered by