diff --git a/lidee-admin/src/main/resources/application-dev.yml b/lidee-admin/src/main/resources/application-dev.yml index fd25c43..a2e22a5 100644 --- a/lidee-admin/src/main/resources/application-dev.yml +++ b/lidee-admin/src/main/resources/application-dev.yml @@ -111,9 +111,12 @@ spring: max-wait: -1ms # 连接池最大阻塞等待时间(使用负值表示没有限制) # mqtt 配置 mqtt: - username: lidee # 账号 - password: lidee # 密码 - host-url: tcp://localhost:1883 # mqtt连接tcp地址 + username: iotweib # 账号 + password: gryy@8888 # 密码 + host-url: tcp://192.168.1.252:1883 # mqtt连接tcp地址 +# username: admin # 账号 +# password: lidee666 # 密码 +# host-url: tcp://127.0.0.1:1883 # mqtt连接tcp地址 client-id: ${random.int} # 客户端Id,不能相同,采用随机数 ${random.value} default-topic: test # 默认主题 timeout: 30 # 超时时间 diff --git a/lidee-admin/src/main/resources/application-prod.yml b/lidee-admin/src/main/resources/application-prod.yml index 755928f..3f99941 100644 --- a/lidee-admin/src/main/resources/application-prod.yml +++ b/lidee-admin/src/main/resources/application-prod.yml @@ -111,9 +111,9 @@ spring: max-wait: -1ms # 连接池最大阻塞等待时间(使用负值表示没有限制) # mqtt 配置 mqtt: - username: lidee # 账号 - password: lidee # 密码 - host-url: tcp://localhost:1883 # mqtt连接tcp地址 + username: iotweb243 # 账号 + password: gryy@8888 # 密码 + host-url: tcp://192.168.1.252:1883 # mqtt连接tcp地址 client-id: ${random.int} # 客户端Id,不能相同,采用随机数 ${random.value} default-topic: test # 默认主题 timeout: 30 # 超时时间 diff --git a/lidee-admin/src/main/resources/application.yml b/lidee-admin/src/main/resources/application.yml index fc26550..43f76cd 100644 --- a/lidee-admin/src/main/resources/application.yml +++ b/lidee-admin/src/main/resources/application.yml @@ -5,8 +5,8 @@ lidee: copyrightYear: 2023 # 版权年份 demoEnabled: true # 实例演示开关 # 文件路径,以uploadPath结尾 示例( Windows配置 D:/uploadPath,Linux配置 /uploadPath) - profile: D:/uploadPath -# profile: /opt/uploadPath +# profile: D:/uploadPath + profile: /opt/uploadPath addressEnabled: true # 获取ip地址开关 captchaType: math # 验证码类型 math 数组计算 char 字符验证 @@ -23,10 +23,12 @@ server: min-spare: 100 # Tomcat启动初始化的线程数,默认值10 # 基于netty的服务器 broker: - enabled: true # mqttBroker类型选择, true: 基于netty的mqttBroker和webSocket false: emq的mqttBroker + enabled: false # mqttBroker类型选择, true: 基于netty的mqttBroker和webSocket false: emq的mqttBroker port: 1883 websocket-port: 8083 websocket-path: /mqtt +# user: ceshi +# password: lidee@123 keep-alive: 70 # 默认的全部客户端心跳上传时间 #TCP服务端口 tcp: diff --git a/lidee-common/src/main/java/iot/lidee/common/constant/LideeConstant.java b/lidee-common/src/main/java/iot/lidee/common/constant/LideeConstant.java index 7e1f6a5..305dfe2 100644 --- a/lidee-common/src/main/java/iot/lidee/common/constant/LideeConstant.java +++ b/lidee-common/src/main/java/iot/lidee/common/constant/LideeConstant.java @@ -281,6 +281,7 @@ public interface LideeConstant { String ModbusRtu = "MODBUS-RTU"; String YinErDa = "YinErDa"; String JsonObject = "JSONOBJECT"; + String GryyJson = "JSONOBJECT-GR"; String JsonArray = "JSON"; String ModbusRtuPak = "MODBUS-RTU-PAK"; String NetOTA = "OTA-NET"; diff --git a/lidee-protocol/lidee-protocol-collect/src/main/java/iot/lidee/gryyjson/json/GryyJsonProtocolService.java b/lidee-protocol/lidee-protocol-collect/src/main/java/iot/lidee/gryyjson/json/GryyJsonProtocolService.java new file mode 100644 index 0000000..b52a7f4 --- /dev/null +++ b/lidee-protocol/lidee-protocol-collect/src/main/java/iot/lidee/gryyjson/json/GryyJsonProtocolService.java @@ -0,0 +1,144 @@ +package iot.lidee.gryyjson.json; + +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; +import iot.lidee.common.annotation.SysProtocol; +import iot.lidee.common.constant.LideeConstant; +import iot.lidee.common.core.mq.DeviceReport; +import iot.lidee.common.core.mq.MQSendMessageBo; +import iot.lidee.common.core.mq.message.DeviceData; +import iot.lidee.common.core.mq.message.FunctionCallBackBo; +import iot.lidee.common.core.thingsModel.ThingsModelSimpleItem; +import iot.lidee.common.exception.ServiceException; +import iot.lidee.common.utils.DateUtils; +import iot.lidee.iot.model.ThingsModels.ValueItem; +import iot.lidee.protocol.base.protocol.IProtocol; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.nio.charset.StandardCharsets; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author gsb + * @date 2022/10/10 16:55 + */ +@Slf4j +@Component +@SysProtocol(name = "国瑞药业JsonObject解析协议", protocolCode = LideeConstant.PROTOCOL.GryyJson, description = "系统内置国瑞药业JsonObject解析协议") +public class GryyJsonProtocolService implements IProtocol { + + /** + * 上报数据格式
+ * [
+ * {
+ * "id": "switch",
+ * "value": "0"
+ * },
+ * {
+ * "id": "gear",
+ * "value": "0"
+ * }
+ * ]
+ */
+ @Override
+ public DeviceReport decode(DeviceData deviceData, String clientId) {
+ try {
+ DeviceReport reportMessage = new DeviceReport();
+ // bytep[] 转String
+
+ //获取国瑞设备名称--此协议只有国瑞药业使用
+ String[] devArr= clientId.split("-");
+
+ String data = new String(deviceData.getData(), StandardCharsets.UTF_8);
+ JSONObject valueJson = JSON.parseObject(data).getJSONObject("values");
+ data=valueJson.getString(devArr[1]);
+ // 移除第一个和最后一个字符
+ data=JsonObjectToArray(data).toString();
+ List