From 69afac92a320033297d71e901e3c5b65e690f0b2 Mon Sep 17 00:00:00 2001 From: panlili2024 <14743743+panlili2024@user.noreply.gitee.com> Date: 星期二, 12 十一月 2024 11:42:15 +0800 Subject: [PATCH] 增加knx科技系统温度0.5支持 --- HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLAppliances/HDLAirCondition/Parser/AirCtrlParser.java | 68 +++++++++++++++++++++++++++++++++ 1 files changed, 67 insertions(+), 1 deletions(-) diff --git a/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLAppliances/HDLAirCondition/Parser/AirCtrlParser.java b/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLAppliances/HDLAirCondition/Parser/AirCtrlParser.java index 6b0ec25..bada758 100644 --- a/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLAppliances/HDLAirCondition/Parser/AirCtrlParser.java +++ b/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLAppliances/HDLAirCondition/Parser/AirCtrlParser.java @@ -413,4 +413,70 @@ } } -} + + public static byte[] getAirKNXTechAddByte(AppliancesInfo appliancesInfo, int type, float temp) { + + try { + AppliancesInfo newInfo = null; + byte[] airBytes = null; + outter: + for (int i = 0; i < HDLDeviceManager.devicesDataList.size(); i++) { + if (appliancesInfo.getDeviceSubnetID() == HDLDeviceManager.devicesDataList.get(i).getDeviceSubnetID() + && appliancesInfo.getDeviceDeviceID() == HDLDeviceManager.devicesDataList.get(i).getDeviceDeviceID()) { + for (int j = 0; j < HDLDeviceManager.devicesDataList.get(i).getAppliancesInfoList().size(); j++) { + if (HDLDeviceManager.devicesDataList.get(i).getAppliancesInfoList().get(j).getBigType() == Configuration.AIR_BIG_TYPE + && HDLDeviceManager.devicesDataList.get(i).getAppliancesInfoList().get(j).getDeviceType() == HDLApConfig.TYPE_AC_KNXTECHSYS + && appliancesInfo.getChannelNum() == HDLDeviceManager.devicesDataList.get(i).getAppliancesInfoList().get(j).getChannelNum()) { + + newInfo = HDLDeviceManager.devicesDataList.get(i).getAppliancesInfoList().get(j); + if (newInfo.getArrCurState() == null) { + newInfo.setArrCurState(new byte[19]); + } + airBytes = newInfo.getArrCurState(); + break outter; + } + } + } + } + byte[] addBytes = new byte[19]; + if (airBytes != null && airBytes.length >= 19) { + System.arraycopy(airBytes, 0, addBytes, 0, airBytes.length); + addBytes[0] = (byte) newInfo.getChannelNum(); + + Log.d("panlili", "---temp=" + temp); + String tempStr = String.valueOf(temp).trim(); + String[] strByte = tempStr.split("\\."); + int tempInt = Integer.parseInt(strByte[0]); + int tempFloat = Integer.parseInt(strByte[1]); + + switch (type) { + case refTem: + case heatTem: + case autoTem: + case dehumTem://璁剧疆娓╁害 + addBytes[8] = 1; + + addBytes[3] = (byte) tempInt; + addBytes[4] = (byte) tempInt; + addBytes[5] = (byte) tempInt; + addBytes[6] = (byte) tempInt; + addBytes[11] = (byte) tempInt; + + addBytes[14] = (byte) tempFloat; + addBytes[15] = (byte) tempFloat; + addBytes[16] = (byte) tempFloat; + addBytes[17] = (byte) tempFloat; + addBytes[18] = (byte) tempFloat; + + break; + } + } + + return addBytes; + } catch (Exception e) { + e.printStackTrace(); + return new byte[]{fail}; + } + + } +} \ No newline at end of file -- Gitblit v1.8.0