From 071a8328823a2861f93ce556a4da3e4119cab1a3 Mon Sep 17 00:00:00 2001 From: panlili2024 <14743743+panlili2024@user.noreply.gitee.com> Date: 星期四, 19 九月 2024 16:24:28 +0800 Subject: [PATCH] 完成金茂定制功能 --- HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Core/HDLDeviceManager.java | 1154 +++++++++++++++++++++++++------------------------------- 1 files changed, 515 insertions(+), 639 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 89e0cdd..6f5f7a6 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 @@ -8,10 +8,17 @@ import com.google.gson.Gson; import com.google.gson.JsonSyntaxException; import com.google.gson.reflect.TypeToken; +import com.hdl.sdk.ttl.Config.Configuration; import com.hdl.sdk.ttl.Config.MCUConstants; +import com.hdl.sdk.ttl.HDLAppliances.Config.HDLApConfig; +import com.hdl.sdk.ttl.HDLAppliances.HDLAirCondition.AirCtrlBackInfo; import com.hdl.sdk.ttl.HDLAppliances.HDLAirCondition.AirHVACBackInfo; import com.hdl.sdk.ttl.HDLAppliances.HDLAirCondition.AirTechSysBackInfo; +import com.hdl.sdk.ttl.HDLAppliances.HDLAirCondition.Parser.AirCtrlParser; +import com.hdl.sdk.ttl.HDLAppliances.HDLAudio.HDLAudio; import com.hdl.sdk.ttl.HDLAppliances.HDLCommonSwitch.CommonSwitchBackInfo; +import com.hdl.sdk.ttl.HDLAppliances.HDLCurtain.CurtainCtrlBackInfo; +import com.hdl.sdk.ttl.HDLAppliances.HDLCurtain.Parser.CurtainCtrlParser; import com.hdl.sdk.ttl.HDLAppliances.HDLDoorMachine.DoorMachineBackInfo; import com.hdl.sdk.ttl.HDLAppliances.HDLDoorMachine.DoorMachineFristBackInfo; import com.hdl.sdk.ttl.HDLAppliances.HDLDoorMachine.DoorMachineWaringBackInfo; @@ -19,16 +26,33 @@ 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.HDLLight.LightCtrlBackInfo; +import com.hdl.sdk.ttl.HDLAppliances.HDLLogic.LogicCtrlBackInfo; +import com.hdl.sdk.ttl.HDLAppliances.HDLLogic.LogicMode; +import com.hdl.sdk.ttl.HDLAppliances.HDLLogic.SceneCtrlBackInfo; 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.HDLAppliances.HDLWarning.WarningType; +import com.hdl.sdk.ttl.HDLDeviceManger.Bean.AppliancesInfo; +import com.hdl.sdk.ttl.HDLDeviceManger.Bean.DevicesData; +import com.hdl.sdk.ttl.HDLDeviceManger.Bean.ListRemarks; +import com.hdl.sdk.ttl.HDLDeviceManger.Bean.ListSceneRemarks; import com.hdl.sdk.ttl.HDLDeviceManger.Bean.MCUConfigurationBean; import com.hdl.sdk.ttl.HDLDeviceManger.Bean.MCUDataBean; +import com.hdl.sdk.ttl.HDLDeviceManger.Bean.RcuCurtain; +import com.hdl.sdk.ttl.HDLDeviceManger.Bean.RcuLight; +import com.hdl.sdk.ttl.HDLDeviceManger.Bean.ScenesData; +import com.hdl.sdk.ttl.HDLDeviceManger.Bean.UdpDataBean; +import com.hdl.sdk.ttl.HDLDeviceManger.EventBusEvent.AirFeedBackEvent; 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.CurtainDeviceStateEvent; +import com.hdl.sdk.ttl.HDLDeviceManger.EventBusEvent.CurtainFeedBackEvent; +import com.hdl.sdk.ttl.HDLDeviceManger.EventBusEvent.DeviceStateEvent; import com.hdl.sdk.ttl.HDLDeviceManger.EventBusEvent.DiscoverNewDevicesEvent; import com.hdl.sdk.ttl.HDLDeviceManger.EventBusEvent.DoorMachineFeedBackEvent; import com.hdl.sdk.ttl.HDLDeviceManger.EventBusEvent.DoorMachineFeedFristBackEvent; @@ -36,39 +60,19 @@ 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.LightFeedBackEvent; +import com.hdl.sdk.ttl.HDLDeviceManger.EventBusEvent.LogicFeedBackEvent; import com.hdl.sdk.ttl.HDLDeviceManger.EventBusEvent.MCUFeedBackEvent; +import com.hdl.sdk.ttl.HDLDeviceManger.EventBusEvent.SceneFeedBackEvent; import com.hdl.sdk.ttl.HDLDeviceManger.EventBusEvent.SecurityAlarmFeedBackEvent; import com.hdl.sdk.ttl.HDLDeviceManger.EventBusEvent.SecurityArmingFeedBackEvent; import com.hdl.sdk.ttl.HDLDeviceManger.EventBusEvent.UpdateRemarkFeedBackEvent; -import com.hdl.sdk.ttl.HDLDeviceManger.Parser.DeviceParser; -import com.hdl.sdk.ttl.Config.Configuration; -import com.hdl.sdk.ttl.HDLAppliances.Config.HDLApConfig; -import com.hdl.sdk.ttl.HDLAppliances.HDLAirCondition.AirCtrlBackInfo; -import com.hdl.sdk.ttl.HDLAppliances.HDLAirCondition.Parser.AirCtrlParser; -import com.hdl.sdk.ttl.HDLAppliances.HDLAudio.HDLAudio; -import com.hdl.sdk.ttl.HDLAppliances.HDLCurtain.CurtainCtrlBackInfo; -import com.hdl.sdk.ttl.HDLAppliances.HDLCurtain.Parser.CurtainCtrlParser; -import com.hdl.sdk.ttl.HDLAppliances.HDLLight.LightCtrlBackInfo; -import com.hdl.sdk.ttl.HDLAppliances.HDLLogic.LogicCtrlBackInfo; -import com.hdl.sdk.ttl.HDLAppliances.HDLLogic.LogicMode; -import com.hdl.sdk.ttl.HDLAppliances.HDLWarning.WarningType; -import com.hdl.sdk.ttl.HDLDeviceManger.Bean.AppliancesInfo; -import com.hdl.sdk.ttl.HDLDeviceManger.Bean.DevicesData; -import com.hdl.sdk.ttl.HDLDeviceManger.Bean.ListRemarks; -import com.hdl.sdk.ttl.HDLDeviceManger.Bean.RcuCurtain; -import com.hdl.sdk.ttl.HDLDeviceManger.Bean.RcuLight; -import com.hdl.sdk.ttl.HDLDeviceManger.Bean.UdpDataBean; -import com.hdl.sdk.ttl.HDLDeviceManger.EventBusEvent.AirFeedBackEvent; -import com.hdl.sdk.ttl.HDLDeviceManger.EventBusEvent.CurtainFeedBackEvent; -import com.hdl.sdk.ttl.HDLDeviceManger.EventBusEvent.DeviceStateEvent; -import com.hdl.sdk.ttl.HDLDeviceManger.EventBusEvent.LightFeedBackEvent; -import com.hdl.sdk.ttl.HDLDeviceManger.EventBusEvent.LogicFeedBackEvent; import com.hdl.sdk.ttl.HDLDeviceManger.EventBusEvent.WarningInfoEvent; +import com.hdl.sdk.ttl.HDLDeviceManger.Parser.DeviceParser; import com.hdl.sdk.ttl.Utils.HDLUtlis.HDLStringUtils; import com.hdl.sdk.ttl.Utils.HDLUtlis.HDLUtlis; import com.hdl.sdk.ttl.Utils.LogUtils.HDLLog; import com.hdl.sdk.ttl.Utils.SPUtils.SPUtils; -//import com.hdl.sdk.ttl.Utils.TransformUtils.DataConverseUtils; import org.greenrobot.eventbus.EventBus; @@ -93,22 +97,19 @@ public class HDLDeviceManager { public static List<String> rcuIpList = new ArrayList<>();//缁熻Rcu ip鍦板潃鍒楄〃 - public static List<DevicesData> devicesDataList = new ArrayList<>();//缁熻鎼滅储鍒楄〃 - public static List<DevicesData> realDevicesDataList = new ArrayList<>();//缁熻鎼滅储鍒楄〃 + public static List<DevicesData> devicesDataList = new ArrayList<>();//缁熻璁惧鎼滅储鍒楄〃 + public static List<DevicesData> realDevicesDataList = new ArrayList<>();//缁熻璁惧鎼滅储鍒楄〃 + public static int totalDeviceSize = 0; + public static List<ScenesData> scenesDataList = new ArrayList<>();//缁熻鍦烘櫙鎼滅储鍒楄〃 private static Context viewContext; public static List<ListRemarks> listRemarks = new ArrayList<>(); + public static List<ListSceneRemarks> listSceneRemarks = new ArrayList<>(); public static List<RcuLight> rcuLightList = new ArrayList<>(); public static List<RcuCurtain> rcuCurtainList = new ArrayList<>(); public static boolean isLogicCtrl = false; public static ConcurrentHashMap<String, Boolean> ctrlSuccessStateHashMap = new ConcurrentHashMap<>();//2019-8-2 - -// public static byte[] air1Info = null; -// public static byte[] air2Info = null; -// public static byte[] air3Info = null; -// public static byte[] air4Info = null; - - public static boolean isGetDeviceStateSuccess = false; //鍒ゆ柇鑾峰彇璁惧鐘舵�佹槸鍚︽帶鍒舵垚鍔� + public static boolean isGetDeviceStateSuccess = false; //鍒ゆ柇鑾峰彇璁惧鐘舵�佹槸鍚﹁鍙栨垚鍔� public static boolean isUpdateRemarkSuccess = false; //鍒ゆ柇淇敼璁惧鍚嶆槸鍚︽垚鍔� public static boolean isMCUCtrlSuccess = false; //鍒ゆ柇鏄惁涓嶮CU閫氫俊鎴愬姛 @@ -116,9 +117,12 @@ // public static boolean isLightCtrlSuccess = false; //鍒ゆ柇鐏厜鏄惁鎺у埗鎴愬姛 // public static boolean isCurtainCtrlSuccess = false; //鍒ゆ柇绐楀笜鏄惁鎺у埗鎴愬姛 // public static boolean isACCtrlSuccess = false; //鍒ゆ柇绌鸿皟鏄惁鎺у埗鎴愬姛 -// public static boolean isSceneCtrlSuccess = false; //鍒ゆ柇鍦烘櫙鏄惁鎺у埗鎴愬姛 + // public static boolean isSecurityCtrlSuccess = false; //鍒ゆ柇瀹夐槻妯″潡鏄惁閫氫俊鎴愬姛 + public static boolean isGetBusLightState = false; + public static boolean isGetSceneRemarkSuccess = false; //鍒ゆ柇鑾峰彇鍦烘櫙璇︽儏鎴愬姛 + public static boolean isSceneCtrlSuccess = false; //鍒ゆ柇鍦烘櫙鏄惁鎺у埗鎴愬姛 /** * 鍒濆鍖� SDK HDLDeviceManager鍒濆鍖� @@ -140,6 +144,14 @@ } } + public static boolean getIsGetBusLightState() { + return isGetBusLightState; + } + + public static void setIsGetBusLightState(boolean isGetBusLightState) { + HDLDeviceManager.isGetBusLightState = isGetBusLightState; + } + /** * 閲婃斁鍏抽棴涓插彛 */ @@ -154,25 +166,26 @@ * @param commandType 鍛戒护绫诲瀷 */ public static void handle(UdpDataBean getDatas, int commandType) { - Log.e("panlili", "commandType=" + Integer.toHexString(commandType)+" desDeviceID=" + getDatas.desDeviceID + " sourceDeviceID=" + getDatas.sourceDeviceID); +// Log.e("panlili", "commandType=" + Integer.toHexString(commandType) + " sourceSubnetID=" + getDatas.sourceSubnetID + " sourceDeviceID=" + getDatas.sourceDeviceID); switch (commandType) { - case Configuration.DEVICES_SEARCH_BACK_COMMAND: - if (HandleSearch.isGetRcuIp) { -// handleRcuIp(getDatas); + case Configuration.SEARCH_GATEWAY_BACK_COMMAND: + break; + case Configuration.DEVICES_SEARCH_FROM_GATEWAY_BACK_COMMAND://璇诲彇缃戝叧宸查厤缃姛鑳� + handleSearchData(getDatas); + break; + case Configuration.DEVICES_READ_FROM_GATEWAY_BACK_COMMAND://渚濇璇诲彇璁惧淇℃伅 + if (isLogicCtrl) { + isLogicCtrl = false; + handleLogicAir(getDatas); } else { - boolean isExit = false; - for (DevicesData value : realDevicesDataList) { - if (value.getSourceDeviceID() == getDatas.sourceDeviceID - && value.getSourceSubnetID() == getDatas.sourceSubnetID) { - HDLLog.I("Device is Exit " + value.getRemark()); - isExit = true; - break; - } - } - if (!isExit) { - handleSearchData(getDatas); - } + handleRemarkCurStateData(getDatas); } + break; + case Configuration.SCENE_SEARCH_FROM_GATEWAY_BACK_COMMAND: + handleSearchSceneData(getDatas); + break; + case Configuration.SCENE_READ_FROM_GATEWAY_BACK_COMMAND: + handleSceneCurStateData(getDatas); break; /***2020-07-20 鏂板鏂伴璁惧**/ case Configuration.FRESH_AIR_STATE_BACK_COMMAND: @@ -219,8 +232,11 @@ case Configuration.LIGHT_CTRL_BACK_COMMAND: case Configuration.CURTAIN_CTRL_BACK_COMMAND: case Configuration.AIR_CTRL_BACK_COMMAND: - case Configuration.LOGIC_CTRL_BACK_COMMAND: handleCtrlData(getDatas); + break; + case Configuration.LOGIC_CTRL_BACK_COMMAND: + handleLogicCtrlData(getDatas);//閫昏緫妯″潡鎺у埗 + handleSceneCtrlData(getDatas);//鍦烘櫙鎺у埗 break; case Configuration.LIGHT_RGB_CTRL_BACK_COMMAND: handleColourLightStateData(getDatas); @@ -233,15 +249,6 @@ case Configuration.SECURITY_ALARM_CTRL_BACK_COMMAND://鎶ヨ璁剧疆鍙嶉 handleSecurityCtrlData(getDatas); break; -// 鑾峰彇璁惧澶囨敞 - case Configuration.DEVICES_READ_BACK_COMMAND: - if (isLogicCtrl) { - isLogicCtrl = false; - handleLogicAir(getDatas); - } else { - handleRemarkCurStateData(getDatas); - } - break; // 鑾峰彇璁惧鐘舵�� case Configuration.AIR_STATE_BACK_COMMAND: handleAirStateData(getDatas); @@ -249,6 +256,7 @@ case Configuration.SENSOR_STATE_BACK_COMMAND: case Configuration.SENSOR_BROADCAST_STATE_BACK_COMMAND: handleSensorBroadcastStateData(getDatas); + handleKNXTechSysStateData(getDatas); break; case Configuration.DRY_CONTACT_STATE_BACK_COMMAND: case Configuration.DRY_CONTACT_BROADCAST_STATE_COMMAND: @@ -271,7 +279,6 @@ break; case Configuration.AIR_HVAC_STATE_BACK_COMMAND: // handleRcuAirCastData(getDatas); - HDLLog.I("鍙戦�佺涓�娆″灞呮悳绱�"); handleHVACStateData(getDatas);//2019-06-27 handleTechSysStateData(getDatas);//2023-08-21 break; @@ -302,8 +309,10 @@ case Configuration.MANUAL_ADD_DEVICE_COMMAND: boolean isExit = false; for (DevicesData value : realDevicesDataList) { - if (value.getSourceDeviceID() == getDatas.sourceDeviceID - && value.getSourceSubnetID() == getDatas.sourceSubnetID) { + if (value.getSourceSubnetID() == getDatas.sourceSubnetID + && value.getSourceDeviceID() == getDatas.sourceDeviceID + && value.getDeviceSubnetID() == (getDatas.addBytes[6] & 0xFF) + && value.getDeviceDeviceID() == (getDatas.addBytes[7] & 0xFF)) { isExit = true; break; } @@ -379,25 +388,38 @@ devicesData.setSourceSubnetID(getDatas.sourceSubnetID); devicesData.setSourceDeviceID(getDatas.sourceDeviceID); devicesData.setAddByte(getDatas.addBytes); - byte[] remarkByte; - if (getDatas.addBytes.length >= 22) { - remarkByte = new byte[20]; - System.arraycopy(getDatas.addBytes, 2, remarkByte, 0, remarkByte.length); - } else { - remarkByte = new byte[getDatas.addBytes.length - 2]; - System.arraycopy(getDatas.addBytes, 2, remarkByte, 0, getDatas.addBytes.length - 2); - } + int size = (getDatas.addBytes[2] & 0xFF) * 256 + (getDatas.addBytes[3] & 0xFF); + int index = (getDatas.addBytes[4] & 0xFF) * 256 + (getDatas.addBytes[5] & 0xFF); + devicesData.setDeviceSize(size); + totalDeviceSize = size; + devicesData.setDeviceIndex(index); + + byte[] remarkByte = new byte[getDatas.addBytes.length]; String remarkStr = HDLStringUtils.byte2String(remarkByte); - HDLLog.I("remarkStr锛�" + remarkStr); devicesData.setRemark(remarkStr); + boolean isExitData = DeviceParser.parse(getDatas.addBytes, devicesData, remarkStr); - realDevicesDataList.add(devicesData);//璁板綍鎵�鏈夌殑鎺ユ敹鍒拌澶囷紝鍖呮嫭SDK涓嶆敮鎸佺殑璁惧绉嶇被銆備綔鐢細浣滀负鍙戦�佺浜屾鎼滅储鍛戒护鏃剁敤鍒� + boolean isExist = false; + for (DevicesData value : realDevicesDataList) { + if (value.getSourceSubnetID() == getDatas.sourceSubnetID + && value.getSourceDeviceID() == getDatas.sourceDeviceID + && value.getDeviceSubnetID() == (getDatas.addBytes[6] & 0xFF) + && value.getDeviceDeviceID() == (getDatas.addBytes[7] & 0xFF)) { + HDLLog.I("Device is isExist " + value.getRemark()); + isExist = true; + break; + } + } + if (!isExist) { + realDevicesDataList.add(devicesData);//璁板綍鎵�鏈夌殑鎺ユ敹鍒拌澶囷紝鍖呮嫭SDK涓嶆敮鎸佺殑璁惧绉嶇被銆備綔鐢細浣滀负鍙戦�佺浜屾鎼滅储鍛戒护鏃剁敤鍒� + HDLLog.I("---totalDeviceSize=" + totalDeviceSize + " realDevicesDataList=" + realDevicesDataList.size()); + } /********************杈呭姪璋冭瘯鎵撳嵃*******************/ String addData = ""; - for (int i = 22, len = getDatas.addBytes.length; i < len; i++) { + for (int i = 0, len = getDatas.addBytes.length; i < len; i++) { addData += " arr" + i + " = " + (getDatas.addBytes[i] & 0xFF) + ","; } HDLLog.I("鎵�鏈夎澶囧垪琛� 绗� " + realDevicesDataList.size() + " 涓ā鍧� " @@ -411,12 +433,12 @@ // 鍒ゆ柇鏄惁绗﹀悎瑕佹眰鐨勫ぇ绫诲皬绫� - if (isExitData) { + if (!isExist && isExitData) { devicesDataList.add(devicesData);//璁板綍鎵�鏈夌殑鎺ユ敹鍒拌澶囷紝涓嶅寘鎷琒DK涓嶆敮鎸佺殑璁惧绉嶇被 /**2019-07-03 鍙戠幇鏂拌澶囷紝杩欓噷鍙互鍙戦�侀�氱煡浜嬩欢锛屽苟浼犻�掓柊鐨勮澶囨暟鎹�*/ EventBus.getDefault().post(new DiscoverNewDevicesEvent(devicesData)); -// 杩囨护鎺夎儗鏅煶涔愶紝鑳屾櫙闊充箰娌℃湁澶囨敞杩斿洖 + //杩囨护鎺夎儗鏅煶涔愶紝鑳屾櫙闊充箰娌℃湁澶囨敞杩斿洖 if (devicesDataList.get(devicesDataList.size() - 1).getAppliancesInfoList().get(0).getBigType() != Configuration.AUDIO_BIG_TYPE) { for (int i = 0, len = devicesDataList.get(devicesDataList.size() - 1).getAppliancesInfoList().size(); i < len; i++) { ListRemarks listRemarksTemp = new ListRemarks(); @@ -425,8 +447,6 @@ listRemarks.add(listRemarksTemp); } } - -// HDLCommand.HDLgetDevRemarks(devicesDataList.get(devicesDataList.size()-1).getAppliancesInfoList()); /********************杈呭姪璋冭瘯鎵撳嵃*******************/ String deviceName = ""; @@ -447,6 +467,33 @@ } /** + * 澶勭悊鎼滅储鍦烘櫙鏁版嵁 + * + * @param getDatas + */ + private static void handleSearchSceneData(UdpDataBean getDatas) { + int size = getDatas.addBytes[0] * 256 + getDatas.addBytes[1]; + + /********************杈呭姪璋冭瘯鎵撳嵃*******************/ + for (int i = 0, len = size; i < len; i++) { + ScenesData scenesData = new ScenesData(); + scenesData.setSourceSubnetID(getDatas.sourceSubnetID); + scenesData.setSourceDeviceID(getDatas.sourceDeviceID); + scenesData.setAddByte(getDatas.addBytes); + scenesData.setIndex(i + 1); + scenesDataList.add(scenesData); + HDLLog.I("鎵�鏈夊満鏅垪琛� 绗� " + scenesDataList.size() + " 涓ā鍧� " + + " \n婧愬瓙缃戝彿 = " + (getDatas.sourceSubnetID) + + " \n婧愯澶囧彿 = " + (getDatas.sourceDeviceID) + + " \n鍦烘櫙绱㈠紩 = " + scenesData.getIndex() + ); + } + + /********************杈呭姪璋冭瘯鎵撳嵃*******************/ + + } + + /** * 澶勭悊鐏厜杩斿洖 * 2020-1-18 * 淇娣峰悎璋冨厜娣峰悎寮�鍏� 绫绘ā鍧楅棶棰� @@ -456,8 +503,8 @@ private static void handleLightCtrlData(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 + if (devicesDataList.get(i).getDeviceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getDeviceDeviceID() == getDatas.sourceDeviceID ) { List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); for (int j = 0, len2 = infos.size(); j < len2; j++) { @@ -519,8 +566,8 @@ 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 + if (devicesDataList.get(i).getDeviceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getDeviceDeviceID() == getDatas.sourceDeviceID ) { List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); for (int j = 0, len2 = infos.size(); j < len2; j++) { @@ -554,13 +601,15 @@ switch (getDatas.command) { case Configuration.LIGHT_CTRL_BACK_COMMAND: handleLightCtrlData(getDatas); - + if (!HDLDeviceManager.isGetBusLightState) { + isGetDeviceStateSuccess = true; + } break; case Configuration.CURTAIN_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 + if (devicesDataList.get(i).getDeviceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getDeviceDeviceID() == getDatas.sourceDeviceID ) { List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); inner: @@ -584,12 +633,13 @@ curtainCtrlBackInfo.setRemarks(curtainInfo.getRemarks()); curtainCtrlBackInfo.setParentRemarks(curtainInfo.getParentRemarks()); curtainCtrlBackInfo.setAppliancesInfo(curtainInfo); -// isCurtainCtrlSuccess = true; setDeviceCtrlSuccessStateWithInfo(infos.get(j), true); + if (curtainInfo.getDeviceType() == HDLApConfig.TYPE_CURTAIN_GLYSTRO - || curtainInfo.getDeviceType() == HDLApConfig.TYPE_CURTAIN_ROLLER) { + || curtainInfo.getDeviceType() == HDLApConfig.TYPE_CURTAIN_ROLLER + || curtainInfo.getDeviceType() == HDLApConfig.TYPE_CURTAIN_SHANGRILA) { if ((getDatas.addBytes[0] & 0xFF) >= 17) { - int curState = getDatas.addBytes[1] & 0xFF; + int curState = getDatas.addBytes[1] & 0xFF;//V1.0鐧惧垎姣� if (curState == 1) { //杩欎釜鍒ゆ柇寰堝偦锛岀獥甯樺叧鍒扮櫨鍒嗘瘮涓�0锛屼細璺冲埌1杩斿洖鍥炴潵锛屽彧鑳藉己鍒舵敼涓�0 curState = 0; @@ -598,16 +648,23 @@ curState = 100; } curtainCtrlBackInfo.setState(curState); + devicesDataList.get(i).getAppliancesInfoList().get(j).setCurState(curState); - devicesDataList.get(i).getAppliancesInfoList().get(j).setIntCurState(curState); + devicesDataList.get(i).getAppliancesInfoList().get(j).setArrCurState(getDatas.addBytes); curtainCtrlBackInfo.setNum((getDatas.addBytes[0] & 0xFF) - 16); EventBus.getDefault().post(new CurtainFeedBackEvent(curtainCtrlBackInfo, true)); + } else { + if (getDatas.addBytes.length >= 3) { + curtainCtrlBackInfo = new CurtainCtrlBackInfo(devicesDataList.get(i).getAppliancesInfoList().get(j)); + devicesDataList.get(i).getAppliancesInfoList().get(j).setArrCurState(getDatas.addBytes); + curtainCtrlBackInfo.setNum(getDatas.addBytes[0] & 0xFF); + EventBus.getDefault().post(new CurtainFeedBackEvent(curtainCtrlBackInfo, true)); + } } - } - if (curtainInfo.getDeviceType() == HDLApConfig.TYPE_CURTAIN_MODULE) { + } else if (curtainInfo.getDeviceType() == HDLApConfig.TYPE_CURTAIN_MODULE) { if ((getDatas.addBytes[0] & 0xFF) < 17) { int state = getDatas.addBytes[1] & 0xFF; - switch (getDatas.addBytes[1] & 0xFF) {//杩欓噷涔熷簲璇ユ敼鎴�0锛�1锛�2 + switch (state) {//杩欓噷涔熷簲璇ユ敼鎴�0锛�1锛�2 case 0: state = CurtainCtrlParser.curtainPause; break; @@ -624,15 +681,11 @@ curtainCtrlBackInfo.setState(state); curtainCtrlBackInfo.setNum(getDatas.addBytes[0] & 0xFF); devicesDataList.get(i).getAppliancesInfoList().get(j).setCurState(state); - devicesDataList.get(i).getAppliancesInfoList().get(j).setIntCurState(state); + devicesDataList.get(i).getAppliancesInfoList().get(j).setArrCurState(getDatas.addBytes); EventBus.getDefault().post(new CurtainFeedBackEvent(curtainCtrlBackInfo, true)); } } - - break outter; - - } } } @@ -641,8 +694,8 @@ case Configuration.AIR_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 + if (devicesDataList.get(i).getDeviceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getDeviceDeviceID() == getDatas.sourceDeviceID ) { List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); for (int j = 0, len2 = infos.size(); j < len2; j++) { @@ -745,39 +798,82 @@ } } break; + } + } + + /** + * 澶勭悊閫昏緫 鎺у埗鍥炶皟 + * 2024-1-19 + * + * @param getDatas + */ + private static void handleLogicCtrlData(UdpDataBean getDatas) { + switch (getDatas.command) { case Configuration.LOGIC_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 ((infos.get(j).getBigType() == Configuration.LOGIC_BIG_TYPE - || infos.get(j).getBigType() == Configuration.GLOBAL_LOGIC_BIG_TYPE) - && infos.get(j).getLogicMode().getAreaNum() == (getDatas.addBytes[0] & 0xFF) - && infos.get(j).getLogicMode().getAreaSceneNum() == (getDatas.addBytes[1] & 0xFF) - ) { - AppliancesInfo sceneInfo = infos.get(j); - LogicMode logicMode = new LogicMode(); - logicMode.setAreaNum(getDatas.addBytes[0] & 0xFF); - logicMode.setAreaSceneNum(getDatas.addBytes[1] & 0xFF); - sceneInfo.setLogicMode(logicMode); + if (devicesDataList != null && devicesDataList.size() != 0) { + for (int i = 0, len = devicesDataList.size(); i < len; i++) { + if (devicesDataList.get(i).getDeviceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getDeviceDeviceID() == 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.LOGIC_BIG_TYPE + || infos.get(j).getBigType() == Configuration.GLOBAL_LOGIC_BIG_TYPE) + && infos.get(j).getLogicMode().getAreaNum() == (getDatas.addBytes[0] & 0xFF) + && infos.get(j).getLogicMode().getAreaSceneNum() == (getDatas.addBytes[1] & 0xFF)) { + AppliancesInfo sceneInfo = infos.get(j); + LogicMode logicMode = new LogicMode(); + logicMode.setAreaNum(getDatas.addBytes[0] & 0xFF); + logicMode.setAreaSceneNum(getDatas.addBytes[1] & 0xFF); + sceneInfo.setLogicMode(logicMode); - LogicCtrlBackInfo logicCtrlBackInfo = new LogicCtrlBackInfo(); - logicCtrlBackInfo.setAppliancesInfo(sceneInfo); - logicCtrlBackInfo.setAreaNum(getDatas.addBytes[0] & 0xFF); - logicCtrlBackInfo.setSceneNum(getDatas.addBytes[1] & 0xFF); + LogicCtrlBackInfo logicCtrlBackInfo = new LogicCtrlBackInfo(); + logicCtrlBackInfo.setAppliancesInfo(sceneInfo); + logicCtrlBackInfo.setAreaNum(getDatas.addBytes[0] & 0xFF); + logicCtrlBackInfo.setSceneNum(getDatas.addBytes[1] & 0xFF); // isSceneCtrlSuccess = true; - setDeviceCtrlSuccessStateWithInfo(infos.get(j), true); - EventBus.getDefault().post(new LogicFeedBackEvent(logicCtrlBackInfo, true)); + setDeviceCtrlSuccessStateWithInfo(infos.get(j), true); + EventBus.getDefault().post(new LogicFeedBackEvent(logicCtrlBackInfo, true)); - break outter; + break outter; + } } } } } + break; + } + } + /** + * 澶勭悊鍦烘櫙 鎺у埗鍥炶皟 + * 2024-1-19 + * + * @param getDatas + */ + private static void handleSceneCtrlData(UdpDataBean getDatas) { + switch (getDatas.command) { + case Configuration.LOGIC_CTRL_BACK_COMMAND: + outter: + if (scenesDataList != null && scenesDataList.size() != 0) { + for (int i = 0, len = scenesDataList.size(); i < len; i++) { + if (scenesDataList.get(i).getSourceSubnetID() == getDatas.sourceSubnetID + && scenesDataList.get(i).getSourceDeviceID() == getDatas.sourceDeviceID + && scenesDataList.get(i).getAreaCodeID() == (getDatas.addBytes[0] & 0xFF) + && scenesDataList.get(i).getSceneID() == (getDatas.addBytes[1] & 0xFF)) { + + SceneCtrlBackInfo sceneCtrlBackInfo = new SceneCtrlBackInfo(); + sceneCtrlBackInfo.setAreaCodeID(getDatas.addBytes[0] & 0xFF); + sceneCtrlBackInfo.setSceneID(getDatas.addBytes[1] & 0xFF); + sceneCtrlBackInfo.setLoopNum(getDatas.addBytes[2] & 0xFF); + + setSceneCtrlSuccess(true); + EventBus.getDefault().post(new SceneFeedBackEvent(sceneCtrlBackInfo, true)); + + break outter; + } + } + } break; } } @@ -794,8 +890,8 @@ case Configuration.SECURITY_ARMING_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 + if (devicesDataList.get(i).getDeviceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getDeviceDeviceID() == getDatas.sourceDeviceID ) { List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); for (int j = 0, len2 = infos.size(); j < len2; j++) { @@ -825,8 +921,8 @@ case Configuration.SECURITY_ALARM_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 + if (devicesDataList.get(i).getDeviceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getDeviceDeviceID() == getDatas.sourceDeviceID ) { List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); @@ -873,8 +969,8 @@ 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 + if (devicesDataList.get(i).getDeviceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getDeviceDeviceID() == getDatas.sourceDeviceID ) { List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); for (int j = 0, len2 = infos.size(); j < len2; j++) { @@ -912,13 +1008,14 @@ 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) { + if (devicesDataList.get(i).getDeviceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getDeviceDeviceID() == 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).getDeviceType() == HDLApConfig.TYPE_AC_TECHSYS + || infos.get(j).getDeviceType() == HDLApConfig.TYPE_AC_KNXTECHSYS) && infos.get(j).getChannelNum() == (getDatas.addBytes[0] & 0xFF)) { devicesDataList.get(i).getAppliancesInfoList().get(j).setArrCurState(getDatas.addBytes); @@ -964,8 +1061,8 @@ private static void handleLogicAir(UdpDataBean getDatas) { AppliancesInfo newInfo1 = null; for (int devPos = 0, len = devicesDataList.size(); devPos < len; devPos++) { - if (devicesDataList.get(devPos).getSourceSubnetID() == getDatas.sourceSubnetID - && devicesDataList.get(devPos).getSourceDeviceID() == getDatas.sourceDeviceID + if (devicesDataList.get(devPos).getDeviceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(devPos).getDeviceDeviceID() == getDatas.sourceDeviceID ) { List<AppliancesInfo> infos = devicesDataList.get(devPos).getAppliancesInfoList(); for (int appPos = 0, len2 = infos.size(); appPos < len2; appPos++) { @@ -1102,151 +1199,45 @@ outter: for (int devPos = 0, len = devicesDataList.size(); devPos < len; devPos++) { if (devicesDataList.get(devPos).getSourceSubnetID() == getDatas.sourceSubnetID - && devicesDataList.get(devPos).getSourceDeviceID() == getDatas.sourceDeviceID - ) { + && devicesDataList.get(devPos).getSourceDeviceID() == getDatas.sourceDeviceID) { List<AppliancesInfo> infos = devicesDataList.get(devPos).getAppliancesInfoList(); for (int appPos = 0, len2 = infos.size(); appPos < len2; appPos++) { - if ((infos.get(appPos).getBigType()) == (getDatas.addBytes[0] & 0xFF) - && ((infos.get(appPos).getLittleType()) == (getDatas.addBytes[1] & 0xFF)) + if ((infos.get(appPos).getDeviceSubnetID()) == (getDatas.addBytes[0] & 0xFF) + && (infos.get(appPos).getDeviceDeviceID()) == (getDatas.addBytes[1] & 0xFF) && ((infos.get(appPos).getChannelNum()) == (getDatas.addBytes[2] & 0xFF)) - ) { + && (infos.get(appPos).getBigType()) == (getDatas.addBytes[3] & 0xFF) + && ((infos.get(appPos).getLittleType()) == (getDatas.addBytes[4] & 0xFF))) { - //2019-8-20 + //2023-11-30 byte[] remarkByte; - if (getDatas.addBytes.length >= 23) { + if (getDatas.addBytes.length >= 26) { remarkByte = new byte[20]; - System.arraycopy(getDatas.addBytes, 3, remarkByte, 0, remarkByte.length); + System.arraycopy(getDatas.addBytes, 6, remarkByte, 0, remarkByte.length); } else { remarkByte = new byte[getDatas.addBytes.length - 3]; - System.arraycopy(getDatas.addBytes, 3, remarkByte, 0, getDatas.addBytes.length - 3); + System.arraycopy(getDatas.addBytes, 6, remarkByte, 0, getDatas.addBytes.length - 3); } String remarkStr = HDLStringUtils.byte2String(remarkByte); - HDLLog.I("remarkStr鍥炶矾锛�" + remarkStr); + HDLLog.I("remarkStr鑾峰彇鐨勫娉ㄥ悕涓猴細" + remarkStr); + devicesDataList.get(devPos).getAppliancesInfoList().get(appPos).setChannelNum(getDatas.addBytes[5] & 0xFF); devicesDataList.get(devPos).getAppliancesInfoList().get(appPos).setRemarks(remarkStr); - switch (infos.get(appPos).getBigType()) { - case Configuration.LOGIC_BIG_TYPE: - case Configuration.GLOBAL_LOGIC_BIG_TYPE: - LogicMode logicMode = new LogicMode(); - logicMode.setAreaNum(getDatas.addBytes[getDatas.addBytes.length - 2] & 0xFF); - logicMode.setAreaSceneNum(getDatas.addBytes[getDatas.addBytes.length - 1] & 0xFF); + String key = "K" + devicesDataList.get(devPos).getAppliancesInfoList().get(appPos).getBigType() + + "-" + devicesDataList.get(devPos).getAppliancesInfoList().get(appPos).getLittleType() + + "-" + devicesDataList.get(devPos).getAppliancesInfoList().get(appPos).getDeviceSubnetID() + + "-" + devicesDataList.get(devPos).getAppliancesInfoList().get(appPos).getDeviceDeviceID() + + "-" + devicesDataList.get(devPos).getAppliancesInfoList().get(appPos).getChannelNum(); + devicesDataList.get(devPos).getAppliancesInfoList().get(appPos).setDeviceKey(key); - devicesDataList.get(devPos).getAppliancesInfoList().get(appPos).setLogicMode(logicMode); - - break; - case Configuration.LIGTH_BIG_TYPE: - switch (infos.get(appPos).getLittleType()) { - case 0: - 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; - case 1: - 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; - case 9: - RcuLight rcuLight = new RcuLight(); - rcuLight.setPhysicsChanelNum(getDatas.addBytes[getDatas.addBytes.length - 1] & 0xFF); - rcuLight.setCurState(getDatas.addBytes[getDatas.addBytes.length - 2] & 0xFF); - rcuLight.setLittleType(9); - rcuLightList.add(rcuLight); - devicesDataList.get(devPos).getAppliancesInfoList().get(appPos).setPhysicsChannelNum(getDatas.addBytes[getDatas.addBytes.length - 1] & 0xFF); - devicesDataList.get(devPos).getAppliancesInfoList().get(appPos).setCurState(getDatas.addBytes[getDatas.addBytes.length - 2] & 0xFF); - devicesDataList.get(devPos).getAppliancesInfoList().get(appPos).setIntCurState(getDatas.addBytes[getDatas.addBytes.length - 2] & 0xFF); - break; - case 10: - RcuLight rcu2Light = new RcuLight(); - rcu2Light.setPhysicsChanelNum(getDatas.addBytes[getDatas.addBytes.length - 1] & 0xFF); - rcu2Light.setCurState(getDatas.addBytes[getDatas.addBytes.length - 2] & 0xFF); - rcu2Light.setLittleType(10); - rcuLightList.add(rcu2Light); - devicesDataList.get(devPos).getAppliancesInfoList().get(appPos).setPhysicsChannelNum(getDatas.addBytes[getDatas.addBytes.length - 1] & 0xFF); - devicesDataList.get(devPos).getAppliancesInfoList().get(appPos).setCurState(getDatas.addBytes[getDatas.addBytes.length - 2] & 0xFF); - devicesDataList.get(devPos).getAppliancesInfoList().get(appPos).setIntCurState(getDatas.addBytes[getDatas.addBytes.length - 2] & 0xFF); - break; - - } - break; - case Configuration.CURTAIN_BIG_TYPE: - int curtainState; - switch (infos.get(appPos).getLittleType()) { - case 0: - curtainState = getDatas.addBytes[25] & 0xFF; - if (curtainState == 1) { - curtainState = 0; - } else if (curtainState == 99) { - curtainState = 100; - } - devicesDataList.get(devPos).getAppliancesInfoList().get(appPos).setCurState(curtainState); - devicesDataList.get(devPos).getAppliancesInfoList().get(appPos).setIntCurState(curtainState); - break; - case 1: - curtainState = getDatas.addBytes[23] & 0xFF; - if (curtainState == 1) { - curtainState = 0; - } else if (curtainState == 99) { - curtainState = 100; - } - devicesDataList.get(devPos).getAppliancesInfoList().get(appPos).setCurState(curtainState); - devicesDataList.get(devPos).getAppliancesInfoList().get(appPos).setIntCurState(curtainState); - break; - case 2: - 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; - - case Configuration.AIR_BIG_TYPE: - switch (infos.get(appPos).getLittleType()) { - case 0: - byte[] hvacBytes = new byte[getDatas.addBytes.length - 23]; - for (int i = 23; i < getDatas.addBytes.length; i++) { - hvacBytes[i - 23] = getDatas.addBytes[i]; - } - devicesDataList.get(devPos).getAppliancesInfoList().get(appPos).setArrCurState(hvacBytes); - break; - case 3: - byte[] newBytes = new byte[getDatas.addBytes.length - 24 + 1]; - for (int i = 24; i < getDatas.addBytes.length; i++) { - newBytes[i - 24] = getDatas.addBytes[i]; - } - devicesDataList.get(devPos).getAppliancesInfoList().get(appPos).setArrCurState(newBytes); - break; - } - break; - case Configuration.SENSOR_BIG_TYPE: - int curState; - if (getDatas.addBytes.length >= 26) {//2023-11-14 鐗规畩澶勭悊锛屼慨鏀瑰洖璺彿涓虹墿鐞嗗洖璺紙鍥犱负ZigBee杞琤us杞崲鍣ㄧ敤鐨勯兘鏄墿鐞嗗洖璺紝灏嗛�昏緫鍥炶矾璁句负鐗╃悊鍥炶矾澶勭悊锛� - curState = (int) (getDatas.addBytes[24] & 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; - } listRemarksOutter: for (int lRPos = 0, len3 = listRemarks.size(); lRPos < len3; lRPos++) { - //鎵惧埌E44B瀵瑰簲鐨勮澶囧洖璺紝鍒ゆ柇鏄惁宸茬粡鎷垮埌浜嗘暟鎹�� - if (listRemarks.get(lRPos).getAppliancesInfo().getDeviceSubnetID() == getDatas.sourceSubnetID - && listRemarks.get(lRPos).getAppliancesInfo().getDeviceDeviceID() == getDatas.sourceDeviceID - && listRemarks.get(lRPos).getAppliancesInfo().getBigType() == (getDatas.addBytes[0] & 0xFF) - && listRemarks.get(lRPos).getAppliancesInfo().getLittleType() == (getDatas.addBytes[1] & 0xFF) + //鎵惧埌F44B瀵瑰簲鐨勮澶囧洖璺紝鍒ゆ柇鏄惁宸茬粡鎷垮埌浜嗘暟鎹�� + if (listRemarks.get(lRPos).getAppliancesInfo().getDeviceSubnetID() == (getDatas.addBytes[0] & 0xFF) + && listRemarks.get(lRPos).getAppliancesInfo().getDeviceDeviceID() == (getDatas.addBytes[1] & 0xFF) && listRemarks.get(lRPos).getAppliancesInfo().getChannelNum() == (getDatas.addBytes[2] & 0xFF) - ) { + && listRemarks.get(lRPos).getAppliancesInfo().getBigType() == (getDatas.addBytes[3] & 0xFF) + && listRemarks.get(lRPos).getAppliancesInfo().getLittleType() == (getDatas.addBytes[4] & 0xFF)) { //鑻ユ病鎷垮埌鏁版嵁锛屽垯鎷挎暟鎹紱鑻ュ凡缁忔嬁鍒版暟鎹紝闇�瑕佸垽鏂璴istRemarks鍏ㄩ儴鏉$洰鏄惁鎷垮埌澶囨敞銆� @@ -1289,6 +1280,70 @@ } /** + * 澶勭悊鎵�鏈夊満鏅鎯呮暟鎹�佽缃綋鍓嶅満鏅姸鎬� + * + * @param getDatas + */ + private static void handleSceneCurStateData(UdpDataBean getDatas) { + outter: + for (int devPos = 0, len = scenesDataList.size(); devPos < len; devPos++) { + if (scenesDataList.get(devPos).getSourceSubnetID() == getDatas.sourceSubnetID + && scenesDataList.get(devPos).getSourceDeviceID() == getDatas.sourceDeviceID + && scenesDataList.get(devPos).getIndex() == (getDatas.addBytes[0] * 256 + getDatas.addBytes[1])) { + //2024-01-18 + byte[] remarkByte; + String remarkStr = ""; + if (getDatas.addBytes.length >= 36) { + remarkByte = new byte[32]; + System.arraycopy(getDatas.addBytes, 4, remarkByte, 0, remarkByte.length); + remarkStr = HDLStringUtils.byte2String(remarkByte); + } + + HDLLog.I("remarkStr鑾峰彇鐨勫満鏅娉ㄥ悕涓猴細" + remarkStr); + scenesDataList.get(devPos).setAreaCodeID(getDatas.addBytes[2] & 0xFF); + scenesDataList.get(devPos).setSceneID(getDatas.addBytes[3] & 0xFF); + scenesDataList.get(devPos).setRemark(remarkStr); + + listRemarksOutter: + for (int lRPos = 0, len3 = scenesDataList.size(); lRPos < len3; lRPos++) { + //鎵惧埌F44B瀵瑰簲鐨勮澶囧洖璺紝鍒ゆ柇鏄惁宸茬粡鎷垮埌浜嗘暟鎹�� + if (scenesDataList.get(lRPos).getAreaCodeID() == (getDatas.addBytes[2] & 0xFF) + && scenesDataList.get(lRPos).getSceneID() == (getDatas.addBytes[3] & 0xFF)) { + + //鑻ユ病鎷垮埌鏁版嵁锛屽垯鎷挎暟鎹紱鑻ュ凡缁忔嬁鍒版暟鎹紝闇�瑕佸垽鏂璴istRemarks鍏ㄩ儴鏉$洰鏄惁鎷垮埌澶囨敞銆� + if (scenesDataList.get(lRPos).isCallBack()) { + for (int lR2Pos = 0, len4 = scenesDataList.size(); lR2Pos < len4; lR2Pos++) { + if (scenesDataList.get(lR2Pos).isCallBack()) { + if (lR2Pos == (len4 - 1)) { + HDLLog.I("鏀跺埌澶囨敞鍛戒护锛屽凡瀛樺湪姝ゅ満鏅娉紝杩囨护"); + break listRemarksOutter; + } + } else { + HDLLog.I("涓嶅瓨鍦ㄧ殑鍦烘櫙澶囨敞锛屽啀娆℃悳绱㈠娉ㄣ�傚尯鍙凤細" + scenesDataList.get(lRPos).getAreaCodeID() + + ",鍦烘櫙鍙凤細" + scenesDataList.get(lRPos).getSceneID()); + HandleSearch.getSceneDetails(); + break listRemarksOutter; + } + } + } else { + HDLLog.I("杩斿洖澶囨敞鍦烘櫙锛氬尯鍙凤細" + scenesDataList.get(lRPos).getAreaCodeID() + + ",鍦烘櫙鍙凤細" + scenesDataList.get(lRPos).getSceneID()); + scenesDataList.get(lRPos).setCallBack(true); + HandleSearch.getSceneDetails(); + break listRemarksOutter; + } + + } + } + + break outter; + + } + } + } + + + /** * 澶勭悊淇敼璁惧澶囨敞鍚庣殑鍥炶皟 * * @param getDatas @@ -1309,8 +1364,8 @@ private static void handleStateData(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 + if (devicesDataList.get(i).getDeviceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getDeviceDeviceID() == getDatas.sourceDeviceID ) { List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); for (int j = 0, len2 = infos.size(); j < len2; j++) { @@ -1323,7 +1378,6 @@ devicesDataList.get(i).getAppliancesInfoList().get(j).setIntCurState((int) value); sensorInfo.setCurState(value); - String unite = ""; switch (sensorInfo.getDeviceType()) { @@ -1351,6 +1405,7 @@ unite = ""; break; case HDLApConfig.TYPE_SENSOR_PM_2_POINT_5: + case HDLApConfig.TYPE_SENSOR_PM_10: switch (getDatas.addBytes[4] & 0xff) { case 0: unite = "mg/m3"; @@ -1478,8 +1533,6 @@ unite = "鏈煡鍗曚綅"; break; } - - // EventBus.getDefault().post(new DeviceStateEvent(sensorInfo, true)); HDLLog.I("鍙戦�佷紶鎰熷櫒閫氱煡鏇存柊"); EventBus.getDefault().post(new SensorStateBackInfo(sensorInfo, true, unite)); @@ -1496,16 +1549,16 @@ } /** - * 澶勭悊浼犳劅鍣� 骞挎挱鏁版嵁 - * 2019-11-4 鏂颁慨鏀� + * 澶勭悊浼犳劅鍣� 鐘舵�佽鍙栥�佸箍鎾暟鎹� + * 2024-2-2 鏂版敮鎸� * * @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 + if (devicesDataList.get(i).getDeviceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getDeviceDeviceID() == getDatas.sourceDeviceID ) { List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); for (int j = 0, len2 = infos.size(); j < len2; j++) { @@ -1514,7 +1567,14 @@ && infos.get(j).getChannelNum() == (getDatas.addBytes[2] & 0xFF)) {//2019-07-29 isGetDeviceStateSuccess = true; AppliancesInfo sensorInfo = devicesDataList.get(i).getAppliancesInfoList().get(j); - float value = HDLUtlis.byte2Float(Arrays.copyOfRange(getDatas.addBytes, 5, 8)); + float value = 0; + if ((getDatas.addBytes[3] & 0xFF) == 1 || (getDatas.addBytes[3] & 0xFF) == 2) {//鏁村瀷 + value = HDLUtlis.getInt(Arrays.copyOfRange(getDatas.addBytes, 5, 9)); + } else if ((getDatas.addBytes[3] & 0xFF) == 3) {//娴偣鍨� + value = HDLUtlis.byteToFloat(getDatas.addBytes[5], getDatas.addBytes[6], getDatas.addBytes[7], getDatas.addBytes[8]); + } + + Log.d("panlili", "HDLDeviceManager.java:handleSensorBroadcastStateData----->value= " + value); devicesDataList.get(i).getAppliancesInfoList().get(j).setCurState(value); devicesDataList.get(i).getAppliancesInfoList().get(j).setIntCurState((int) value); @@ -1546,6 +1606,7 @@ unite = ""; break; case HDLApConfig.TYPE_SENSOR_PM_2_POINT_5: + case HDLApConfig.TYPE_SENSOR_PM_10: switch (getDatas.addBytes[4] & 0xff) { case 0: unite = "mg/m3"; @@ -1690,6 +1751,51 @@ } /** + * 澶勭悊KNX绉戞妧甯屾 鐘舵�佽鍙栥�佸箍鎾暟鎹� + * 2024-5-28 鏂版敮鎸� + * + * @param getDatas + */ + private static void handleKNXTechSysStateData(UdpDataBean getDatas) { + outter: + for (int i = 0, len = devicesDataList.size(); i < len; i++) { + if (devicesDataList.get(i).getDeviceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getDeviceDeviceID() == 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).getLittleType() == 101 + && infos.get(j).getChannelNum() == (getDatas.addBytes[2] & 0xFF)) { + + AppliancesInfo info = devicesDataList.get(i).getAppliancesInfoList().get(j); + info.setGetDeviceStateSuccess(true); + float value = 0; + //00014 2024骞�5鏈�29鏃�9:44:03:806: 14 64 C8 11 F7 35 3A FF FF 05 03 01 03 00 00 00 00 36 53 81 + if ((getDatas.addBytes[3] & 0xFF) == 1 || (getDatas.addBytes[3] & 0xFF) == 2) {//鏁村瀷 + value = HDLUtlis.getInt(Arrays.copyOfRange(getDatas.addBytes, 5, 9)); + } else if ((getDatas.addBytes[3] & 0xFF) == 3) {//娴偣鍨� +// value = HDLUtlis.byteToFloat(getDatas.addBytes[8], getDatas.addBytes[7], getDatas.addBytes[6], getDatas.addBytes[5]); + value = HDLUtlis.getInt(Arrays.copyOfRange(getDatas.addBytes, 5, 9)); + } + Log.d("panlili", "HDLDeviceManager.java:handleKNXTechSysStateData----->value= " + value); + + AirTechSysBackInfo mAirTechSysBackInfo = new AirTechSysBackInfo(info); + mAirTechSysBackInfo.setIndoorHumidity(value + "");//璁剧疆婀垮害 + + EventBus.getDefault().post(new AirTechSysFeedBackEvent(mAirTechSysBackInfo, true)); + HDLLog.I("鍙戦�佺鎶�绯荤粺婀垮害閫氱煡鏇存柊"); + + break outter; + } else { + HDLLog.I("handle state 娌℃湁鎵惧埌鍖归厤绫诲瀷"); + } + } + break outter; + } + } + } + + /** * panlili * 澶勭悊闂ㄩ攣鐘舵�佸拰鎶ヨ 骞挎挱鏁版嵁 * @@ -1698,8 +1804,8 @@ 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 + if (devicesDataList.get(i).getDeviceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getDeviceDeviceID() == getDatas.sourceDeviceID ) { List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); for (int j = 0, len2 = infos.size(); j < len2; j++) { @@ -1799,8 +1905,8 @@ private static void handleLightStateData(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 + if (devicesDataList.get(i).getDeviceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getDeviceDeviceID() == getDatas.sourceDeviceID ) { List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); for (int j = 0, len2 = infos.size(); j < len2; j++) { @@ -1828,8 +1934,8 @@ 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 + if (devicesDataList.get(i).getDeviceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getDeviceDeviceID() == getDatas.sourceDeviceID ) { List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); for (int j = 0, len2 = infos.size(); j < len2; j++) { @@ -1859,8 +1965,8 @@ private static void handleCurtainBroadcastStateData(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 + if (devicesDataList.get(i).getDeviceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getDeviceDeviceID() == getDatas.sourceDeviceID ) { List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); for (int j = 0, len2 = infos.size(); j < len2; j++) { @@ -1909,8 +2015,8 @@ private static void handleCurtainStateData(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 + if (devicesDataList.get(i).getDeviceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getDeviceDeviceID() == getDatas.sourceDeviceID ) { List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); for (int j = 0, len2 = infos.size(); j < len2; j++) { @@ -1918,7 +2024,6 @@ int state = 0; if (infos.get(j).getDeviceType() == HDLApConfig.TYPE_CURTAIN_MODULE//绐楀笜妯″潡 && infos.get(j).getChannelNum() == (getDatas.addBytes[0] & 0xFF)) {//2019-07-17 - switch (getDatas.addBytes[1] & 0xFF) {//杩欓噷涔熷簲璇ユ敼鎴�0锛�1锛�2 case 0: state = CurtainCtrlParser.curtainPause; @@ -1941,38 +2046,59 @@ EventBus.getDefault().post(new DeviceStateEvent(curtainInfo, true)); break outter; - } else if (infos.get(j).getDeviceType() == HDLApConfig.TYPE_CURTAIN_GLYSTRO || infos.get(j).getDeviceType() == HDLApConfig.TYPE_CURTAIN_ROLLER) { - if ((getDatas.addBytes[0] & 0xFF) >= 17 - && ((getDatas.addBytes[0] & 0xFF) - 16) == infos.get(j).getChannelNum()) {//绐楀笜鍙峰ぇ浜庣瓑浜�17 鍑� 16 = 褰撳墠绐楀笜鍥炶矾鍙� - state = getDatas.addBytes[1] & 0xFF; - if (state == 1) { - state = 0;//杩欎釜鍒ゆ柇鏄皢鐧惧垎姣斾负1锛屽己鍒舵敼涓�0. + } else if (infos.get(j).getDeviceType() == HDLApConfig.TYPE_CURTAIN_GLYSTRO || infos.get(j).getDeviceType() == HDLApConfig.TYPE_CURTAIN_ROLLER + || infos.get(j).getDeviceType() == HDLApConfig.TYPE_CURTAIN_SHANGRILA) { + + if (getDatas.addBytes.length >= 3) {//鏂板崗璁嫇灞曞瓧娈� + if ((getDatas.addBytes[0] & 0xFF) >= 17 + && ((getDatas.addBytes[0] & 0xFF) - 16) == infos.get(j).getChannelNum()) {//绐楀笜鍙峰ぇ浜庣瓑浜�17 鍑� 16 = 褰撳墠绐楀笜鍥炶矾鍙� + state = getDatas.addBytes[1] & 0xFF; + if (state == 1) { + state = 0;//杩欎釜鍒ゆ柇鏄皢鐧惧垎姣斾负1锛屽己鍒舵敼涓�0. + } + if (state == 99) { + state = 100;//杩欎釜鍒ゆ柇鏄皢鐧惧垎姣斾负99锛屽己鍒舵敼涓�100. + } + isGetDeviceStateSuccess = true; + devicesDataList.get(i).getAppliancesInfoList().get(j).setCurState(state); + devicesDataList.get(i).getAppliancesInfoList().get(j).setArrCurState(getDatas.addBytes); + + AppliancesInfo curtainInfo = devicesDataList.get(i).getAppliancesInfoList().get(j); + + CurtainCtrlBackInfo curtainCtrlBackInfo = new CurtainCtrlBackInfo(); + curtainCtrlBackInfo.setRemarks(curtainInfo.getRemarks()); + curtainCtrlBackInfo.setParentRemarks(curtainInfo.getParentRemarks()); + curtainCtrlBackInfo.setAppliancesInfo(curtainInfo); + curtainInfo.setCurState(state); + + curtainCtrlBackInfo.setState(state); + + devicesDataList.get(i).getAppliancesInfoList().get(j).setCurState(state); + devicesDataList.get(i).getAppliancesInfoList().get(j).setArrCurState(getDatas.addBytes); + curtainCtrlBackInfo.setNum((getDatas.addBytes[0] & 0xFF) - 16); + + EventBus.getDefault().post(new CurtainDeviceStateEvent(curtainCtrlBackInfo, true)); + break outter; + } else { + if ((getDatas.addBytes[0] & 0xFF) == infos.get(j).getChannelNum()) { + isGetDeviceStateSuccess = true; + + devicesDataList.get(i).getAppliancesInfoList().get(j).setCurState(getDatas.addBytes); + devicesDataList.get(i).getAppliancesInfoList().get(j).setArrCurState(getDatas.addBytes); + AppliancesInfo appliancesInfo = devicesDataList.get(i).getAppliancesInfoList().get(j); + CurtainCtrlBackInfo info = new CurtainCtrlBackInfo(appliancesInfo); + EventBus.getDefault().post(new CurtainDeviceStateEvent(info, true)); + } } - if (state == 99) { - state = 100;//杩欎釜鍒ゆ柇鏄皢鐧惧垎姣斾负99锛屽己鍒舵敼涓�100. - } - isGetDeviceStateSuccess = true; - devicesDataList.get(i).getAppliancesInfoList().get(j).setCurState(getDatas.addBytes[1] & 0xFF); - devicesDataList.get(i).getAppliancesInfoList().get(j).setIntCurState(getDatas.addBytes[1] & 0xFF); - AppliancesInfo curtainInfo = devicesDataList.get(i).getAppliancesInfoList().get(j); - curtainInfo.setCurState(state); - EventBus.getDefault().post(new DeviceStateEvent(curtainInfo, true)); - break outter; - } else { - if ((getDatas.addBytes[0] & 0xFF) == infos.get(j).getChannelNum()) { - switch (getDatas.addBytes[1] & 0xFF) {//杩欓噷涔熷簲璇ユ敼鎴�0锛�1锛�2 - case 0: - state = CurtainCtrlParser.curtainPause; - break; - case 1: - state = CurtainCtrlParser.curtainOn; - break; - case 2: - state = CurtainCtrlParser.curtainOff; - break; - default: - state = 0; - break; + } else {//鍏煎鏃у崗璁� + if ((getDatas.addBytes[0] & 0xFF) >= 17 + && ((getDatas.addBytes[0] & 0xFF) - 16) == infos.get(j).getChannelNum()) {//绐楀笜鍙峰ぇ浜庣瓑浜�17 鍑� 16 = 褰撳墠绐楀笜鍥炶矾鍙� + state = getDatas.addBytes[1] & 0xFF; + if (state == 1) { + state = 0;//杩欎釜鍒ゆ柇鏄皢鐧惧垎姣斾负1锛屽己鍒舵敼涓�0. + } + if (state == 99) { + state = 100;//杩欎釜鍒ゆ柇鏄皢鐧惧垎姣斾负99锛屽己鍒舵敼涓�100. } isGetDeviceStateSuccess = true; devicesDataList.get(i).getAppliancesInfoList().get(j).setCurState(getDatas.addBytes[1] & 0xFF); @@ -1981,12 +2107,34 @@ curtainInfo.setCurState(state); EventBus.getDefault().post(new DeviceStateEvent(curtainInfo, true)); break outter; + } else { + if ((getDatas.addBytes[0] & 0xFF) == infos.get(j).getChannelNum()) { + switch (getDatas.addBytes[1] & 0xFF) {//杩欓噷涔熷簲璇ユ敼鎴�0锛�1锛�2 + case 0: + state = CurtainCtrlParser.curtainPause; + break; + case 1: + state = CurtainCtrlParser.curtainOn; + break; + case 2: + state = CurtainCtrlParser.curtainOff; + break; + default: + state = 0; + break; + } + isGetDeviceStateSuccess = true; + devicesDataList.get(i).getAppliancesInfoList().get(j).setCurState(getDatas.addBytes[1] & 0xFF); + devicesDataList.get(i).getAppliancesInfoList().get(j).setIntCurState(getDatas.addBytes[1] & 0xFF); + AppliancesInfo curtainInfo = devicesDataList.get(i).getAppliancesInfoList().get(j); + curtainInfo.setCurState(state); + EventBus.getDefault().post(new DeviceStateEvent(curtainInfo, true)); + break outter; + } } - } } - } else { HDLLog.I("handleCurtainStateData 娌℃湁鎵惧埌鍖归厤绫诲瀷"); @@ -2006,8 +2154,8 @@ private static void handleAirStateData(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 + if (devicesDataList.get(i).getDeviceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getDeviceDeviceID() == getDatas.sourceDeviceID ) { List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); for (int j = 0, len2 = infos.size(); j < len2; j++) { @@ -2059,8 +2207,8 @@ private static void handleLOGICStateData(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 + if (devicesDataList.get(i).getDeviceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getDeviceDeviceID() == getDatas.sourceDeviceID ) { List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); for (int j = 0, len2 = infos.size(); j < len2; j++) { @@ -2101,8 +2249,8 @@ private static void handleSecurityStateData(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 + if (devicesDataList.get(i).getDeviceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getDeviceDeviceID() == getDatas.sourceDeviceID ) { List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); for (int j = 0, len2 = infos.size(); j < len2; j++) { @@ -2136,8 +2284,8 @@ private static void handleHVACStateData(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 + if (devicesDataList.get(i).getDeviceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getDeviceDeviceID() == getDatas.sourceDeviceID ) { List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); for (int j = 0, len2 = infos.size(); j < len2; j++) { @@ -2167,13 +2315,14 @@ 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 + if (devicesDataList.get(i).getDeviceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getDeviceDeviceID() == 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).getDeviceType() == HDLApConfig.TYPE_AC_TECHSYS + || infos.get(j).getDeviceType() == HDLApConfig.TYPE_AC_KNXTECHSYS) && infos.get(j).getChannelNum() == (getDatas.addBytes[0] & 0xFF)) {//2019-8-6 isGetDeviceStateSuccess = true; @@ -2199,13 +2348,13 @@ private static void handleDryContactBroadcastStateData(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 + if (devicesDataList.get(i).getDeviceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getDeviceDeviceID() == 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.SENSOR_BIG_TYPE - && infos.get(j).getChannelNum() == ((getDatas.addBytes[1] & 0xFF) - 1)) {//2019-07-29 + && infos.get(j).getChannelNum() == (getDatas.addBytes[1] & 0xFF)) { if (getDatas.addBytes.length >= 3) { isGetDeviceStateSuccess = true; int state = getDatas.addBytes[2] & 0xFF; @@ -2235,8 +2384,8 @@ private static void handleCommonSwitchCtrlData(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) { + if (devicesDataList.get(i).getDeviceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getDeviceDeviceID() == getDatas.sourceDeviceID) { List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); for (int j = 0, len2 = infos.size(); j < len2; j++) { @@ -2272,8 +2421,8 @@ private static void handleCommonSwitchStateData(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) { + if (devicesDataList.get(i).getDeviceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getDeviceDeviceID() == getDatas.sourceDeviceID) { List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); for (int j = 0, len2 = infos.size(); j < len2; j++) { @@ -2303,286 +2452,6 @@ } } -// /** -// * 璇诲彇HVAC鐘舵�佸弽棣� -// * -// * @param getDatas -// */ -// private static void handleHVACStateData(UdpDataBean getDatas) { -// int count = getDatas.addBytes.length / 11; -// -// for (int airIndex = 0; airIndex < count; airIndex++) { -// outter: -// for (int indexI = 0, len = devicesDataList.size(); indexI < len; indexI++) { -// if (devicesDataList.get(indexI).getSourceSubnetID() == getDatas.sourceSubnetID -// && devicesDataList.get(indexI).getSourceDeviceID() == getDatas.sourceDeviceID -// ) { -// List<AppliancesInfo> infos = devicesDataList.get(indexI).getAppliancesInfoList(); -// for (int indexJ = 0, len2 = infos.size(); indexJ < len2; indexJ++) { -// if (infos.get(indexJ).getBigType() == Configuration.AIR_BIG_TYPE -// && infos.get(indexJ).getDeviceType() != HDLApConfig.TYPE_AC_PANEL -// && infos.get(indexJ).getChannelNum() == (getDatas.addBytes[airIndex * 11] & 0xFF)) { -// AppliancesInfo appliancesInfo = devicesDataList.get(indexI).getAppliancesInfoList().get(indexJ); -// -// switch (getDatas.addBytes[airIndex * 11] & 0xff) { -// case 1: -// handleAirCastData(getDatas, air1Info, airIndex, appliancesInfo); -// air1Info[0] = getDatas.addBytes[1 + 0 * 11]; -// air1Info[1] = (byte) ((getDatas.addBytes[3 + 0 * 11] & 0xf0) >> 4); -// switch (air1Info[0] & 0xff) { -// case 0: -// air1Info[2] = getDatas.addBytes[2 + 0 * 11]; -// break; -// case 1: -// air1Info[2] = getDatas.addBytes[6 + 0 * 11]; -// break; -// case 3: -// air1Info[2] = getDatas.addBytes[8 + 0 * 11]; -// break; -// case 4: -// air1Info[2] = getDatas.addBytes[9 + 0 * 11]; -// break; -// -// } -// -// air1Info[3] = (byte) (getDatas.addBytes[3 + 0 * 11] & 0x0f); -// air1Info[4] = getDatas.addBytes[5 + 0 * 11]; -// air1Info[5] = getDatas.addBytes[10 + 0 * 11]; -//// HDLLog.info( "209a air1Info = " + air1Info[0] + " " + air1Info[1] + " " + air1Info[2] + " " + air1Info[3] + " " + air1Info[4] + " " + air1Info[5]); -//// String arrString = "209a 闄勫姞鏁版嵁锛�"; -//// for (int i = 0; i < getDatas.addBytes.length; i++) { -//// arrString += (getDatas.addBytes[i] & 0xff) + ","; -//// } -//// HDLLog.info( arrString); -// devicesDataList.get(indexI).getAppliancesInfoList().get(indexJ).setArrCurState(air1Info); -// break; -// case 2: -// handleAirCastData(getDatas, air2Info, airIndex, appliancesInfo); -// air2Info[0] = getDatas.addBytes[1 + 1 * 11]; -// air2Info[1] = (byte) ((getDatas.addBytes[3 + 1 * 11] & 0xf0) >> 4); -// switch (air2Info[0] & 0xff) { -// case 0: -// air2Info[2] = getDatas.addBytes[2 + 1 * 11]; -// break; -// case 1: -// air2Info[2] = getDatas.addBytes[6 + 1 * 11]; -// break; -// case 3: -// air2Info[2] = getDatas.addBytes[8 + 1 * 11]; -// break; -// case 4: -// air2Info[2] = getDatas.addBytes[9 + 1 * 11]; -// break; -// -// } -// air2Info[3] = (byte) (getDatas.addBytes[3 + 1 * 11] & 0x0f); -// air2Info[4] = getDatas.addBytes[5 + 1 * 11]; -// air2Info[5] = getDatas.addBytes[10 + 1 * 11]; -// devicesDataList.get(indexI).getAppliancesInfoList().get(indexJ).setArrCurState(air2Info); -// break; -// case 3: -// handleAirCastData(getDatas, air3Info, airIndex, appliancesInfo); -// air3Info[0] = getDatas.addBytes[1 + 2 * 11]; -// air3Info[1] = (byte) ((getDatas.addBytes[3 + 2 * 11] & 0xf0) >> 4); -// switch (air3Info[0] & 0xff) { -// case 0: -// air3Info[2] = getDatas.addBytes[2 + 2 * 11]; -// break; -// case 1: -// air3Info[2] = getDatas.addBytes[6 + 2 * 11]; -// break; -// case 3: -// air3Info[2] = getDatas.addBytes[8 + 2 * 11]; -// break; -// case 4: -// air3Info[2] = getDatas.addBytes[9 + 2 * 11]; -// break; -// } -// air3Info[3] = (byte) (getDatas.addBytes[3 + 2 * 11] & 0x0f); -// air3Info[4] = getDatas.addBytes[5 + 2 * 11]; -// air3Info[5] = getDatas.addBytes[10 + 2 * 11]; -// devicesDataList.get(indexI).getAppliancesInfoList().get(indexJ).setArrCurState(air3Info); -// break; -// case 4: -// handleAirCastData(getDatas, air4Info, airIndex, appliancesInfo); -// air4Info[0] = getDatas.addBytes[1 + 3 * 11]; -// air4Info[1] = (byte) ((getDatas.addBytes[3 + 3 * 11] & 0xf0) >> 4); -// switch (air4Info[0] & 0xff) { -// case 0: -// air4Info[2] = getDatas.addBytes[2 + 3 * 11]; -// break; -// case 1: -// air4Info[2] = getDatas.addBytes[6 + 3 * 11]; -// break; -// case 3: -// air4Info[2] = getDatas.addBytes[8 + 3 * 11]; -// break; -// case 4: -// air4Info[2] = getDatas.addBytes[9 + 3 * 11]; -// break; -// } -// air4Info[3] = (byte) (getDatas.addBytes[3 + 3 * 11] & 0x0f); -// air4Info[4] = getDatas.addBytes[5 + 3 * 11]; -// air4Info[5] = getDatas.addBytes[10 + 3 * 11]; -// devicesDataList.get(indexI).getAppliancesInfoList().get(indexJ).setArrCurState(air4Info); -// break; -// -// } -// } -// -// } -// } -// } -// -// -// } -// -// -// } -// -// -// /** -// * 澶勭悊瀹跺眳绌鸿皟骞挎挱娑堟伅 -// * -// * @param getDatas -// * @param airInfo -// * @param airIndex -// * @param oldInfo -// */ -// private static void handleAirCastData(UdpDataBean getDatas, final byte[] airInfo, int airIndex, final AppliancesInfo oldInfo) { -// if (airInfo[0] != getDatas.addBytes[1 + airIndex * 11]) { -// -//// EventBus.getDefault().post(new DeviceStateEvent(newInfo, true)); -// new Timer().schedule(new TimerTask() { -// @Override -// public void run() { -// final AppliancesInfo newInfo = oldInfo; -// newInfo.setArrCurState(new byte[]{AirCtrlParser.airSwich, airInfo[0]}); -//// HDLLog.info( "0x209A in 绌鸿皟寮�鍏虫敼鍙�" + " appliancesInfo subid = " + newInfo.getDeviceSubnetID() -//// + " devID = " + newInfo.getDeviceDeviceID() + " 鍥炶矾鍙凤細" + newInfo.getChannelNum() + " devType" + newInfo.getDeviceType()); -// EventBus.getDefault().post(new DeviceStateEvent(newInfo, true)); -// } -// }, 500); -// } -// -//// HDLLog.info( "airIndex = " + airIndex + " 209a 妯″紡鍊� = " + ((getDatas.addBytes[3 + airIndex * 11] & 0xf0) >> 4) + " 鎴� = " + ((getDatas.addBytes[7 + airIndex * 11] & 0xf0) >> 4)); -// if (airInfo[1] != (byte) ((getDatas.addBytes[3 + airIndex * 11] & 0xf0) >> 4)) { -// new Timer().schedule(new TimerTask() { -// @Override -// public void run() { -// final AppliancesInfo newInfo = oldInfo; -// newInfo.setArrCurState(new byte[]{AirCtrlParser.airMode, airInfo[1]}); -//// HDLLog.info( "0x209A in 绌鸿皟妯″紡鏀瑰彉" + " appliancesInfo subid = " + newInfo.getDeviceSubnetID() -//// + " devID = " + newInfo.getDeviceDeviceID() + " 鍥炶矾鍙凤細" + newInfo.getChannelNum() + " devType" + newInfo.getDeviceType()); -// EventBus.getDefault().post(new DeviceStateEvent(newInfo, true)); -// } -// }, 1000); -// } -// -// -// switch (airInfo[1] & 0xff) { -// case 0: -// if (airInfo[2] != getDatas.addBytes[2 + airIndex * 11]) { -// new Timer().schedule(new TimerTask() { -// @Override -// public void run() { -// final AppliancesInfo newInfo = oldInfo; -// newInfo.setArrCurState(new byte[]{AirCtrlParser.refTem, airInfo[2]}); -//// HDLLog.info( "0x209A in 绌鸿皟娓╁害鏀瑰彉" + " appliancesInfo subid = " + newInfo.getDeviceSubnetID() -//// + " devID = " + newInfo.getDeviceDeviceID() + " 鍥炶矾鍙凤細" + newInfo.getChannelNum() + " devType" + newInfo.getDeviceType()); -// EventBus.getDefault().post(new DeviceStateEvent(newInfo, true)); -// } -// }, 1500); -// } -// -// break; -// case 1: -// if (airInfo[2] != getDatas.addBytes[6 + airIndex * 11]) { -//// airInfo[2] = getDatas.addBytes[6 + airIndex * 11]; -// -//// EventBus.getDefault().post(new DeviceStateEvent(newInfo, true)); -// new Timer().schedule(new TimerTask() { -// @Override -// public void run() { -// final AppliancesInfo newInfo = oldInfo; -// newInfo.setArrCurState(new byte[]{AirCtrlParser.heatTem, airInfo[2]}); -//// HDLLog.info( "0x209A in 绌鸿皟娓╁害鏀瑰彉" + " appliancesInfo subid = " + newInfo.getDeviceSubnetID() -//// + " devID = " + newInfo.getDeviceDeviceID() + " 鍥炶矾鍙凤細" + newInfo.getChannelNum() + " devType" + newInfo.getDeviceType()); -// EventBus.getDefault().post(new DeviceStateEvent(newInfo, true)); -// } -// }, 1500); -// } -// -// break; -// case 3: -// if (airInfo[2] != getDatas.addBytes[8 + airIndex * 11]) { -//// airInfo[2] = getDatas.addBytes[8 + airIndex * 11]; -// -//// EventBus.getDefault().post(new DeviceStateEvent(newInfo, true)); -// new Timer().schedule(new TimerTask() { -// @Override -// public void run() { -// final AppliancesInfo newInfo = oldInfo; -// newInfo.setArrCurState(new byte[]{AirCtrlParser.autoTem, airInfo[2]}); -//// HDLLog.info( "0x209A in 绌鸿皟娓╁害鏀瑰彉" + " appliancesInfo subid = " + newInfo.getDeviceSubnetID() -//// + " devID = " + newInfo.getDeviceDeviceID() + " 鍥炶矾鍙凤細" + newInfo.getChannelNum() + " devType" + newInfo.getDeviceType()); -// EventBus.getDefault().post(new DeviceStateEvent(newInfo, true)); -// } -// }, 1500); -// } -// -// break; -// case 4: -// if (airInfo[2] != getDatas.addBytes[9 + airIndex * 11]) { -//// airInfo[2] = getDatas.addBytes[9 + airIndex * 11]; -// -//// EventBus.getDefault().post(new DeviceStateEvent(newInfo, true)); -// new Timer().schedule(new TimerTask() { -// @Override -// public void run() { -// final AppliancesInfo newInfo = oldInfo; -// newInfo.setArrCurState(new byte[]{AirCtrlParser.dehumTem, airInfo[2]}); -//// HDLLog.info( "0x209A in 绌鸿皟娓╁害鏀瑰彉" + " appliancesInfo subid = " + newInfo.getDeviceSubnetID() -//// + " devID = " + newInfo.getDeviceDeviceID() + " 鍥炶矾鍙凤細" + newInfo.getChannelNum() + " devType" + newInfo.getDeviceType()); -// EventBus.getDefault().post(new DeviceStateEvent(newInfo, true)); -// } -// }, 1500); -// } -// -// break; -// } -// -//// HDLLog.info( "airInfo[3] = " + (airInfo[3] & 0xff) + " 绗�3浣� 浣�4浣嶉閫� = "+(getDatas.addBytes[3 + airIndex * 11] & 0x0f)); -//// HDLLog.info( "airInfo[3] = " + (airInfo[3] & 0xff) + " 绗�7浣� 浣�4浣嶉閫� = "+(getDatas.addBytes[7 + airIndex * 11] & 0x0f)); -// if (airInfo[3] != (byte) (getDatas.addBytes[3 + airIndex * 11] & 0x0f)) { -//// airInfo[3] = (byte) (getDatas.addBytes[3 + airIndex * 11] & 0x0f); -// -//// EventBus.getDefault().post(new DeviceStateEvent(newInfo, true)); -// -// new Timer().schedule(new TimerTask() { -// @Override -// public void run() { -// -// final AppliancesInfo newInfo = oldInfo; -// newInfo.setArrCurState(new byte[]{AirCtrlParser.airSpeed, airInfo[3]}); -//// HDLLog.info( "绌鸿皟椋庨�熸敼鍙�" + " appliancesInfo subid = " + newInfo.getDeviceSubnetID() -//// + " devID = " + newInfo.getDeviceDeviceID() + " 鍥炶矾鍙凤細" + newInfo.getChannelNum() + " devType" + newInfo.getDeviceType()); -//// HDLLog.info( "鍙戦�佺┖璋冩敼鍙橀閫焏ata = " + Arrays.toString(newInfo.getArrCurState())); -// EventBus.getDefault().post(new DeviceStateEvent(newInfo, true)); -// } -// }, 2000); -// } -// -// //瀹ゆ俯銆佹憜椋庢病鏈夎繑鍥炪�備笅涓増鏈渶瑕佽�冭檻 -// if (airInfo[4] != getDatas.addBytes[5 + airIndex * 11]) { -//// airInfo[4] = getDatas.addBytes[5 + airIndex * 11]; -// } -// -// if (airInfo[5] != getDatas.addBytes[10 + airIndex * 11]) { -//// airInfo[5] = getDatas.addBytes[10 + airIndex * 11]; -// } -// } - /** * 姝ゆ柟娉曞熀鏈病鐢ㄥ埌锛岄�昏緫妯″潡鐨勬帶鍒朵俊鎭凡缁忓湪handleCtrlData涓鐞嗚繃浜� * <p> @@ -2592,8 +2461,8 @@ */ private static void handleLogicData(UdpDataBean getDatas) { for (int i = 0, len = devicesDataList.size(); i < len; i++) { - if (devicesDataList.get(i).getSourceSubnetID() == getDatas.sourceSubnetID - && devicesDataList.get(i).getSourceDeviceID() == getDatas.sourceDeviceID + if (devicesDataList.get(i).getDeviceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getDeviceDeviceID() == getDatas.sourceDeviceID ) { List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); @@ -2652,8 +2521,8 @@ private static void handleAudioData(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 + if (devicesDataList.get(i).getDeviceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getDeviceDeviceID() == getDatas.sourceDeviceID ) { List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); for (int j = 0, len2 = infos.size(); j < len2; j++) { @@ -2790,7 +2659,6 @@ */ public static void setDeviceCtrlSuccessStateWithInfo(AppliancesInfo info, Boolean success) { // if(info.getDeviceKey() == null) return; - ctrlSuccessStateHashMap.put(info.getDeviceKey(), success); } @@ -2806,6 +2674,14 @@ Boolean success = ctrlSuccessStateHashMap.get(info.getDeviceKey()); if (success == null) success = false; return success; + } + + public static boolean isSceneCtrlSuccess() { + return isSceneCtrlSuccess; + } + + public static void setSceneCtrlSuccess(boolean isSceneCtrlSuccess) { + HDLDeviceManager.isSceneCtrlSuccess = isSceneCtrlSuccess; } /** @@ -2887,8 +2763,8 @@ boolean bCanAdd = false; outter: for (int i = 0, len = devicesDataList.size(); i < len; i++) { - if (devicesDataList.get(i).getSourceSubnetID() == mSubnetID - && devicesDataList.get(i).getSourceDeviceID() == mDeviceID + if (devicesDataList.get(i).getDeviceSubnetID() == mSubnetID + && devicesDataList.get(i).getDeviceDeviceID() == mDeviceID ) { bExistSubnetID = true; DevicesData mDevicesData = devicesDataList.get(i); @@ -2960,8 +2836,8 @@ 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 + if (devicesDataList.get(i).getDeviceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getDeviceDeviceID() == getDatas.sourceDeviceID ) { List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); for (int j = 0, len2 = infos.size(); j < len2; j++) { @@ -2991,8 +2867,8 @@ 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 + if (devicesDataList.get(i).getDeviceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getDeviceDeviceID() == getDatas.sourceDeviceID ) { List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); for (int j = 0, len2 = infos.size(); j < len2; j++) { @@ -3024,8 +2900,8 @@ 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 + if (devicesDataList.get(i).getDeviceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getDeviceDeviceID() == getDatas.sourceDeviceID ) { List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); for (int j = 0, len2 = infos.size(); j < len2; j++) { @@ -3055,8 +2931,8 @@ 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 + if (devicesDataList.get(i).getDeviceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getDeviceDeviceID() == getDatas.sourceDeviceID ) { List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); for (int j = 0, len2 = infos.size(); j < len2; j++) { @@ -3088,8 +2964,8 @@ 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 + if (devicesDataList.get(i).getDeviceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getDeviceDeviceID() == getDatas.sourceDeviceID ) { List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); for (int j = 0, len2 = infos.size(); j < len2; j++) { @@ -3131,8 +3007,8 @@ 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 + if (devicesDataList.get(i).getDeviceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getDeviceDeviceID() == getDatas.sourceDeviceID ) { List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); @@ -3179,14 +3055,14 @@ 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 + if (devicesDataList.get(i).getDeviceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getDeviceDeviceID() == 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 + && infos.get(j).getChannelNum() == (getDatas.addBytes[0] & 0xFF)) { isGetDeviceStateSuccess = true; devicesDataList.get(i).getAppliancesInfoList().get(j).setArrCurState(getDatas.addBytes); @@ -3210,8 +3086,8 @@ 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 + if (devicesDataList.get(i).getDeviceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getDeviceDeviceID() == getDatas.sourceDeviceID ) { List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); for (int j = 0, len2 = infos.size(); j < len2; j++) { @@ -3241,8 +3117,8 @@ 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 + if (devicesDataList.get(i).getDeviceSubnetID() == getDatas.sourceSubnetID + && devicesDataList.get(i).getDeviceDeviceID() == getDatas.sourceDeviceID ) { List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList(); for (int j = 0, len2 = infos.size(); j < len2; j++) { -- Gitblit v1.8.0