From 566ddb2ea03e2514de50f2ca861a2674f6e840ac Mon Sep 17 00:00:00 2001 From: 562935844@qq.com Date: 星期一, 27 十一月 2023 13:32:27 +0800 Subject: [PATCH] 新增科技系统、门锁、新风和地暖支持 --- HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Core/HDLDeviceManager.java | 1126 ++++++++++++++++++++++++++++++++-------------------------- 1 files changed, 618 insertions(+), 508 deletions(-) diff --git a/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Core/HDLDeviceManager.java b/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Core/HDLDeviceManager.java index b2ab1a2..89e0cdd 100644 --- a/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Core/HDLDeviceManager.java +++ b/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Core/HDLDeviceManager.java @@ -3,23 +3,39 @@ import android.content.Context; import android.content.Intent; import android.text.TextUtils; +import android.util.Log; import com.google.gson.Gson; import com.google.gson.JsonSyntaxException; import com.google.gson.reflect.TypeToken; import com.hdl.sdk.ttl.Config.MCUConstants; import com.hdl.sdk.ttl.HDLAppliances.HDLAirCondition.AirHVACBackInfo; +import com.hdl.sdk.ttl.HDLAppliances.HDLAirCondition.AirTechSysBackInfo; import com.hdl.sdk.ttl.HDLAppliances.HDLCommonSwitch.CommonSwitchBackInfo; +import com.hdl.sdk.ttl.HDLAppliances.HDLDoorMachine.DoorMachineBackInfo; +import com.hdl.sdk.ttl.HDLAppliances.HDLDoorMachine.DoorMachineFristBackInfo; +import com.hdl.sdk.ttl.HDLAppliances.HDLDoorMachine.DoorMachineWaringBackInfo; +import com.hdl.sdk.ttl.HDLAppliances.HDLFreshAir.FreshAirBackInfo; +import com.hdl.sdk.ttl.HDLAppliances.HDLFreshAir.FreshAirJinMaoBackInfo; +import com.hdl.sdk.ttl.HDLAppliances.HDLGeothermal.GeothermalBackInfo; +import com.hdl.sdk.ttl.HDLAppliances.HDLLight.ColourLightCtrlBackInfo; import com.hdl.sdk.ttl.HDLAppliances.HDLSecurity.SecurityBackInfo; import com.hdl.sdk.ttl.HDLAppliances.HDLSensor.DryContactSensorBackEvent; import com.hdl.sdk.ttl.HDLAppliances.HDLSensor.SensorStateBackInfo; import com.hdl.sdk.ttl.HDLDeviceManger.Bean.MCUConfigurationBean; import com.hdl.sdk.ttl.HDLDeviceManger.Bean.MCUDataBean; import com.hdl.sdk.ttl.HDLDeviceManger.EventBusEvent.AirHVACFeedBackEvent; +import com.hdl.sdk.ttl.HDLDeviceManger.EventBusEvent.AirTechSysFeedBackEvent; +import com.hdl.sdk.ttl.HDLDeviceManger.EventBusEvent.ColourLightFeedBackEvent; import com.hdl.sdk.ttl.HDLDeviceManger.EventBusEvent.CommonSwitchCtrlBackEvent; import com.hdl.sdk.ttl.HDLDeviceManger.EventBusEvent.CommonSwitchStateBackEvent; import com.hdl.sdk.ttl.HDLDeviceManger.EventBusEvent.DiscoverNewDevicesEvent; +import com.hdl.sdk.ttl.HDLDeviceManger.EventBusEvent.DoorMachineFeedBackEvent; +import com.hdl.sdk.ttl.HDLDeviceManger.EventBusEvent.DoorMachineFeedFristBackEvent; import com.hdl.sdk.ttl.HDLDeviceManger.EventBusEvent.EventCode; +import com.hdl.sdk.ttl.HDLDeviceManger.EventBusEvent.FreshAirFeedBackEvent; +import com.hdl.sdk.ttl.HDLDeviceManger.EventBusEvent.FreshAirJinMaoFeedBackEvent; +import com.hdl.sdk.ttl.HDLDeviceManger.EventBusEvent.GeothermalFeedBackEvent; import com.hdl.sdk.ttl.HDLDeviceManger.EventBusEvent.MCUFeedBackEvent; import com.hdl.sdk.ttl.HDLDeviceManger.EventBusEvent.SecurityAlarmFeedBackEvent; import com.hdl.sdk.ttl.HDLDeviceManger.EventBusEvent.SecurityArmingFeedBackEvent; @@ -138,6 +154,7 @@ * @param commandType 鍛戒护绫诲瀷 */ public static void handle(UdpDataBean getDatas, int commandType) { + Log.e("panlili", "commandType=" + Integer.toHexString(commandType)+" desDeviceID=" + getDatas.desDeviceID + " sourceDeviceID=" + getDatas.sourceDeviceID); switch (commandType) { case Configuration.DEVICES_SEARCH_BACK_COMMAND: if (HandleSearch.isGetRcuIp) { @@ -157,6 +174,40 @@ } } break; + /***2020-07-20 鏂板鏂伴璁惧**/ + case Configuration.FRESH_AIR_STATE_BACK_COMMAND: + handleFreshAirStateData(getDatas); + break; + case Configuration.FRESH_AIR_CTRL_BACK_COMMAND: + handleFreshAirCtrlBackData(getDatas); + break; + /***2020-07-20 閲戣寕鏂伴璁惧**/ + case Configuration.FRESH_AIR_JINMAO_STATE_BACK_COMMAND: + handleFreshAirJINMAOStateData(getDatas); + break; + case Configuration.FRESH_AIR_JINMAO_CTRL_BACK_COMMAND: + handleFreshAirJINMAOCtrlBackData(getDatas); + break; + /***2020-07-20 鍦扮儹妯″潡**/ + case Configuration.GEOTHERMAL_MODULE_STATE_BACK_COMMAND: + handleGeothermalStateData(getDatas); + break; + case Configuration.GEOTHERMAL_MODULE_CTRL_BACK_COMMAND: + handleGeothermalCtrlData(getDatas); + break; + /***2023-08-22 闂ㄩ攣妯″潡**/ + case Configuration.DOOR_MACHINE_MODULE_STATE_BACK_COMMAND: + handleDoorMachineStateData(getDatas); + break; + case Configuration.DOOR_MACHINE_MODULE_CTRL_FRIST_BACK_COMMAND: + handleDoorMachineCtrlFristBackData(getDatas); + break; + case Configuration.DOOR_MACHINE_MODULE_CTRL_BACK_COMMAND: + handleDoorMachineCtrlBackData(getDatas); + break; + case Configuration.DOOR_MACHINE_BROADCAST_STATE_BACK_COMMAND: + handleDoorMachineBroadcastStateData(getDatas); + break; /***2020-04-01 鏂板閫氱敤寮�鍏�**/ case Configuration.COMMON_SWITCH_CTRL_BACK_COMMAND: handleCommonSwitchCtrlData(getDatas); @@ -171,8 +222,12 @@ case Configuration.LOGIC_CTRL_BACK_COMMAND: handleCtrlData(getDatas); break; + case Configuration.LIGHT_RGB_CTRL_BACK_COMMAND: + handleColourLightStateData(getDatas); + break; case Configuration.AIR_HVAC_CTRL_BACK_COMMAND: handleHVACCtrlData(getDatas); + handleTechSysCtrlData(getDatas);//2023-08-21 break; case Configuration.SECURITY_ARMING_CTRL_BACK_COMMAND://20190729鏂板 case Configuration.SECURITY_ALARM_CTRL_BACK_COMMAND://鎶ヨ璁剧疆鍙嶉 @@ -192,8 +247,6 @@ handleAirStateData(getDatas); break; case Configuration.SENSOR_STATE_BACK_COMMAND: - handleSensorBroadcastStateData(getDatas); - break; case Configuration.SENSOR_BROADCAST_STATE_BACK_COMMAND: handleSensorBroadcastStateData(getDatas); break; @@ -201,11 +254,15 @@ case Configuration.DRY_CONTACT_BROADCAST_STATE_COMMAND: handleDryContactBroadcastStateData(getDatas); break; - case Configuration.LIGHT_STATE_BACK_COMMAND: handleLightStateData(getDatas); + break; + case Configuration.LIGHT_RGB_STATE_BACK_COMMAND: + handleColourLightStateData(getDatas);//2023-08-22 + break; case Configuration.CURTAIN_STATE_BACK_COMMAND: handleCurtainStateData(getDatas); + break; case Configuration.CURTAIN_STATE_BROADCAST_BACK_COMMAND: handleCurtainBroadcastStateData(getDatas); break; @@ -214,7 +271,9 @@ break; case Configuration.AIR_HVAC_STATE_BACK_COMMAND: // handleRcuAirCastData(getDatas); + HDLLog.I("鍙戦�佺涓�娆″灞呮悳绱�"); handleHVACStateData(getDatas);//2019-06-27 + handleTechSysStateData(getDatas);//2023-08-21 break; case Configuration.LOGIC_STATE_BACK_COMMAND: // handleRcuAirCastData(getDatas); @@ -451,6 +510,40 @@ } + /** + * 澶勭悊CCT OR RGB鐏厜杩斿洖 + * 2023-8-22 + * + * @param getDatas + */ + private static void handleColourLightCtrlData(UdpDataBean getDatas) { + outter: + for (int i = 0, len = devicesDataList.size(); i < len; i++) { + if (devicesDataList.get(i).getSourceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getSourceDeviceID() == getDatas.sourceDeviceID + ) { + List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); + for (int j = 0, len2 = infos.size(); j < len2; j++) { + if (infos.get(j).getChannelNum() == (getDatas.addBytes[0] & 0xFF)) { + AppliancesInfo lightInfo = infos.get(j); + devicesDataList.get(i).getAppliancesInfoList().get(j).setCurState(getDatas.addBytes[2] & 0xFF); + devicesDataList.get(i).getAppliancesInfoList().get(j).setIntCurState(getDatas.addBytes[2] & 0xFF); + LightCtrlBackInfo info = new LightCtrlBackInfo(); + info.setParentRemarks(lightInfo.getParentRemarks()); + info.setAppliancesInfo(lightInfo); + info.setRemarks(lightInfo.getRemarks()); + info.setChannelNum(getDatas.addBytes[0] & 0xFF); + info.setBrightness(getDatas.addBytes[1] & 0xFF); + setDeviceCtrlSuccessStateWithInfo(infos.get(j), true); + EventBus.getDefault().post(new LightFeedBackEvent(info, true)); + break outter; + } + + } + } + } + } + /** * 澶勭悊璁惧鎺у埗鏁版嵁 @@ -464,62 +557,6 @@ break; case Configuration.CURTAIN_CTRL_BACK_COMMAND: -// if (TextUtils.isEmpty(HandleSearch.rcuIp)){ -// -// }else{ -// AppliancesInfo curtainInfo = new AppliancesInfo(); -// for (int i = 0, len = devicesDataList.size(); i < len; i++) { -// if (devicesDataList.get(i).getSourceSubnetID() == getDatas.sourceSubnetID -// && devicesDataList.get(i).getSourceDeviceID() == getDatas.sourceDeviceID -// ) { -// List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); -// for (int j = 0, len2 = infos.size(); j < len2; j++) { -// if (infos.get(j).getBigType() == Configuration.CURTAIN_BIG_TYPE -// && infos.get(j).getChannelNum() == (getDatas.addBytes[1] & 0xFF)) { -// for (int k = 0; k < rcuCurtainList.size(); k++) { -// if (devicesDataList.get(i).getAppliancesInfoList().get(j).getChannelNum() == rcuCurtainList.get(k).getChanelNum() -// && devicesDataList.get(i).getAppliancesInfoList().get(j).getLittleType() == rcuCurtainList.get(k).getLittleType() -// ) { -// int state; -// switch (getDatas.addBytes[2] & 0xFF) { -// case 0: -// state = CurtainCtrlParser.curtainPause; -// break; -// case 1: -// state = CurtainCtrlParser.curtainOn; -// break; -// case 2: -// state = CurtainCtrlParser.curtainOff; -// break; -// default: -// state = 0; -// break; -// } -// rcuCurtainList.get(k).setCurState(state); -// devicesDataList.get(i).getAppliancesInfoList().get(j).setCurState(getDatas.addBytes[2] & 0xFF); -//// HDLLog.I("鎺у埗 rcuCurtainList鍥炶矾鍙凤細"+rcuCurtainList.get(k).getChanelNum() -//// + " state = "+rcuCurtainList.get(k).getCurState() -//// ); -// } -// } -// -// curtainInfo = infos.get(j); -// } -// -// } -// } -// } -// CurtainCtrlBackInfo curtainCtrlBackInfo = new CurtainCtrlBackInfo(); -// curtainCtrlBackInfo.setRemarks(curtainInfo.getRemarks()); -// curtainCtrlBackInfo.setParentRemarks(curtainInfo.getParentRemarks()); -// curtainCtrlBackInfo.setAppliancesInfo(curtainInfo); -// curtainCtrlBackInfo.setNum(getDatas.addBytes[1] & 0xFF); -// curtainCtrlBackInfo.setState(getDatas.addBytes[2] & 0xFF); -// isCurtainCtrlSuccess = true; -// EventBus.getDefault().post(new CurtainFeedBackEvent(curtainCtrlBackInfo, true)); -// } - - outter: for (int i = 0, len = devicesDataList.size(); i < len; i++) { if (devicesDataList.get(i).getSourceSubnetID() == getDatas.sourceSubnetID @@ -707,193 +744,7 @@ } } } - - break; -// case Configuration.AIR_HVAC_CTRL_BACK_COMMAND: //2019-8-6 灞忚斀 -// outter: -// for (int devIndex = 0, len = devicesDataList.size(); devIndex < len; devIndex++) { -// if (devicesDataList.get(devIndex).getSourceSubnetID() == getDatas.sourceSubnetID -// && devicesDataList.get(devIndex).getSourceDeviceID() == getDatas.sourceDeviceID -// ) { -// List<AppliancesInfo> infos = devicesDataList.get(devIndex).getAppliancesInfoList(); -// for (int appIndex = 0, len2 = infos.size(); appIndex < len2; appIndex++) { -// if ((infos.get(appIndex).getDeviceType() == HDLApConfig.TYPE_AC_HVAC -// || infos.get(appIndex).getDeviceType() == HDLApConfig.TYPE_AC_COOLMASTER -// || infos.get(appIndex).getDeviceType() == HDLApConfig.TYPE_AC_INFRARED) -// && infos.get(appIndex).getChannelNum() == (getDatas.addBytes[0] & 0xFF)) { -//// String airbytes = "193b 闄勫姞鏁版嵁锛�"; -//// for (int i = 0; i < getDatas.addBytes.length; i++) { -//// airbytes += (getDatas.addBytes[i] & 0xff) + ","; -//// } -//// HDLLog.I( airbytes); -// AppliancesInfo airInfo = infos.get(appIndex); -// int indexI = devIndex; -// int indexJ = appIndex; -// -// final byte[] oldAirInfo; -//// HDLLog.I("KKKKKKDD"+(getDatas.addBytes[0] & 0xFF)); -// switch (getDatas.addBytes[0] & 0xFF) { -// case 1: -// oldAirInfo = air1Info; -// break; -// case 2: -// oldAirInfo = air2Info; -// break; -// case 3: -// oldAirInfo = air3Info; -// break; -// case 4: -// oldAirInfo = air4Info; -// break; -// default: -// oldAirInfo = new byte[1]; -// break; -// } -// byte[] newAirInfo = getDatas.addBytes; -// byte[] curAirInfo = new byte[]{0}; -// boolean isModeChange = false; -// if (oldAirInfo == null || oldAirInfo.length == 0) { -// return; -// } -// for (int oldAirInedx = 0; oldAirInedx < oldAirInfo.length; oldAirInedx++) { -// if (oldAirInedx == 0) { -// setDeviceCtrlSuccessStateWithInfo(infos.get(appIndex), true); -// if (oldAirInfo[0] != newAirInfo[8]) {//2019-8-2 鍘绘帀鐩稿悓寮�鍏崇姸鎬佸垽鏂�,瑙e喅寮�鐘舵�佷笅,璋冪敤寮�鍛戒护鐘舵�佷笅,涓嶅仠閲嶅彂闂 -// oldAirInfo[0] = newAirInfo[8]; -// curAirInfo = new byte[]{AirCtrlParser.airSwich, newAirInfo[8]}; -// if (curAirInfo.length > 1) { -// devicesDataList.get(indexI).getAppliancesInfoList().get(indexJ).setArrCurState(oldAirInfo); -// airInfo.setArrCurState(oldAirInfo); -// AirCtrlBackInfo airCtrlBackInfo = new AirCtrlBackInfo(); -// airCtrlBackInfo.setAppliancesInfo(airInfo); -// airCtrlBackInfo.setCurState(curAirInfo); -//// isACCtrlSuccess = true; -//// setDeviceCtrlSuccessStateWithInfo(infos.get(appIndex), true); -// EventBus.getDefault().post(new AirFeedBackEvent(airCtrlBackInfo, true)); -// -// } -// -// } -// } else if (oldAirInedx == 1) { -//// int mode = ((newAirInfo[4] & 0xf0) >> 4); -// int mode = newAirInfo[9] & 0xff; -// setDeviceCtrlSuccessStateWithInfo(infos.get(appIndex), true); -// if (oldAirInfo[1] != (byte) mode) { -// isModeChange = true; -// oldAirInfo[1] = (byte) mode; -// curAirInfo = new byte[]{AirCtrlParser.airMode, (byte) mode}; -// devicesDataList.get(indexI).getAppliancesInfoList().get(indexJ).setArrCurState(oldAirInfo); -// airInfo.setArrCurState(oldAirInfo); -// AirCtrlBackInfo airCtrlBackInfo = new AirCtrlBackInfo(); -// airCtrlBackInfo.setAppliancesInfo(airInfo); -// airCtrlBackInfo.setCurState(curAirInfo); -//// isACCtrlSuccess = true; -//// setDeviceCtrlSuccessStateWithInfo(infos.get(appIndex), true); -// EventBus.getDefault().post(new AirFeedBackEvent(airCtrlBackInfo, true)); -// -// } -// } else if (oldAirInedx == 2) { -// int mode = newAirInfo[9] & 0xff; -// byte newAirTem = newAirInfo[11]; -// setDeviceCtrlSuccessStateWithInfo(infos.get(appIndex), true); -// -// if (oldAirInfo[2] != newAirTem) { -// oldAirInfo[2] = newAirTem; -// switch (mode) { -// case 0: -// curAirInfo = new byte[]{AirCtrlParser.refTem, newAirTem}; -// break; -// case 1: -// curAirInfo = new byte[]{AirCtrlParser.heatTem, newAirTem}; -// break; -// case 3: -// curAirInfo = new byte[]{AirCtrlParser.autoTem, newAirTem}; -// break; -// case 4: -// curAirInfo = new byte[]{AirCtrlParser.dehumTem, newAirTem}; -// break; -// } -// if (curAirInfo.length > 1) { -// devicesDataList.get(indexI).getAppliancesInfoList().get(indexJ).setArrCurState(oldAirInfo); -// airInfo.setArrCurState(oldAirInfo); -// AirCtrlBackInfo airCtrlBackInfo = new AirCtrlBackInfo(); -// airCtrlBackInfo.setAppliancesInfo(airInfo); -// airCtrlBackInfo.setCurState(curAirInfo); -//// isACCtrlSuccess = true; -//// setDeviceCtrlSuccessStateWithInfo(infos.get(appIndex), true); -// EventBus.getDefault().post(new AirFeedBackEvent(airCtrlBackInfo, true)); -// -// } -// } -// } else if (oldAirInedx == 3) { -//// int speed = (newAirInfo[4] & 0x0f);//鑾峰彇浣�4浣� -// int speed = newAirInfo[10]; -// setDeviceCtrlSuccessStateWithInfo(infos.get(appIndex), true); -// if (oldAirInfo[3] != (byte) speed) { -// oldAirInfo[3] = (byte) speed; -// curAirInfo = new byte[]{AirCtrlParser.airSpeed, (byte) speed}; -// devicesDataList.get(indexI).getAppliancesInfoList().get(indexJ).setArrCurState(oldAirInfo); -// airInfo.setArrCurState(oldAirInfo); -// AirCtrlBackInfo airCtrlBackInfo = new AirCtrlBackInfo(); -// airCtrlBackInfo.setAppliancesInfo(airInfo); -// airCtrlBackInfo.setCurState(curAirInfo); -//// isACCtrlSuccess = true; -//// setDeviceCtrlSuccessStateWithInfo(infos.get(appIndex), true); -// EventBus.getDefault().post(new AirFeedBackEvent(airCtrlBackInfo, true)); -// -// } -// } -// } -// -// switch (getDatas.addBytes[0] & 0xFF) { -// case 1: -// air1Info = oldAirInfo; -// break; -// case 2: -// air2Info = oldAirInfo; -// break; -// case 3: -// air3Info = oldAirInfo; -// break; -// case 4: -// air4Info = oldAirInfo; -// break; -// } -// -// -//// if (curAirInfo.length > 1) { -////// if (isModeChange) { -////// isACCtrlSuccess = true; -////// getAirInfo(hvacInfo); -////// } else {f -////// airInfo.setArrCurState(oldAirInfo); -////// AirCtrlBackInfo airCtrlBackInfo = new AirCtrlBackInfo(); -////// airCtrlBackInfo.setAppliancesInfo(airInfo); -////// airCtrlBackInfo.setCurState(curAirInfo); -////// isACCtrlSuccess = true; -////// EventBus.getDefault().post(new AirFeedBackEvent(airCtrlBackInfo, true)); -////// } -//// -//// devicesDataList.get(indexI).getAppliancesInfoList().get(indexJ).setArrCurState(oldAirInfo); -//// airInfo.setArrCurState(oldAirInfo); -//// AirCtrlBackInfo airCtrlBackInfo = new AirCtrlBackInfo(); -//// airCtrlBackInfo.setAppliancesInfo(airInfo); -//// airCtrlBackInfo.setCurState(curAirInfo); -////// isACCtrlSuccess = true; -//// setDeviceCtrlSuccessStateWithInfo(infos.get(appIndex), true); -//// EventBus.getDefault().post(new AirFeedBackEvent(airCtrlBackInfo, true)); -//// -//// } -// -// -// break outter; -// } -// } -// } -// } -// -// break; case Configuration.LOGIC_CTRL_BACK_COMMAND: outter: for (int i = 0, len = devicesDataList.size(); i < len; i++) { @@ -1038,8 +889,6 @@ setDeviceCtrlSuccessStateWithInfo(infos.get(j), true); EventBus.getDefault().post(new AirHVACFeedBackEvent(info, true)); break outter; - } else { - HDLLog.E("鎺у埗HVAC鐘舵�佸弽棣堟暟鎹紓甯�"); } break outter; } @@ -1049,6 +898,43 @@ break; } + } + + + /** + * 澶勭悊绉戞妧绯荤粺 鎺у埗鍥炶皟 + * 2023-8-21 + * + * @param getDatas + */ + private static void handleTechSysCtrlData(UdpDataBean getDatas) { + switch (getDatas.command) { + case Configuration.AIR_HVAC_CTRL_BACK_COMMAND: + outter: + for (int i = 0, len = devicesDataList.size(); i < len; i++) { + if (devicesDataList.get(i).getSourceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getSourceDeviceID() == getDatas.sourceDeviceID) { + List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); + for (int j = 0, len2 = infos.size(); j < len2; j++) { + if (getDatas.addBytes.length > 0) { + if (infos.get(j).getBigType() == Configuration.AIR_BIG_TYPE + && infos.get(j).getDeviceType() == HDLApConfig.TYPE_AC_TECHSYS + && infos.get(j).getChannelNum() == (getDatas.addBytes[0] & 0xFF)) { + + devicesDataList.get(i).getAppliancesInfoList().get(j).setArrCurState(getDatas.addBytes); + AppliancesInfo mTechSysAirInfo = devicesDataList.get(i).getAppliancesInfoList().get(j); + AirTechSysBackInfo info = new AirTechSysBackInfo(mTechSysAirInfo); + setDeviceCtrlSuccessStateWithInfo(infos.get(j), true); + EventBus.getDefault().post(new AirTechSysFeedBackEvent(info, true)); + break outter; + } + } + } + break outter; + } + } + break; + } } @@ -1237,19 +1123,6 @@ String remarkStr = HDLStringUtils.byte2String(remarkByte); HDLLog.I("remarkStr鍥炶矾锛�" + remarkStr); - -// byte[] remark = new byte[20]; -// //纭欢鐨勫瓧鑺傛祦鍗忚鎻愪緵鏈夎锛屾敹鍒版煇纭欢鎻愪緵澶囨敞涓嶈冻20闀垮害锛岃В鍐宠繖闂鐨勬潈瀹滀箣璁� -// int length; -// if (getDatas.addBytes.length < 20) { -// length = getDatas.addBytes.length; -// } else { -// length = remark.length; -// } -// System.arraycopy(getDatas.addBytes, 3, remark, 0, length); - -// String remarkStr = HDLStringUtils.byte2String(remark); -// HDLLog.I("remarkStr鍥炶矾锛�" + remarkStr); devicesDataList.get(devPos).getAppliancesInfoList().get(appPos).setRemarks(remarkStr); switch (infos.get(appPos).getBigType()) { @@ -1319,30 +1192,9 @@ devicesDataList.get(devPos).getAppliancesInfoList().get(appPos).setIntCurState(curtainState); break; case 2: -// if (!TextUtils.isEmpty(HandleSearch.rcuIp)) { -// RcuCurtain rcuCurtain = new RcuCurtain(); -// rcuCurtain.setChanelNum(getDatas.addBytes[2] & 0xFF); -// rcuCurtain.setLittleType(2); -// int state = -1; -// switch (getDatas.addBytes[getDatas.addBytes.length - 1] & 0xFF) { -// case 0: -// state = CurtainCtrlParser.curtainPause; -// break; -// case 1: -// state = CurtainCtrlParser.curtainOn; -// break; -// case 2: -// state = CurtainCtrlParser.curtainOff; -// break; -// } -// rcuCurtain.setCurState(state); -// rcuCurtainList.add(rcuCurtain); -// } - devicesDataList.get(devPos).getAppliancesInfoList().get(appPos).setCurState(getDatas.addBytes[getDatas.addBytes.length - 1] & 0xFF); devicesDataList.get(devPos).getAppliancesInfoList().get(appPos).setIntCurState(getDatas.addBytes[getDatas.addBytes.length - 1] & 0xFF); break; - } break; @@ -1354,29 +1206,6 @@ hvacBytes[i - 23] = getDatas.addBytes[i]; } devicesDataList.get(devPos).getAppliancesInfoList().get(appPos).setArrCurState(hvacBytes); -// switch (devicesDataList.get(devPos).getAppliancesInfoList().get(appPos).getChannelNum()) { -// case 1: -// if (air1Info == null) { -// air1Info = hvacBytes; -// } -// break; -// case 2: -// if (air2Info == null) { -// air2Info = hvacBytes; -// } -// break; -// case 3: -// if (air3Info == null) { -// air3Info = hvacBytes; -// } -// break; -// case 4: -// if (air4Info == null) { -// air4Info = hvacBytes; -// } -// break; -// -// } break; case 3: byte[] newBytes = new byte[getDatas.addBytes.length - 24 + 1]; @@ -1387,24 +1216,24 @@ break; } break; - case Configuration.SENSOR_BIG_TYPE://2019-07-03 灞忚斀 -// String aa = "浼犳劅鍣ㄥ娉細"; -// for (int i = 0; i < getDatas.addBytes.length; i++) { -// aa += (getDatas.addBytes[i] & 0xff) + ","; -// } -// HDLLog.I( aa); - + case Configuration.SENSOR_BIG_TYPE: int curState; - if (getDatas.addBytes.length >= 26) {//2019-11-7 鐗规畩澶勭悊锛屼慨鏀瑰洖璺彿 + if (getDatas.addBytes.length >= 26) {//2023-11-14 鐗规畩澶勭悊锛屼慨鏀瑰洖璺彿涓虹墿鐞嗗洖璺紙鍥犱负ZigBee杞琤us杞崲鍣ㄧ敤鐨勯兘鏄墿鐞嗗洖璺紝灏嗛�昏緫鍥炶矾璁句负鐗╃悊鍥炶矾澶勭悊锛� curState = (int) (getDatas.addBytes[24] & 0xff); - devicesDataList.get(devPos).getAppliancesInfoList().get(appPos).setChannelNum(getDatas.addBytes[25] & 0xff); - } else { curState = (int) (getDatas.addBytes[getDatas.addBytes.length - 1] & 0xff); } + devicesDataList.get(devPos).getAppliancesInfoList().get(appPos).setChannelNum(getDatas.addBytes[getDatas.addBytes.length - 1] & 0xFF); devicesDataList.get(devPos).getAppliancesInfoList().get(appPos).setCurState(curState); devicesDataList.get(devPos).getAppliancesInfoList().get(appPos).setIntCurState((int) curState); break; + case Configuration.DOOR_MACHINE_BIG_TYPE: + switch (infos.get(appPos).getLittleType()) { + case 4: + devicesDataList.get(devPos).getAppliancesInfoList().get(appPos).setChannelNum(getDatas.addBytes[getDatas.addBytes.length - 1] & 0xFF); + break; + } + break; default: HDLLog.I("鏈壘鍒版绫诲瀷璁惧锛�" + infos.get(appPos).getBigType()); break; @@ -1860,198 +1689,105 @@ } -// /** -// * 澶勭悊浼犳劅鍣� 骞挎挱鏁版嵁 -// * -// * @param getDatas -// */ -// private static void handleSensorBroadcastStateData(UdpDataBean getDatas) { -// outter: -// for (int i = 0, len = devicesDataList.size(); i < len; i++) { -// if (devicesDataList.get(i).getSourceSubnetID() == getDatas.sourceSubnetID -// && devicesDataList.get(i).getSourceDeviceID() == getDatas.sourceDeviceID -// ) { -// List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); -// for (int j = 0, len2 = infos.size(); j < len2; j++) { -// switch (devicesDataList.get(i).getAppliancesInfoList().get(j).getBigType()) { -// case Configuration.SENSOR_BIG_TYPE://2019-07-03 灞忚斀 -// isGetDeviceStateSuccess = true; -// AppliancesInfo sensorInfo = devicesDataList.get(i).getAppliancesInfoList().get(j); -// float value = HDLUtlis.byte2Float(Arrays.copyOfRange(getDatas.addBytes, 5, 8)); -// devicesDataList.get(i).getAppliancesInfoList().get(j).setCurState(value); -// devicesDataList.get(i).getAppliancesInfoList().get(j).setIntCurState((int) value); -// -// sensorInfo.setCurState(value); -// -// -// String unite = ""; -// switch (sensorInfo.getDeviceType()) { -// case HDLApConfig.TYPE_SENSOR_DRY_CONTACT: -// unite = ""; -// break; -// case HDLApConfig.TYPE_SENSOR_MOVEMENT_DETECTOR: -// unite = ""; -// break; -// case HDLApConfig.TYPE_SENSOR_TEMP: -// if ((getDatas.addBytes[4] & 0xff) == 0) { -// unite = "掳C"; -// } else { -// unite = "掳F"; -// } -// -// break; -// case HDLApConfig.TYPE_SENSOR_HUMIDITY: -// unite = "%"; -// break; -// case HDLApConfig.TYPE_SENSOR_ILLUMINACE: -// unite = "LUX"; -// break; -// case HDLApConfig.TYPE_SENSOR_VOC: -// unite = ""; -// break; -// case HDLApConfig.TYPE_SENSOR_PM_2_POINT_5: -// switch (getDatas.addBytes[4] & 0xff) { -// case 0: -// unite = "mg/m3"; -// break; -// case 1: -// unite = "ppm"; -// break; -// case 2: -// unite = "渭m"; -// break; -// default: -// unite = ""; -// break; -// } -// -// break; -// case HDLApConfig.TYPE_SENSOR_C02: -// switch (getDatas.addBytes[4] & 0xff) { -// case 0: -// unite = "mg/m3"; -// break; -// case 1: -// unite = "ppm"; -// break; -// default: -// unite = ""; -// break; -// } -// break; -// case HDLApConfig.TYPE_SENSOR_LPG: -// unite = "ppm"; -// break; -// case HDLApConfig.TYPE_SENSOR_CO_H2: -// unite = "ppm"; -// break; -// case HDLApConfig.TYPE_SENSOR_CH4: -// unite = "ppm"; -// break; -// case HDLApConfig.TYPE_SENSOR_SMOG: -// unite = ""; -// break; -// case HDLApConfig.TYPE_SENSOR_WIND_SPEED: -// unite = "m/s"; -// break; -// case HDLApConfig.TYPE_SENSOR_WIND_PRESSURE: -// unite = "Pa"; -// break; -// case HDLApConfig.TYPE_SENSOR_LIQUID_FLOW: -// unite = ""; -// break; -// case HDLApConfig.TYPE_SENSOR_LIQUID_PRESSURE: -// unite = "Pa"; -// break; -// case HDLApConfig.TYPE_SENSOR_LIQUID_DEPTH: -// unite = "mm"; -// break; -// case HDLApConfig.TYPE_SENSOR_RAIN_FALL: -// switch (getDatas.addBytes[4] & 0xff) { -// case 0: -// unite = "鏃犻洦"; -// break; -// case 1: -// unite = "灏忛洦"; -// break; -// case 2: -// unite = "澶ч洦"; -// break; -// default: -// unite = ""; -// break; -// } -// break; -// case HDLApConfig.TYPE_SENSOR_WEIGHT: -// unite = "KG"; -// break; -// case HDLApConfig.TYPE_SENSOR_HEIGHT_LENGTH: -// unite = "mm"; -// break; -// case HDLApConfig.TYPE_SENSOR_OBJECT_SPEED: -// unite = "m/s"; -// break; -// case HDLApConfig.TYPE_SENSOR_SHAKE: -// unite = "mm"; -// break; -// case HDLApConfig.TYPE_SENSOR_VOLTAGE: -// switch (getDatas.addBytes[4] & 0xff) { -// case 0: -// unite = "V"; -// break; -// case 1: -// unite = "渭V"; -// break; -// default: -// unite = ""; -// break; -// } -// break; -// case HDLApConfig.TYPE_SENSOR_ELECTRICITY: -// switch (getDatas.addBytes[4] & 0xff) { -// case 0: -// unite = "A"; -// break; -// case 1: -// unite = "渭A"; -// break; -// default: -// unite = ""; -// break; -// } -// break; -// case HDLApConfig.TYPE_SENSOR_POWER: -// unite = "W"; -// break; -// case HDLApConfig.TYPE_SENSOR_FLOODING: -// unite = ""; -// break; -// case HDLApConfig.TYPE_SENSOR_DOOR_MAGNET: -// unite = ""; -// break; -// case HDLApConfig.TYPE_SENSOR_EMERGENCY_BUTTON: -// unite = ""; -// break; -// default: -// unite = "鏈煡鍗曚綅"; -// break; -// } -// -// -//// EventBus.getDefault().post(new DeviceStateEvent(sensorInfo, true)); -// HDLLog.I("鍙戦�佷紶鎰熷櫒閫氱煡鏇存柊"); -// EventBus.getDefault().post(new SensorStateBackInfo(sensorInfo, true, unite)); -// break; -// default: -// HDLLog.I("handle state 娌℃湁鎵惧埌鍖归厤绫诲瀷"); -// break; -// } -// -// } -// break outter; -// } -// } -// } + /** + * panlili + * 澶勭悊闂ㄩ攣鐘舵�佸拰鎶ヨ 骞挎挱鏁版嵁 + * + * @param getDatas + */ + private static void handleDoorMachineBroadcastStateData(UdpDataBean getDatas) { + outter: + for (int i = 0, len = devicesDataList.size(); i < len; i++) { + if (devicesDataList.get(i).getSourceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getSourceDeviceID() == getDatas.sourceDeviceID + ) { + List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); + for (int j = 0, len2 = infos.size(); j < len2; j++) { + if (infos.get(j).getBigType() == Configuration.DOOR_MACHINE_BIG_TYPE + && infos.get(j).getDeviceType() == HDLApConfig.TYPE_DOOR_MACHINE) { + String type = ""; + /*寮�閿�: + 0x*1锛氭寚绾瑰紑閿� + 0x*2锛氬瘑鐮佸紑閿� + 0x*3锛氭劅搴斿崱寮�閿� + 0x*4锛氭満姊伴挜鍖欏紑閿� + 0x*5锛氳繙绋嬫巿鏉冨紑閿� + 0x*6锛氫复鏃跺瘑鐮佸紑閿� + 0x*7-0x*f锛氾紙棰勭暀锛� + + 鎶ヨ: + 0x1*锛氬瘑鐮侀獙璇侀敊璇姤璀︼紙瀵嗙爜杩炵画3娆℃閿欒锛� + 0x2*锛氶棬鏈攣濂芥姤璀︼紙闂ㄩ攣鏈叧濂斤紝 褰撻棬閿佸ソ鏃朵笂鎶ヨВ闄ゆ姤璀︼級 + 0x3*锛氬姭鎸佹姤璀︼紙杈撳叆闃插姭鎸佸瘑鐮佹垨鑰呴槻鍔寔鎸囩汗寮�閿佹椂鎶ヨ锛� + 0x4*锛氶槻鎾姤璀︼紙闂ㄩ攣琚挰寮�鏃舵姤璀︼級 + 0x5*锛氱數閲忎笉瓒虫姤璀︼紙鐢甸噺涓嶈冻鏃舵姤璀︼級 + 0x6*锛氭寚绾归獙璇侀敊璇姤璀︼紙寮�闂ㄩ獙璇佽緭鍏ユ寚绾硅繛缁敊璇鏁拌揪鍒伴棬閿佽瀹�3娆℃椂鎶ヨ锛� + 0x7*锛氬崱鐗囬獙璇侀敊璇姤璀︼紙寮�闂ㄩ獙璇佽緭鍏ュ崱鐗囪繛缁敊璇鏁拌揪鍒伴棬閿佽瀹�3娆℃姤璀︼級 + 0x8*锛氶棬閿佹仮澶嶅嚭鍘傝缃� + 0x9*-0xf*锛氾紙棰勭暀锛�*/ + switch (getDatas.addBytes[2] & 0xFF) { + case 1: + type = "鎸囩汗寮�閿�"; + break; + case 2: + type = "瀵嗙爜寮�閿�"; + break; + case 3: + type = "鎰熷簲鍗″紑閿�"; + break; + case 4: + type = "鏈烘閽ュ寵寮�閿�"; + break; + case 5: + type = "杩滅▼鎺堟潈寮�閿�"; + break; + case 6: + type = "涓存椂瀵嗙爜寮�閿�"; + break; + case 10: + type = "瀵嗙爜楠岃瘉閿欒鎶ヨ"; + break; + case 20: + type = "闂ㄦ湭閿佸ソ鎶ヨ"; + break; + case 30: + type = "鍔寔鎶ヨ"; + break; + case 40: + type = "闃叉挰鎶ヨ"; + break; + case 50: + type = "鐢甸噺涓嶈冻鎶ヨ"; + break; + case 60: + type = "鎸囩汗楠岃瘉閿欒鎶ヨ"; + break; + case 70: + type = "鍗$墖楠岃瘉閿欒鎶ヨ"; + break; + case 80: + type = "闂ㄩ攣鎭㈠鍑哄巶璁剧疆"; + break; + default: + break; + } + devicesDataList.get(i).getAppliancesInfoList().get(j).setCurState(getDatas.addBytes[j] & 0xFF); + devicesDataList.get(i).getAppliancesInfoList().get(j).setIntCurState(getDatas.addBytes[j] & 0xFF); + + AppliancesInfo doorMachineInfo = devicesDataList.get(i).getAppliancesInfoList().get(j); + int state = getDatas.addBytes[2] & 0xFF; + doorMachineInfo.setCurState(state); + + HDLLog.I("鍙戦�侀棬閿佺姸鎬佸拰鎶ヨ閫氱煡"); + EventBus.getDefault().post(new DoorMachineWaringBackInfo(doorMachineInfo, true, type)); + } else { + HDLLog.I("handleDoorMachineBroadcastStateData 娌℃湁鎵惧埌鍖归厤绫诲瀷"); + } + } + break outter; + } + } + } /** @@ -2068,7 +1804,7 @@ ) { List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); for (int j = 0, len2 = infos.size(); j < len2; j++) { - if (infos.get(j).getBigType() == Configuration.LIGTH_BIG_TYPE) { //2019-07-26鍥犱负鏌ョ伅鍏夌姸鎬佹槸鏌ヨ鎵�浠ュ洖璺紝鎵�浠ヨ鎶婃墍鏈夊洖璺伅鍏夌姸鎬侀兘鎺ㄩ�佷竴娆� + if (infos.get(j).getBigType() == Configuration.LIGTH_BIG_TYPE && (infos.get(j).getDeviceType() != HDLApConfig.TYPE_LIGHT_CCT && infos.get(j).getDeviceType() != HDLApConfig.TYPE_LIGHT_RGB && infos.get(j).getDeviceType() != HDLApConfig.TYPE_LIGHT_DALI && infos.get(j).getDeviceType() != HDLApConfig.TYPE_LIGHT_DMX)) { //2019-07-26鍥犱负鏌ョ伅鍏夌姸鎬佹槸鏌ヨ鎵�浠ュ洖璺紝鎵�浠ヨ鎶婃墍鏈夊洖璺伅鍏夌姸鎬侀兘鎺ㄩ�佷竴娆� isGetDeviceStateSuccess = true; devicesDataList.get(i).getAppliancesInfoList().get(j).setCurState(getDatas.addBytes[j + 1] & 0xFF); devicesDataList.get(i).getAppliancesInfoList().get(j).setIntCurState(getDatas.addBytes[j + 1] & 0xFF); @@ -2076,6 +1812,37 @@ // HDLLog.I("HDLlightState" + devicesDataList.get(i).getAppliancesInfoList().get(j).toString()); } else { HDLLog.I("handleLightStateData 娌℃湁鎵惧埌鍖归厤绫诲瀷"); + } + } + break outter; + } + } + } + + /** + * 澶勭悊CCT OR RGB鐏厜妯″潡鍥炶皟 + * 20230822鏂板 + * + * @param getDatas + */ + private static void handleColourLightStateData(UdpDataBean getDatas) { + outter: + for (int i = 0, len = devicesDataList.size(); i < len; i++) { + if (devicesDataList.get(i).getSourceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getSourceDeviceID() == getDatas.sourceDeviceID + ) { + List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); + for (int j = 0, len2 = infos.size(); j < len2; j++) { + if (infos.get(j).getBigType() == Configuration.LIGTH_BIG_TYPE && (infos.get(j).getDeviceType() == HDLApConfig.TYPE_LIGHT_CCT || infos.get(j).getDeviceType() == HDLApConfig.TYPE_LIGHT_RGB || infos.get(j).getDeviceType() == HDLApConfig.TYPE_LIGHT_DALI || infos.get(j).getDeviceType() == HDLApConfig.TYPE_LIGHT_DMX)) { + isGetDeviceStateSuccess = true; + devicesDataList.get(i).getAppliancesInfoList().get(j).setArrCurState(getDatas.addBytes); + AppliancesInfo appliancesInfo = devicesDataList.get(i).getAppliancesInfoList().get(j); + ColourLightCtrlBackInfo colourLightCtrlBackInfo = new ColourLightCtrlBackInfo(appliancesInfo); + setDeviceCtrlSuccessStateWithInfo(infos.get(j), true); + EventBus.getDefault().post(new ColourLightFeedBackEvent(colourLightCtrlBackInfo, true)); + + } else { + HDLLog.I("handleColourLightStateData 娌℃湁鎵惧埌鍖归厤绫诲瀷"); } } break outter; @@ -2393,6 +2160,37 @@ /** + * 璇诲彇绉戞妧绯荤粺鐘舵�佸弽棣� + * + * @param getDatas + */ + private static void handleTechSysStateData(UdpDataBean getDatas) { + outter: + for (int i = 0, len = devicesDataList.size(); i < len; i++) { + if (devicesDataList.get(i).getSourceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getSourceDeviceID() == getDatas.sourceDeviceID + ) { + List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); + for (int j = 0, len2 = infos.size(); j < len2; j++) { + if (infos.get(j).getBigType() == Configuration.AIR_BIG_TYPE + && infos.get(j).getDeviceType() == HDLApConfig.TYPE_AC_TECHSYS + && infos.get(j).getChannelNum() == (getDatas.addBytes[0] & 0xFF)) {//2019-8-6 + + isGetDeviceStateSuccess = true; + devicesDataList.get(i).getAppliancesInfoList().get(j).setArrCurState(getDatas.addBytes); + EventBus.getDefault().post(new DeviceStateEvent(devicesDataList.get(i).getAppliancesInfoList().get(j), true)); + break outter; + } else { + HDLLog.I("handleTechSysStateData 娌℃湁鎵惧埌鍖归厤绫诲瀷"); + } + } + break outter; + } + } + } + + + /** * 骞叉帴鐐瑰箍鎾姸鎬佸弽棣堝弽棣� * 20191105鏂板 * @@ -2407,7 +2205,7 @@ List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); for (int j = 0, len2 = infos.size(); j < len2; j++) { if (infos.get(j).getBigType() == Configuration.SENSOR_BIG_TYPE - && infos.get(j).getChannelNum() == (getDatas.addBytes[1] & 0xFF)) {//2019-07-29 + && infos.get(j).getChannelNum() == ((getDatas.addBytes[1] & 0xFF) - 1)) {//2019-07-29 if (getDatas.addBytes.length >= 3) { isGetDeviceStateSuccess = true; int state = getDatas.addBytes[2] & 0xFF; @@ -3153,4 +2951,316 @@ } + /** + * 澶勭悊鏂伴璁惧鐘舵�佹暟鎹� + * 2020-07-20 鏂板 + * + * @param getDatas + */ + private static void handleFreshAirStateData(UdpDataBean getDatas) { + outter: + for (int i = 0, len = devicesDataList.size(); i < len; i++) { + if (devicesDataList.get(i).getSourceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getSourceDeviceID() == getDatas.sourceDeviceID + ) { + List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); + for (int j = 0, len2 = infos.size(); j < len2; j++) { + if (infos.get(j).getBigType() == Configuration.FRESH_AIR_BIG_TYPE + && infos.get(j).getDeviceType() == HDLApConfig.TYPE_FRESH_AIR + && infos.get(j).getChannelNum() == (getDatas.addBytes[0] & 0xFF)) {//2019-07-17 + + isGetDeviceStateSuccess = true; + devicesDataList.get(i).getAppliancesInfoList().get(j).setArrCurState(getDatas.addBytes); + EventBus.getDefault().post(new DeviceStateEvent(devicesDataList.get(i).getAppliancesInfoList().get(j), true)); + break outter; + } else { + HDLLog.I("handleFreshAirStateData 娌℃湁鎵惧埌鍖归厤绫诲瀷"); + } + } + break outter; + } + } + } + + /** + * 澶勭悊鏂伴鎺у埗鎴愬姛鐘舵�佹暟鎹� + * 2020-07-20 鏂板 + * + * @param getDatas + */ + private static void handleFreshAirCtrlBackData(UdpDataBean getDatas) { + outter: + for (int i = 0, len = devicesDataList.size(); i < len; i++) { + if (devicesDataList.get(i).getSourceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getSourceDeviceID() == getDatas.sourceDeviceID + ) { + List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); + for (int j = 0, len2 = infos.size(); j < len2; j++) { + if (infos.get(j).getBigType() == Configuration.FRESH_AIR_BIG_TYPE + && infos.get(j).getDeviceType() == HDLApConfig.TYPE_FRESH_AIR + && infos.get(j).getChannelNum() == (getDatas.addBytes[0] & 0xFF)) { + + devicesDataList.get(i).getAppliancesInfoList().get(j).setArrCurState(getDatas.addBytes); + AppliancesInfo mFreshAirInfo = devicesDataList.get(i).getAppliancesInfoList().get(j); + FreshAirBackInfo info = new FreshAirBackInfo(mFreshAirInfo); +// isFreshAirCtrlSuccess = true; + setDeviceCtrlSuccessStateWithInfo(infos.get(j), true); + EventBus.getDefault().post(new FreshAirFeedBackEvent(info, true)); + break outter; + } + + } + } + } + + } + + /** + * 澶勭悊閲戣寕鏂伴璁惧鐘舵�佹暟鎹� + * 2020-07-20 鏂板 + * + * @param getDatas + */ + private static void handleFreshAirJINMAOStateData(UdpDataBean getDatas) { + outter: + for (int i = 0, len = devicesDataList.size(); i < len; i++) { + if (devicesDataList.get(i).getSourceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getSourceDeviceID() == getDatas.sourceDeviceID + ) { + List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); + for (int j = 0, len2 = infos.size(); j < len2; j++) { + if (infos.get(j).getBigType() == Configuration.FRESH_AIR_BIG_TYPE + && infos.get(j).getDeviceType() == HDLApConfig.TYPE_FRESH_AIR_JINMAO + && infos.get(j).getChannelNum() == (getDatas.addBytes[0] & 0xFF)) {//2019-07-17 + + isGetDeviceStateSuccess = true; + devicesDataList.get(i).getAppliancesInfoList().get(j).setArrCurState(getDatas.addBytes); + EventBus.getDefault().post(new DeviceStateEvent(devicesDataList.get(i).getAppliancesInfoList().get(j), true)); + break outter; + } else { + HDLLog.I("handleFreshAirStateData 娌℃湁鎵惧埌鍖归厤绫诲瀷"); + } + } + break outter; + } + } + } + + /** + * 澶勭悊閲戣寕鏂伴鎺у埗鎴愬姛鐘舵�佹暟鎹� + * 2020-07-20 鏂板 + * + * @param getDatas + */ + private static void handleFreshAirJINMAOCtrlBackData(UdpDataBean getDatas) { + outter: + for (int i = 0, len = devicesDataList.size(); i < len; i++) { + if (devicesDataList.get(i).getSourceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getSourceDeviceID() == getDatas.sourceDeviceID + ) { + List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); + for (int j = 0, len2 = infos.size(); j < len2; j++) { + if (infos.get(j).getBigType() == Configuration.FRESH_AIR_BIG_TYPE + && infos.get(j).getDeviceType() == HDLApConfig.TYPE_FRESH_AIR_JINMAO + && infos.get(j).getChannelNum() == (getDatas.addBytes[0] & 0xFF)) { + + devicesDataList.get(i).getAppliancesInfoList().get(j).setArrCurState(getDatas.addBytes); + AppliancesInfo mFreshAirInfo = devicesDataList.get(i).getAppliancesInfoList().get(j); + FreshAirJinMaoBackInfo info = new FreshAirJinMaoBackInfo(mFreshAirInfo); + setDeviceCtrlSuccessStateWithInfo(infos.get(j), true); + EventBus.getDefault().post(new FreshAirJinMaoFeedBackEvent(info, true)); + break outter; + } + + } + } + } + + + } + + /** + * 澶勭悊鍦扮儹璁惧鐘舵�佹暟鎹� + * 2020-07-20 鏂板 + * + * @param getDatas + */ + private static void handleGeothermalStateData(UdpDataBean getDatas) { + outter: + for (int i = 0, len = devicesDataList.size(); i < len; i++) { + if (devicesDataList.get(i).getSourceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getSourceDeviceID() == getDatas.sourceDeviceID + ) { + List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); + for (int j = 0, len2 = infos.size(); j < len2; j++) { + if (infos.get(j).getBigType() == Configuration.GEOTHERMAL_BIG_TYPE + && (infos.get(j).getDeviceType() == HDLApConfig.TYPE_GEOTHERMAL_MODULE || infos.get(j).getDeviceType() == HDLApConfig.TYPE_GEOTHERMAL_JINMAO) + && infos.get(j).getChannelNum() == (getDatas.addBytes[0] & 0xFF)) {//2019-07-17 + if (getDatas.addBytes.length >= 10) { + byte[] getBytes = devicesDataList.get(i).getAppliancesInfoList().get(j).getArrCurState(); + if (getBytes == null || getBytes.length < 10) { + getBytes = new byte[10]; + } + System.arraycopy(getDatas.addBytes, 0, getBytes, 0, 10);//20190710鏌ヨ鍦扮儹鐘舵�佸弽棣堬紝鍙彇鍓�10浣嶆暟鎹� + devicesDataList.get(i).getAppliancesInfoList().get(j).setArrCurState(getBytes); + isGetDeviceStateSuccess = true; + EventBus.getDefault().post(new DeviceStateEvent(devicesDataList.get(i).getAppliancesInfoList().get(j), true)); + } else { + HDLLog.E("鍦扮儹鐘舵�佸弽棣堟暟鎹紓甯�"); + } + + break outter; + } else { + HDLLog.I("handleFreshAirStateData 娌℃湁鎵惧埌鍖归厤绫诲瀷"); + } + } + break outter; + } + } + } + + /** + * 澶勭悊鍦扮儹璁惧鎺у埗鏁版嵁 + * 2020-07-20 + * + * @param getDatas + */ + private static void handleGeothermalCtrlData(UdpDataBean getDatas) { + switch (getDatas.command) { + //2019-07-09 鍦扮儹妯″潡 + case Configuration.GEOTHERMAL_MODULE_CTRL_BACK_COMMAND: + outter: + for (int i = 0, len = devicesDataList.size(); i < len; i++) { + if (devicesDataList.get(i).getSourceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getSourceDeviceID() == getDatas.sourceDeviceID + ) { + + List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); + for (int j = 0, len2 = infos.size(); j < len2; j++) { + if (getDatas.addBytes.length > 0) { + if (infos.get(j).getBigType() == Configuration.GEOTHERMAL_BIG_TYPE + && (infos.get(j).getDeviceType() == HDLApConfig.TYPE_GEOTHERMAL_MODULE || infos.get(j).getDeviceType() == HDLApConfig.TYPE_GEOTHERMAL_JINMAO) + && infos.get(j).getChannelNum() == (getDatas.addBytes[0] & 0xFF)) { + if (getDatas.addBytes.length >= 8) { + byte[] getBytes = devicesDataList.get(i).getAppliancesInfoList().get(j).getArrCurState(); + if (getBytes == null || getBytes.length < 10) { + getBytes = new byte[10]; + } + System.arraycopy(getDatas.addBytes, 0, getBytes, 0, 8);//鎺у埗鍦扮儹鐘舵�佸弽棣堬紝鍙彇鍓�8浣嶆暟鎹� + devicesDataList.get(i).getAppliancesInfoList().get(j).setArrCurState(getBytes); + AppliancesInfo mInfo = devicesDataList.get(i).getAppliancesInfoList().get(j); + + GeothermalBackInfo info = new GeothermalBackInfo(mInfo, true); +// isGeothermalCtrlSuccess = true; + setDeviceCtrlSuccessStateWithInfo(infos.get(j), true); + EventBus.getDefault().post(new GeothermalFeedBackEvent(info, EventCode.SUCCESS)); + } else { + + HDLLog.E("鎺у埗鍦扮儹鐘舵�佸弽棣堟暟鎹紓甯�"); + } + break outter; + } + } + } + } + } + + break; + } + } + + + /** + * 澶勭悊闂ㄩ攣璁惧鐘舵�佹暟鎹� + * 2023-08-22 鏂板 + * + * @param getDatas + */ + private static void handleDoorMachineStateData(UdpDataBean getDatas) { + outter: + for (int i = 0, len = devicesDataList.size(); i < len; i++) { + if (devicesDataList.get(i).getSourceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getSourceDeviceID() == getDatas.sourceDeviceID + ) { + List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); + for (int j = 0, len2 = infos.size(); j < len2; j++) { + if (infos.get(j).getBigType() == Configuration.DOOR_MACHINE_BIG_TYPE + && infos.get(j).getDeviceType() == HDLApConfig.TYPE_DOOR_MACHINE + && infos.get(j).getChannelNum() == (getDatas.addBytes[0] & 0xFF)) {//2019-07-17 + + isGetDeviceStateSuccess = true; + devicesDataList.get(i).getAppliancesInfoList().get(j).setArrCurState(getDatas.addBytes); + EventBus.getDefault().post(new DeviceStateEvent(devicesDataList.get(i).getAppliancesInfoList().get(j), true)); + break outter; + } else { + HDLLog.I("handleDoorMachineStateData 娌℃湁鎵惧埌鍖归厤绫诲瀷"); + } + } + break outter; + } + } + } + + /** + * 澶勭悊闂ㄩ攣杩滅▼寮�閿佽繛鎺ユ帶鍒舵垚鍔熺姸鎬佹暟鎹� + * 2023-08-22 鏂板 + * + * @param getDatas + */ + private static void handleDoorMachineCtrlFristBackData(UdpDataBean getDatas) { + outter: + for (int i = 0, len = devicesDataList.size(); i < len; i++) { + if (devicesDataList.get(i).getSourceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getSourceDeviceID() == getDatas.sourceDeviceID + ) { + List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); + for (int j = 0, len2 = infos.size(); j < len2; j++) { + if (infos.get(j).getBigType() == Configuration.DOOR_MACHINE_BIG_TYPE + && infos.get(j).getDeviceType() == HDLApConfig.TYPE_DOOR_MACHINE + && infos.get(j).getChannelNum() == (getDatas.addBytes[0] & 0xFF)) { + + devicesDataList.get(i).getAppliancesInfoList().get(j).setArrCurState(getDatas.addBytes); + AppliancesInfo mDoorMachineInfo = devicesDataList.get(i).getAppliancesInfoList().get(j); + DoorMachineFristBackInfo info = new DoorMachineFristBackInfo(mDoorMachineInfo); + setDeviceCtrlSuccessStateWithInfo(infos.get(j), true); + EventBus.getDefault().post(new DoorMachineFeedFristBackEvent(info, true)); + break outter; + } + + } + } + } + } + + /** + * 澶勭悊闂ㄩ攣杩滅▼寮�閿佹帶鍒舵垚鍔熺姸鎬佹暟鎹� + * 2023-08-22 鏂板 + * + * @param getDatas + */ + private static void handleDoorMachineCtrlBackData(UdpDataBean getDatas) { + outter: + for (int i = 0, len = devicesDataList.size(); i < len; i++) { + if (devicesDataList.get(i).getSourceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getSourceDeviceID() == getDatas.sourceDeviceID + ) { + List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); + for (int j = 0, len2 = infos.size(); j < len2; j++) { + if (infos.get(j).getBigType() == Configuration.DOOR_MACHINE_BIG_TYPE + && infos.get(j).getDeviceType() == HDLApConfig.TYPE_DOOR_MACHINE + && infos.get(j).getChannelNum() == (getDatas.addBytes[0] & 0xFF)) { + + devicesDataList.get(i).getAppliancesInfoList().get(j).setArrCurState(getDatas.addBytes); + AppliancesInfo appliancesInfo = devicesDataList.get(i).getAppliancesInfoList().get(j); + DoorMachineBackInfo doorMachineBackInfo = new DoorMachineBackInfo(appliancesInfo); + setDeviceCtrlSuccessStateWithInfo(infos.get(j), true); + EventBus.getDefault().post(new DoorMachineFeedBackEvent(doorMachineBackInfo, true)); + break outter; + } + + } + } + } + } + } -- Gitblit v1.8.0