JLChen
2020-06-24 2e80ba72598546c8f80ab50d2395e70e0d9e66a0
hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Parser/DeviceParser.java
@@ -980,20 +980,23 @@
    }
    /**
     * 添加场景设备回路
     * 如果存在相同子网号 设备号,则当成混合模块添加到该回路下,不存在则新添加模块
     * @param mSubnetID
     * @param mDeviceID
     * @param mChannelNum 回路号
     * @param mAreaNum //场景 区域号
     * @param mAreaSceneNum //场景 当前区域场景号
     * @param mChannelRemark
     * @param parentRemarks
     * @param bSaveAndCallBack 是否马上保存本地并且推送DevicesInfoEvent 事件
     * @return
     *
     * 场景这里的回路号需要注意: 相同子网号和设备号下的场景需要累加不重复,逻辑模块为例:1区有3个表,2区有2个表 总共5个场景,所以(2区表1 回路号为4、2区表2 回路号为5)
     * 不然如果回路号不对简易编程搜索备注的话会出错
     */
    public static DevicesData addScenesDevicesListWithoutSearching(int port, int mSubnetID, int mDeviceID, int mAreaNum, int mAreaSceneNum, String mChannelRemark, String parentRemarks, boolean bSaveAndCallBack) {
    public static DevicesData addScenesDevicesListWithoutSearching(int port, int mSubnetID, int mDeviceID, int mChannelNum, int mAreaNum, int mAreaSceneNum, String mChannelRemark, String parentRemarks, boolean bSaveAndCallBack) {
//        boolean bWantData = false;
        int bigType = Configuration.GLOBAL_LOGIC_BIG_TYPE;
@@ -1016,7 +1019,7 @@
            if (isFindDevicesData) {
                AppliancesInfo mAppliancesInfo = getDevicesInfo(devicesData, bigType, littleType, mAreaNum, port, parentRemarks, mChannelRemark);
                AppliancesInfo mAppliancesInfo = getDevicesInfo(devicesData, bigType, littleType, mChannelNum, port, parentRemarks, mChannelRemark);
                LogicMode mLogicMode = new LogicMode();
                mLogicMode.setAreaNum(mAreaNum);
                mLogicMode.setAreaSceneNum(mAreaSceneNum);
@@ -1027,7 +1030,7 @@
                    HandleSearch.OnDeviceListGetSuccessCallBack();}
            } else {
                List<AppliancesInfo> appliancesInfoList = new ArrayList<>();
                AppliancesInfo mAppliancesInfo = getDevicesInfo(devicesData, bigType, littleType, mAreaNum, port, parentRemarks, mChannelRemark);
                AppliancesInfo mAppliancesInfo = getDevicesInfo(devicesData, bigType, littleType, mChannelNum, port, parentRemarks, mChannelRemark);
                LogicMode mLogicMode = new LogicMode();
                mLogicMode.setAreaNum(mAreaNum);
                mLogicMode.setAreaSceneNum(mAreaSceneNum);
@@ -1051,4 +1054,74 @@
    }
    /**
     * 添加逻辑模块的场景设备回路
     * 如果存在相同子网号 设备号,则当成混合模块添加到该回路下,不存在则新添加模块
     * @param mSubnetID
     * @param mDeviceID
     * @param mChannelNum 回路号
     * @param mAreaNum //场景 区域号
     * @param mAreaSceneNum //场景 当前区域场景号
     * @param mChannelRemark
     * @param parentRemarks
     * @param bSaveAndCallBack 是否马上保存本地并且推送DevicesInfoEvent 事件
     * @return
     */
    public static DevicesData addLogicScenesDevicesListWithoutSearching(int port, int mSubnetID, int mDeviceID, int mChannelNum, int mAreaNum, int mAreaSceneNum, String mChannelRemark, String parentRemarks, boolean bSaveAndCallBack) {
//        boolean bWantData = false;
        int bigType = Configuration.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, mChannelNum, 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, mChannelNum, 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;
        }
    }
}