From 071a8328823a2861f93ce556a4da3e4119cab1a3 Mon Sep 17 00:00:00 2001
From: panlili2024 <14743743+panlili2024@user.noreply.gitee.com>
Date: 星期四, 19 九月 2024 16:24:28 +0800
Subject: [PATCH] 完成金茂定制功能

---
 HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Parser/DeviceParser.java |  130 ++++++++++++++++++++++---------------------
 1 files changed, 67 insertions(+), 63 deletions(-)

diff --git a/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Parser/DeviceParser.java b/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Parser/DeviceParser.java
index e1aeedc..9e67ea5 100644
--- a/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Parser/DeviceParser.java
+++ b/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Parser/DeviceParser.java
@@ -30,7 +30,7 @@
      */
     public static boolean parse(byte[] addBytes, DevicesData devicesData, String parentRemarks) {
         boolean isExitData = false;
-        int residue = addBytes.length - 22;
+        int residue = addBytes.length - 8;
         int sumCount = residue / 3;//璁板綍鎬诲叡鏈夊灏戠璁惧
         List<AppliancesInfo> appliancesInfoList = new ArrayList<>();
         if (sumCount == 0) {
@@ -38,18 +38,32 @@
             appliancesInfo.setDeviceName(Configuration.UNKNOW_TYPE);
             appliancesInfoList.add(appliancesInfo);
         }
-//        HDLLog.I("sumCount" + sumCount);
+//        00008 2023骞�11鏈�29鏃�16:58:01:800:  0F FE 58 01 A8 F5 48 64 00 0F 18 00 00 3E A0
+//        00009 2023骞�11鏈�29鏃�16:58:01:816:  16 64 00 11 F7 F5 49 FE 58 0F 18 00 03 00 01 2A 60 07 03 01 35 59
+//        00010 2023骞�11鏈�29鏃�16:58:01:832:  19 64 00 11 F7 F5 49 FE 58 0F 18 00 03 00 02 64 80 05 09 01 0E 04 01 FE 35
+//        00011 2023骞�11鏈�29鏃�16:58:01:848:  16 64 00 11 F7 F5 49 FE 58 0F 18 00 03 00 03 64 0A 01 01 04 D5 C7
         int curCount = 0;//寰幆閬嶅巻鎵�鏈夎澶囨鏁�
         while (curCount < sumCount) {
-            int bigType = addBytes[21 + (2 * curCount) + (curCount + 1)] & 0xFF;
-            int littleType = addBytes[21 + (2 * curCount) + (curCount + 2)] & 0xFF;
-            int channelNum = addBytes[21 + (2 * curCount) + (curCount + 3)] & 0xFF;
+
+            int subnetID = addBytes[6] & 0xFF;
+            int deviceID = addBytes[7] & 0xFF;
+            devicesData.setDeviceSubnetID(subnetID);
+            devicesData.setDeviceDeviceID(deviceID);
+
+            int bigType = addBytes[7 + (2 * curCount) + (curCount + 1)] & 0xFF;
+            int littleType = addBytes[7 + (2 * curCount) + (curCount + 2)] & 0xFF;
+            //閫氶亾鎬绘暟
+            int channelNum = addBytes[7 + (2 * curCount) + (curCount + 3)] & 0xFF;
+
             curCount++;
             int curChannelNum = 0;
             while (curChannelNum < channelNum) {
                 curChannelNum++;
                 if (isWantData(bigType, littleType)) {
                     AppliancesInfo appliancesInfo = new AppliancesInfo();
+                    appliancesInfo.setDeviceSubnetID(subnetID);
+                    appliancesInfo.setDeviceDeviceID(deviceID);
+
                     /**鏍规嵁绫诲埆锛岃祴鍊兼搷浣滅爜绛変竴浜涢噸瑕佷俊鎭�*/
                     switch (bigType) {
                         case Configuration.LIGTH_BIG_TYPE:
@@ -86,7 +100,7 @@
                             parseGeothermalData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, "");
                             break;
                         case Configuration.DOOR_MACHINE_BIG_TYPE://闂ㄩ攣
-                            parseDoorMachineData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, "");//闂ㄩ攣鐨勯�氶亾鍙烽渶瑕�-1
+                            parseDoorMachineData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, "");
                             break;
                         default:
 //                            appliancesInfo.setDeviceName(Configuration.UNKNOW_TYPE);
@@ -123,7 +137,7 @@
      * @param littleType
      * @return SDK鐩墠鏀寔鐨勫ぇ绫伙細灏忕被
      * 鐏厜绫�1锛�0 锛�1锛�9锛�10
-     * 绐楀笜绫�2锛�0锛�1锛�2
+     * 绐楀笜绫�2锛�0锛�1锛�2,6
      * 浼犳劅鍣�5锛�0~24
      * 绌鸿皟绫�7锛�0锛�3
      * 鑳屾櫙闊充箰鍔熻兘9锛�0
@@ -154,12 +168,9 @@
             case Configuration.CURTAIN_BIG_TYPE:
                 switch (littleType) {
                     case 0:
-                        isWant = true;
-                        break;
                     case 1:
-                        isWant = true;
-                        break;
                     case 2:
+                    case 6:
                         isWant = true;
                         break;
                     default:
@@ -172,6 +183,7 @@
                     case 0:
                     case 3:
                     case 100:
+                    case 101:
                         isWant = true;
                         break;
                     default:
@@ -195,14 +207,11 @@
                         break;
                 }
                 break;
-            case Configuration.SENSOR_BIG_TYPE:   //灞忚斀浼犳劅鍣ㄥぇ绫�
-//                if (littleType >= 0 && littleType <= 27) {
-//                    isWant = true;
-//                } else {
-//                    isWant = false;
-//                }
-
-                if (littleType == 1 || littleType == 9 || littleType == 11 || (littleType > 24 && littleType <= 27)) {//2019-11-5 鏀逛负鍙敮鎸�6绉嶆劅搴斿櫒
+            case Configuration.SENSOR_BIG_TYPE:
+                if (littleType == 1 || littleType == 2 || littleType == 3
+                        || (littleType > 4 && littleType <= 11)
+                        || littleType == 20 || (littleType > 24 && littleType <= 27)
+                        || littleType == 32) {
                     isWant = true;
                 } else {
                     isWant = false;
@@ -354,8 +363,8 @@
                 appliancesInfo.setStateCommand(Configuration.LIGHT_STATE_COMMAND);
                 appliancesInfo.setStateBackCommand(Configuration.LIGHT_STATE_BACK_COMMAND);
             }
-            appliancesInfo.setDeviceSubnetID(devicesData.getSourceSubnetID());
-            appliancesInfo.setDeviceDeviceID(devicesData.getSourceDeviceID());
+            appliancesInfo.setSourceSubnetID(devicesData.getSourceSubnetID());
+            appliancesInfo.setSourceDeviceID(devicesData.getSourceDeviceID());
             appliancesInfo.setParentRemarks(parentRemarks);
 //            appliancesInfo.setPort(port);
 //            appliancesInfo.setIpAddress(ipAddress);
@@ -376,6 +385,10 @@
                 appliancesInfo.setDeviceName("绐楀笜妯″潡");
                 appliancesInfo.setDeviceType(HDLApConfig.TYPE_CURTAIN_MODULE);
                 break;
+            case 6:
+                appliancesInfo.setDeviceName("棣欐牸閲屾媺甯樼數鏈�");
+                appliancesInfo.setDeviceType(HDLApConfig.TYPE_CURTAIN_SHANGRILA);
+                break;
             default:
                 appliancesInfo.setDeviceName(Configuration.UNKNOW_TYPE);
                 break;
@@ -389,11 +402,9 @@
             appliancesInfo.setCtrlBackCommand(Configuration.CURTAIN_CTRL_BACK_COMMAND);
             appliancesInfo.setStateCommand(Configuration.CURTAIN_STATE_COMMAND);
             appliancesInfo.setStateBackCommand(Configuration.CURTAIN_STATE_BACK_COMMAND);
-            appliancesInfo.setDeviceSubnetID(devicesData.getSourceSubnetID());
-            appliancesInfo.setDeviceDeviceID(devicesData.getSourceDeviceID());
+            appliancesInfo.setSourceSubnetID(devicesData.getSourceSubnetID());
+            appliancesInfo.setSourceDeviceID(devicesData.getSourceDeviceID());
             appliancesInfo.setParentRemarks(parentRemarks);
-//            appliancesInfo.setPort(port);
-//            appliancesInfo.setIpAddress(ipAddress);
         }
     }
 
@@ -419,6 +430,10 @@
                 appliancesInfo.setDeviceName("绉戞妧绯荤粺");
                 appliancesInfo.setDeviceType(HDLApConfig.TYPE_AC_TECHSYS);
                 break;
+            case 101:
+                appliancesInfo.setDeviceName("KNX绉戞妧绯荤粺");
+                appliancesInfo.setDeviceType(HDLApConfig.TYPE_AC_KNXTECHSYS);
+                break;
             default:
                 appliancesInfo.setDeviceName(Configuration.UNKNOW_TYPE);
                 break;
@@ -428,12 +443,10 @@
             appliancesInfo.setChannelNum(channelNum);
             appliancesInfo.setBigType(Configuration.AIR_BIG_TYPE);
             appliancesInfo.setLittleType(littleType);
-            appliancesInfo.setDeviceSubnetID(devicesData.getSourceSubnetID());
-            appliancesInfo.setDeviceDeviceID(devicesData.getSourceDeviceID());
+            appliancesInfo.setSourceSubnetID(devicesData.getSourceSubnetID());
+            appliancesInfo.setSourceDeviceID(devicesData.getSourceDeviceID());
             appliancesInfo.setParentRemarks(parentRemarks);
-//            appliancesInfo.setPort(port);
-//            appliancesInfo.setIpAddress(ipAddress);
-            if (littleType == 0 || littleType == 100) {//绉戞妧绯荤粺璧�0x193A鍜�0x1938
+            if (littleType == 0 || littleType == 100 || littleType == 101) {//绉戞妧绯荤粺璧�0x193A鍜�0x1938
                 appliancesInfo.setCtrlCommand(Configuration.AIR_HVAC_CTRL_COMMAND);
                 appliancesInfo.setCtrlBackCommand(Configuration.AIR_HVAC_CTRL_BACK_COMMAND);
                 appliancesInfo.setStateCommand(Configuration.AIR_HVAC_STATE_COMMAND);
@@ -476,11 +489,9 @@
             appliancesInfo.setCtrlBackCommand(Configuration.AUDIO_CTRL_READ_BACK_COMMAND);
             appliancesInfo.setStateCommand(Configuration.AUDIO_MenuPlay_INSTRUCTION_COMMAND);
             appliancesInfo.setStateBackCommand(Configuration.AUDIO_MenuPlay_INSTRUCTION_BACK_COMMAND);
-            appliancesInfo.setDeviceSubnetID(devicesData.getSourceSubnetID());
-            appliancesInfo.setDeviceDeviceID(devicesData.getSourceDeviceID());
+            appliancesInfo.setSourceSubnetID(devicesData.getSourceSubnetID());
+            appliancesInfo.setSourceDeviceID(devicesData.getSourceDeviceID());
             appliancesInfo.setParentRemarks(parentRemarks);
-//            appliancesInfo.setPort(port);
-//            appliancesInfo.setIpAddress(ipAddress);
         }
         HDLLog.I("闊充箰妯″潡锛�" + parentRemarks);
     }
@@ -504,12 +515,9 @@
             appliancesInfo.setCtrlBackCommand(Configuration.LOGIC_CTRL_BACK_COMMAND);
             appliancesInfo.setStateCommand(Configuration.LOGIC_STATE_COMMAND);
             appliancesInfo.setStateBackCommand(Configuration.LOGIC_STATE_BACK_COMMAND);
-            appliancesInfo.setDeviceSubnetID(devicesData.getSourceSubnetID());
-            appliancesInfo.setDeviceDeviceID(devicesData.getSourceDeviceID());
+            appliancesInfo.setSourceSubnetID(devicesData.getSourceSubnetID());
+            appliancesInfo.setSourceDeviceID(devicesData.getSourceDeviceID());
             appliancesInfo.setParentRemarks(parentRemarks);
-//            appliancesInfo.setPort(port);
-//            appliancesInfo.setIpAddress(ipAddress);
-
 
         }
     }
@@ -533,12 +541,9 @@
             appliancesInfo.setCtrlBackCommand(Configuration.LOGIC_CTRL_BACK_COMMAND);
             appliancesInfo.setStateCommand(Configuration.LOGIC_STATE_COMMAND);
             appliancesInfo.setStateBackCommand(Configuration.LOGIC_STATE_BACK_COMMAND);
-            appliancesInfo.setDeviceSubnetID(devicesData.getSourceSubnetID());
-            appliancesInfo.setDeviceDeviceID(devicesData.getSourceDeviceID());
+            appliancesInfo.setSourceSubnetID(devicesData.getSourceSubnetID());
+            appliancesInfo.setSourceDeviceID(devicesData.getSourceDeviceID());
             appliancesInfo.setParentRemarks(parentRemarks);
-//            appliancesInfo.setPort(port);
-//            appliancesInfo.setIpAddress(ipAddress);
-
 
         }
     }
@@ -573,11 +578,9 @@
             appliancesInfo.setChannelNum(channelNum);
             appliancesInfo.setBigType(Configuration.SECURITY_BIG_TYPE);
             appliancesInfo.setLittleType(littleType);
-            appliancesInfo.setDeviceSubnetID(devicesData.getSourceSubnetID());
-            appliancesInfo.setDeviceDeviceID(devicesData.getSourceDeviceID());
+            appliancesInfo.setSourceSubnetID(devicesData.getSourceSubnetID());
+            appliancesInfo.setSourceDeviceID(devicesData.getSourceDeviceID());
             appliancesInfo.setParentRemarks(parentRemarks);
-//            appliancesInfo.setPort(port);
-//            appliancesInfo.setIpAddress(ipAddress);
             appliancesInfo.setCtrlCommand(Configuration.SECURITY_ARMING_CTRL_COMMAND);//甯冮槻
             appliancesInfo.setCtrlBackCommand(Configuration.SECURITY_ARMING_CTRL_BACK_COMMAND);//甯冮槻璁剧疆鍙嶉
             appliancesInfo.setStateCommand(Configuration.SECURITY_STATE_COMMAND);//璇诲彇瀹夐槻璁剧疆
@@ -717,6 +720,10 @@
                 appliancesInfo.setDeviceName("浼犳劅鍣� 绱ф�ユ寜閽�");
                 appliancesInfo.setDeviceType(HDLApConfig.TYPE_SENSOR_EMERGENCY_BUTTON);
                 break;
+            case 32:
+                appliancesInfo.setDeviceName("浼犳劅鍣� PM10");
+                appliancesInfo.setDeviceType(HDLApConfig.TYPE_SENSOR_PM_10);
+                break;
 
             default:
                 appliancesInfo.setDeviceName(Configuration.UNKNOW_TYPE);
@@ -729,13 +736,12 @@
             appliancesInfo.setBigType(Configuration.SENSOR_BIG_TYPE);
             appliancesInfo.setLittleType(littleType);
 
-            appliancesInfo.setDeviceSubnetID(devicesData.getSourceSubnetID());
-            appliancesInfo.setDeviceDeviceID(devicesData.getSourceDeviceID());
+            appliancesInfo.setSourceSubnetID(devicesData.getSourceSubnetID());
+            appliancesInfo.setSourceDeviceID(devicesData.getSourceDeviceID());
             appliancesInfo.setParentRemarks(parentRemarks);
 
-            appliancesInfo.setStateCommand(Configuration.DRY_CONTACT_STATE_COMMAND);
-            appliancesInfo.setStateBackCommand(Configuration.DRY_CONTACT_STATE_BACK_COMMAND);
-
+            appliancesInfo.setStateCommand(Configuration.SENSOR_STATE_COMMAND);
+            appliancesInfo.setStateBackCommand(Configuration.SENSOR_STATE_BACK_COMMAND);
         }
 
     }
@@ -772,8 +778,8 @@
             appliancesInfo.setChannelNum(channelNum);
             appliancesInfo.setBigType(Configuration.FRESH_AIR_BIG_TYPE);
             appliancesInfo.setLittleType(littleType);
-            appliancesInfo.setDeviceSubnetID(devicesData.getSourceSubnetID());
-            appliancesInfo.setDeviceDeviceID(devicesData.getSourceDeviceID());
+            appliancesInfo.setSourceSubnetID(devicesData.getSourceSubnetID());
+            appliancesInfo.setSourceDeviceID(devicesData.getSourceDeviceID());
             appliancesInfo.setParentRemarks(parentRemarks);
         }
     }
@@ -809,11 +815,9 @@
             appliancesInfo.setChannelNum(channelNum);
             appliancesInfo.setBigType(Configuration.GEOTHERMAL_BIG_TYPE);
             appliancesInfo.setLittleType(littleType);
-            appliancesInfo.setDeviceSubnetID(devicesData.getSourceSubnetID());
-            appliancesInfo.setDeviceDeviceID(devicesData.getSourceDeviceID());
+            appliancesInfo.setSourceSubnetID(devicesData.getSourceSubnetID());
+            appliancesInfo.setSourceDeviceID(devicesData.getSourceDeviceID());
             appliancesInfo.setParentRemarks(parentRemarks);
-//            appliancesInfo.setPort(port);
-//            appliancesInfo.setIpAddress(ipAddress);
 
             appliancesInfo.setCtrlCommand(Configuration.GEOTHERMAL_MODULE_CTRL_COMMAND);
             appliancesInfo.setCtrlBackCommand(Configuration.GEOTHERMAL_MODULE_CTRL_BACK_COMMAND);
@@ -842,8 +846,8 @@
             appliancesInfo.setChannelNum(channelNum);
             appliancesInfo.setBigType(Configuration.DOOR_MACHINE_BIG_TYPE);
             appliancesInfo.setLittleType(littleType);
-            appliancesInfo.setDeviceSubnetID(devicesData.getSourceSubnetID());
-            appliancesInfo.setDeviceDeviceID(devicesData.getSourceDeviceID());
+            appliancesInfo.setSourceSubnetID(devicesData.getSourceSubnetID());
+            appliancesInfo.setSourceDeviceID(devicesData.getSourceDeviceID());
             appliancesInfo.setParentRemarks(parentRemarks);
 
             appliancesInfo.setCtrlCommand(Configuration.DOOR_MACHINE_MODULE_CTRL_COMMAND);
@@ -882,8 +886,8 @@
             appliancesInfo.setChannelNum(channelNum);
             appliancesInfo.setBigType(Configuration.COMMON_SWITCH_BIG_TYPE);
             appliancesInfo.setLittleType(littleType);
-            appliancesInfo.setDeviceSubnetID(devicesData.getSourceSubnetID());
-            appliancesInfo.setDeviceDeviceID(devicesData.getSourceDeviceID());
+            appliancesInfo.setSourceSubnetID(devicesData.getSourceSubnetID());
+            appliancesInfo.setSourceDeviceID(devicesData.getSourceDeviceID());
             appliancesInfo.setParentRemarks(parentRemarks);
 
             appliancesInfo.setCtrlCommand(Configuration.COMMON_SWITCH_CTRL_COMMAND);//甯冮槻

--
Gitblit v1.8.0