正在显示
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; |
lh-modules/lh-device-protocol-parser/lh-device-protocol-agreement/lh-device-defaul/pom.xml
0 → 100644
| 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 | 设备协议解析工厂 |
| @@ -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 |
-
请 注册 或 登录 后发表评论