From 51af3e4e7c5fb612576b98fd6407f6b65859f374 Mon Sep 17 00:00:00 2001
From: Van333 <van666666@foxmail.com>
Date: 星期三, 16 十一月 2022 15:58:06 +0800
Subject: [PATCH] 区分消息订阅类型,新增上下线监听,修复定时帧缺少CRC32,替换设备在线状态查询方法

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/frame/inner/request/A5LightTimerReqInnerFrame.java |   22 +++++++++++++++-------
 1 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/frame/inner/request/A5LightTimerReqInnerFrame.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/frame/inner/request/A5LightTimerReqInnerFrame.java
index 24b0b51..c821ef3 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/frame/inner/request/A5LightTimerReqInnerFrame.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/frame/inner/request/A5LightTimerReqInnerFrame.java
@@ -18,22 +18,30 @@
  */
 public class A5LightTimerReqInnerFrame implements IRequestInnerFrame {
 
-    private final String payload;
-    private final String functionCode = A5LightDataEnum.LightTimer.getCode();
-    private final String payloadLength;
+    private String payload;
 
     /**
      * @param framePayload 澶氫釜璺伅瀹氭椂鎸囦护锛�
      */
-    public A5LightTimerReqInnerFrame(String framePayload) {
-        String destinationAddress = "FFFF";
-        payload = destinationAddress + framePayload;
-        this.payloadLength = SupplementUtils.suppleZero(Integer.toHexString((payload.length() / 2)).toUpperCase(), 4);
+    public A5LightTimerReqInnerFrame(String framePayload, String lightAddress) {
+        String destinationAddress;
+        if (lightAddress == null || (!lightAddress.equals("0001") && !lightAddress.equals("0002"))) {
+            destinationAddress = "FFFF";
+        } else {
+            destinationAddress = lightAddress;
+        }
+        payload = destinationAddress + framePayload ;
+//        payload = getEncodeFrame();
+
+
     }
 
     @Override
     public String getEncodeFrame() {
+        String functionCode = A5LightDataEnum.LightTimer.getCode();
+        String payloadLength = SupplementUtils.suppleZero(Integer.toHexString((payload.length() / 2)).toUpperCase(), 4);
         String frame = functionCode + payloadLength + payload;
+
         return MQTTConnectTypeEnum.SYNCHRONIZATION.getCode() + frame.toUpperCase() + CRC32Utils.getCRC32(frame.toUpperCase());
     }
 

--
Gitblit v1.9.3