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/Parser/DeviceParser.java | 130 ++++++++++++++++++++++--------------------- 1 files changed, 67 insertions(+), 63 deletions(-) diff --git a/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Parser/DeviceParser.java b/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Parser/DeviceParser.java index e1aeedc..9e67ea5 100644 --- a/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Parser/DeviceParser.java +++ b/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Parser/DeviceParser.java @@ -30,7 +30,7 @@ */ public static boolean parse(byte[] addBytes, DevicesData devicesData, String parentRemarks) { boolean isExitData = false; - int residue = addBytes.length - 22; + int residue = addBytes.length - 8; int sumCount = residue / 3;//璁板綍鎬诲叡鏈夊灏戠璁惧 List<AppliancesInfo> appliancesInfoList = new ArrayList<>(); if (sumCount == 0) { @@ -38,18 +38,32 @@ appliancesInfo.setDeviceName(Configuration.UNKNOW_TYPE); appliancesInfoList.add(appliancesInfo); } -// HDLLog.I("sumCount" + sumCount); +// 00008 2023骞�11鏈�29鏃�16:58:01:800: 0F FE 58 01 A8 F5 48 64 00 0F 18 00 00 3E A0 +// 00009 2023骞�11鏈�29鏃�16:58:01:816: 16 64 00 11 F7 F5 49 FE 58 0F 18 00 03 00 01 2A 60 07 03 01 35 59 +// 00010 2023骞�11鏈�29鏃�16:58:01:832: 19 64 00 11 F7 F5 49 FE 58 0F 18 00 03 00 02 64 80 05 09 01 0E 04 01 FE 35 +// 00011 2023骞�11鏈�29鏃�16:58:01:848: 16 64 00 11 F7 F5 49 FE 58 0F 18 00 03 00 03 64 0A 01 01 04 D5 C7 int curCount = 0;//寰幆閬嶅巻鎵�鏈夎澶囨鏁� while (curCount < sumCount) { - int bigType = addBytes[21 + (2 * curCount) + (curCount + 1)] & 0xFF; - int littleType = addBytes[21 + (2 * curCount) + (curCount + 2)] & 0xFF; - int channelNum = addBytes[21 + (2 * curCount) + (curCount + 3)] & 0xFF; + + int subnetID = addBytes[6] & 0xFF; + int deviceID = addBytes[7] & 0xFF; + devicesData.setDeviceSubnetID(subnetID); + devicesData.setDeviceDeviceID(deviceID); + + int bigType = addBytes[7 + (2 * curCount) + (curCount + 1)] & 0xFF; + int littleType = addBytes[7 + (2 * curCount) + (curCount + 2)] & 0xFF; + //閫氶亾鎬绘暟 + int channelNum = addBytes[7 + (2 * curCount) + (curCount + 3)] & 0xFF; + curCount++; int curChannelNum = 0; while (curChannelNum < channelNum) { curChannelNum++; if (isWantData(bigType, littleType)) { AppliancesInfo appliancesInfo = new AppliancesInfo(); + appliancesInfo.setDeviceSubnetID(subnetID); + appliancesInfo.setDeviceDeviceID(deviceID); + /**鏍规嵁绫诲埆锛岃祴鍊兼搷浣滅爜绛変竴浜涢噸瑕佷俊鎭�*/ switch (bigType) { case Configuration.LIGTH_BIG_TYPE: @@ -86,7 +100,7 @@ parseGeothermalData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, ""); break; case Configuration.DOOR_MACHINE_BIG_TYPE://闂ㄩ攣 - parseDoorMachineData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, "");//闂ㄩ攣鐨勯�氶亾鍙烽渶瑕�-1 + parseDoorMachineData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, ""); break; default: // appliancesInfo.setDeviceName(Configuration.UNKNOW_TYPE); @@ -123,7 +137,7 @@ * @param littleType * @return SDK鐩墠鏀寔鐨勫ぇ绫伙細灏忕被 * 鐏厜绫�1锛�0 锛�1锛�9锛�10 - * 绐楀笜绫�2锛�0锛�1锛�2 + * 绐楀笜绫�2锛�0锛�1锛�2,6 * 浼犳劅鍣�5锛�0~24 * 绌鸿皟绫�7锛�0锛�3 * 鑳屾櫙闊充箰鍔熻兘9锛�0 @@ -154,12 +168,9 @@ case Configuration.CURTAIN_BIG_TYPE: switch (littleType) { case 0: - isWant = true; - break; case 1: - isWant = true; - break; case 2: + case 6: isWant = true; break; default: @@ -172,6 +183,7 @@ case 0: case 3: case 100: + case 101: isWant = true; break; default: @@ -195,14 +207,11 @@ break; } break; - case Configuration.SENSOR_BIG_TYPE: //灞忚斀浼犳劅鍣ㄥぇ绫� -// if (littleType >= 0 && littleType <= 27) { -// isWant = true; -// } else { -// isWant = false; -// } - - if (littleType == 1 || littleType == 9 || littleType == 11 || (littleType > 24 && littleType <= 27)) {//2019-11-5 鏀逛负鍙敮鎸�6绉嶆劅搴斿櫒 + case Configuration.SENSOR_BIG_TYPE: + if (littleType == 1 || littleType == 2 || littleType == 3 + || (littleType > 4 && littleType <= 11) + || littleType == 20 || (littleType > 24 && littleType <= 27) + || littleType == 32) { isWant = true; } else { isWant = false; @@ -354,8 +363,8 @@ appliancesInfo.setStateCommand(Configuration.LIGHT_STATE_COMMAND); appliancesInfo.setStateBackCommand(Configuration.LIGHT_STATE_BACK_COMMAND); } - appliancesInfo.setDeviceSubnetID(devicesData.getSourceSubnetID()); - appliancesInfo.setDeviceDeviceID(devicesData.getSourceDeviceID()); + appliancesInfo.setSourceSubnetID(devicesData.getSourceSubnetID()); + appliancesInfo.setSourceDeviceID(devicesData.getSourceDeviceID()); appliancesInfo.setParentRemarks(parentRemarks); // appliancesInfo.setPort(port); // appliancesInfo.setIpAddress(ipAddress); @@ -376,6 +385,10 @@ appliancesInfo.setDeviceName("绐楀笜妯″潡"); appliancesInfo.setDeviceType(HDLApConfig.TYPE_CURTAIN_MODULE); break; + case 6: + appliancesInfo.setDeviceName("棣欐牸閲屾媺甯樼數鏈�"); + appliancesInfo.setDeviceType(HDLApConfig.TYPE_CURTAIN_SHANGRILA); + break; default: appliancesInfo.setDeviceName(Configuration.UNKNOW_TYPE); break; @@ -389,11 +402,9 @@ appliancesInfo.setCtrlBackCommand(Configuration.CURTAIN_CTRL_BACK_COMMAND); appliancesInfo.setStateCommand(Configuration.CURTAIN_STATE_COMMAND); appliancesInfo.setStateBackCommand(Configuration.CURTAIN_STATE_BACK_COMMAND); - appliancesInfo.setDeviceSubnetID(devicesData.getSourceSubnetID()); - appliancesInfo.setDeviceDeviceID(devicesData.getSourceDeviceID()); + appliancesInfo.setSourceSubnetID(devicesData.getSourceSubnetID()); + appliancesInfo.setSourceDeviceID(devicesData.getSourceDeviceID()); appliancesInfo.setParentRemarks(parentRemarks); -// appliancesInfo.setPort(port); -// appliancesInfo.setIpAddress(ipAddress); } } @@ -419,6 +430,10 @@ appliancesInfo.setDeviceName("绉戞妧绯荤粺"); appliancesInfo.setDeviceType(HDLApConfig.TYPE_AC_TECHSYS); break; + case 101: + appliancesInfo.setDeviceName("KNX绉戞妧绯荤粺"); + appliancesInfo.setDeviceType(HDLApConfig.TYPE_AC_KNXTECHSYS); + break; default: appliancesInfo.setDeviceName(Configuration.UNKNOW_TYPE); break; @@ -428,12 +443,10 @@ appliancesInfo.setChannelNum(channelNum); appliancesInfo.setBigType(Configuration.AIR_BIG_TYPE); appliancesInfo.setLittleType(littleType); - appliancesInfo.setDeviceSubnetID(devicesData.getSourceSubnetID()); - appliancesInfo.setDeviceDeviceID(devicesData.getSourceDeviceID()); + appliancesInfo.setSourceSubnetID(devicesData.getSourceSubnetID()); + appliancesInfo.setSourceDeviceID(devicesData.getSourceDeviceID()); appliancesInfo.setParentRemarks(parentRemarks); -// appliancesInfo.setPort(port); -// appliancesInfo.setIpAddress(ipAddress); - if (littleType == 0 || littleType == 100) {//绉戞妧绯荤粺璧�0x193A鍜�0x1938 + if (littleType == 0 || littleType == 100 || littleType == 101) {//绉戞妧绯荤粺璧�0x193A鍜�0x1938 appliancesInfo.setCtrlCommand(Configuration.AIR_HVAC_CTRL_COMMAND); appliancesInfo.setCtrlBackCommand(Configuration.AIR_HVAC_CTRL_BACK_COMMAND); appliancesInfo.setStateCommand(Configuration.AIR_HVAC_STATE_COMMAND); @@ -476,11 +489,9 @@ appliancesInfo.setCtrlBackCommand(Configuration.AUDIO_CTRL_READ_BACK_COMMAND); appliancesInfo.setStateCommand(Configuration.AUDIO_MenuPlay_INSTRUCTION_COMMAND); appliancesInfo.setStateBackCommand(Configuration.AUDIO_MenuPlay_INSTRUCTION_BACK_COMMAND); - appliancesInfo.setDeviceSubnetID(devicesData.getSourceSubnetID()); - appliancesInfo.setDeviceDeviceID(devicesData.getSourceDeviceID()); + appliancesInfo.setSourceSubnetID(devicesData.getSourceSubnetID()); + appliancesInfo.setSourceDeviceID(devicesData.getSourceDeviceID()); appliancesInfo.setParentRemarks(parentRemarks); -// appliancesInfo.setPort(port); -// appliancesInfo.setIpAddress(ipAddress); } HDLLog.I("闊充箰妯″潡锛�" + parentRemarks); } @@ -504,12 +515,9 @@ appliancesInfo.setCtrlBackCommand(Configuration.LOGIC_CTRL_BACK_COMMAND); appliancesInfo.setStateCommand(Configuration.LOGIC_STATE_COMMAND); appliancesInfo.setStateBackCommand(Configuration.LOGIC_STATE_BACK_COMMAND); - appliancesInfo.setDeviceSubnetID(devicesData.getSourceSubnetID()); - appliancesInfo.setDeviceDeviceID(devicesData.getSourceDeviceID()); + appliancesInfo.setSourceSubnetID(devicesData.getSourceSubnetID()); + appliancesInfo.setSourceDeviceID(devicesData.getSourceDeviceID()); appliancesInfo.setParentRemarks(parentRemarks); -// appliancesInfo.setPort(port); -// appliancesInfo.setIpAddress(ipAddress); - } } @@ -533,12 +541,9 @@ appliancesInfo.setCtrlBackCommand(Configuration.LOGIC_CTRL_BACK_COMMAND); appliancesInfo.setStateCommand(Configuration.LOGIC_STATE_COMMAND); appliancesInfo.setStateBackCommand(Configuration.LOGIC_STATE_BACK_COMMAND); - appliancesInfo.setDeviceSubnetID(devicesData.getSourceSubnetID()); - appliancesInfo.setDeviceDeviceID(devicesData.getSourceDeviceID()); + appliancesInfo.setSourceSubnetID(devicesData.getSourceSubnetID()); + appliancesInfo.setSourceDeviceID(devicesData.getSourceDeviceID()); appliancesInfo.setParentRemarks(parentRemarks); -// appliancesInfo.setPort(port); -// appliancesInfo.setIpAddress(ipAddress); - } } @@ -573,11 +578,9 @@ appliancesInfo.setChannelNum(channelNum); appliancesInfo.setBigType(Configuration.SECURITY_BIG_TYPE); appliancesInfo.setLittleType(littleType); - appliancesInfo.setDeviceSubnetID(devicesData.getSourceSubnetID()); - appliancesInfo.setDeviceDeviceID(devicesData.getSourceDeviceID()); + appliancesInfo.setSourceSubnetID(devicesData.getSourceSubnetID()); + appliancesInfo.setSourceDeviceID(devicesData.getSourceDeviceID()); appliancesInfo.setParentRemarks(parentRemarks); -// appliancesInfo.setPort(port); -// appliancesInfo.setIpAddress(ipAddress); appliancesInfo.setCtrlCommand(Configuration.SECURITY_ARMING_CTRL_COMMAND);//甯冮槻 appliancesInfo.setCtrlBackCommand(Configuration.SECURITY_ARMING_CTRL_BACK_COMMAND);//甯冮槻璁剧疆鍙嶉 appliancesInfo.setStateCommand(Configuration.SECURITY_STATE_COMMAND);//璇诲彇瀹夐槻璁剧疆 @@ -717,6 +720,10 @@ appliancesInfo.setDeviceName("浼犳劅鍣� 绱ф�ユ寜閽�"); appliancesInfo.setDeviceType(HDLApConfig.TYPE_SENSOR_EMERGENCY_BUTTON); break; + case 32: + appliancesInfo.setDeviceName("浼犳劅鍣� PM10"); + appliancesInfo.setDeviceType(HDLApConfig.TYPE_SENSOR_PM_10); + break; default: appliancesInfo.setDeviceName(Configuration.UNKNOW_TYPE); @@ -729,13 +736,12 @@ appliancesInfo.setBigType(Configuration.SENSOR_BIG_TYPE); appliancesInfo.setLittleType(littleType); - appliancesInfo.setDeviceSubnetID(devicesData.getSourceSubnetID()); - appliancesInfo.setDeviceDeviceID(devicesData.getSourceDeviceID()); + appliancesInfo.setSourceSubnetID(devicesData.getSourceSubnetID()); + appliancesInfo.setSourceDeviceID(devicesData.getSourceDeviceID()); appliancesInfo.setParentRemarks(parentRemarks); - appliancesInfo.setStateCommand(Configuration.DRY_CONTACT_STATE_COMMAND); - appliancesInfo.setStateBackCommand(Configuration.DRY_CONTACT_STATE_BACK_COMMAND); - + appliancesInfo.setStateCommand(Configuration.SENSOR_STATE_COMMAND); + appliancesInfo.setStateBackCommand(Configuration.SENSOR_STATE_BACK_COMMAND); } } @@ -772,8 +778,8 @@ appliancesInfo.setChannelNum(channelNum); appliancesInfo.setBigType(Configuration.FRESH_AIR_BIG_TYPE); appliancesInfo.setLittleType(littleType); - appliancesInfo.setDeviceSubnetID(devicesData.getSourceSubnetID()); - appliancesInfo.setDeviceDeviceID(devicesData.getSourceDeviceID()); + appliancesInfo.setSourceSubnetID(devicesData.getSourceSubnetID()); + appliancesInfo.setSourceDeviceID(devicesData.getSourceDeviceID()); appliancesInfo.setParentRemarks(parentRemarks); } } @@ -809,11 +815,9 @@ appliancesInfo.setChannelNum(channelNum); appliancesInfo.setBigType(Configuration.GEOTHERMAL_BIG_TYPE); appliancesInfo.setLittleType(littleType); - appliancesInfo.setDeviceSubnetID(devicesData.getSourceSubnetID()); - appliancesInfo.setDeviceDeviceID(devicesData.getSourceDeviceID()); + appliancesInfo.setSourceSubnetID(devicesData.getSourceSubnetID()); + appliancesInfo.setSourceDeviceID(devicesData.getSourceDeviceID()); appliancesInfo.setParentRemarks(parentRemarks); -// appliancesInfo.setPort(port); -// appliancesInfo.setIpAddress(ipAddress); appliancesInfo.setCtrlCommand(Configuration.GEOTHERMAL_MODULE_CTRL_COMMAND); appliancesInfo.setCtrlBackCommand(Configuration.GEOTHERMAL_MODULE_CTRL_BACK_COMMAND); @@ -842,8 +846,8 @@ appliancesInfo.setChannelNum(channelNum); appliancesInfo.setBigType(Configuration.DOOR_MACHINE_BIG_TYPE); appliancesInfo.setLittleType(littleType); - appliancesInfo.setDeviceSubnetID(devicesData.getSourceSubnetID()); - appliancesInfo.setDeviceDeviceID(devicesData.getSourceDeviceID()); + appliancesInfo.setSourceSubnetID(devicesData.getSourceSubnetID()); + appliancesInfo.setSourceDeviceID(devicesData.getSourceDeviceID()); appliancesInfo.setParentRemarks(parentRemarks); appliancesInfo.setCtrlCommand(Configuration.DOOR_MACHINE_MODULE_CTRL_COMMAND); @@ -882,8 +886,8 @@ appliancesInfo.setChannelNum(channelNum); appliancesInfo.setBigType(Configuration.COMMON_SWITCH_BIG_TYPE); appliancesInfo.setLittleType(littleType); - appliancesInfo.setDeviceSubnetID(devicesData.getSourceSubnetID()); - appliancesInfo.setDeviceDeviceID(devicesData.getSourceDeviceID()); + appliancesInfo.setSourceSubnetID(devicesData.getSourceSubnetID()); + appliancesInfo.setSourceDeviceID(devicesData.getSourceDeviceID()); appliancesInfo.setParentRemarks(parentRemarks); appliancesInfo.setCtrlCommand(Configuration.COMMON_SWITCH_CTRL_COMMAND);//甯冮槻 -- Gitblit v1.8.0