From ce062b3c62d283fa364f92853d1b53221b94a3bc Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期三, 24 六月 2020 09:30:32 +0800
Subject: [PATCH] 2020-06-24 1.增加手动添加生成设备接口方法。 2.增加通用开关和安防模块支持。

---
 hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Parser/DeviceParser.java |  249 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 248 insertions(+), 1 deletions(-)

diff --git a/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Parser/DeviceParser.java b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Parser/DeviceParser.java
index 0278e0d..0508d49 100644
--- a/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Parser/DeviceParser.java
+++ b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Parser/DeviceParser.java
@@ -2,6 +2,7 @@
 
 import com.hdl.sdk.hdl_core.Config.Configuration;
 import com.hdl.sdk.hdl_core.HDLAppliances.Config.HDLApConfig;
+import com.hdl.sdk.hdl_core.HDLAppliances.HDLLogic.LogicMode;
 import com.hdl.sdk.hdl_core.HDLDeviceManger.Bean.AppliancesInfo;
 import com.hdl.sdk.hdl_core.HDLDeviceManger.Bean.DevicesData;
 import com.hdl.sdk.hdl_core.HDLDeviceManger.Core.HDLDeviceManager;
@@ -10,6 +11,8 @@
 
 import java.util.ArrayList;
 import java.util.List;
+
+import static com.hdl.sdk.hdl_core.HDLDeviceManger.Core.HDLDeviceManager.devicesDataList;
 
 /**
  * Created by djl on 2017/3/29.
@@ -223,6 +226,29 @@
                     case Configuration.FRESH_AIR_LITTLE_TYPE_0:
                         isWant = true;
                         break;
+                    default:
+                        isWant = false;
+                        break;
+                }
+                break;
+            case Configuration.COMMON_SWITCH_BIG_TYPE://2020-06-23 閫氱敤寮�鍏宠澶�
+                switch (littleType) {
+                    case 0:
+                        isWant = true;
+                        break;
+                    default:
+                        isWant = false;
+                        break;
+                }
+                break;
+            case Configuration.SECURITY_BIG_TYPE:
+                switch (littleType) {
+                    case 0:
+                        isWant = true;
+                        break;
+//                    case 2:
+//                        isWant = true;
+//                        break;
                     default:
                         isWant = false;
                         break;
@@ -723,7 +749,7 @@
 
         if (bWantData) {
             devicesData.setAppliancesInfoList(appliancesInfoList);
-            HDLDeviceManager.devicesDataList.add(devicesData);
+            devicesDataList.add(devicesData);
 
             HandleSearch.OnDeviceListGetSuccessCallBack();
         }else {
@@ -765,6 +791,12 @@
             case Configuration.FRESH_AIR_BIG_TYPE:
                 parseFreshAirData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, port, "");
                 break;
+            case Configuration.COMMON_SWITCH_BIG_TYPE://2020-06-23 閫氱敤寮�鍏�
+                parseCommonSwitchData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, "");
+                break;
+            case Configuration.SECURITY_BIG_TYPE://2020-06-23  鏂板
+                parseSecurityData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, "");
+                break;
             default:
 //                            appliancesInfo.setDeviceName(Configuration.UNKNOW_TYPE);
                 break;
@@ -782,4 +814,219 @@
 
     }
 
+
+    /**
+     * 2020-06-23
+     * 鏂板閫氱敤寮�鍏�
+     * @param littleType
+     * @param appliancesInfo
+     * @param devicesData
+     * @param parentRemarks
+     * @param channelNum
+     * @param port
+     * @param ipAddress
+     */
+    private static void parseCommonSwitchData(int littleType, AppliancesInfo appliancesInfo, DevicesData devicesData, String parentRemarks, int channelNum, int port, String ipAddress) {
+        switch (littleType) {
+            case 0:
+                appliancesInfo.setDeviceName("閫氱敤寮�鍏�");
+                appliancesInfo.setDeviceType(HDLApConfig.TYPE_COMMON_SWITCH);
+                break;
+            default:
+                appliancesInfo.setDeviceName(Configuration.UNKNOW_TYPE);
+                break;
+
+        }
+        if (devicesData != null) {
+            appliancesInfo.setChannelNum(channelNum);
+            appliancesInfo.setBigType(Configuration.COMMON_SWITCH_BIG_TYPE);
+            appliancesInfo.setLittleType(littleType);
+            appliancesInfo.setDeviceSubnetID(devicesData.getSourceSubnetID());
+            appliancesInfo.setDeviceDeviceID(devicesData.getSourceDeviceID());
+            appliancesInfo.setParentRemarks(parentRemarks);
+
+            appliancesInfo.setCtrlCommand(Configuration.COMMON_SWITCH_CTRL_COMMAND);//
+            appliancesInfo.setCtrlBackCommand(Configuration.COMMON_SWITCH_CTRL_BACK_COMMAND);//
+            appliancesInfo.setStateCommand(Configuration.COMMON_SWITCH_STATE_COMMAND);//
+            appliancesInfo.setStateBackCommand(Configuration.COMMON_SWITCH_STATE_BACK_COMMAND);//
+
+        }
+    }
+
+    /**
+     * 2020-06-23 鏂板
+     *
+     * @param littleType
+     * @param appliancesInfo
+     * @param devicesData
+     * @param parentRemarks
+     * @param channelNum
+     * @param port
+     * @param ipAddress
+     */
+    private static void parseSecurityData(int littleType, AppliancesInfo appliancesInfo, DevicesData devicesData, String parentRemarks, int channelNum, int port, String ipAddress) {
+        switch (littleType) {
+            case 0:
+                appliancesInfo.setDeviceName("瀹夐槻妯″潡");
+                appliancesInfo.setDeviceType(HDLApConfig.TYPE_SECURITY_MODULE);
+                break;
+//            case 2:
+//                appliancesInfo.setDeviceName("瀹夐槻鎺у埗闈㈡澘");
+//                appliancesInfo.setDeviceType(HDLApConfig.SECURITY_CONTROL_PANEL);
+//                break;
+            default:
+                appliancesInfo.setDeviceName(Configuration.UNKNOW_TYPE);
+                break;
+
+        }
+        if (devicesData != null) {
+            appliancesInfo.setChannelNum(channelNum);
+            appliancesInfo.setBigType(Configuration.SECURITY_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.SECURITY_ARMING_CTRL_COMMAND);//甯冮槻
+            appliancesInfo.setCtrlBackCommand(Configuration.SECURITY_ARMING_CTRL_BACK_COMMAND);//甯冮槻璁剧疆鍙嶉
+            appliancesInfo.setStateCommand(Configuration.SECURITY_STATE_COMMAND);//璇诲彇瀹夐槻璁剧疆
+            appliancesInfo.setStateBackCommand(Configuration.SECURITY_STATE_BACK_COMMAND);//璇诲彇瀹夐槻璁剧疆鍙嶉
+
+
+
+        }
+    }
+
+    /**
+     * 娣诲姞璁惧鍥炶矾
+     * 濡傛灉瀛樺湪鐩稿悓瀛愮綉鍙� 璁惧鍙凤紝鍒欏綋鎴愭贩鍚堟ā鍧楁坊鍔犲埌璇ュ洖璺笅锛屼笉瀛樺湪鍒欐柊娣诲姞妯″潡
+     * @param port 鍙戦�乁DP鍖� 绔彛鍙�
+     * @param bigType
+     * @param littleType
+     * @param mSubnetID
+     * @param mDeviceID
+     * @param mChannelNum
+     * @param mChannelRemark
+     * @param parentRemarks
+     * @param bSaveAndCallBack 鏄惁椹笂淇濆瓨鏈湴骞朵笖鎺ㄩ�丏evicesInfoEvent 浜嬩欢
+     * @return
+     */
+    public static DevicesData addDevicesListWithoutSearching(int port, int bigType, int littleType, int mSubnetID, int mDeviceID, int mChannelNum, String mChannelRemark, String parentRemarks, boolean bSaveAndCallBack) {
+//        boolean bWantData = false;
+        if (isWantData(bigType, littleType)) {
+            DevicesData devicesData = new DevicesData();
+            devicesData.setSourceSubnetID(mSubnetID);
+            devicesData.setSourceDeviceID(mDeviceID);
+            devicesData.setRemark(parentRemarks);
+
+            Boolean isFindDevicesData = false;
+            int index = 0;
+            for (int i = 0; i < devicesDataList.size(); i++) {
+                if (devicesDataList.get(i).getSourceSubnetID() == mSubnetID && devicesDataList.get(i).getSourceDeviceID() == mDeviceID) {
+                    index = i;
+                    isFindDevicesData = true;
+                    break;
+                }
+            }
+
+
+            if (isFindDevicesData) {
+                AppliancesInfo mAppliancesInfo = getDevicesInfo(devicesData, bigType, littleType, mChannelNum, port, parentRemarks, mChannelRemark);
+                devicesDataList.get(index).getAppliancesInfoList().add(mAppliancesInfo);
+                devicesData = devicesDataList.get(index);
+                if(bSaveAndCallBack){
+                    HandleSearch.OnDeviceListGetSuccessCallBack();}
+            } else {
+                List<AppliancesInfo> appliancesInfoList = new ArrayList<>();
+                appliancesInfoList.add(getDevicesInfo(devicesData, bigType, littleType, mChannelNum, port, parentRemarks, mChannelRemark));
+                devicesData.setAppliancesInfoList(appliancesInfoList);
+                devicesDataList.add(devicesData);
+                if(bSaveAndCallBack){
+                    HandleSearch.OnDeviceListGetSuccessCallBack();}
+
+            }
+
+
+            return devicesData;
+
+        } else {
+            return null;
+
+        }
+
+
+    }
+
+
+    /**
+     * 娣诲姞鍦烘櫙璁惧鍥炶矾
+     * 濡傛灉瀛樺湪鐩稿悓瀛愮綉鍙� 璁惧鍙凤紝鍒欏綋鎴愭贩鍚堟ā鍧楁坊鍔犲埌璇ュ洖璺笅锛屼笉瀛樺湪鍒欐柊娣诲姞妯″潡
+     * @param mSubnetID
+     * @param mDeviceID
+     * @param mAreaNum //鍦烘櫙 鍖哄煙鍙�
+     * @param mAreaSceneNum //鍦烘櫙 褰撳墠鍖哄煙鍦烘櫙鍙�
+     * @param mChannelRemark
+     * @param parentRemarks
+     * @param bSaveAndCallBack 鏄惁椹笂淇濆瓨鏈湴骞朵笖鎺ㄩ�丏evicesInfoEvent 浜嬩欢
+     * @return
+     */
+    public static DevicesData addScenesDevicesListWithoutSearching(int port, int mSubnetID, int mDeviceID, int mAreaNum, int mAreaSceneNum, String mChannelRemark, String parentRemarks, boolean bSaveAndCallBack) {
+//        boolean bWantData = false;
+
+        int bigType = Configuration.GLOBAL_LOGIC_BIG_TYPE;
+        int littleType = 0;
+        if (isWantData(bigType, littleType)) {
+            DevicesData devicesData = new DevicesData();
+            devicesData.setSourceSubnetID(mSubnetID);
+            devicesData.setSourceDeviceID(mDeviceID);
+            devicesData.setRemark(parentRemarks);
+
+            Boolean isFindDevicesData = false;
+            int index = 0;
+            for (int i = 0; i < devicesDataList.size(); i++) {
+                if (devicesDataList.get(i).getSourceSubnetID() == mSubnetID && devicesDataList.get(i).getSourceDeviceID() == mDeviceID) {
+                    index = i;
+                    isFindDevicesData = true;
+                    break;
+                }
+            }
+
+
+            if (isFindDevicesData) {
+                AppliancesInfo mAppliancesInfo = getDevicesInfo(devicesData, bigType, littleType, mAreaNum, port, parentRemarks, mChannelRemark);
+                LogicMode mLogicMode = new LogicMode();
+                mLogicMode.setAreaNum(mAreaNum);
+                mLogicMode.setAreaSceneNum(mAreaSceneNum);
+                mAppliancesInfo.setLogicMode(mLogicMode);
+                devicesDataList.get(index).getAppliancesInfoList().add(mAppliancesInfo);
+                devicesData = devicesDataList.get(index);
+                if(bSaveAndCallBack){
+                    HandleSearch.OnDeviceListGetSuccessCallBack();}
+            } else {
+                List<AppliancesInfo> appliancesInfoList = new ArrayList<>();
+                AppliancesInfo mAppliancesInfo = getDevicesInfo(devicesData, bigType, littleType, mAreaNum, port, parentRemarks, mChannelRemark);
+                LogicMode mLogicMode = new LogicMode();
+                mLogicMode.setAreaNum(mAreaNum);
+                mLogicMode.setAreaSceneNum(mAreaSceneNum);
+                mAppliancesInfo.setLogicMode(mLogicMode);
+                appliancesInfoList.add(mAppliancesInfo);
+                devicesData.setAppliancesInfoList(appliancesInfoList);
+                devicesDataList.add(devicesData);
+                if(bSaveAndCallBack){
+                    HandleSearch.OnDeviceListGetSuccessCallBack();}
+            }
+
+
+            return devicesData;
+
+        } else {
+            return null;
+
+        }
+
+
+    }
+
+
 }

--
Gitblit v1.8.0