From ab51b6b68ff47c82337dddb9beae334bc28007c4 Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期四, 22 八月 2024 17:48:18 +0800 Subject: [PATCH] 硬件消息 --- ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/config/IotDAConfig.java | 4 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/constant/ServiceIdConstant.java | 9 +++ ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/listener/IotMessageListener.java | 25 +++++++- ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/tools/MessageUtil.java | 42 ++++++++++++++ ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/produce/IotMessageProduce.java | 48 +++++++++++++++ 5 files changed, 122 insertions(+), 6 deletions(-) diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/config/IotDAConfig.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/config/IotDAConfig.java index 01a297d..27e04ad 100644 --- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/config/IotDAConfig.java +++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/config/IotDAConfig.java @@ -12,11 +12,11 @@ public class IotDAConfig { /** - * ak配置 + * ak配置 SSD4HKIJPFO68W8QFSNG */ private String ak; /** - * sk配置 + * sk配置 8Obp0fPsyFQ3bQUIaO2kKrS3XVPMOlXZ1nqPgK2k */ private String sk; /** diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/constant/ServiceIdConstant.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/constant/ServiceIdConstant.java new file mode 100644 index 0000000..d4515f1 --- /dev/null +++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/constant/ServiceIdConstant.java @@ -0,0 +1,9 @@ +package com.ruoyi.integration.iotda.constant; + +public class ServiceIdConstant { + /** + * 登录认证应答 + */ + public static final String ONLINE_REPLY = "online_reply"; + +} diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/listener/IotMessageListener.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/listener/IotMessageListener.java index 9b0d3b1..22bb005 100644 --- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/listener/IotMessageListener.java +++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/listener/IotMessageListener.java @@ -1,13 +1,32 @@ package com.ruoyi.integration.iotda.utils.listener; +import com.alibaba.fastjson.JSONObject; +import com.ruoyi.common.core.web.domain.AjaxResult; import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +import java.io.IOException; /** * iotda消息监听 */ @Slf4j -@Component +@RestController public class IotMessageListener { - + + + /** + * 设备消息监听 + * @param jsonObject + * @return + * @throws IOException + */ + @PostMapping(value = "/message") + public AjaxResult<Integer> add(@RequestBody JSONObject jsonObject) throws IOException { + System.err.println(jsonObject); + return AjaxResult.success(); + } + } \ No newline at end of file diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/produce/IotMessageProduce.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/produce/IotMessageProduce.java index 6e386cb..439572a 100644 --- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/produce/IotMessageProduce.java +++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/produce/IotMessageProduce.java @@ -1,6 +1,17 @@ package com.ruoyi.integration.iotda.utils.produce; +import com.huaweicloud.sdk.core.exception.ConnectionException; +import com.huaweicloud.sdk.core.exception.RequestTimeoutException; +import com.huaweicloud.sdk.core.exception.ServiceResponseException; +import com.huaweicloud.sdk.iotda.v5.IoTDAClient; +import com.huaweicloud.sdk.iotda.v5.model.CreateMessageRequest; +import com.huaweicloud.sdk.iotda.v5.model.CreateMessageResponse; +import com.huaweicloud.sdk.iotda.v5.model.DeviceMessageRequest; +import com.ruoyi.common.core.utils.uuid.UUID; +import com.ruoyi.integration.iotda.builder.IotBuilder; +import com.ruoyi.integration.iotda.config.IotDAConfig; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; /** @@ -9,5 +20,40 @@ @Slf4j @Component public class IotMessageProduce { - + + @Autowired + private IotBuilder iotBuilder; + + /** + * 设备消息下发 + * @param deviceId 设备id + * @param name 消息名称 + * @param message 消息内容 + * @return + */ + public String sendMessage(String deviceId,String name,String message){ + CreateMessageRequest request = new CreateMessageRequest(); + request.withDeviceId(deviceId); + DeviceMessageRequest body = new DeviceMessageRequest(); + body.withMessageId(UUID.randomUUID().toString()); + body.withName(name); + body.withMessage(message); + request.withBody(body); + try { + CreateMessageResponse response = iotBuilder.buildIot().createMessage(request); + System.out.println(response.toString()); + } catch (ConnectionException e) { + e.printStackTrace(); + } catch (RequestTimeoutException e) { + e.printStackTrace(); + } catch (ServiceResponseException e) { + e.printStackTrace(); + System.out.println(e.getHttpStatusCode()); + System.out.println(e.getRequestId()); + System.out.println(e.getErrorCode()); + System.out.println(e.getErrorMsg()); + } + return null; + } + } \ No newline at end of file diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/tools/MessageUtil.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/tools/MessageUtil.java new file mode 100644 index 0000000..bd5dc8f --- /dev/null +++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/tools/MessageUtil.java @@ -0,0 +1,42 @@ +package com.ruoyi.integration.iotda.utils.tools; + + +import com.alibaba.fastjson2.JSONObject; +import com.ruoyi.integration.iotda.constant.ServiceIdConstant; + +import java.util.HashMap; +import java.util.Map; + +public class MessageUtil { + + /** + * 登录认证应答 + * @param charging_pile_code 桩编码 + * @param online_result 登录结果(0:成功,1:失败) + * @return + */ + public static String onlineReply(String charging_pile_code,Integer online_result){ + Map<String,Object> map = new HashMap<>(3); + map.put("service_id", ServiceIdConstant.ONLINE_REPLY); + map.put("charging_pile_code",charging_pile_code); + map.put("online_result",online_result); + return JSONObject.toJSONString(map); + } + + /** + * 心跳包应答 + * @param charging_pile_code 桩编码 + * @param charging_gun_code 枪号 + * @param charging_gun_status 心跳应答(0) + * @return + */ + public static String pong(String charging_pile_code,String charging_gun_code,Integer charging_gun_status){ + Map<String,Object> map = new HashMap<>(3); + map.put("service_id", ServiceIdConstant.ONLINE_REPLY); + map.put("charging_pile_code",charging_pile_code); + map.put("charging_gun_code",charging_gun_code); + map.put("charging_gun_status",charging_gun_status); + return JSONObject.toJSONString(map); + } + +} -- Gitblit v1.7.1