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!\"。
增加后的