# - ## ssh root@183.56.252.244 -p 8022 plcplatform.worldflying.cn scp -P 8022 target/x86_64-unknown-linux-gnu/release/iotplatform_lite root@183.56.252.244:iotplatform_lite/ scp -P 8022 ../../../add_service.sh root@183.56.252.244:iotplatform_lite/ [https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx664469117500d259&redirect_uri=https%3A%2F%2Fwww.worldflying.cn%2Ftools%2Fwxredirect%2Fplc.html&response_type=code&scope=snsapi_base&state=base#wechat_redirect] [https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx664469117500d259&redirect_uri=https%3A%2F%2Fwww.worldflying.cn%2Ftools%2Fwxredirect%2Fplc.html&response_type=code&scope=snsapi_base&state=base#wechat_redirect] [https://www.worldflying.cn/tools/wxredirect/iot.html?code=081C2G1w3lOms63CIf3w31t8n71C2G1j&state=base] ```TXT mosquitto插件开发完了,地址在这里https://code.worldflying.cn/jevian/mosquitto_plugin 总代码不到100行,重要的逻辑代码不到50行,编译也简单,安装libmosquitto-dev mosquitto-dev后直接make即可。 已经实现了一次性登录与登录有效期,acl也支持有效期功能 我已经把这批设备需要添加的数据库内容添加进去了,你也把服务器的信息以及客户端的动态规则记得加进去,我的工作应该是结束了。 用户表中有两个字段,一个是mode,另一个是deadline。 如果mode为0就是长期有效账号密码,如果为1就是一次性账号密码,登录成功后,插件会把这条记录删除,下次就无法再用它登录了。 deadline是允许使用的最后时间(linux时间戳),当超过这个时间后,这条记录也就无效了。 至于你是想设最后时效,还是享设只使用一次,亦或是同时有效,这个随你。功能完成了,你怎么用随便你。反正就是要注意一下,不要让一个账号被破解后,他可以操作我们的所有设备,这是绝对不被允许的。 ``` ```txt 一、用户登录 mqtt服务器地址为plcmq.worldflying.cn 端口为9001 目前两个账号可用 一个是: clientid:mqtt_client username:client password:123456 另一个是: client:mqtt_client2 username:client2 password:123456 必须通过加密的websocket去连接,也就是wss 二、设备 目前有两个设备,分别为460089721505216挂在mqtt_client下与460089721505219挂在mqtt_client2。 三、调用 以mqtt_client控制460089721505216为例 客户端需要订阅如下topic /wf/Iot/client/460089721505216 用来获取烧录plc代码成功与失败状态 460089721505216/dev/avty 用来获取设备在线状态,会收到ONLINE与OFFLINE 460089721505216/DI0/state 用来获取DI0状态,会收到ON与OFF 460089721505216/DI1/state 用来获取DI1状态,会收到ON与OFF 460089721505216/DI2/state 用来获取DI2状态,会收到ON与OFF 460089721505216/DI3/state 用来获取DI3状态,会收到ON与OFF 460089721505216/DI4/state 用来获取DI4状态,会收到ON与OFF 460089721505216/DI5/state 用来获取DI5状态,会收到ON与OFF 460089721505216/DI6/state 用来获取DI6状态,会收到ON与OFF 460089721505216/DI7/state 用来获取DI7状态,会收到ON与OFF 460089721505216/DO0/state 用来获取DO0状态,会收到ON与OFF 460089721505216/DO1/state 用来获取DO1状态,会收到ON与OFF 460089721505216/DO2/state 用来获取DO2状态,会收到ON与OFF 460089721505216/DO3/state 用来获取DO3状态,会收到ON与OFF 460089721505216/DO4/state 用来获取DO4状态,会收到ON与OFF 460089721505216/DO5/state 用来获取DO5状态,会收到ON与OFF 460089721505216/DO6/state 用来获取DO6状态,会收到ON与OFF 460089721505216/DO7/state 用来获取DO7状态,会收到ON与OFF 460089721505216/BEEP/state 用来获取蜂鸣器状态,会收到ON与OFF 客户端需要向如下topic发送消息 /wf/Iot/device/460089721505216 用来发送烧录plc指令给设备 460089721505216/DO0/cmd 用来控制DO0状态,可发送ON与OFF 460089721505216/DO1/cmd 用来控制DO1状态,可发送ON与OFF 460089721505216/DO2/cmd 用来控制DO2状态,可发送ON与OFF 460089721505216/DO3/cmd 用来控制DO3状态,可发送ON与OFF 460089721505216/DO4/cmd 用来控制DO4状态,可发送ON与OFF 460089721505216/DO5/cmd 用来控制DO5状态,可发送ON与OFF 460089721505216/DO6/cmd 用来控制DO6状态,可发送ON与OFF 460089721505216/DO7/cmd 用来控制DO7状态,可发送ON与OFF 460089721505216/BEEP/cmd 用来控制蜂鸣器状态,可发送ON与OFF 四、烧录 还是以mqtt_client控制460089721505216为例 向topic /wf/Iot/device/460089721505216发送 act=isp&imgurl=http://124.222.106.170/test_app_l011_nothing.bin 其中imgurl后面跟的是固件的下载地址,我们的编译平台给你什么你填什么即可。 如果烧录成功,topic /wf/Iot/client/460089721505216会收到success,失败会收到failure ```