| | |
| | | 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. |
| | |
| | | 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; |
| | |
| | | |
| | | 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()); |
| | | } |
| | | } |
| | | } |
| | |
| | | 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; |
| | |
| | | case Configuration.AIR_BIG_TYPE: |
| | | switch (littleType) { |
| | | case 0: |
| | | isWant = true; |
| | | break; |
| | | case 3: |
| | | case 100: |
| | | isWant = true; |
| | | break; |
| | | default: |
| | |
| | | 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; |
| | |
| | | appliancesInfo.setDeviceType(HDLApConfig.TYPE_LIGHT_RELAY); |
| | | break; |
| | | case 2: |
| | | appliancesInfo.setDeviceName("逻辑灯控制"); |
| | | appliancesInfo.setDeviceName("逻辑灯控制CCT"); |
| | | appliancesInfo.setDeviceType(HDLApConfig.TYPE_LIGHT_CCT); |
| | | break; |
| | | case 3: |
| | | appliancesInfo.setDeviceName("逻辑灯RGB"); |
| | | appliancesInfo.setDeviceType(HDLApConfig.TYPE_LIGHT_RGB); |
| | | break; |
| | | case 4: |
| | | appliancesInfo.setDeviceName("逻辑灯RGBW"); |
| | |
| | | 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("混合调光类"); |
| | |
| | | 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); |
| | |
| | | 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; |
| | |
| | | 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); |
| | |
| | | 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("带PI运算的地热面板"); |
| | | // 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 |
| | |
| | | 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; |
| | |
| | | |
| | | |
| | | /** |
| | | * |
| | | * 添加设备回路 |
| | | * 如果存在相同子网号 设备号,则当成混合模块添加到该回路下,不存在则新添加模块 |
| | | * |
| | | * @param bigType |
| | | * @param littleType |
| | | * @param mSubnetID |