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