From f9d01e2084e5b53840b09f557b4e2c700c790d80 Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期三, 24 六月 2020 10:51:23 +0800
Subject: [PATCH] 2020-06-24 1.增加干节点指令处理。                (干节点0 移动传感器1 煤气传感器10 烟雾传感器11 水浸25 门磁窗磁26 紧急按钮27)

---
 hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLDeviceManager.java |   44 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 44 insertions(+), 0 deletions(-)

diff --git a/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLDeviceManager.java b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLDeviceManager.java
index db59326..34d027c 100644
--- a/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLDeviceManager.java
+++ b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLDeviceManager.java
@@ -34,6 +34,7 @@
 import com.hdl.sdk.hdl_core.HDLDeviceManger.EventBusEvent.CommonSwitchStateBackEvent;
 import com.hdl.sdk.hdl_core.HDLDeviceManger.EventBusEvent.CurtainFeedBackEvent;
 import com.hdl.sdk.hdl_core.HDLDeviceManger.EventBusEvent.DeviceStateEvent;
+import com.hdl.sdk.hdl_core.HDLDeviceManger.EventBusEvent.DryContactSensorBackEvent;
 import com.hdl.sdk.hdl_core.HDLDeviceManger.EventBusEvent.EventCode;
 import com.hdl.sdk.hdl_core.HDLDeviceManger.EventBusEvent.FreshAirFeedBackEvent;
 import com.hdl.sdk.hdl_core.HDLDeviceManger.EventBusEvent.GeothermalFeedBackEvent;
@@ -189,6 +190,11 @@
                 break;
             case Configuration.COMMON_SWITCH_STATE_BACK_COMMAND:
                 handleCommonSwitchStateData(getDatas);
+                break;
+            /***2020-06-23 鏂板骞茶妭鐐规寚浠�**/
+            case Configuration.DRY_CONTACT_STATE_BACK_COMMAND:
+            case Configuration.DRY_CONTACT_BROADCAST_STATE_COMMAND:
+                handleDryContactBroadcastStateData(getDatas);
                 break;
             case Configuration.SECURITY_ARMING_CTRL_BACK_COMMAND://20190729鏂板
             case Configuration.SECURITY_ALARM_CTRL_BACK_COMMAND://鎶ヨ璁剧疆鍙嶉
@@ -2833,4 +2839,42 @@
     }
 
 
+    /**
+     * 骞叉帴鐐瑰箍鎾姸鎬佸弽棣堝弽棣�
+     * 2020-06-24 鏂板
+     *
+     * @param getDatas
+     */
+    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
+            ) {
+                List<AppliancesInfo> infos = devicesDataList.get(i).getAppliancesInfoList();
+                for (int j = 0, len2 = infos.size(); j < len2; j++) {
+                    if (infos.get(j).getBigType() == Configuration.SENSOR_BIG_TYPE
+                            && infos.get(j).getChannelNum() == (getDatas.addBytes[1] & 0xFF)) {//2019-07-29
+                        if (getDatas.addBytes.length >= 3) {
+                            isGetDeviceStateSuccess = true;
+                            int state = getDatas.addBytes[2] & 0xFF;
+                            devicesDataList.get(i).getAppliancesInfoList().get(j).setIntCurState(state);
+//                            devicesDataList.get(i).getAppliancesInfoList().get(j).setArrCurState(getDatas.addBytes);
+                            EventBus.getDefault().post(new DryContactSensorBackEvent(devicesDataList.get(i).getAppliancesInfoList().get(j), true, state));
+                        } else {
+                            isGetDeviceStateSuccess = true;
+                            EventBus.getDefault().post(new DryContactSensorBackEvent(devicesDataList.get(i).getAppliancesInfoList().get(j), false));
+                            HDLLog.info("DryContac 杩斿洖addBytes鏁版嵁寮傚父");
+                        }
+                        break outter;
+                    } else {
+//                        HDLLog.I("DryContac 娌℃湁鎵惧埌鍖归厤绫诲瀷");
+                    }
+                }
+                break outter;
+            }
+        }
+    }
+
+
 }

--
Gitblit v1.8.0