作者 钟来

调试微滤机

正在显示 45 个修改的文件 包含 193 行增加75 行删除
@@ -21,7 +21,10 @@ public class ClienConnectionImpl implements ClienConnection { @@ -21,7 +21,10 @@ public class ClienConnectionImpl implements ClienConnection {
21 21
22 @Override 22 @Override
23 public void reply(ApiClientRePlyDto apiClientRePlyDto) { 23 public void reply(ApiClientRePlyDto apiClientRePlyDto) {
24 - apiClientRePlyDto.setReplyMessage(message); 24 + if (null != apiClientRePlyDto)
  25 + {
  26 + apiClientRePlyDto.setReplyMessage(message);
  27 + }
25 this.notify(); 28 this.notify();
26 } 29 }
27 30
1 package com.zhonglai.luhui.device.service; 1 package com.zhonglai.luhui.device.service;
2 2
  3 +import cn.hutool.http.HttpUtil;
3 import com.alibaba.fastjson.JSONObject; 4 import com.alibaba.fastjson.JSONObject;
4 import com.ruoyi.common.core.domain.Message; 5 import com.ruoyi.common.core.domain.Message;
5 import com.ruoyi.common.core.domain.MessageCode; 6 import com.ruoyi.common.core.domain.MessageCode;
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project xmlns="http://maven.apache.org/POM/4.0.0"
  3 + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5 + <modelVersion>4.0.0</modelVersion>
  6 + <parent>
  7 + <groupId>com.zhonglai.luhui</groupId>
  8 + <artifactId>lh-device-protocol-agreement</artifactId>
  9 + <version>1.0-SNAPSHOT</version>
  10 + </parent>
  11 +
  12 + <artifactId>lh-device-defaul</artifactId>
  13 +
  14 + <properties>
  15 + <maven.compiler.source>8</maven.compiler.source>
  16 + <maven.compiler.target>8</maven.compiler.target>
  17 + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  18 + </properties>
  19 +
  20 + <dependencies>
  21 + <dependency>
  22 + <groupId>com.zhonglai.luhui</groupId>
  23 + <artifactId>lh-device-protocol-factory</artifactId>
  24 + </dependency>
  25 + </dependencies>
  26 +</project>
1 -package com.zhonglai.luhui.device.protocol.factory.analysis; 1 +package com.zhonglai.luhui.device.protocol.defaul.analysis;
2 2
3 -import com.google.gson.JsonObject;  
4 -import com.ruoyi.common.utils.GsonConstructor;  
5 import com.zhonglai.luhui.device.analysis.comm.factory.Topic; 3 import com.zhonglai.luhui.device.analysis.comm.factory.Topic;
6 import com.zhonglai.luhui.device.analysis.util.TopicUtil; 4 import com.zhonglai.luhui.device.analysis.util.TopicUtil;
7 -import com.zhonglai.luhui.device.protocol.factory.analysis.topic.*; 5 +import com.zhonglai.luhui.device.protocol.defaul.analysis.topic.*;
  6 +import com.zhonglai.luhui.device.protocol.factory.analysis.ProtocolParserFactory;
  7 +import com.zhonglai.luhui.device.protocol.factory.analysis.topic.Online;
8 import com.zhonglai.luhui.device.protocol.factory.dto.AnalysisResult; 8 import com.zhonglai.luhui.device.protocol.factory.dto.AnalysisResult;
9 -import org.springframework.stereotype.Service;  
10 9
11 -public class DefaultProtocolParserFactoryImpl implements ProtocolParserFactory{ 10 +public class DefaultProtocolParserFactoryImpl implements ProtocolParserFactory {
12 private static final String topicModel = "/{{roleid}}/{{username}}/{{clientid}}/{{payloadtype}}/{{topicType}}"; 11 private static final String topicModel = "/{{roleid}}/{{username}}/{{clientid}}/{{payloadtype}}/{{topicType}}";
13 12
14 @Override 13 @Override
1 -package com.zhonglai.luhui.device.protocol.factory.analysis.topic; 1 +package com.zhonglai.luhui.device.protocol.defaul.analysis.topic;
2 2
3 import com.google.gson.JsonObject; 3 import com.google.gson.JsonObject;
4 import com.ruoyi.common.utils.GsonConstructor; 4 import com.ruoyi.common.utils.GsonConstructor;
1 -package com.zhonglai.luhui.device.protocol.factory.analysis.topic; 1 +package com.zhonglai.luhui.device.protocol.defaul.analysis.topic;
2 2
3 import com.google.gson.JsonObject; 3 import com.google.gson.JsonObject;
4 import com.ruoyi.common.utils.GsonConstructor; 4 import com.ruoyi.common.utils.GsonConstructor;
1 -package com.zhonglai.luhui.device.protocol.factory.analysis.topic; 1 +package com.zhonglai.luhui.device.protocol.defaul.analysis.topic;
2 2
3 import com.google.gson.JsonObject; 3 import com.google.gson.JsonObject;
4 import com.ruoyi.common.utils.GsonConstructor; 4 import com.ruoyi.common.utils.GsonConstructor;
  1 +package com.zhonglai.luhui.device.protocol.defaul.analysis.topic;
  2 +
  3 +import com.google.gson.JsonObject;
  4 +import com.ruoyi.common.utils.GsonConstructor;
  5 +import com.zhonglai.luhui.device.analysis.comm.dto.ApiClientRePlyDto;
  6 +import com.zhonglai.luhui.device.analysis.dto.Message;
  7 +import com.zhonglai.luhui.device.analysis.dto.MessageCode;
  8 +import com.zhonglai.luhui.device.protocol.factory.dto.AnalysisResult;
  9 +
  10 +public class PutReq {
  11 + public AnalysisResult analysisPayload(byte[] payload)
  12 + {
  13 + return analysisPayload(new String(payload));
  14 + }
  15 +
  16 + public AnalysisResult analysisPayload(String payload)
  17 + {
  18 + JsonObject jsonObject = GsonConstructor.get().fromJson(payload, JsonObject.class);
  19 + return new AnalysisResult(false, true, jsonObject, message -> {
  20 + if(jsonObject.has("code") && "1".equals(jsonObject.get("code").getAsString()))
  21 + {
  22 + message.setCode(MessageCode.DEFAULT_SUCCESS_CODE);
  23 + message.setMessage("操作成功");
  24 + }
  25 + });
  26 + }
  27 +}
1 -package com.zhonglai.luhui.device.protocol.factory.analysis.topic; 1 +package com.zhonglai.luhui.device.protocol.defaul.analysis.topic;
2 2
3 import com.google.gson.JsonObject; 3 import com.google.gson.JsonObject;
4 import com.ruoyi.common.utils.GsonConstructor; 4 import com.ruoyi.common.utils.GsonConstructor;
  1 +package com.zhonglai.luhui.device.protocol.defaul.control;
  2 +
  3 +import com.google.gson.JsonElement;
  4 +import com.google.gson.JsonObject;
  5 +import com.google.gson.reflect.TypeToken;
  6 +import com.ruoyi.common.utils.DateUtils;
  7 +import com.ruoyi.common.utils.GsonConstructor;
  8 +import com.zhonglai.luhui.device.analysis.comm.factory.Topic;
  9 +import com.zhonglai.luhui.device.domain.IotProduct;
  10 +import com.zhonglai.luhui.device.protocol.factory.config.DeviceCach;
  11 +import com.zhonglai.luhui.device.protocol.factory.control.DeviceCommandServiceFactory;
  12 +import com.zhonglai.luhui.device.protocol.factory.dto.NoticeMessageDto;
  13 +import com.zhonglai.luhui.device.protocol.factory.dto.ParserDeviceHostDto;
  14 +import org.slf4j.Logger;
  15 +import org.slf4j.LoggerFactory;
  16 +
  17 +import java.lang.reflect.Type;
  18 +import java.util.Map;
  19 +
  20 +/**
  21 + * 指令控制监听实现
  22 + */
  23 +public class DeviceCommandListenServiceImpl implements DeviceCommandServiceFactory {
  24 + private static final String topicModel = "/{{roleid}}/{{username}}/{{clientid}}/{{payloadtype}}/{{topicType}}/{{messageid}}";
  25 +
  26 + private static final Logger log = LoggerFactory.getLogger(DeviceCommandListenServiceImpl.class);
  27 + @Override
  28 + public NoticeMessageDto read(String deviceId, JsonObject jsonObject) {
  29 + return null;
  30 + }
  31 +
  32 + @Override
  33 + public NoticeMessageDto write(String deviceId, JsonObject jsonObject) {
  34 + ParserDeviceHostDto parserDeviceHostDto = DeviceCach.getDeviceHost(deviceId);
  35 +
  36 + Topic topic = getWriteTopic(deviceId,parserDeviceHostDto.getIotProduct());
  37 + NoticeMessageDto noticeMessageDto = new NoticeMessageDto();
  38 + noticeMessageDto.setTopic(topic);
  39 + noticeMessageDto.setTopicconfig(topicModel);
  40 +
  41 + noticeMessageDto.setCommd(jsonObject.toString().getBytes());
  42 +
  43 + return noticeMessageDto;
  44 + }
  45 +
  46 + @Override
  47 + public NoticeMessageDto notice(String deviceId, JsonObject jsonObject) {
  48 + return null;
  49 + }
  50 +
  51 + private Topic getWriteTopic(String deviceId, IotProduct iotProduct)
  52 + {
  53 + Topic topic = new Topic();
  54 + topic.setTopicType("PUT");
  55 + topic.setClientid(deviceId);
  56 + topic.setRoleid(iotProduct.getRole_id()+"");
  57 + topic.setUsername(iotProduct.getMqtt_username());
  58 + topic.setPayloadtype("Json");
  59 + topic.setMessageid(DateUtils.getNowTimeMilly()+"");
  60 + return topic;
  61 + }
  62 +}
@@ -5,7 +5,7 @@ @@ -5,7 +5,7 @@
5 <modelVersion>4.0.0</modelVersion> 5 <modelVersion>4.0.0</modelVersion>
6 <parent> 6 <parent>
7 <groupId>com.zhonglai.luhui</groupId> 7 <groupId>com.zhonglai.luhui</groupId>
8 - <artifactId>lh-device-protocol-parser</artifactId> 8 + <artifactId>lh-device-protocol-agreement</artifactId>
9 <version>1.0-SNAPSHOT</version> 9 <version>1.0-SNAPSHOT</version>
10 </parent> 10 </parent>
11 11
@@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5 <parent> 5 <parent>
6 - <artifactId>lh-device-protocol-parser</artifactId> 6 + <artifactId>lh-device-protocol-agreement</artifactId>
7 <groupId>com.zhonglai.luhui</groupId> 7 <groupId>com.zhonglai.luhui</groupId>
8 <version>1.0-SNAPSHOT</version> 8 <version>1.0-SNAPSHOT</version>
9 </parent> 9 </parent>
@@ -12,12 +12,13 @@ import com.zhonglai.luhui.device.analysis.dto.MessageCode; @@ -12,12 +12,13 @@ import com.zhonglai.luhui.device.analysis.dto.MessageCode;
12 import com.zhonglai.luhui.device.analysis.util.TopicUtil; 12 import com.zhonglai.luhui.device.analysis.util.TopicUtil;
13 import com.zhonglai.luhui.device.domain.IotProductPayloadModelNumber; 13 import com.zhonglai.luhui.device.domain.IotProductPayloadModelNumber;
14 import com.zhonglai.luhui.device.protocol.factory.analysis.ProtocolParserFactory; 14 import com.zhonglai.luhui.device.protocol.factory.analysis.ProtocolParserFactory;
15 -import com.zhonglai.luhui.device.protocol.factory.analysis.topic.*; 15 +import com.zhonglai.luhui.device.protocol.factory.analysis.topic.Online;
16 import com.zhonglai.luhui.device.protocol.factory.config.DeviceCach; 16 import com.zhonglai.luhui.device.protocol.factory.config.DeviceCach;
17 import com.zhonglai.luhui.device.protocol.factory.config.ProductPayloadModelNumberCach; 17 import com.zhonglai.luhui.device.protocol.factory.config.ProductPayloadModelNumberCach;
18 import com.zhonglai.luhui.device.protocol.factory.control.DeviceCommandListenService; 18 import com.zhonglai.luhui.device.protocol.factory.control.DeviceCommandListenService;
19 import com.zhonglai.luhui.device.protocol.factory.dto.AnalysisResult; 19 import com.zhonglai.luhui.device.protocol.factory.dto.AnalysisResult;
20 import com.zhonglai.luhui.device.protocol.factory.dto.ParserDeviceHostDto; 20 import com.zhonglai.luhui.device.protocol.factory.dto.ParserDeviceHostDto;
  21 +import com.zhonglai.luhui.device.protocol.plc004.analysis.topic.AddPost;
21 22
22 23
23 public class PLC004ProtocolParserFactoryImpl implements ProtocolParserFactory { 24 public class PLC004ProtocolParserFactoryImpl implements ProtocolParserFactory {
1 -package com.zhonglai.luhui.device.protocol.factory.analysis.topic; 1 +package com.zhonglai.luhui.device.protocol.plc004.analysis.topic;
2 2
3 import com.google.gson.JsonObject; 3 import com.google.gson.JsonObject;
4 import com.ruoyi.common.utils.GsonConstructor; 4 import com.ruoyi.common.utils.GsonConstructor;
5 import com.zhonglai.luhui.device.protocol.factory.dto.AnalysisResult; 5 import com.zhonglai.luhui.device.protocol.factory.dto.AnalysisResult;
6 6
7 -public class PutReq {  
8 - public AnalysisResult analysisPayload(byte[] payload) 7 +public class AddPost {
  8 + public AnalysisResult analysisPayload( byte[] payload)
9 { 9 {
10 return analysisPayload(new String(payload)); 10 return analysisPayload(new String(payload));
11 } 11 }
@@ -13,6 +13,6 @@ public class PutReq { @@ -13,6 +13,6 @@ public class PutReq {
13 public AnalysisResult analysisPayload(String payload) 13 public AnalysisResult analysisPayload(String payload)
14 { 14 {
15 JsonObject jsonObject = GsonConstructor.get().fromJson(payload, JsonObject.class); 15 JsonObject jsonObject = GsonConstructor.get().fromJson(payload, JsonObject.class);
16 - return new AnalysisResult(false,true,jsonObject); 16 + return new AnalysisResult(false,false,jsonObject);
17 } 17 }
18 } 18 }
@@ -5,7 +5,7 @@ @@ -5,7 +5,7 @@
5 <modelVersion>4.0.0</modelVersion> 5 <modelVersion>4.0.0</modelVersion>
6 <parent> 6 <parent>
7 <groupId>com.zhonglai.luhui</groupId> 7 <groupId>com.zhonglai.luhui</groupId>
8 - <artifactId>lh-device-protocol-parser</artifactId> 8 + <artifactId>lh-device-protocol-agreement</artifactId>
9 <version>1.0-SNAPSHOT</version> 9 <version>1.0-SNAPSHOT</version>
10 </parent> 10 </parent>
11 11
1 package com.zhonglai.luhui.device.protocol.uyu.analysis; 1 package com.zhonglai.luhui.device.protocol.uyu.analysis;
2 2
3 -import com.google.gson.JsonObject;  
4 -import com.ruoyi.common.utils.ByteUtil;  
5 import com.zhonglai.luhui.device.analysis.comm.factory.Topic; 3 import com.zhonglai.luhui.device.analysis.comm.factory.Topic;
6 import com.zhonglai.luhui.device.analysis.util.TopicUtil; 4 import com.zhonglai.luhui.device.analysis.util.TopicUtil;
7 import com.zhonglai.luhui.device.protocol.factory.analysis.ProtocolParserFactory; 5 import com.zhonglai.luhui.device.protocol.factory.analysis.ProtocolParserFactory;
8 import com.zhonglai.luhui.device.protocol.factory.analysis.topic.Online; 6 import com.zhonglai.luhui.device.protocol.factory.analysis.topic.Online;
9 -import com.zhonglai.luhui.device.protocol.factory.control.DeviceCommandListenService;  
10 import com.zhonglai.luhui.device.protocol.factory.dto.AnalysisResult; 7 import com.zhonglai.luhui.device.protocol.factory.dto.AnalysisResult;
11 -import com.zhonglai.luhui.device.protocol.uyu.analysis.topic.CkaDtSndR;  
12 import com.zhonglai.luhui.device.protocol.uyu.analysis.topic.CkaDtSndS; 8 import com.zhonglai.luhui.device.protocol.uyu.analysis.topic.CkaDtSndS;
13 9
14 public class UyuProtocolParserFactoryImpl implements ProtocolParserFactory { 10 public class UyuProtocolParserFactoryImpl implements ProtocolParserFactory {
@@ -5,7 +5,7 @@ @@ -5,7 +5,7 @@
5 <modelVersion>4.0.0</modelVersion> 5 <modelVersion>4.0.0</modelVersion>
6 <parent> 6 <parent>
7 <groupId>com.zhonglai.luhui</groupId> 7 <groupId>com.zhonglai.luhui</groupId>
8 - <artifactId>lh-device-protocol-parser</artifactId> 8 + <artifactId>lh-device-protocol-agreement</artifactId>
9 <version>1.0-SNAPSHOT</version> 9 <version>1.0-SNAPSHOT</version>
10 </parent> 10 </parent>
11 11
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project xmlns="http://maven.apache.org/POM/4.0.0"
  3 + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5 + <modelVersion>4.0.0</modelVersion>
  6 + <parent>
  7 + <groupId>com.zhonglai.luhui</groupId>
  8 + <artifactId>lh-device-protocol-parser</artifactId>
  9 + <version>1.0-SNAPSHOT</version>
  10 + </parent>
  11 +
  12 + <artifactId>lh-device-protocol-agreement</artifactId>
  13 +
  14 + <properties>
  15 + <maven.compiler.source>8</maven.compiler.source>
  16 + <maven.compiler.target>8</maven.compiler.target>
  17 + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  18 + </properties>
  19 + <packaging>pom</packaging>
  20 + <modules>
  21 + <module>lh-device-xinjie</module>
  22 + <module>lh-device-uyu</module>
  23 + <module>lh-device-plc004</module>
  24 + <module>lh-device-modbus</module>
  25 + <module>lh-device-defaul</module>
  26 + </modules>
  27 +</project>
1 package com.zhonglai.luhui.device.protocol.factory; 1 package com.zhonglai.luhui.device.protocol.factory;
2 2
3 -import com.google.gson.JsonObject;  
4 import com.ruoyi.common.utils.GsonConstructor; 3 import com.ruoyi.common.utils.GsonConstructor;
5 import com.ruoyi.common.utils.StringUtils; 4 import com.ruoyi.common.utils.StringUtils;
6 -import com.ruoyi.common.utils.spring.SpringUtils; 5 +import com.zhonglai.luhui.device.analysis.comm.dto.MyException;
7 import com.zhonglai.luhui.device.analysis.comm.factory.Topic; 6 import com.zhonglai.luhui.device.analysis.comm.factory.Topic;
8 import com.zhonglai.luhui.device.analysis.util.TopicUtil; 7 import com.zhonglai.luhui.device.analysis.util.TopicUtil;
9 import com.zhonglai.luhui.device.domain.IotProduct; 8 import com.zhonglai.luhui.device.domain.IotProduct;
10 -import com.zhonglai.luhui.device.protocol.factory.analysis.DefaultProtocolParserFactoryImpl;  
11 import com.zhonglai.luhui.device.protocol.factory.analysis.ProtocolParserFactory; 9 import com.zhonglai.luhui.device.protocol.factory.analysis.ProtocolParserFactory;
12 import com.zhonglai.luhui.device.protocol.factory.comm.DataLogType; 10 import com.zhonglai.luhui.device.protocol.factory.comm.DataLogType;
13 import com.zhonglai.luhui.device.protocol.factory.comm.DeviceDataLog; 11 import com.zhonglai.luhui.device.protocol.factory.comm.DeviceDataLog;
@@ -87,16 +85,15 @@ public class ProtocolParserAndPurificationFactory<T> { @@ -87,16 +85,15 @@ public class ProtocolParserAndPurificationFactory<T> {
87 * @throws InstantiationException 85 * @throws InstantiationException
88 * @throws IllegalAccessException 86 * @throws IllegalAccessException
89 */ 87 */
90 - private ProtocolParserFactory getProtocolParserFactory(String analysis_clas) throws InstantiationException, IllegalAccessException { 88 + private ProtocolParserFactory getProtocolParserFactory(String analysis_clas) {
91 if(StringUtils.isEmpty(analysis_clas)) 89 if(StringUtils.isEmpty(analysis_clas))
92 { 90 {
93 - return new DefaultProtocolParserFactoryImpl(); 91 + throw new MyException("解析服务为空:"+analysis_clas);
94 } 92 }
95 ProtocolParserFactory protocolParserFactory = PluginsClassLoader.getJarClass(ProtocolParserFactory.class,analysis_clas); 93 ProtocolParserFactory protocolParserFactory = PluginsClassLoader.getJarClass(ProtocolParserFactory.class,analysis_clas);
96 if(null == protocolParserFactory) 94 if(null == protocolParserFactory)
97 { 95 {
98 - System.out.println("没有找到解析服务使用默认的");  
99 - protocolParserFactory = new DefaultProtocolParserFactoryImpl(); 96 + throw new MyException("没有找到解析服务:"+analysis_clas);
100 } 97 }
101 return protocolParserFactory; 98 return protocolParserFactory;
102 } 99 }
@@ -112,26 +112,28 @@ public class DeviceCommandListenService implements RocketMQReplyListener<Message @@ -112,26 +112,28 @@ public class DeviceCommandListenService implements RocketMQReplyListener<Message
112 DeviceCommandServiceFactory deviceCommandServiceFactory = PluginsClassLoader.getJarClass(DeviceCommandServiceFactory.class,controlCls); 112 DeviceCommandServiceFactory deviceCommandServiceFactory = PluginsClassLoader.getJarClass(DeviceCommandServiceFactory.class,controlCls);
113 if(null != deviceCommandServiceFactory) 113 if(null != deviceCommandServiceFactory)
114 { 114 {
  115 + IotThingsModelService iotThingsModelService = SpringUtils.getBean(IotThingsModelService.class);
  116 +
  117 + JsonObject jsonObject = iotThingsModelService.reverseModeData(parserDeviceHostDto.getIotProduct().getId(), deviceCommand.getData());
  118 +
115 switch (deviceCommand.getCommandType()) 119 switch (deviceCommand.getCommandType())
116 { 120 {
117 case read: 121 case read:
118 - NoticeMessageDto noticeMessageDomain = deviceCommandServiceFactory.read(deviceCommand.getDeviceId(), deviceCommand.getData()); 122 + NoticeMessageDto noticeMessageDomain = deviceCommandServiceFactory.read(deviceCommand.getDeviceId(), jsonObject);
119 if(null == noticeMessageDomain) 123 if(null == noticeMessageDomain)
120 { 124 {
121 return new Message(MessageCode.DEFAULT_FAIL_CODE,"该设备不支持读取功能"); 125 return new Message(MessageCode.DEFAULT_FAIL_CODE,"该设备不支持读取功能");
122 } 126 }
123 return sendMessage(noticeMessageDomain); 127 return sendMessage(noticeMessageDomain);
124 case write: 128 case write:
125 - noticeMessageDomain = deviceCommandServiceFactory.write(deviceCommand.getDeviceId(), deviceCommand.getData()); 129 + noticeMessageDomain = deviceCommandServiceFactory.write(deviceCommand.getDeviceId(), jsonObject);
126 if(null == noticeMessageDomain) 130 if(null == noticeMessageDomain)
127 { 131 {
128 return new Message(MessageCode.DEFAULT_FAIL_CODE,"该设备不支持写入功能"); 132 return new Message(MessageCode.DEFAULT_FAIL_CODE,"该设备不支持写入功能");
129 } 133 }
130 return sendMessage(noticeMessageDomain); 134 return sendMessage(noticeMessageDomain);
131 case notice: 135 case notice:
132 - IotThingsModelService iotThingsModelService = SpringUtils.getBean(IotThingsModelService.class);  
133 136
134 - JsonObject jsonObject = iotThingsModelService.reverseModeData(parserDeviceHostDto.getIotProduct().getId(), deviceCommand.getData());  
135 noticeMessageDomain = deviceCommandServiceFactory.notice(deviceCommand.getDeviceId(), jsonObject); 137 noticeMessageDomain = deviceCommandServiceFactory.notice(deviceCommand.getDeviceId(), jsonObject);
136 138
137 if(null == noticeMessageDomain) 139 if(null == noticeMessageDomain)
1 package com.zhonglai.luhui.device.protocol.factory.plugins; 1 package com.zhonglai.luhui.device.protocol.factory.plugins;
2 2
3 -import com.ruoyi.common.utils.StringUtils;  
4 -import com.ruoyi.common.utils.spring.SpringUtils;  
5 -import com.zhonglai.luhui.device.analysis.comm.factory.Topic;  
6 -import com.zhonglai.luhui.device.protocol.factory.analysis.DefaultProtocolParserFactoryImpl;  
7 -import com.zhonglai.luhui.device.protocol.factory.analysis.ProtocolParserFactory;  
8 import com.zhonglai.luhui.device.protocol.factory.config.PluginsClassLoader; 3 import com.zhonglai.luhui.device.protocol.factory.config.PluginsClassLoader;
9 -import com.zhonglai.luhui.device.protocol.factory.purification.DefaultProtocolPurificationFactoryImpl;  
10 -import io.swagger.v3.oas.annotations.servers.Server;  
11 -import org.apache.commons.lang3.ArrayUtils;  
12 -import org.springframework.stereotype.Component;  
13 -import org.springframework.stereotype.Service;  
14 -import org.springframework.util.FileCopyUtils;  
15 -  
16 -import javax.annotation.PostConstruct; 4 +
17 import java.io.File; 5 import java.io.File;
18 -import java.io.FileFilter;  
19 -import java.io.IOException;  
20 -import java.lang.reflect.InvocationTargetException;  
21 -import java.lang.reflect.Method;  
22 -import java.lang.reflect.Modifier;  
23 import java.net.MalformedURLException; 6 import java.net.MalformedURLException;
24 -import java.net.URL;  
25 -import java.net.URLClassLoader;  
26 -import java.util.*;  
27 -import java.util.jar.JarEntry;  
28 -import java.util.jar.JarFile;  
29 7
30 8
31 public class InitPlugins { 9 public class InitPlugins {
@@ -38,7 +16,7 @@ public class InitPlugins { @@ -38,7 +16,7 @@ public class InitPlugins {
38 { 16 {
39 // //加载默认的class 17 // //加载默认的class
40 // //默认协议解析 18 // //默认协议解析
41 -// classMap.put("com.zhonglai.luhui.device.protocol.factory.analysis.DefaultProtocolParserFactoryImpl", DefaultProtocolParserFactoryImpl.class); 19 +// classMap.put("com.zhonglai.luhui.device.protocol.defaul.analysis.DefaultProtocolParserFactoryImpl", DefaultProtocolParserFactoryImpl.class);
42 // //默认协议清洗 20 // //默认协议清洗
43 // classMap.put("com.zhonglai.luhui.device.protocol.factory.purification.DefaultProtocolPurificationFactoryImpl", DefaultProtocolPurificationFactoryImpl.class); 21 // classMap.put("com.zhonglai.luhui.device.protocol.factory.purification.DefaultProtocolPurificationFactoryImpl", DefaultProtocolPurificationFactoryImpl.class);
44 // 22 //
1 package com.zhonglai.luhui.device.protocol.factory.service; 1 package com.zhonglai.luhui.device.protocol.factory.service;
2 2
3 -import com.ruoyi.common.core.domain.Message;  
4 -import com.ruoyi.common.utils.GsonConstructor;  
5 import com.zhonglai.luhui.device.protocol.factory.ProtocolParserAndPurificationFactory; 3 import com.zhonglai.luhui.device.protocol.factory.ProtocolParserAndPurificationFactory;
6 -import com.zhonglai.luhui.device.protocol.factory.control.ControlFactory;  
7 import com.zhonglai.luhui.device.protocol.factory.control.DeviceCommandListenService; 4 import com.zhonglai.luhui.device.protocol.factory.control.DeviceCommandListenService;
8 import com.zhonglai.luhui.device.protocol.factory.dto.ParserDeviceHostDto; 5 import com.zhonglai.luhui.device.protocol.factory.dto.ParserDeviceHostDto;
9 import com.zhonglai.luhui.device.protocol.factory.dto.ProtocolPurificationModel; 6 import com.zhonglai.luhui.device.protocol.factory.dto.ProtocolPurificationModel;
10 -import com.zhonglai.luhui.device.protocol.factory.sync.ProtocolSyncFactory;  
11 -import com.zhonglai.luhui.rocketmq.service.RocketMqService;  
12 import org.slf4j.Logger; 7 import org.slf4j.Logger;
13 import org.slf4j.LoggerFactory; 8 import org.slf4j.LoggerFactory;
14 import org.springframework.beans.factory.annotation.Autowired; 9 import org.springframework.beans.factory.annotation.Autowired;
1 package com.zhonglai.luhui.device.protocol.factory.service; 1 package com.zhonglai.luhui.device.protocol.factory.service;
2 2
3 import com.alibaba.fastjson.JSONObject; 3 import com.alibaba.fastjson.JSONObject;
4 -import com.google.gson.JsonElement;  
5 -import com.google.gson.JsonObject; 4 +import com.google.gson.*;
6 import com.ruoyi.common.utils.GsonConstructor; 5 import com.ruoyi.common.utils.GsonConstructor;
7 import com.ruoyi.common.utils.StringUtils; 6 import com.ruoyi.common.utils.StringUtils;
8 import com.zhonglai.luhui.device.analysis.comm.dto.thingsmodels.ThingsModelBase; 7 import com.zhonglai.luhui.device.analysis.comm.dto.thingsmodels.ThingsModelBase;
@@ -17,6 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired; @@ -17,6 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired;
17 import org.springframework.stereotype.Service; 16 import org.springframework.stereotype.Service;
18 17
19 import javax.annotation.PostConstruct; 18 import javax.annotation.PostConstruct;
  19 +import java.lang.reflect.Type;
20 import java.util.HashMap; 20 import java.util.HashMap;
21 import java.util.List; 21 import java.util.List;
22 import java.util.Map; 22 import java.util.Map;
@@ -163,7 +163,7 @@ public class IotThingsModelService { @@ -163,7 +163,7 @@ public class IotThingsModelService {
163 { 163 {
164 if(null != jsonObject && jsonObject.size() !=0 ) 164 if(null != jsonObject && jsonObject.size() !=0 )
165 { 165 {
166 - JSONObject vjsonObject = GsonConstructor.get().fromJson(jsonObject.toString(),JSONObject.class); 166 + JSONObject vjsonObject = JSONObject.parseObject(jsonObject.toString());
167 vjsonObject = reverseTranslateModeData(product_id,vjsonObject); 167 vjsonObject = reverseTranslateModeData(product_id,vjsonObject);
168 if(null != vjsonObject) 168 if(null != vjsonObject)
169 { 169 {
@@ -281,4 +281,5 @@ public class IotThingsModelService { @@ -281,4 +281,5 @@ public class IotThingsModelService {
281 } 281 }
282 return thingsModel; 282 return thingsModel;
283 } 283 }
  284 +
284 } 285 }
@@ -34,6 +34,12 @@ public class DefaultDbService { @@ -34,6 +34,12 @@ public class DefaultDbService {
34 @Autowired 34 @Autowired
35 private DeviceCommandListenService deviceCommandListenService; 35 private DeviceCommandListenService deviceCommandListenService;
36 36
  37 + @Value("${server.port}")
  38 + private long port;
  39 +
  40 + @Value("${server.servlet.context-path}")
  41 + private String contextPath;
  42 +
37 public List<String> getTopicFromRole() 43 public List<String> getTopicFromRole()
38 { 44 {
39 List<String> rlist= new ArrayList<>(); 45 List<String> rlist= new ArrayList<>();
@@ -143,7 +149,7 @@ public class DefaultDbService { @@ -143,7 +149,7 @@ public class DefaultDbService {
143 IotDevice iotDevice = new IotDevice(); 149 IotDevice iotDevice = new IotDevice();
144 iotDevice.setClient_id(parserDeviceHostDto.getId()); 150 iotDevice.setClient_id(parserDeviceHostDto.getId());
145 iotDevice.setData_update_time(parserDeviceHostDto.getUpdateTime()); 151 iotDevice.setData_update_time(parserDeviceHostDto.getUpdateTime());
146 - iotDevice.setListen_service_ip(SysParameter.service_ip); 152 + iotDevice.setListen_service_ip(SysParameter.service_ip+":"+port+contextPath);
147 iotDevice.setRssi(parserDeviceHostDto.getRssi()); 153 iotDevice.setRssi(parserDeviceHostDto.getRssi());
148 if(parserDeviceHostDto.is_summary_up()) 154 if(parserDeviceHostDto.is_summary_up())
149 { 155 {
@@ -21,12 +21,9 @@ @@ -21,12 +21,9 @@
21 <packaging>pom</packaging> 21 <packaging>pom</packaging>
22 22
23 <modules> 23 <modules>
24 - <module>lh-device-xinjie</module>  
25 <module>lh-device-protocol-factory</module> 24 <module>lh-device-protocol-factory</module>
26 <module>lh-device-http-public</module> 25 <module>lh-device-http-public</module>
27 - <module>lh-device-modbus</module>  
28 - <module>lh-device-uyu</module>  
29 - <module>lh-device-plc004</module> 26 + <module>lh-device-protocol-agreement</module>
30 </modules> 27 </modules>
31 <description> 28 <description>
32 设备协议解析工厂 29 设备协议解析工厂
@@ -29,7 +29,7 @@ mqtt: @@ -29,7 +29,7 @@ mqtt:
29 client: 29 client:
30 #客户端操作时间 30 #客户端操作时间
31 operationTime: 10 31 operationTime: 10
32 - productids: 17 32 + productids: 35
33 33
34 #rocketmq配置信息 34 #rocketmq配置信息
35 rocketmq: 35 rocketmq:
@@ -41,7 +41,7 @@ spring: @@ -41,7 +41,7 @@ spring:
41 41
42 mqtt: 42 mqtt:
43 #链接地址 43 #链接地址
44 - broker: tcp://iot.yu2le.com:1883 44 + broker: tcp://175.24.61.68:1883
45 #唯一标识 45 #唯一标识
46 clientId: ${random.uuid} 46 clientId: ${random.uuid}
47 #公司id 47 #公司id
@@ -68,5 +68,5 @@ sys: @@ -68,5 +68,5 @@ sys:
68 rocketmq: 68 rocketmq:
69 #nameservice服务器地址(多个以英文逗号隔开) 69 #nameservice服务器地址(多个以英文逗号隔开)
70 name-server: 8.129.224.117:9876 70 name-server: 8.129.224.117:9876
71 - send-topic: lh-mqtt-service-deviceCommand-test 71 + send-topic: lh-mqtt-service-deviceCommand-test1
72 send-tag: 1 72 send-tag: 1