package com.hdl.sdk.hdl_core.HDLDeviceManger.Parser; import com.hdl.sdk.hdl_core.Config.Configuration; import com.hdl.sdk.hdl_core.HDLAppliances.Config.HDLApConfig; 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; import com.hdl.sdk.hdl_core.HDLDeviceManger.Core.HandleSearch; import com.hdl.sdk.hdl_core.Util.LogUtil.HDLLog; import java.util.ArrayList; import java.util.List; /** * Created by djl on 2017/3/29. */ public class DeviceParser { /** * 处理解析、设置某一回路的所有信息 * * @param addBytes * @param port * @param ipAddress * @param devicesData * @param parentRemarks * @return 172.168.52.51 固件版本号2018/08/29 */ public static boolean parse(byte[] addBytes, int port, String ipAddress, DevicesData devicesData, String parentRemarks) { boolean isExitData = false; int residue = addBytes.length - 22; int sumCount = residue / 3;//记录总共有多少种设备 List appliancesInfoList = new ArrayList<>(); if (sumCount == 0) { AppliancesInfo appliancesInfo = new AppliancesInfo(); appliancesInfo.setDeviceName(Configuration.UNKNOW_TYPE); appliancesInfoList.add(appliancesInfo); } int curCount = 0;//循环遍历所有设备次数 while (curCount < sumCount) { int bigType = addBytes[21 + (2 * curCount) + (curCount + 1)] & 0xFF; int littleType = addBytes[21 + (2 * curCount) + (curCount + 2)] & 0xFF; int channelNum = addBytes[21 + (2 * curCount) + (curCount + 3)] & 0xFF; curCount++; int curChannelNum = 0; while (curChannelNum < channelNum) { curChannelNum++; if (isWantData(bigType, littleType)) { AppliancesInfo appliancesInfo = new AppliancesInfo(); switch (bigType) { case Configuration.LIGTH_BIG_TYPE: parseLightData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, port, ipAddress); break; case Configuration.CURTAIN_BIG_TYPE: parseCurtainData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, port, ipAddress); break; case Configuration.AIR_BIG_TYPE: parseAirData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, port, ipAddress); break; case Configuration.AUDIO_BIG_TYPE: parseAudioData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, port, ipAddress); break; case Configuration.LOGIC_BIG_TYPE: parseLogicData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, port, ipAddress); break; case Configuration.GLOBAL_LOGIC_BIG_TYPE: parseGlobalLogicData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, port, ipAddress); break; case Configuration.SENSOR_BIG_TYPE: parseSensorData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, port, ipAddress); break; //2019-07-08 新增地热和新风类 case Configuration.GEOTHERMAL_BIG_TYPE://地热 parseGeothermalData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, port, ipAddress); break; case Configuration.FRESH_AIR_BIG_TYPE: parseFreshAirData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, port, ipAddress); break; default: // appliancesInfo.setDeviceName(Configuration.UNKNOW_TYPE); break; } isExitData = true; String key = "K" + appliancesInfo.getBigType() + "-" + appliancesInfo.getLittleType() + "-" + appliancesInfo.getDeviceSubnetID() + "-" + appliancesInfo.getDeviceDeviceID() + "-" + appliancesInfo.getChannelNum(); appliancesInfo.setDeviceKey(key);//2019-8-2 添加唯一标识key appliancesInfoList.add(appliancesInfo); } else { HDLLog.info( "不是要添加的设备:大类:" + bigType + " 小类:" + littleType); } } } if (isExitData && devicesData != null) { devicesData.setAppliancesInfoList(appliancesInfoList); } return isExitData; } /** * 判断是否支持的设备,若不是支持设备则过滤掉。 * * @param bigType * @param littleType * @return */ private static boolean isWantData(int bigType, int littleType) { // HDLLog.info("isWantData:bigType:" + bigType + "littleType:" + littleType); boolean isWant; switch (bigType) { case Configuration.LIGTH_BIG_TYPE: switch (littleType) { case 0: isWant = true; break; case 1: isWant = true; break; case 9: isWant = true; break; case 10: isWant = true; break; default: isWant = false; break; } break; case Configuration.CURTAIN_BIG_TYPE: switch (littleType) { case 0: isWant = true; break; case 1: isWant = true; break; case 2: isWant = true; break; default: isWant = false; break; } break; case Configuration.AIR_BIG_TYPE: switch (littleType) { case 0: isWant = true; break; case 3: isWant = true; break; default: isWant = false; break; } break; case Configuration.AUDIO_BIG_TYPE: switch (littleType) { case 0: isWant = true; break; // case 1: // isWant = true; // break; // case 3: // isWant = true; // break; default: isWant = false; break; } break; case Configuration.SENSOR_BIG_TYPE: if (littleType >= 0 && littleType <= 24) { isWant = true; } else { isWant = false; } break; case Configuration.LOGIC_BIG_TYPE: switch (littleType) { case 0: isWant = true; break; default: isWant = false; break; } break; case Configuration.GLOBAL_LOGIC_BIG_TYPE: switch (littleType) { case 0: isWant = true; break; default: isWant = false; break; } break; case Configuration.GEOTHERMAL_BIG_TYPE://20190711 新增 switch (littleType) { case Configuration.GEOTHERMAL_LITTLE_TYPE_0: isWant = true; break; default: isWant = false; break; } break; case Configuration.FRESH_AIR_BIG_TYPE: switch (littleType) { case Configuration.FRESH_AIR_LITTLE_TYPE_0: isWant = true; break; default: isWant = false; break; } break; default: isWant = false; break; } return isWant; } private static void parseLightData(int littleType, AppliancesInfo appliancesInfo, DevicesData devicesData, String parentRemarks, int channelNum, int port, String ipAddress) { switch (littleType) { case 0: appliancesInfo.setDeviceName("调光回路"); appliancesInfo.setDeviceType(HDLApConfig.TYPE_LIGHT_DIMMER); break; case 1: appliancesInfo.setDeviceName("开关回路"); appliancesInfo.setDeviceType(HDLApConfig.TYPE_LIGHT_RELAY); break; case 2: appliancesInfo.setDeviceName("逻辑灯控制"); break; case 3: appliancesInfo.setDeviceName("逻辑灯RGB"); break; case 4: appliancesInfo.setDeviceName("逻辑灯RGBW"); break; case 5: appliancesInfo.setDeviceName("逻辑灯RGB+CCT"); break; case 6: appliancesInfo.setDeviceName("混合类 Dimmer+Relay"); break; case 7: appliancesInfo.setDeviceName("DALI"); break; case 8: appliancesInfo.setDeviceName("自定义逻辑灯"); break; case 9: appliancesInfo.setDeviceName("混合调光类"); appliancesInfo.setDeviceType(HDLApConfig.TYPE_LIGHT_MIX_DIMMER); break; case 10: appliancesInfo.setDeviceName("混合开关类"); appliancesInfo.setDeviceType(HDLApConfig.TYPE_LIGHT_MIX_RELAY); break; default: appliancesInfo.setDeviceName(Configuration.UNKNOW_TYPE); break; } if (devicesData != null) { 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); appliancesInfo.setDeviceSubnetID(devicesData.getSourceSubnetID()); appliancesInfo.setDeviceDeviceID(devicesData.getSourceDeviceID()); appliancesInfo.setParentRemarks(parentRemarks); appliancesInfo.setPort(port); appliancesInfo.setIpAddress(ipAddress); } } private static void parseCurtainData(int littleType, AppliancesInfo appliancesInfo, DevicesData devicesData, String parentRemarks, int channelNum, int port, String ipAddress) { switch (littleType) { case 0: appliancesInfo.setDeviceName("开合帘电机"); appliancesInfo.setDeviceType(HDLApConfig.TYPE_CURTAIN_GLYSTRO); break; case 1: appliancesInfo.setDeviceName("卷帘电机"); appliancesInfo.setDeviceType(HDLApConfig.TYPE_CURTAIN_ROLLER); break; case 2: appliancesInfo.setDeviceName("窗帘模块"); appliancesInfo.setDeviceType(HDLApConfig.TYPE_CURTAIN_MODULE); break; default: appliancesInfo.setDeviceName(Configuration.UNKNOW_TYPE); break; } if (devicesData != null) { appliancesInfo.setChannelNum(channelNum); appliancesInfo.setBigType(Configuration.CURTAIN_BIG_TYPE); appliancesInfo.setLittleType(littleType); appliancesInfo.setCtrlCommand(Configuration.CURTAIN_CTRL_COMMAND); appliancesInfo.setCtrlBackCommand(Configuration.CURTAIN_CTRL_BACK_COMMAND); appliancesInfo.setStateCommand(Configuration.CURTAIN_STATE_COMMAND); appliancesInfo.setStateBackCommand(Configuration.CURTAIN_STATE_BACK_COMMAND); appliancesInfo.setDeviceSubnetID(devicesData.getSourceSubnetID()); appliancesInfo.setDeviceDeviceID(devicesData.getSourceDeviceID()); appliancesInfo.setParentRemarks(parentRemarks); appliancesInfo.setPort(port); appliancesInfo.setIpAddress(ipAddress); } } private static void parseAirData(int littleType, AppliancesInfo appliancesInfo, DevicesData devicesData, String parentRemarks, int channelNum, int port, String ipAddress) { switch (littleType) { case 0: appliancesInfo.setDeviceName("HVAC 模块"); appliancesInfo.setDeviceType(HDLApConfig.TYPE_AC_HVAC); break; case 1: appliancesInfo.setDeviceName("Coolmaster 控制模块"); appliancesInfo.setDeviceType(HDLApConfig.TYPE_AC_COOLMASTER); break; case 2: appliancesInfo.setDeviceName("红外空调模块"); appliancesInfo.setDeviceType(HDLApConfig.TYPE_AC_INFRARED); break; case 3: appliancesInfo.setDeviceName("通用空调面板"); appliancesInfo.setDeviceType(HDLApConfig.TYPE_AC_PANEL); break; default: appliancesInfo.setDeviceName(Configuration.UNKNOW_TYPE); break; } if (devicesData != null) { appliancesInfo.setChannelNum(channelNum); appliancesInfo.setBigType(Configuration.AIR_BIG_TYPE); appliancesInfo.setLittleType(littleType); appliancesInfo.setDeviceSubnetID(devicesData.getSourceSubnetID()); appliancesInfo.setDeviceDeviceID(devicesData.getSourceDeviceID()); appliancesInfo.setParentRemarks(parentRemarks); appliancesInfo.setPort(port); appliancesInfo.setIpAddress(ipAddress); if (littleType == 0) { appliancesInfo.setCtrlCommand(Configuration.AIR_HVAC_CTRL_COMMAND); appliancesInfo.setCtrlBackCommand(Configuration.AIR_HVAC_CTRL_BACK_COMMAND); // appliancesInfo.setStateCommand(Configuration.AIR_HVAC_STATE_COMMAND); appliancesInfo.setStateBackCommand(Configuration.AIR_HVAC_STATE_BACK_COMMAND); } else { appliancesInfo.setCtrlCommand(Configuration.AIR_CTRL_COMMAND); appliancesInfo.setCtrlBackCommand(Configuration.AIR_CTRL_BACK_COMMAND); appliancesInfo.setStateCommand(Configuration.AIR_STATE_COMMAND); appliancesInfo.setStateBackCommand(Configuration.AIR_STATE_BACK_COMMAND); } } } private static void parseAudioData(int littleType, AppliancesInfo appliancesInfo, DevicesData devicesData, String parentRemarks, int channelNum, int port, String ipAddress) { switch (littleType) { case 0: appliancesInfo.setDeviceName("背景音乐模块"); appliancesInfo.setDeviceType(HDLApConfig.TYPE_MUSIC_MODULE); break; case 1: appliancesInfo.setDeviceName("第三方背景音乐模块"); appliancesInfo.setDeviceType(HDLApConfig.TYPE_MUSIC_THIRD_PARTY_MODULE); break; case 3: appliancesInfo.setDeviceName("2018新背景音乐模块"); appliancesInfo.setDeviceType(HDLApConfig.TYPE_MUSIC_NEW_MODULE); break; default: break; } if (devicesData != null) { appliancesInfo.setChannelNum(channelNum); appliancesInfo.setBigType(Configuration.AUDIO_BIG_TYPE); appliancesInfo.setLittleType(littleType); appliancesInfo.setCtrlCommand(Configuration.AUDIO_CTRL_READ_COMMAND); appliancesInfo.setCtrlBackCommand(Configuration.AUDIO_CTRL_READ_BACK_COMMAND); appliancesInfo.setStateCommand(Configuration.AUDIO_MenuPlay_INSTRUCTION_COMMAND); appliancesInfo.setStateBackCommand(Configuration.AUDIO_MenuPlay_INSTRUCTION_BACK_COMMAND); appliancesInfo.setDeviceSubnetID(devicesData.getSourceSubnetID()); appliancesInfo.setDeviceDeviceID(devicesData.getSourceDeviceID()); appliancesInfo.setParentRemarks(parentRemarks); appliancesInfo.setPort(port); appliancesInfo.setIpAddress(ipAddress); } } private static void parseLogicData(int littleType, AppliancesInfo appliancesInfo, DevicesData devicesData, String parentRemarks, int channelNum, int port, String ipAddress) { switch (littleType) { case 0: appliancesInfo.setDeviceName("逻辑模块"); appliancesInfo.setDeviceType(HDLApConfig.TYPE_LOGIC_MODULE); break; default: appliancesInfo.setDeviceName(Configuration.UNKNOW_TYPE); break; } if (devicesData != null) { appliancesInfo.setChannelNum(channelNum); appliancesInfo.setBigType(Configuration.LOGIC_BIG_TYPE); appliancesInfo.setLittleType(littleType); appliancesInfo.setCtrlCommand(Configuration.LOGIC_CTRL_COMMAND); appliancesInfo.setCtrlBackCommand(Configuration.LOGIC_CTRL_BACK_COMMAND); appliancesInfo.setStateCommand(Configuration.LOGIC_STATE_COMMAND); appliancesInfo.setStateBackCommand(Configuration.LOGIC_STATE_BACK_COMMAND); appliancesInfo.setDeviceSubnetID(devicesData.getSourceSubnetID()); appliancesInfo.setDeviceDeviceID(devicesData.getSourceDeviceID()); appliancesInfo.setParentRemarks(parentRemarks); appliancesInfo.setPort(port); appliancesInfo.setIpAddress(ipAddress); } } private static void parseGlobalLogicData(int littleType, AppliancesInfo appliancesInfo, DevicesData devicesData, String parentRemarks, int channelNum, int port, String ipAddress) { switch (littleType) { case 0: appliancesInfo.setDeviceName("全局逻辑模块"); appliancesInfo.setDeviceType(HDLApConfig.TYPE_GLOBAL_LOGIC_MODULE); break; default: appliancesInfo.setDeviceName(Configuration.UNKNOW_TYPE); break; } if (devicesData != null) { appliancesInfo.setChannelNum(channelNum); appliancesInfo.setBigType(Configuration.GLOBAL_LOGIC_BIG_TYPE); appliancesInfo.setLittleType(littleType); appliancesInfo.setCtrlCommand(Configuration.LOGIC_CTRL_COMMAND); appliancesInfo.setCtrlBackCommand(Configuration.LOGIC_CTRL_BACK_COMMAND); appliancesInfo.setStateCommand(Configuration.LOGIC_STATE_COMMAND); appliancesInfo.setStateBackCommand(Configuration.LOGIC_STATE_BACK_COMMAND); appliancesInfo.setDeviceSubnetID(devicesData.getSourceSubnetID()); appliancesInfo.setDeviceDeviceID(devicesData.getSourceDeviceID()); appliancesInfo.setParentRemarks(parentRemarks); appliancesInfo.setPort(port); appliancesInfo.setIpAddress(ipAddress); } } private static void parseSensorData(int littleType, AppliancesInfo appliancesInfo, DevicesData devicesData, String parentRemarks, int curChannelNum, int port, String ipAddress) { switch (littleType) { case 0: appliancesInfo.setDeviceName("传感器 干结点"); appliancesInfo.setDeviceType(HDLApConfig.TYPE_SENSOR_DRY_CONTACT); break; case 1: appliancesInfo.setDeviceName("传感器 移动探测"); appliancesInfo.setDeviceType(HDLApConfig.TYPE_SENSOR_MOVEMENT_DETECTOR); break; case 2: appliancesInfo.setDeviceName("传感器 温度"); appliancesInfo.setDeviceType(HDLApConfig.TYPE_SENSOR_TEMP); break; case 3: appliancesInfo.setDeviceName("传感器 湿度"); appliancesInfo.setDeviceType(HDLApConfig.TYPE_SENSOR_HUMIDITY); break; case 4: appliancesInfo.setDeviceName("传感器 照度"); appliancesInfo.setDeviceType(HDLApConfig.TYPE_SENSOR_ILLUMINACE); break; case 5: appliancesInfo.setDeviceName("传感器 VOC"); appliancesInfo.setDeviceType(HDLApConfig.TYPE_SENSOR_VOC); break; case 6: appliancesInfo.setDeviceName("传感器 PM2.5"); appliancesInfo.setDeviceType(HDLApConfig.TYPE_SENSOR_PM_2_POINT_5); break; case 7: appliancesInfo.setDeviceName("传感器 CO2"); appliancesInfo.setDeviceType(HDLApConfig.TYPE_SENSOR_C02); break; case 8: appliancesInfo.setDeviceName("传感器 液化石油气"); appliancesInfo.setDeviceType(HDLApConfig.TYPE_SENSOR_LPG); break; case 9: appliancesInfo.setDeviceName("传感器 人工煤气(CO,H2"); appliancesInfo.setDeviceType(HDLApConfig.TYPE_SENSOR_CO_H2); break; case 10: appliancesInfo.setDeviceName("传感器 天然气(CH4)"); appliancesInfo.setDeviceType(HDLApConfig.TYPE_SENSOR_CH4); break; case 11: appliancesInfo.setDeviceName("传感器 烟雾"); appliancesInfo.setDeviceType(HDLApConfig.TYPE_SENSOR_SMOG); break; case 12: appliancesInfo.setDeviceName("传感器 风速"); appliancesInfo.setDeviceType(HDLApConfig.TYPE_SENSOR_WIND_SPEED); break; case 13: appliancesInfo.setDeviceName("传感器 风压"); appliancesInfo.setDeviceType(HDLApConfig.TYPE_SENSOR_WIND_PRESSURE); break; case 14: appliancesInfo.setDeviceName("传感器 液体流量"); appliancesInfo.setDeviceType(HDLApConfig.TYPE_SENSOR_LIQUID_FLOW); break; case 15: appliancesInfo.setDeviceName("传感器 液体压力"); appliancesInfo.setDeviceType(HDLApConfig.TYPE_SENSOR_LIQUID_PRESSURE); break; case 16: appliancesInfo.setDeviceName("传感器 液体深度 "); appliancesInfo.setDeviceType(HDLApConfig.TYPE_SENSOR_LIQUID_DEPTH); break; case 17: appliancesInfo.setDeviceName("传感器 雨量"); appliancesInfo.setDeviceType(HDLApConfig.TYPE_SENSOR_RAIN_FALL); break; case 18: appliancesInfo.setDeviceName("传感器 重量"); appliancesInfo.setDeviceType(HDLApConfig.TYPE_SENSOR_WEIGHT); break; case 19: appliancesInfo.setDeviceName("传感器 高度/长度"); appliancesInfo.setDeviceType(HDLApConfig.TYPE_SENSOR_HEIGHT_LENGTH); break; case 20: appliancesInfo.setDeviceName("传感器 物体速度"); appliancesInfo.setDeviceType(HDLApConfig.TYPE_SENSOR_OBJECT_SPEED); break; case 21: appliancesInfo.setDeviceName("传感器 震动"); appliancesInfo.setDeviceType(HDLApConfig.TYPE_SENSOR_SHAKE); break; case 22: appliancesInfo.setDeviceName("传感器 电压"); appliancesInfo.setDeviceType(HDLApConfig.TYPE_SENSOR_VOLTAGE); break; case 23: appliancesInfo.setDeviceName("传感器 电流"); appliancesInfo.setDeviceType(HDLApConfig.TYPE_SENSOR_ELECTRICITY); break; case 24: appliancesInfo.setDeviceName("传感器 功率"); appliancesInfo.setDeviceType(HDLApConfig.TYPE_SENSOR_POWER); break; default: appliancesInfo.setDeviceName(Configuration.UNKNOW_TYPE); break; } if (devicesData != null) { 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); appliancesInfo.setPort(port); appliancesInfo.setIpAddress(ipAddress); } } /** *地热 */ private static void parseGeothermalData(int littleType, AppliancesInfo appliancesInfo, DevicesData devicesData, String parentRemarks, int channelNum, int port, String ipAddress) { switch (littleType) { case Configuration.GEOTHERMAL_LITTLE_TYPE_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; 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); // if (littleType == 1) { // appliancesInfo.setCtrlCommand(Configuration.GEOTHERMAL_MODULE_PANEL_CTRL_COMMAND); // appliancesInfo.setCtrlBackCommand(Configuration.GEOTHERMAL_MODULE_PANEL_CTRL_BACK_COMMAND); // appliancesInfo.setStateCommand(Configuration.GEOTHERMAL_MODULE_PANEL_STATE_COMMAND); // appliancesInfo.setStateBackCommand(Configuration.GEOTHERMAL_MODULE_PANEL_STATE_BACK_COMMAND); // } else if(littleType == 2) { // appliancesInfo.setCtrlCommand(Configuration.GEOTHERMAL_MODULE_PI_CTRL_COMMAND); // appliancesInfo.setCtrlBackCommand(Configuration.GEOTHERMAL_MODULE_PI_CTRL_BACK_COMMAND); // appliancesInfo.setStateCommand(Configuration.GEOTHERMAL_MODULE_PI_STATE_COMMAND); // appliancesInfo.setStateBackCommand(Configuration.GEOTHERMAL_MODULE_PI_STATE_BACK_COMMAND); // // } else { // 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 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); 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.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); appliancesInfo.setDeviceSubnetID(devicesData.getSourceSubnetID()); appliancesInfo.setDeviceDeviceID(devicesData.getSourceDeviceID()); appliancesInfo.setParentRemarks(parentRemarks); appliancesInfo.setPort(port); appliancesInfo.setIpAddress(ipAddress); } } /** * * @param bigType * @param littleType * @param mSubnetID * @param mDeviceID * @param parentRemarks * @return */ public static DevicesData addDevicesManuallyWithoutSearchingAll(int bigType, int littleType, int mSubnetID, int mDeviceID, int port, String parentRemarks, ArrayList parentRemarksList) { boolean bWantData = false; DevicesData devicesData = new DevicesData(); devicesData.setSourceSubnetID(mSubnetID); devicesData.setSourceDeviceID(mDeviceID); devicesData.setRemark(parentRemarks); List appliancesInfoList = new ArrayList<>(); if (isWantData(bigType, littleType)) { for(int i = 0; i