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/HDLAppliances/HDLAirCondition/Parser/AirCtrlParser.java | 337 +++++++++++++++++++++++++-------------------------------
1 files changed, 151 insertions(+), 186 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 3827c58..29eab72 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
@@ -195,19 +195,19 @@
addBytes[10] = (byte) state;
break;
}
- }else {
+ } else {
addBytes[0] = (byte) newInfo.getChannelNum();
addBytes[1] = 0;
- addBytes[2] = (byte)28;
- addBytes[3] = (byte)28;
- addBytes[4] = (byte)28;
- addBytes[5] = (byte)28;
- addBytes[6] = (byte)28;
+ addBytes[2] = (byte) 28;
+ addBytes[3] = (byte) 28;
+ addBytes[4] = (byte) 28;
+ addBytes[5] = (byte) 28;
+ addBytes[6] = (byte) 28;
addBytes[7] = 0;
addBytes[8] = 1;
addBytes[9] = 0;
addBytes[10] = 0;
- addBytes[11] = (byte)28;
+ addBytes[11] = (byte) 28;
addBytes[12] = 0;
switch (type) {
case airSwich://璁剧疆寮�鍏崇姸鎬�
@@ -266,183 +266,148 @@
}
-// public static byte[] getRcuAirAddByte(AppliancesInfo I,int type, int arg2){
-// byte[] addBytes = new byte[9];
-// addBytes[4] = 1;
-// byte[] curAirInfo = I.getArrCurState();
-// switch (I.getChannelNum()){
-// case 1:
-// curAirInfo = HDLDeviceManager.air1Info;
-// break;
-// case 2:
-// curAirInfo = HDLDeviceManager.air2Info;
-// break;
-// case 3:
-// curAirInfo = HDLDeviceManager.air3Info;
-// break;
-// case 4:
-// curAirInfo = HDLDeviceManager.air4Info;
-// break;
-// }
-//
-// byte airSwitch = curAirInfo[0];
-// byte aircurMode = curAirInfo[1];
-// byte airTem = curAirInfo[2];
-// byte aircurSpeed = curAirInfo[3];
-// byte aircurTem = curAirInfo[4];
-// byte airBAIFENG = curAirInfo[5];
-//
-// addBytes[0] = (byte) I.getChannelNum();
-// addBytes[1] = airSwitch;
-// switch (aircurMode){
-// case 0:
-// addBytes[2] = airTem;
-// break;
-// case 1:
-// addBytes[5] = airTem;
-// break;
-// case 2:
-// break;
-// case 3:
-// addBytes[6] = airTem;
-// break;
-// }
-// addBytes[3] = (byte) ((aircurMode << 4) | aircurSpeed);
-// addBytes[4] = 1;
-// addBytes[8] = airBAIFENG;
-// switch (type){
-// case airSwich:
-// if(arg2 == airOff){
-// addBytes[1] = 0;
-// }else if(arg2 == airOn){
-// addBytes[1] = 1;
-// }
-// break;
-// case refTem:
-// addBytes[2] = (byte) arg2;
-// addBytes[5] = (byte) arg2;
-// addBytes[6] = (byte) arg2;
-// addBytes[7] = (byte) arg2;
-// break;
-// case airSpeed :
-// int modifyLow;
-// int height = ((addBytes[3] & 0xf0) >> 4);//鑾峰彇楂�4浣�
-// switch (arg2){
-// case airSpeedAuto:
-// modifyLow = 0;
-// addBytes[3] = (byte)((height<<4)|modifyLow);
-// break;
-// case airSpeedHigh:
-// modifyLow = 1;
-// addBytes[3] = (byte)((height<<4)|modifyLow);
-// break;
-// case airSpeedMid:
-// modifyLow = 2;
-// addBytes[3] = (byte)((height<<4)|modifyLow);
-// break;
-// case airSpeedLow:
-// modifyLow = 3;
-// addBytes[3] = (byte)((height<<4)|modifyLow);
-// break;
-// default:
-// addBytes = new byte[]{fail};
-// break;
-// }
-// break;
-// case airMode:
-// int modify;
-// int low = (addBytes[3] & 0x0f);//鑾峰彇浣�4浣�
-// switch (arg2){
-// case airModeRefTem:
-//
-// modify = 0;
-// addBytes[3] = (byte)((modify<<4)|low);
-// break;
-// case airModeHeatTem:
-// modify = 1;
-// addBytes[3] = (byte)((modify<<4)|low);
-// break;
-// case airModeVen:
-// modify = 2;
-// addBytes[3] = (byte)((modify<<4)|low);
-// break;
-// case airModeAuto:
-// modify = 3;
-// addBytes[3] = (byte)((modify<<4)|low);
-// break;
-// case airModeDehum:
-// modify = 4;
-// addBytes[3] = (byte)((modify<<4)|low);
-// break;
-// default:
-// addBytes = new byte[]{fail};
-// break;
-// }
-// break;
-// case heatTem:
-// addBytes[2] = (byte) arg2;
-// addBytes[5] = (byte) arg2;
-// addBytes[6] = (byte) arg2;
-// addBytes[7] = (byte) arg2;
-// break;
-// case autoTem:
-// addBytes[2] = (byte) arg2;
-// addBytes[5] = (byte) arg2;
-// addBytes[6] = (byte) arg2;
-// addBytes[7] = (byte) arg2;
-// break;
-// case dehumTem:
-// addBytes[2] = (byte) arg2;
-// addBytes[5] = (byte) arg2;
-// addBytes[6] = (byte) arg2;
-// addBytes[7] = (byte) arg2;
-// break;
-// case upTem:
-//// int height2 = ((addBytes[3] & 0xf0) >> 4);//鑾峰彇楂�4浣�
-//// switch (height2){
-//// case 0:
-//// addBytes[2] = (byte) (arg2 + (airTem & 0xFF));
-//// break;
-//// case 1:
-//// addBytes[5] = (byte) (arg2 + (airTem & 0xFF));
-//// break;
-//// case 3:
-//// addBytes[6] = (byte) (arg2 + (airTem & 0xFF));
-//// break;
-//// case 4:
-//// addBytes[7] = (byte) (arg2 + (airTem & 0xFF));
-//// break;
-//// }
-// addBytes[2] = (byte) (arg2 + (airTem & 0xFF));
-// addBytes[5] = (byte) (arg2 + (airTem & 0xFF));
-// addBytes[6] = (byte) (arg2 + (airTem & 0xFF));
-// addBytes[7] = (byte) (arg2 + (airTem & 0xFF));
-// break;
-// case downTem:
-//// int height3= ((addBytes[3] & 0xf0) >> 4);//鑾峰彇楂�4浣�
-//// switch (height3){
-//// case 0:
-//// addBytes[2] = (byte) ((airTem & 0xFF)-arg2 );
-//// break;
-//// case 1:
-//// addBytes[5] = (byte) ((airTem & 0xFF)-arg2 );
-//// break;
-//// case 3:
-//// addBytes[6] = (byte) ((airTem & 0xFF)-arg2 );
-//// break;
-//// case 4:
-//// addBytes[7] = (byte) ((airTem & 0xFF)-arg2 );
-//// break;
-//// }
-// addBytes[2] = (byte) ((airTem & 0xFF)-arg2 );
-// addBytes[5] = (byte) ((airTem & 0xFF)-arg2 );
-// addBytes[6] = (byte) ((airTem & 0xFF)-arg2 );
-// addBytes[7] = (byte) ((airTem & 0xFF)-arg2 );
-// break;
-// default:
-// addBytes = new byte[]{fail};
-// break;
-// }
-// return addBytes;
-// }
+ public static byte[] getAirTechAddByte(AppliancesInfo appliancesInfo, int type, int state) {
+
+ try {
+ AppliancesInfo newInfo = null;
+ byte[] airBytes = null;
+ outter:
+ for (int i = 0; i < HDLDeviceManager.devicesDataList.size(); i++) {
+ if (appliancesInfo.getDeviceSubnetID() == HDLDeviceManager.devicesDataList.get(i).getSourceSubnetID()
+ && appliancesInfo.getDeviceDeviceID() == HDLDeviceManager.devicesDataList.get(i).getSourceDeviceID()) {
+ 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_TECHSYS
+ && 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();
+
+ switch (type) {
+ case airSwich://璁剧疆寮�鍏崇姸鎬�
+ if (state == airOff) {
+ addBytes[8] = 0;
+ } else {
+ addBytes[8] = 1;
+ }
+ break;
+ case refTem:
+ case heatTem:
+ case autoTem:
+ case dehumTem://璁剧疆娓╁害
+ addBytes[8] = 1;
+ addBytes[3] = (byte) state;
+ addBytes[4] = (byte) state;
+ addBytes[5] = (byte) state;
+ addBytes[6] = (byte) state;
+ addBytes[11] = (byte) state;
+ break;
+ case upTem://鍗囨俯
+ addBytes[8] = 1;
+ addBytes[3] = (byte) ((airBytes[2] & 0xff) + state);
+ addBytes[4] = (byte) ((airBytes[2] & 0xff) + state);
+ addBytes[5] = (byte) ((airBytes[2] & 0xff) + state);
+ addBytes[6] = (byte) ((airBytes[2] & 0xff) + state);
+ addBytes[11] = (byte) ((airBytes[2] & 0xff) + state);
+ break;
+ case downTem://闄嶆俯
+ addBytes[8] = 1;
+ addBytes[3] = (byte) ((airBytes[2] & 0xff) - state);
+ addBytes[4] = (byte) ((airBytes[2] & 0xff) - state);
+ addBytes[5] = (byte) ((airBytes[2] & 0xff) - state);
+ addBytes[6] = (byte) ((airBytes[2] & 0xff) - state);
+ addBytes[11] = (byte) ((airBytes[2] & 0xff) - state);
+ break;
+ case airMode://璁剧疆绌鸿皟妯″紡
+ addBytes[8] = 1;
+ addBytes[7] = (byte) (state * 16 + (airBytes[3] & 0xff));
+ addBytes[9] = (byte) state;
+ break;
+ case airSpeed://璁剧疆椋庨��
+ addBytes[8] = 1;
+ addBytes[7] = (byte) ((airBytes[1] & 0xff) * 16 + state);
+ addBytes[10] = (byte) state;
+ break;
+ }
+ } else {
+ addBytes[0] = (byte) newInfo.getChannelNum();
+ addBytes[1] = 0;
+ addBytes[2] = (byte) 28;
+ addBytes[3] = (byte) 28;
+ addBytes[4] = (byte) 28;
+ addBytes[5] = (byte) 28;
+ addBytes[6] = (byte) 28;
+ addBytes[7] = 0;
+ addBytes[8] = 1;
+ addBytes[9] = 0;
+ addBytes[10] = 0;
+ addBytes[11] = (byte) 28;
+ addBytes[12] = 0;
+ switch (type) {
+ case airSwich://璁剧疆寮�鍏崇姸鎬�
+ if (state == airOff) {
+ addBytes[8] = 0;
+ } else {
+ addBytes[8] = 1;
+ }
+ break;
+ case refTem:
+ case heatTem:
+ case autoTem:
+ case dehumTem://璁剧疆娓╁害
+ addBytes[8] = 1;
+ addBytes[3] = (byte) state;
+ addBytes[4] = (byte) state;
+ addBytes[5] = (byte) state;
+ addBytes[6] = (byte) state;
+ addBytes[11] = (byte) state;
+ break;
+ case upTem://鍗囨俯
+ addBytes[8] = 1;
+ addBytes[3] = (byte) (28 + state);
+ addBytes[4] = (byte) (28 + state);
+ addBytes[5] = (byte) (28 + state);
+ addBytes[6] = (byte) (28 + state);
+ addBytes[11] = (byte) (28 + state);
+ break;
+ case downTem://闄嶆俯
+ addBytes[8] = 1;
+ addBytes[3] = (byte) (28 - state);
+ addBytes[4] = (byte) (28 - state);
+ addBytes[5] = (byte) (28 - state);
+ addBytes[6] = (byte) (28 - state);
+ addBytes[11] = (byte) (28 - state);
+ break;
+ case airMode://璁剧疆绌鸿皟妯″紡
+ addBytes[8] = 1;
+ addBytes[7] = (byte) (state * 16);
+ addBytes[9] = (byte) state;
+ break;
+ case airSpeed://璁剧疆椋庨��
+ addBytes[8] = 1;
+ addBytes[7] = (byte) (state);
+ addBytes[10] = (byte) state;
+ break;
+ }
+ }
+
+ return addBytes;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return new byte[]{fail};
+ }
+
+ }
}
--
Gitblit v1.8.0