From 43fb2ac961d450659a270f1db9053ec545327aa1 Mon Sep 17 00:00:00 2001
From: liuhaonan <konodioda2333@vip.qq.com>
Date: 星期四, 09 十二月 2021 15:37:08 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/frame/inner/response/A5LightHeartbeatRespInnerFrame.java | 123 +++++++++++++++++++++++++++++++++++++++++
1 files changed, 123 insertions(+), 0 deletions(-)
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/frame/inner/response/A5LightHeartbeatRespInnerFrame.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/frame/inner/response/A5LightHeartbeatRespInnerFrame.java
new file mode 100644
index 0000000..e0ffc63
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/frame/inner/response/A5LightHeartbeatRespInnerFrame.java
@@ -0,0 +1,123 @@
+package com.sandu.ximon.admin.manager.iot.frame.inner.response;
+
+import cn.hutool.core.util.StrUtil;
+import com.sandu.ximon.admin.manager.iot.frame.inner.BaseResponseInnerFrame;
+import com.sandu.ximon.admin.manager.iot.frame.inner.IResponseInnerFrame;
+import com.sandu.ximon.admin.manager.iot.rrpc.util.CRC32Utils;
+import lombok.Data;
+import lombok.ToString;
+
+/**
+ * @author chenjiantian
+ * @date 2021/12/6 18:20
+ * A5-81-02
+ * 鐏蹇冭烦鍖� 搴旂瓟
+ */
+@Data
+@ToString(callSuper = true)
+public class A5LightHeartbeatRespInnerFrame extends BaseResponseInnerFrame<A5LightHeartbeatRespInnerFrame> {
+
+ // 鐩爣鍦板潃 2
+ private String destinationAddress;
+ // 蹇冭烦鍖呮暟鎹� 58
+ private HeartBeatDataPackage heartBeatDataPackage;
+
+ private String originFrame;
+
+ @Override
+ public A5LightHeartbeatRespInnerFrame transformFrame(String hex) {
+ // 闀垮害涓嶄竴鑷存椂锛岃繑鍥瀗ull
+ if (StrUtil.isBlank(hex)) {
+ return null;
+ }
+ // MQTT閫氫俊鏂瑰紡(1)
+ setConnectType(hex.substring(0, 2));
+ // 鍔熻兘鐮�(1)
+ setFunctionCode(hex.substring(2, 4));
+ // 璐熻嵎闀垮害(2)
+ setPayloadLength(hex.substring(4, 8));
+
+ setDestinationAddress(hex.substring(8, 12));
+
+ String heartBeatData = hex.substring(12, 108);
+ HeartBeatDataPackage heartBeatDataPackage = new HeartBeatDataPackage();
+ heartBeatDataPackage.transformFrame(heartBeatData);
+ setHeartBeatDataPackage(heartBeatDataPackage);
+
+ setCrc32(hex.substring(108, 116));
+ // 鏍¢獙CRC32
+ String frame = hex.substring(2, hex.length() - 8);
+ this.setValidate(CRC32Utils.validateFrame(frame, getCrc32()));
+ return this;
+ }
+
+ @Data
+ public static class HeartBeatDataPackage implements IResponseInnerFrame<HeartBeatDataPackage> {
+ // 骞碦TC 1
+ private String year;
+ // 鏈圧TC 1
+ private String month;
+ // 鏃TC 1
+ private String day;
+ // 鏃禦TC 1
+ private String hour;
+ // 鍒哛TC 1
+ private String min;
+ // 绉扲TC 1
+ private String sec;
+ // 璁惧娓╁害 2 1瀛楄妭鏁存暟1瀛楄妭灏忔暟
+ private String deviceTemperature;
+ // 浜害鐧惧垎姣� 1
+ private String lightPercent;
+ // 鐢电綉鐢靛帇 2 1瀛楄妭鏁存暟1瀛楄妭灏忔暟
+ private String gridVol;
+ // 鐢电綉鐢垫祦 2 1瀛楄妭鏁存暟1瀛楄妭灏忔暟
+ private String gridCur;
+ // 璧吂 2 1瀛楄妭鏁存暟1瀛楄妭灏忔暟
+ private String hertz;
+ // 鍔熺巼鍥犵礌 2 1瀛楄妭鏁存暟1瀛楄妭灏忔暟
+ private String powerFactor;
+ // 鏈夊姛鍔熺巼 2 1瀛楄妭鏁存暟1瀛楄妭灏忔暟
+ private String activePower;
+ // 鏃犲姛鍔熺巼 2 1瀛楄妭鏁存暟1瀛楄妭灏忔暟
+ private String reactivePower;
+ // 鏈�杩戜竴娆′寒鐏椂闂� 4 绉�
+ private String recentlyLightSec;
+ // 绱浜伅鏃堕棿 4
+ private String totalLightTime;
+ // 鏈�杩戜竴娆$敤鐢电數閲� 4
+ private String recentlyUsingPower;
+ // 绱鐢ㄧ數鐢甸噺 4
+ private String totalUsingPower;
+ // 淇濈暀 11
+ private String retain;
+ // 鍘熷抚
+ private String originFrame;
+
+ @Override
+ public HeartBeatDataPackage transformFrame(String hex) {
+ this.originFrame = hex;
+ this.year = hex.substring(0, 2);
+ this.month = hex.substring(2, 4);
+ this.day = hex.substring(4, 6);
+ this.hour = hex.substring(6, 8);
+ this.min = hex.substring(8, 10);
+ this.sec = hex.substring(10, 12);
+
+ this.deviceTemperature = hex.substring(12, 16);
+ this.lightPercent = hex.substring(16, 18);
+ this.gridVol = hex.substring(18, 22);
+ this.gridCur = hex.substring(22, 26);
+ this.hertz = hex.substring(26, 30);
+ this.powerFactor = hex.substring(30, 34);
+ this.activePower = hex.substring(34, 38);
+ this.reactivePower = hex.substring(38, 42);
+ this.recentlyLightSec = hex.substring(42, 50);
+ this.totalLightTime = hex.substring(50, 58);
+ this.recentlyUsingPower = hex.substring(58, 66);
+ this.totalUsingPower = hex.substring(66, 74);
+ this.retain = hex.substring(74, 96);
+ return this;
+ }
+ }
+}
--
Gitblit v1.9.3