正在显示
6 个修改的文件
包含
102 行增加
和
34 行删除
| @@ -3,6 +3,7 @@ package com.zhonglai.luhui.device.protocol.factory.service.impl; | @@ -3,6 +3,7 @@ package com.zhonglai.luhui.device.protocol.factory.service.impl; | ||
| 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.ruoyi.common.utils.StringUtils; | 5 | import com.ruoyi.common.utils.StringUtils; |
| 6 | +import com.zhonglai.luhui.device.analysis.comm.config.SysParameter; | ||
| 6 | import com.zhonglai.luhui.device.analysis.comm.dao.BaseDao; | 7 | import com.zhonglai.luhui.device.analysis.comm.dao.BaseDao; |
| 7 | import com.zhonglai.luhui.device.analysis.comm.dto.DeviceSensorData; | 8 | import com.zhonglai.luhui.device.analysis.comm.dto.DeviceSensorData; |
| 8 | import com.zhonglai.luhui.device.analysis.comm.dto.LogDeviceOperation; | 9 | import com.zhonglai.luhui.device.analysis.comm.dto.LogDeviceOperation; |
| @@ -121,6 +122,7 @@ public class DefaultDbService { | @@ -121,6 +122,7 @@ public class DefaultDbService { | ||
| 121 | IotDevice iotDevice = new IotDevice(); | 122 | IotDevice iotDevice = new IotDevice(); |
| 122 | iotDevice.setClient_id(parserDeviceHostDto.getId()); | 123 | iotDevice.setClient_id(parserDeviceHostDto.getId()); |
| 123 | iotDevice.setData_update_time(parserDeviceHostDto.getUpdateTime()); | 124 | iotDevice.setData_update_time(parserDeviceHostDto.getUpdateTime()); |
| 125 | + iotDevice.setListen_service_ip(SysParameter.service_ip); | ||
| 124 | if(parserDeviceHostDto.is_summary_up()) | 126 | if(parserDeviceHostDto.is_summary_up()) |
| 125 | { | 127 | { |
| 126 | if(null != parserDeviceHostDto.getSummary() && parserDeviceHostDto.getSummary().size() != 0) | 128 | if(null != parserDeviceHostDto.getSummary() && parserDeviceHostDto.getSummary().size() != 0) |
| @@ -11,6 +11,9 @@ import com.zhonglai.luhui.device.protocol.factory.analysis.ProtocolParserFactory | @@ -11,6 +11,9 @@ import com.zhonglai.luhui.device.protocol.factory.analysis.ProtocolParserFactory | ||
| 11 | import com.zhonglai.luhui.device.protocol.factory.dto.ParserDeviceHostDto; | 11 | import com.zhonglai.luhui.device.protocol.factory.dto.ParserDeviceHostDto; |
| 12 | import com.zhonglai.luhui.device.protocol.factory.dto.ParserDeviceInfoDto; | 12 | import com.zhonglai.luhui.device.protocol.factory.dto.ParserDeviceInfoDto; |
| 13 | import com.zhonglai.luhui.device.protocol.factory.dto.ProtocolPurificationModel; | 13 | import com.zhonglai.luhui.device.protocol.factory.dto.ProtocolPurificationModel; |
| 14 | +import com.zhonglai.luhui.device.protocol.xinjie.analysis.topic.PubData; | ||
| 15 | +import com.zhonglai.luhui.device.protocol.xinjie.analysis.topic.WriteData; | ||
| 16 | +import com.zhonglai.luhui.device.protocol.xinjie.analysis.topic.WriteReply; | ||
| 14 | import com.zhonglai.luhui.device.protocol.xinjie.dto.Variant; | 17 | import com.zhonglai.luhui.device.protocol.xinjie.dto.Variant; |
| 15 | import com.zhonglai.luhui.device.protocol.xinjie.dto.XinJieDto; | 18 | import com.zhonglai.luhui.device.protocol.xinjie.dto.XinJieDto; |
| 16 | import org.springframework.stereotype.Service; | 19 | import org.springframework.stereotype.Service; |
| @@ -20,52 +23,29 @@ import java.util.List; | @@ -20,52 +23,29 @@ import java.util.List; | ||
| 20 | 23 | ||
| 21 | @Service | 24 | @Service |
| 22 | public class ProtocolParserServiceImpl implements ProtocolParserFactory<byte[]> { | 25 | public class ProtocolParserServiceImpl implements ProtocolParserFactory<byte[]> { |
| 23 | - private static final String topicModel = "/{{roleid}}/{{username}}/{{clientid}}/{{payloadtype}}/{{imei}}/{{topicType}}"; | 26 | + private static final String topicModel = "/{{roleid}}/{{username}}/{{password}}/{{payloadtype}}/{{clientid}}/{{topicType}}"; |
| 24 | 27 | ||
| 25 | @Override | 28 | @Override |
| 26 | public Topic analysisTopic(String topicStr) { | 29 | public Topic analysisTopic(String topicStr) { |
| 27 | // /13/jiulin/476210165B365166812345678Userdata/Json/476210165B365166812345678/pub_data | 30 | // /13/jiulin/476210165B365166812345678Userdata/Json/476210165B365166812345678/pub_data |
| 28 | Topic topic = TopicUtil.initTopicFromModelStr(topicStr,topicModel); | 31 | Topic topic = TopicUtil.initTopicFromModelStr(topicStr,topicModel); |
| 32 | + topic.setClientid(topic.getClientid().replace("12345678","")); | ||
| 29 | return topic; | 33 | return topic; |
| 30 | } | 34 | } |
| 31 | 35 | ||
| 32 | @Override | 36 | @Override |
| 33 | public JsonObject analysisPayload(Topic topic, byte[] payload) { | 37 | public JsonObject analysisPayload(Topic topic, byte[] payload) { |
| 34 | - String data = new String(payload); | ||
| 35 | - XinJieDto xinJieDto = GsonConstructor.get().fromJson(data, XinJieDto.class); | ||
| 36 | - if(null != xinJieDto.getVariant() && xinJieDto.getVariant().size()!=0) | 38 | + switch (topic.getTopicType()) |
| 37 | { | 39 | { |
| 38 | - JsonObject rj = new JsonObject(); | ||
| 39 | - | ||
| 40 | - analysisHost(rj,xinJieDto); | ||
| 41 | - analysisDeviceInfo(rj,xinJieDto); | ||
| 42 | - | ||
| 43 | - return rj; | 40 | + case "pub_data": |
| 41 | + return new PubData().analysisPayload(topic,payload); | ||
| 42 | + case "write_data": | ||
| 43 | + return new WriteData().analysisPayload(topic,payload); | ||
| 44 | + case "write_reply": | ||
| 45 | + return new WriteReply().analysisPayload(topic,payload); | ||
| 46 | + default: | ||
| 47 | + return null; | ||
| 44 | } | 48 | } |
| 45 | - return GsonConstructor.get().fromJson(data, JsonObject.class); | ||
| 46 | - } | ||
| 47 | - | ||
| 48 | - private void analysisHost(JsonObject rj,XinJieDto xinJieDto) | ||
| 49 | - { | ||
| 50 | - Variant variant = xinJieDto.getVariant().get(0); | ||
| 51 | - JsonObject data = new JsonObject(); | ||
| 52 | - | ||
| 53 | - JsonObject summary = new JsonObject(); | ||
| 54 | - summary.addProperty("Unix",variant.getUnix()); | ||
| 55 | - summary.addProperty("Version",variant.getVersion()); | ||
| 56 | - data.add("summary",summary); | ||
| 57 | - rj.add("0",data); | ||
| 58 | } | 49 | } |
| 59 | 50 | ||
| 60 | - private void analysisDeviceInfo(JsonObject rj,XinJieDto xinJieDto ) | ||
| 61 | - { | ||
| 62 | - Variant variant = xinJieDto.getVariant().get(0); | ||
| 63 | - | ||
| 64 | - int i =1; | ||
| 65 | - for (String key:variant.getPub_Data().keySet()) | ||
| 66 | - { | ||
| 67 | - rj.add(ByteUtil.changerTwoStr(i+""),variant.getPub_Data().get(key).getAsJsonObject()); | ||
| 68 | - i++; | ||
| 69 | - } | ||
| 70 | - } | ||
| 71 | } | 51 | } |
| 1 | +package com.zhonglai.luhui.device.protocol.xinjie.analysis.topic; | ||
| 2 | + | ||
| 3 | +import com.google.gson.JsonObject; | ||
| 4 | +import com.ruoyi.common.utils.GsonConstructor; | ||
| 5 | +import com.zhonglai.luhui.device.analysis.comm.factory.Topic; | ||
| 6 | +import com.zhonglai.luhui.device.analysis.comm.util.ByteUtil; | ||
| 7 | +import com.zhonglai.luhui.device.protocol.xinjie.analysis.ProtocolTopicParser; | ||
| 8 | +import com.zhonglai.luhui.device.protocol.xinjie.dto.Variant; | ||
| 9 | +import com.zhonglai.luhui.device.protocol.xinjie.dto.XinJieDto; | ||
| 10 | + | ||
| 11 | +public class PubData implements ProtocolTopicParser<byte[]> { | ||
| 12 | + | ||
| 13 | + @Override | ||
| 14 | + public JsonObject analysisPayload(Topic topic, byte[] payload) { | ||
| 15 | + String data = new String(payload); | ||
| 16 | + XinJieDto xinJieDto = GsonConstructor.get().fromJson(data, XinJieDto.class); | ||
| 17 | + if(null != xinJieDto.getVariant() && xinJieDto.getVariant().size()!=0) | ||
| 18 | + { | ||
| 19 | + JsonObject rj = new JsonObject(); | ||
| 20 | + | ||
| 21 | + analysisHost(rj,xinJieDto); | ||
| 22 | + analysisDeviceInfo(rj,xinJieDto); | ||
| 23 | + | ||
| 24 | + return rj; | ||
| 25 | + } | ||
| 26 | + return GsonConstructor.get().fromJson(data, JsonObject.class); | ||
| 27 | + } | ||
| 28 | + | ||
| 29 | + private void analysisHost(JsonObject rj,XinJieDto xinJieDto) | ||
| 30 | + { | ||
| 31 | + Variant variant = xinJieDto.getVariant().get(0); | ||
| 32 | + JsonObject data = new JsonObject(); | ||
| 33 | + | ||
| 34 | + JsonObject summary = new JsonObject(); | ||
| 35 | + summary.addProperty("Unix",variant.getUnix()); | ||
| 36 | + summary.addProperty("Version",variant.getVersion()); | ||
| 37 | + data.add("summary",summary); | ||
| 38 | + rj.add("0",data); | ||
| 39 | + } | ||
| 40 | + | ||
| 41 | + private void analysisDeviceInfo(JsonObject rj,XinJieDto xinJieDto ) | ||
| 42 | + { | ||
| 43 | + Variant variant = xinJieDto.getVariant().get(0); | ||
| 44 | + | ||
| 45 | + int i =1; | ||
| 46 | + for (String key:variant.getPub_Data().keySet()) | ||
| 47 | + { | ||
| 48 | + JsonObject jsonObject = variant.getPub_Data().get(key).getAsJsonObject(); | ||
| 49 | + jsonObject.addProperty("系统名称",key); | ||
| 50 | + rj.add(ByteUtil.changerTwoStr(i+""),jsonObject); | ||
| 51 | + i++; | ||
| 52 | + } | ||
| 53 | + } | ||
| 54 | +} |
| 1 | +package com.zhonglai.luhui.device.protocol.xinjie.analysis.topic; | ||
| 2 | + | ||
| 3 | +import com.google.gson.JsonObject; | ||
| 4 | +import com.zhonglai.luhui.device.analysis.comm.factory.Topic; | ||
| 5 | +import com.zhonglai.luhui.device.protocol.xinjie.analysis.ProtocolTopicParser; | ||
| 6 | + | ||
| 7 | +public class WriteData implements ProtocolTopicParser<byte[]> { | ||
| 8 | + @Override | ||
| 9 | + public JsonObject analysisPayload(Topic topic, byte[] payload) { | ||
| 10 | + return null; | ||
| 11 | + } | ||
| 12 | +} |
| 1 | +package com.zhonglai.luhui.device.protocol.xinjie.analysis.topic; | ||
| 2 | + | ||
| 3 | +import com.google.gson.JsonObject; | ||
| 4 | +import com.zhonglai.luhui.device.analysis.comm.factory.Topic; | ||
| 5 | +import com.zhonglai.luhui.device.protocol.xinjie.analysis.ProtocolTopicParser; | ||
| 6 | + | ||
| 7 | +public class WriteReply implements ProtocolTopicParser<byte[]> { | ||
| 8 | + @Override | ||
| 9 | + public JsonObject analysisPayload(Topic topic, byte[] payload) { | ||
| 10 | + return null; | ||
| 11 | + } | ||
| 12 | +} |
-
请 注册 或 登录 后发表评论