From 566ddb2ea03e2514de50f2ca861a2674f6e840ac Mon Sep 17 00:00:00 2001
From: 562935844@qq.com
Date: 星期一, 27 十一月 2023 13:32:27 +0800
Subject: [PATCH] 新增科技系统、门锁、新风和地暖支持

---
 HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Parser/DeviceParser.java |  241 ++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 204 insertions(+), 37 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 abf4465..e1aeedc 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
@@ -1,17 +1,18 @@
 package com.hdl.sdk.ttl.HDLDeviceManger.Parser;
 
+import static com.hdl.sdk.ttl.HDLDeviceManger.Core.HDLDeviceManager.devicesDataList;
+
+import android.util.Log;
+
 import com.hdl.sdk.ttl.Config.Configuration;
 import com.hdl.sdk.ttl.HDLAppliances.Config.HDLApConfig;
 import com.hdl.sdk.ttl.HDLDeviceManger.Bean.AppliancesInfo;
 import com.hdl.sdk.ttl.HDLDeviceManger.Bean.DevicesData;
-import com.hdl.sdk.ttl.HDLDeviceManger.Core.HDLDeviceManager;
 import com.hdl.sdk.ttl.HDLDeviceManger.Core.HandleSearch;
 import com.hdl.sdk.ttl.Utils.LogUtils.HDLLog;
 
 import java.util.ArrayList;
 import java.util.List;
-
-import static com.hdl.sdk.ttl.HDLDeviceManger.Core.HDLDeviceManager.devicesDataList;
 
 /**
  * Created by djl on 2017/3/29.
@@ -72,13 +73,21 @@
                         case Configuration.SECURITY_BIG_TYPE://2019-7-29 鏂板
                             parseSecurityData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, "");
                             break;
-                        case Configuration.SENSOR_BIG_TYPE://2019-07-03 灞忚斀
+                        case Configuration.SENSOR_BIG_TYPE:
                             parseSensorData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, "");
                             break;
                         case Configuration.COMMON_SWITCH_BIG_TYPE://2020-04-01 閫氱敤寮�鍏�
                             parseCommonSwitchData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, "");
                             break;
-
+                        case Configuration.FRESH_AIR_BIG_TYPE://2020-07-20 鏂板鏂伴
+                            parseFreshAirData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, "");
+                            break;
+                        case Configuration.GEOTHERMAL_BIG_TYPE://鍦扮儹
+                            parseGeothermalData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, "");
+                            break;
+                        case Configuration.DOOR_MACHINE_BIG_TYPE://闂ㄩ攣
+                            parseDoorMachineData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, "");//闂ㄩ攣鐨勯�氶亾鍙烽渶瑕�-1
+                            break;
                         default:
 //                            appliancesInfo.setDeviceName(Configuration.UNKNOW_TYPE);
                             break;
@@ -93,9 +102,9 @@
 
                     appliancesInfo.setDeviceKey(key);//2019-8-2 娣诲姞鍞竴鏍囪瘑key
                     appliancesInfoList.add(appliancesInfo);
-//                    HDLLog.I( "鍚戞ā鍧楁坊鍔犲洖璺細"+"澶х被锛�" + bigType + " 灏忕被锛�" + littleType +" 妯″潡澶囨敞" + devicesData.getRemark() );
+                    HDLLog.I("鍚戞ā鍧楁坊鍔犲洖璺細" + "澶х被锛�" + bigType + " 灏忕被锛�" + littleType + " 妯″潡澶囨敞" + devicesData.getRemark());
                 } else {
-//                    HDLLog.I( "涓嶆槸瑕佹坊鍔犵殑璁惧锛氬ぇ绫伙細" + bigType + " 灏忕被锛�" + littleType +" 妯″潡澶囨敞" + devicesData.getRemark() );
+                    HDLLog.I("涓嶆槸瑕佹坊鍔犵殑璁惧锛氬ぇ绫伙細" + bigType + " 灏忕被锛�" + littleType + " 妯″潡澶囨敞" + devicesData.getRemark());
                 }
             }
         }
@@ -128,14 +137,12 @@
             case Configuration.LIGTH_BIG_TYPE:
                 switch (littleType) {
                     case 0:
-                        isWant = true;
-                        break;
                     case 1:
-                        isWant = true;
-                        break;
+                    case 2:
+                    case 3:
+                    case 7:
+                    case 8:
                     case 9:
-                        isWant = true;
-                        break;
                     case 10:
                         isWant = true;
                         break;
@@ -163,9 +170,8 @@
             case Configuration.AIR_BIG_TYPE:
                 switch (littleType) {
                     case 0:
-                        isWant = true;
-                        break;
                     case 3:
+                    case 100:
                         isWant = true;
                         break;
                     default:
@@ -245,6 +251,38 @@
                         break;
                 }
                 break;
+            case Configuration.FRESH_AIR_BIG_TYPE://鏂伴璁惧 2020-07-20
+                switch (littleType) {
+                    case 0:
+                    case 1:
+                        isWant = true;
+                        break;
+                    default:
+                        isWant = false;
+                        break;
+                }
+                break;
+            case Configuration.GEOTHERMAL_BIG_TYPE://鍦扮儹璁惧 2020-07-20
+                switch (littleType) {
+                    case 0:
+                    case 3:
+                        isWant = true;
+                        break;
+                    default:
+                        isWant = false;
+                        break;
+                }
+                break;
+            case Configuration.DOOR_MACHINE_BIG_TYPE://闂ㄩ攣璁惧 2023-08-22
+                switch (littleType) {
+                    case 4:
+                        isWant = true;
+                        break;
+                    default:
+                        isWant = false;
+                        break;
+                }
+                break;
             default:
                 isWant = false;
                 break;
@@ -264,10 +302,12 @@
                 appliancesInfo.setDeviceType(HDLApConfig.TYPE_LIGHT_RELAY);
                 break;
             case 2:
-                appliancesInfo.setDeviceName("閫昏緫鐏帶鍒�");
+                appliancesInfo.setDeviceName("閫昏緫鐏帶鍒禖CT");
+                appliancesInfo.setDeviceType(HDLApConfig.TYPE_LIGHT_CCT);
                 break;
             case 3:
                 appliancesInfo.setDeviceName("閫昏緫鐏疪GB");
+                appliancesInfo.setDeviceType(HDLApConfig.TYPE_LIGHT_RGB);
                 break;
             case 4:
                 appliancesInfo.setDeviceName("閫昏緫鐏疪GBW");
@@ -280,9 +320,11 @@
                 break;
             case 7:
                 appliancesInfo.setDeviceName("DALI");
+                appliancesInfo.setDeviceType(HDLApConfig.TYPE_LIGHT_DALI);
                 break;
             case 8:
                 appliancesInfo.setDeviceName("鑷畾涔夐�昏緫鐏�");
+                appliancesInfo.setDeviceType(HDLApConfig.TYPE_LIGHT_DMX);
                 break;
             case 9:
                 appliancesInfo.setDeviceName("娣峰悎璋冨厜绫�");
@@ -300,10 +342,18 @@
             appliancesInfo.setChannelNum(channelNum);
             appliancesInfo.setBigType(Configuration.LIGTH_BIG_TYPE);
             appliancesInfo.setLittleType(littleType);
-            appliancesInfo.setCtrlCommand(Configuration.LIGHT_CTRL_COMMAND);
-            appliancesInfo.setCtrlBackCommand(Configuration.LIGHT_CTRL_BACK_COMMAND);
-            appliancesInfo.setStateCommand(Configuration.LIGHT_STATE_COMMAND);
-            appliancesInfo.setStateBackCommand(Configuration.LIGHT_STATE_BACK_COMMAND);
+
+            if (appliancesInfo.getDeviceType() == HDLApConfig.TYPE_LIGHT_CCT || appliancesInfo.getDeviceType() == HDLApConfig.TYPE_LIGHT_RGB || appliancesInfo.getDeviceType() == HDLApConfig.TYPE_LIGHT_DALI || appliancesInfo.getDeviceType() == HDLApConfig.TYPE_LIGHT_DMX) {
+                appliancesInfo.setCtrlCommand(Configuration.LIGHT_RGB_CTRL_COMMAND);
+                appliancesInfo.setCtrlBackCommand(Configuration.LIGHT_RGB_CTRL_BACK_COMMAND);
+                appliancesInfo.setStateCommand(Configuration.LIGHT_RGB_STATE_COMMAND);
+                appliancesInfo.setStateBackCommand(Configuration.LIGHT_RGB_STATE_BACK_COMMAND);
+            } else {
+                appliancesInfo.setCtrlCommand(Configuration.LIGHT_CTRL_COMMAND);
+                appliancesInfo.setCtrlBackCommand(Configuration.LIGHT_CTRL_BACK_COMMAND);
+                appliancesInfo.setStateCommand(Configuration.LIGHT_STATE_COMMAND);
+                appliancesInfo.setStateBackCommand(Configuration.LIGHT_STATE_BACK_COMMAND);
+            }
             appliancesInfo.setDeviceSubnetID(devicesData.getSourceSubnetID());
             appliancesInfo.setDeviceDeviceID(devicesData.getSourceDeviceID());
             appliancesInfo.setParentRemarks(parentRemarks);
@@ -365,6 +415,10 @@
                 appliancesInfo.setDeviceName("閫氱敤绌鸿皟闈㈡澘");
                 appliancesInfo.setDeviceType(HDLApConfig.TYPE_AC_PANEL);
                 break;
+            case 100:
+                appliancesInfo.setDeviceName("绉戞妧绯荤粺");
+                appliancesInfo.setDeviceType(HDLApConfig.TYPE_AC_TECHSYS);
+                break;
             default:
                 appliancesInfo.setDeviceName(Configuration.UNKNOW_TYPE);
                 break;
@@ -379,7 +433,7 @@
             appliancesInfo.setParentRemarks(parentRemarks);
 //            appliancesInfo.setPort(port);
 //            appliancesInfo.setIpAddress(ipAddress);
-            if (littleType == 0) {
+            if (littleType == 0 || littleType == 100) {//绉戞妧绯荤粺璧�0x193A鍜�0x1938
                 appliancesInfo.setCtrlCommand(Configuration.AIR_HVAC_CTRL_COMMAND);
                 appliancesInfo.setCtrlBackCommand(Configuration.AIR_HVAC_CTRL_BACK_COMMAND);
                 appliancesInfo.setStateCommand(Configuration.AIR_HVAC_STATE_COMMAND);
@@ -674,32 +728,137 @@
             appliancesInfo.setChannelNum(curChannelNum);
             appliancesInfo.setBigType(Configuration.SENSOR_BIG_TYPE);
             appliancesInfo.setLittleType(littleType);
-//            appliancesInfo.setCtrlCommand(Configuration.LOGIC_CTRL_COMMAND);
-//            appliancesInfo.setCtrlBackCommand(Configuration.LOGIC_CTRL_BACK_COMMAND);
-//            appliancesInfo.setStateCommand(Configuration.SENSOR_STATE_COMMAND);
-//            appliancesInfo.setStateBackCommand(Configuration.SENSOR_STATE_BACK_COMMAND);
 
             appliancesInfo.setDeviceSubnetID(devicesData.getSourceSubnetID());
             appliancesInfo.setDeviceDeviceID(devicesData.getSourceDeviceID());
             appliancesInfo.setParentRemarks(parentRemarks);
 
-            if (littleType == 1) {//鍚搁《绾㈠浼犳劅鍣�
-                appliancesInfo.setStateCommand(Configuration.DRY_CONTACT_STATE_COMMAND);
-                appliancesInfo.setStateBackCommand(Configuration.DRY_CONTACT_STATE_BACK_COMMAND);
-            } else {
+            appliancesInfo.setStateCommand(Configuration.DRY_CONTACT_STATE_COMMAND);
+            appliancesInfo.setStateBackCommand(Configuration.DRY_CONTACT_STATE_BACK_COMMAND);
 
-                appliancesInfo.setStateCommand(Configuration.DRY_CONTACT_STATE_COMMAND);
-                appliancesInfo.setStateBackCommand(Configuration.DRY_CONTACT_STATE_BACK_COMMAND);
-
-            }
         }
 
-
     }
+
+
+    /**
+     * 2020-07-20
+     * 鏂伴绯荤粺
+     */
+    private static void parseFreshAirData(int littleType, AppliancesInfo appliancesInfo, DevicesData devicesData, String parentRemarks, int channelNum, int port, String ipAddress) {
+        switch (littleType) {
+            case 0:
+                appliancesInfo.setDeviceName("鏂伴绯荤粺妯″潡");
+                appliancesInfo.setDeviceType(HDLApConfig.TYPE_FRESH_AIR);
+                appliancesInfo.setCtrlCommand(Configuration.FRESH_AIR_CTRL_COMMAND);
+                appliancesInfo.setCtrlBackCommand(Configuration.FRESH_AIR_CTRL_BACK_COMMAND);
+                appliancesInfo.setStateCommand(Configuration.FRESH_AIR_STATE_COMMAND);
+                appliancesInfo.setStateBackCommand(Configuration.FRESH_AIR_STATE_BACK_COMMAND);
+                break;
+            case 1:
+                appliancesInfo.setDeviceName("閲戣寕鏂伴");
+                appliancesInfo.setDeviceType(HDLApConfig.TYPE_FRESH_AIR_JINMAO);
+                appliancesInfo.setCtrlCommand(Configuration.FRESH_AIR_JINMAO_CTRL_COMMAND);
+                appliancesInfo.setCtrlBackCommand(Configuration.FRESH_AIR_JINMAO_CTRL_BACK_COMMAND);
+                appliancesInfo.setStateCommand(Configuration.FRESH_AIR_JINMAO_STATE_COMMAND);
+                appliancesInfo.setStateBackCommand(Configuration.FRESH_AIR_JINMAO_STATE_BACK_COMMAND);
+                break;
+            default:
+                appliancesInfo.setDeviceName(Configuration.UNKNOW_TYPE);
+                break;
+        }
+
+        if (devicesData != null) {
+            appliancesInfo.setChannelNum(channelNum);
+            appliancesInfo.setBigType(Configuration.FRESH_AIR_BIG_TYPE);
+            appliancesInfo.setLittleType(littleType);
+            appliancesInfo.setDeviceSubnetID(devicesData.getSourceSubnetID());
+            appliancesInfo.setDeviceDeviceID(devicesData.getSourceDeviceID());
+            appliancesInfo.setParentRemarks(parentRemarks);
+        }
+    }
+
+
+    /**
+     * 鍦扮儹
+     */
+    private static void parseGeothermalData(int littleType, AppliancesInfo appliancesInfo, DevicesData devicesData, String parentRemarks, int channelNum, int port, String ipAddress) {
+        switch (littleType) {
+            case 0:
+                appliancesInfo.setDeviceName("鍦扮儹妯″潡");
+                appliancesInfo.setDeviceType(HDLApConfig.TYPE_GEOTHERMAL_MODULE);
+                break;
+//            case 1:
+//                appliancesInfo.setDeviceName("甯歌鍦扮儹闈㈡澘");
+//                appliancesInfo.setDeviceType(HDLApConfig.TYPE_GEOTHERMAL_MODULE_PANEL);
+//                break;
+//            case 2:
+//                appliancesInfo.setDeviceName("甯I杩愮畻鐨勫湴鐑潰鏉�");
+//                appliancesInfo.setDeviceType(HDLApConfig.TYPE_GEOTHERMAL_MODULE_PI);
+//                break;
+            case 3:
+                appliancesInfo.setDeviceName("鐗规畩鍦扮儹妯″潡");
+                appliancesInfo.setDeviceType(HDLApConfig.TYPE_GEOTHERMAL_JINMAO);
+                break;
+            default:
+                appliancesInfo.setDeviceName(Configuration.UNKNOW_TYPE);
+                break;
+
+        }
+        if (devicesData != null) {
+            appliancesInfo.setChannelNum(channelNum);
+            appliancesInfo.setBigType(Configuration.GEOTHERMAL_BIG_TYPE);
+            appliancesInfo.setLittleType(littleType);
+            appliancesInfo.setDeviceSubnetID(devicesData.getSourceSubnetID());
+            appliancesInfo.setDeviceDeviceID(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);
+            appliancesInfo.setStateCommand(Configuration.GEOTHERMAL_MODULE_STATE_COMMAND);
+            appliancesInfo.setStateBackCommand(Configuration.GEOTHERMAL_MODULE_STATE_BACK_COMMAND);
+
+
+        }
+    }
+
+
+    /**
+     * 闂ㄩ攣
+     */
+    private static void parseDoorMachineData(int littleType, AppliancesInfo appliancesInfo, DevicesData devicesData, String parentRemarks, int channelNum, int port, String ipAddress) {
+        switch (littleType) {
+            case 4:
+                appliancesInfo.setDeviceName("闂ㄩ攣妯″潡");
+                appliancesInfo.setDeviceType(HDLApConfig.TYPE_DOOR_MACHINE);
+                break;
+            default:
+                appliancesInfo.setDeviceName(Configuration.UNKNOW_TYPE);
+                break;
+        }
+        if (devicesData != null) {
+            appliancesInfo.setChannelNum(channelNum);
+            appliancesInfo.setBigType(Configuration.DOOR_MACHINE_BIG_TYPE);
+            appliancesInfo.setLittleType(littleType);
+            appliancesInfo.setDeviceSubnetID(devicesData.getSourceSubnetID());
+            appliancesInfo.setDeviceDeviceID(devicesData.getSourceDeviceID());
+            appliancesInfo.setParentRemarks(parentRemarks);
+
+            appliancesInfo.setCtrlCommand(Configuration.DOOR_MACHINE_MODULE_CTRL_COMMAND);
+            appliancesInfo.setCtrlBackCommand(Configuration.DOOR_MACHINE_MODULE_CTRL_BACK_COMMAND);
+            appliancesInfo.setStateCommand(Configuration.DOOR_MACHINE_MODULE_STATE_COMMAND);
+            appliancesInfo.setStateBackCommand(Configuration.DOOR_MACHINE_MODULE_STATE_BACK_COMMAND);
+
+        }
+    }
+
 
     /**
      * 2020-04-01
      * 鏂板閫氱敤寮�鍏�
+     *
      * @param littleType
      * @param appliancesInfo
      * @param devicesData
@@ -886,13 +1045,21 @@
             case Configuration.SECURITY_BIG_TYPE://2019-7-29 鏂板
                 parseSecurityData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, "");
                 break;
-            case Configuration.SENSOR_BIG_TYPE://2019-07-03 灞忚斀
+            case Configuration.SENSOR_BIG_TYPE:
                 parseSensorData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, "");
                 break;
             case Configuration.COMMON_SWITCH_BIG_TYPE://2020-04-01 閫氱敤寮�鍏�
                 parseCommonSwitchData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, "");
                 break;
-
+            case Configuration.FRESH_AIR_BIG_TYPE://2020-07-20 鏂板鏂伴
+                parseFreshAirData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, "");
+                break;
+            case Configuration.GEOTHERMAL_BIG_TYPE://2020-07-20 鍦扮儹
+                parseGeothermalData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, "");
+                break;
+            case Configuration.DOOR_MACHINE_BIG_TYPE://2023-08-22 闂ㄩ攣
+                parseDoorMachineData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, "");
+                break;
             default:
 //                            appliancesInfo.setDeviceName(Configuration.UNKNOW_TYPE);
                 break;
@@ -911,9 +1078,9 @@
 
 
     /**
-     *
      * 娣诲姞璁惧鍥炶矾
      * 濡傛灉瀛樺湪鐩稿悓瀛愮綉鍙� 璁惧鍙凤紝鍒欏綋鎴愭贩鍚堟ā鍧楁坊鍔犲埌璇ュ洖璺笅锛屼笉瀛樺湪鍒欐柊娣诲姞妯″潡
+     *
      * @param bigType
      * @param littleType
      * @param mSubnetID

--
Gitblit v1.8.0