feat:新增mqtt指令反馈的处理功能,这样可以实时的在界面看到下发的效果
parent
f9ac059632
commit
272e8006a7
|
|
@ -19,5 +19,12 @@ public class XRsasnTag {
|
|||
private Long ts ;
|
||||
|
||||
private Float v ;
|
||||
|
||||
|
||||
private String dev;
|
||||
|
||||
private Integer valid;
|
||||
|
||||
private String remark;
|
||||
|
||||
private String sysid;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,10 +19,17 @@ public class XRxasnProtocolMqtt {
|
|||
|
||||
private List<XRsasnDev> devList = new ArrayList<>();
|
||||
private Object devs;
|
||||
|
||||
private Object data;
|
||||
|
||||
private String pKey ;
|
||||
private String sn ;
|
||||
private Long ts ;
|
||||
private String ver ;
|
||||
|
||||
// 下面字段用于接收下发控制 反馈消息
|
||||
|
||||
// type: info,status,history,timing,cmd/set
|
||||
private String type ;
|
||||
private String seq ;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ public class MessageHandler implements Runnable {
|
|||
// 小名智能协议
|
||||
ProtocalFactory.getInstance("ProtocalMing").analysisData(topic, msg, message);
|
||||
}
|
||||
else if( topic.startsWith("/edge") && topic.endsWith("/rtg") ){
|
||||
else if( topic.startsWith("/edge")){
|
||||
// 小名智能协议
|
||||
ProtocalFactory.getInstance("ProtocalXRxasn").analysisData(topic, msg, message);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -41,19 +41,35 @@ public class ProtocalXRxasn implements Iprotocal {
|
|||
List<IotSensorInfoBO> list = new ArrayList<>();
|
||||
|
||||
XRxasnProtocolMqtt xRxasnProtocolMqtt = JSON.parseObject(msg, XRxasnProtocolMqtt.class);
|
||||
List<XRsasnDev> xRsasnDevs = JSON.parseArray(xRxasnProtocolMqtt.getDevs().toString(), XRsasnDev.class);
|
||||
xRsasnDevs.forEach(dev -> {
|
||||
dev.getDev();
|
||||
List<XRsasnTag> xRsasnTags = JSON.parseArray(dev.getD().toString(), XRsasnTag.class);
|
||||
xRsasnTags.forEach(tag -> {
|
||||
IotSensorInfoBO tp = new IotSensorInfoBO();
|
||||
tp.setSensor_device_id(dev.getDev() + "." + tag.getM());
|
||||
// tp.setPort_id(0);
|
||||
tp.setSdata(tag.getV());
|
||||
list.add(tp);
|
||||
// LogUtil4j.debugLogger.debug("get sensor {} from topic {}", dev.getDev() + "." + tag.getM(), topic);
|
||||
if(ObjectUtil.isNotEmpty(xRxasnProtocolMqtt.getType()) && !topic.endsWith("/rtg")){
|
||||
if(topic.endsWith("cmd/set/cack")){
|
||||
XRsasnTag xRsasnTag = JSON.parseObject(xRxasnProtocolMqtt.getData().toString(), XRsasnTag.class);
|
||||
if(xRsasnTag.getValid() == 1 && xRsasnTag.getRemark().equals("success")) {
|
||||
IotSensorInfoBO tp = new IotSensorInfoBO();
|
||||
tp.setSensor_device_id(xRsasnTag.getDev() + "." + xRsasnTag.getM());
|
||||
tp.setSdata(xRsasnTag.getV());
|
||||
list.add(tp);
|
||||
}
|
||||
else return;
|
||||
}
|
||||
else return;
|
||||
} else if (topic.endsWith("/rtg") && ObjectUtil.isEmpty(xRxasnProtocolMqtt.getType())) {
|
||||
List<XRsasnDev> xRsasnDevs = JSON.parseArray(xRxasnProtocolMqtt.getDevs().toString(), XRsasnDev.class);
|
||||
xRsasnDevs.forEach(dev -> {
|
||||
dev.getDev();
|
||||
List<XRsasnTag> xRsasnTags = JSON.parseArray(dev.getD().toString(), XRsasnTag.class);
|
||||
xRsasnTags.forEach(tag -> {
|
||||
IotSensorInfoBO tp = new IotSensorInfoBO();
|
||||
tp.setSensor_device_id(dev.getDev() + "." + tag.getM());
|
||||
tp.setSdata(tag.getV());
|
||||
list.add(tp);
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
else {
|
||||
LogUtil4j.LOGGER.info("msg from topic {} without sub", topic);
|
||||
return;
|
||||
}
|
||||
String deviceCode = xRxasnProtocolMqtt.getSn();
|
||||
|
||||
IotNodeInfoBO nodeInfo = ProCacheUtil.getCache(CacheName.NODEINFO_DEVICECODE, deviceCode );
|
||||
|
|
@ -87,7 +103,7 @@ public class ProtocalXRxasn implements Iprotocal {
|
|||
|
||||
// 下发通知消息
|
||||
IotNodeInfoBO iotNodeInfo = ProCacheUtil.getCache(CacheName.NODEINFO_DEVICECODE, deviceCode);
|
||||
LogUtil4j.debugLogger.debug("sending update to web for {}", ObjectUtil.isNotEmpty(iotNodeInfo) ? iotNodeInfo.getScene_id() : null);
|
||||
// LogUtil4j.debugLogger.debug("sending update to web for {}", ObjectUtil.isNotEmpty(iotNodeInfo) ? iotNodeInfo.getScene_id() : null);
|
||||
// websocket 发送消息
|
||||
if(ObjectUtil.isNotEmpty(iotNodeInfo)){
|
||||
String scene_id = ProCacheUtil.getCache(CacheName.SCENE_IPDATE_FLAG , "scene_" + iotNodeInfo.getScene_id() );
|
||||
|
|
|
|||
|
|
@ -1,5 +1,3 @@
|
|||
|
||||
|
||||
mail.host=smtp.yeah.net
|
||||
mail.port=465
|
||||
mail.username=
|
||||
|
|
|
|||
|
|
@ -1,2 +1 @@
|
|||
|
||||
baidu.map.api.key=f84xfiBjzaCFapazazcgWo6QTIGX0n9e
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
mqtt.clientId=aaaa
|
||||
mqtt.clientId=seg_test
|
||||
mqtt.username=yinzy
|
||||
mqtt.password=yzy123456
|
||||
mqtt.cleanSession=false
|
||||
|
|
@ -7,4 +7,4 @@ mqtt.keepalive=3600
|
|||
mqtt.timeout=30
|
||||
mqtt.serverURI1=tcp://192.168.3.5:35883
|
||||
mqtt.simpleURI=wss://iotadmin.segsvip.com/mqtt
|
||||
mqtt.service.topic=/dev/coo/+,/edge/+/+/rtg,/sys/update/+
|
||||
mqtt.service.topic=/dev/coo/+,/edge/#,/sys/update/+
|
||||
Loading…
Reference in New Issue