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)
---
app/src/main/res/layout/activity_add_devices.xml | 4
hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Parser/DeviceParser.java | 28 +
app/src/main/java/com/hdl/sdk/hdl_sdk/activity/AddDevicesActivity.java | 52 +--
hdl_core/src/main/java/com/hdl/sdk/hdl_core/Config/Configuration.java | 6
hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLCommand.java | 53 ++++
app/src/main/java/com/hdl/sdk/hdl_sdk/activity/SensorActivity.java | 507 +++++++++++++++++++++++++++++++++++++++
app/src/main/AndroidManifest.xml | 1
app/src/main/java/com/hdl/sdk/hdl_sdk/activity/AppliancesActivity.java | 3
hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLUdpCore.java | 2
hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/EventBusEvent/DryContactSensorBackEvent.java | 22 +
hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLDeviceManager.java | 44 +++
11 files changed, 690 insertions(+), 32 deletions(-)
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 4719abd..6d37330 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,6 +35,7 @@
<activity android:name=".activity.GeothermalActivity" />
<activity android:name=".activity.CtrlCommonSwitchActivity" />
<activity android:name=".activity.CtrlSecurityActivity" />
+ <activity android:name=".activity.SensorActivity" />
<receiver android:name=".activity.BootComplete">
<intent-filter>
diff --git a/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/AddDevicesActivity.java b/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/AddDevicesActivity.java
index f4ed1de..6f85fac 100644
--- a/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/AddDevicesActivity.java
+++ b/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/AddDevicesActivity.java
@@ -17,27 +17,30 @@
import java.util.ArrayList;
-/** SDK鐩墠鏀寔鐨勫ぇ绫伙細灏忕被
- * 鐏厜绫伙細璋冨厜鍥炶矾銆佸紑鍏冲洖璺�佹贩鍚堣皟鍏夌被銆佹贩鍚堝紑鍏崇被
- * 绐楀笜绫伙細寮�鍚堝笜鐢垫満銆佸嵎甯樼數鏈恒�佺獥甯樻ā鍧�
- * 绌鸿皟鍔熻兘锛欻VAC 妯″潡銆侀�氱敤绌鸿皟闈㈡澘
- * 鑳屾櫙闊充箰鍔熻兘锛氳儗鏅煶涔愭ā鍧� 2018鏂拌儗鏅煶涔愭ā鍧楀皬绫�3
- * 浼犳劅鍣細骞茬粨鐐�0 鍒� 鍔熺巼24
- * 閫昏緫鍔熻兘锛氶�昏緫妯″潡
- * 鍏ㄥ眬鍦烘櫙锛�
- * 鍦扮儹鍔熻兘锛氬湴鐑ā鍧�
- * 鏂伴锛氭柊椋庣郴缁�
+/** SDK鐩墠鏀寔鎵嬪姩娣诲姞鐨勫ぇ绫伙細灏忕被
+ * 鐏厜绫伙紙澶х被1锛夛細璋冨厜鍥炶矾锛�0锛夈�佸紑鍏冲洖璺紙1锛夈�佹贩鍚堣皟鍏夌被锛�9锛夈�佹贩鍚堝紑鍏崇被锛�10锛�
+ * 绐楀笜绫伙紙澶х被2锛夛細寮�鍚堝笜鐢垫満锛�0锛夈�佸嵎甯樼數鏈猴紙1锛夈�佺獥甯樻ā鍧楋紙2锛�
+ * 绌鸿皟鍔熻兘锛堝ぇ绫�7锛夛細HVAC 妯″潡锛�0锛夈�侀�氱敤绌鸿皟闈㈡澘锛�3锛�
+ * 鑳屾櫙闊充箰鍔熻兘锛堝ぇ绫�9锛夛細鑳屾櫙闊充箰妯″潡 2018鏂拌儗鏅煶涔愭ā鍧楀皬绫�3
+ * 浼犳劅鍣紙澶х被5锛夛細骞茬粨鐐�0 鍒� 鍔熺巼24
+ * 閫昏緫鍔熻兘锛堝ぇ绫�12锛夛細閫昏緫妯″潡锛�0锛�
+ * 鍏ㄥ眬鍦烘櫙锛堝ぇ绫�17锛夛細鍏ㄥ眬鍦烘櫙锛�0锛�
+ * 鍦扮儹鍔熻兘锛氬湴鐑ā鍧楋紙0锛�
+ * 鏂伴锛堝ぇ绫�19锛夛細鏂伴绯荤粺锛�0锛�
+ * 閫氱敤寮�鍏筹紙澶х被100锛夛細閫氱敤寮�鍏筹紙0锛�
- * 鐏厜绫�1锛�0 锛�1锛�9锛�10
- * 绐楀笜绫�2锛�0锛�1锛�2
- * 浼犳劅鍣�5锛�0~24
- * 绌鸿皟绫�7锛�0锛�3
- * 鍦扮儹妯″潡8锛�0
- * 鑳屾櫙闊充箰鍔熻兘9锛�0
- * 閫昏緫鍔熻兘12锛�0
- * 鍏ㄥ眬鍦烘櫙17锛�0
- * 鏂伴妯″潡19锛�0
- * 閫氱敤寮�鍏�100锛�0
+ * 鏍煎紡 鏀寔鐨勬ā鍧楀悕瀛� 澶х被ID锛氬皬绫籌D
+ *
+ * 鐏厜绫� 1锛�0 锛�1锛�9锛�10
+ * 绐楀笜绫� 2锛�0锛�1锛�2
+ * 浼犳劅鍣� 5锛�0~24
+ * 绌鸿皟绫� 7锛�0锛�3
+ * 鍦扮儹妯″潡 8锛�0
+ * 鑳屾櫙闊充箰鍔熻兘 9锛�0
+ * 閫昏緫鍔熻兘 12锛�0
+ * 鍏ㄥ眬鍦烘櫙 17锛�0
+ * 鏂伴妯″潡 19锛�0
+ * 閫氱敤寮�鍏� 100锛�0
*
* 璇ユ柟娉曞簲鐢ㄤ簬鎻愪緵椤圭洰浜や粯鍓嶇殑鎻愬彇鎵归噺鏁版嵁鐢熸垚濂芥暟鎹��
* 妯℃嫙鐢熸垚璁惧鍥炶矾鏁版嵁锛屽湪椤圭洰涓嶆敮鎸佺畝鏄撶紪绋嬫悳绱㈡儏鍐典笅锛屽彲浠ラ�氳繃璇ユ柟娉曪紝鍏堝揩鎹风敓鎴愮洰鏍囨暟鎹� 寰楀埌 List<DevicesData> 鏍煎紡鐨勮澶囧垪琛ㄦ暟鎹�
@@ -378,13 +381,8 @@
DeviceParser.addDevicesListWithoutSearching(port, Configuration.LIGTH_BIG_TYPE, 0, 111, 3, 3, "鐢佃鐏�", "4璺户鐢靛櫒",false);
DeviceParser.addDevicesListWithoutSearching(port, Configuration.LIGTH_BIG_TYPE, 0, 111, 3, 4, "寤婄伅", "4璺户鐢靛櫒",false);
-
-
- //娣诲姞涓�涓�4璺户鐢靛櫒
- DeviceParser.addDevicesListWithoutSearching(port, Configuration.LIGTH_BIG_TYPE, 0, 111, 3, 1, "鍚у彴鐏�", "4璺户鐢靛櫒",false);
- DeviceParser.addDevicesListWithoutSearching(port, Configuration.LIGTH_BIG_TYPE, 0, 111, 3, 2, "浼戦棽鐏�", "4璺户鐢靛櫒",false);
- DeviceParser.addDevicesListWithoutSearching(port, Configuration.LIGTH_BIG_TYPE, 0, 111, 3, 3, "鐢佃鐏�", "4璺户鐢靛櫒",false);
- DeviceParser.addDevicesListWithoutSearching(port, Configuration.LIGTH_BIG_TYPE, 0, 111, 3, 4, "寤婄伅", "4璺户鐢靛櫒",false);
+ //娣诲姞涓�涓共鑺傜偣浼犳劅鍣�
+ DeviceParser.addDevicesListWithoutSearching(port, Configuration.SENSOR_BIG_TYPE, 0, 111, 99, 1, "骞茶妭鐐�", "骞茶妭鐐�",false);
//娣诲姞涓�涓�2璺獥甯�
diff --git a/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/AppliancesActivity.java b/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/AppliancesActivity.java
index 2ee969b..9484120 100644
--- a/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/AppliancesActivity.java
+++ b/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/AppliancesActivity.java
@@ -63,6 +63,9 @@
}else if (appliancesInfos.get(position).getBigType() == Configuration.SECURITY_BIG_TYPE) {
//澶х被鏄畨闃叉ā鍧楀垯璺宠浆鍒癈trlSecurityActivity
intent.setClass(AppliancesActivity.this, CtrlSecurityActivity.class);
+ }else if (appliancesInfos.get(position).getBigType() == Configuration.SENSOR_BIG_TYPE) {
+ //澶х被鏄紶鎰熷櫒 鍒欒烦杞埌SensorActivity 骞茶妭鐐规寚浠ょ被鍨�
+ intent.setClass(AppliancesActivity.this, SensorActivity.class);
}
diff --git a/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/SensorActivity.java b/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/SensorActivity.java
new file mode 100644
index 0000000..74e06f3
--- /dev/null
+++ b/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/SensorActivity.java
@@ -0,0 +1,507 @@
+package com.hdl.sdk.hdl_sdk.activity;
+
+
+import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+
+import com.hdl.sdk.hdl_core.HDLAppliances.Config.HDLApConfig;
+import com.hdl.sdk.hdl_core.HDLDeviceManger.Bean.AppliancesInfo;
+import com.hdl.sdk.hdl_core.HDLDeviceManger.Core.HDLCommand;
+import com.hdl.sdk.hdl_core.HDLDeviceManger.EventBusEvent.DryContactSensorBackEvent;
+import com.hdl.sdk.hdl_sdk.R;
+import com.hdl.sdk.hdl_sdk.base.BaseActivity;
+import com.hdl.sdk.hdl_sdk.utlis.HDLLog;
+
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
+
+/**
+ * 浼犳劅鍣� 骞茶妭鐐规寚浠ょ被鍨嬬殑浼犳劅鍣ㄦā鍧�
+ * 骞茶妭鐐� 绉诲姩浼犳劅鍣� 姘存蹈 闂ㄧ绐楃 绱ф�ユ寜閽�
+ *
+ * 涓�鑸厤鍚�4鍚�1骞茶妭鐐规ā鍧椾娇鐢�
+ */
+public class SensorActivity extends BaseActivity {
+ /**
+ * Topbar
+ */
+// private RelativeLayout topBarBack;
+// private TextView topBarTitle;
+ private Button sensorbtn;
+ private TextView sensorText;
+ private AppliancesInfo appliancesInfo;
+
+
+ /**
+ * 澶嶅啓isRegisterEventBus() 瑕佹敞鍐屼娇鐢‥ventBus锛岃繖閲岃璁剧疆杩斿洖true
+ *
+ * @return true
+ */
+ @Override
+ protected boolean isRegisterEventBus() {
+ return true;
+ }
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_sensor);
+ initToolbar();
+ initcurState();
+ initView();
+ initOnClick();
+ displayStateView();
+ //浠庣綉缁滀笂鏌ヨ鍒锋柊涓�娆¤澶囩姸鎬侊紝寰呰皟璇�
+ HDLCommand.getDryContactSensorStateFromNetwork(appliancesInfo);
+ }
+
+ /**
+ * 鍒濆鍖朤oolbar
+ */
+ private void initToolbar() {
+// topBarBack = findViewById(R.id.ll_top_b_left);
+// setViewVisible(topBarBack);
+// topBarTitle = findViewById(R.id.tv_top_b_header_title);
+// topBarBack.setOnClickListener(new View.OnClickListener() {
+// @Override
+// public void onClick(View view) {
+// finish();
+// }
+// });
+ }
+
+ private void initcurState() {
+ appliancesInfo = (AppliancesInfo) getIntent().getSerializableExtra("hdl");
+// String titleStr = appliancesInfo.getRemarks();
+// topBarTitle.setText(titleStr);
+
+ }
+
+ private void initView() {
+ sensorbtn = findViewById(R.id.sensorbtn);
+ sensorText = findViewById(R.id.sensorText);
+
+
+ }
+
+ private void initOnClick() {
+
+ sensorbtn.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ //浠庣綉缁滀笂鏌ヨ鍒锋柊涓�娆¤澶囩姸鎬侊紝寰呰皟璇�
+ HDLCommand.getDryContactSensorStateFromNetwork(appliancesInfo);
+ }
+ });
+ }
+
+ private void displayStateView() {
+
+ switch (appliancesInfo.getDeviceType()) {
+// case HDLApConfig.TYPE_SENSOR_TEMP:////2019-07-03 灞忚斀
+// case HDLApConfig.TYPE_SENSOR_HUMIDITY:
+// case HDLApConfig.TYPE_SENSOR_ILLUMINACE:
+// case HDLApConfig.TYPE_SENSOR_VOC:
+// case HDLApConfig.TYPE_SENSOR_PM_2_POINT_5:
+// case HDLApConfig.TYPE_SENSOR_C02:
+// case HDLApConfig.TYPE_SENSOR_LPG:
+// case HDLApConfig.TYPE_SENSOR_CO_H2:
+// case HDLApConfig.TYPE_SENSOR_CH4:
+// case HDLApConfig.TYPE_SENSOR_SMOG:
+// case HDLApConfig.TYPE_SENSOR_WIND_SPEED:
+// case HDLApConfig.TYPE_SENSOR_WIND_PRESSURE:
+// case HDLApConfig.TYPE_SENSOR_LIQUID_FLOW:
+// case HDLApConfig.TYPE_SENSOR_LIQUID_PRESSURE:
+// case HDLApConfig.TYPE_SENSOR_LIQUID_DEPTH:
+// case HDLApConfig.TYPE_SENSOR_RAIN_FALL:
+// case HDLApConfig.TYPE_SENSOR_WEIGHT:
+// case HDLApConfig.TYPE_SENSOR_HEIGHT_LENGTH:
+// case HDLApConfig.TYPE_SENSOR_OBJECT_SPEED:
+// case HDLApConfig.TYPE_SENSOR_SHAKE:
+// case HDLApConfig.TYPE_SENSOR_VOLTAGE:
+// case HDLApConfig.TYPE_SENSOR_ELECTRICITY:
+// case HDLApConfig.TYPE_SENSOR_POWER:
+// case HDLApConfig.TYPE_SENSOR_FLOODING:
+// case HDLApConfig.TYPE_SENSOR_DOOR_MAGNET:
+// case HDLApConfig.TYPE_SENSOR_EMERGENCY_BUTTON:
+
+ case HDLApConfig.TYPE_SENSOR_DRY_CONTACT: //骞茶妭鐐�
+ case HDLApConfig.TYPE_SENSOR_MOVEMENT_DETECTOR: //绾㈠鎰熷簲浼犳劅鍣�
+ case HDLApConfig.TYPE_SENSOR_CO_H2: //鐓ゆ皵浼犳劅鍣�
+ case HDLApConfig.TYPE_SENSOR_SMOG: //鐑熼浘浼犳劅鍣�
+ case HDLApConfig.TYPE_SENSOR_FLOODING: //姘存蹈浼犳劅鍣�
+ case HDLApConfig.TYPE_SENSOR_DOOR_MAGNET: //闂ㄧ浼犳劅鍣�
+ case HDLApConfig.TYPE_SENSOR_EMERGENCY_BUTTON://绱ф�ユ寜閽�
+ break;
+ default:
+ finish();//璁惧绫诲瀷涓嶅缁撴潫椤甸潰
+ break;
+ }
+ /**鏍规嵁闇�姹傛槸鍚﹀彂閫佷竴娆¤幏鍙栧埛鏂扮姸鎬佽姹�*/
+ }
+
+
+ /**
+ * 浼犳劅鍣ㄧ姸鎬佸洖璋� Event
+ * 骞茶妭鐐圭姸鎬佷富鍔ㄥ箍鎾� 鍜� 琚姩鏌ヨ鐘舵�佸弽棣�
+ *
+ * @param event
+ */
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ public void onDryContactSensorBackEventMain(DryContactSensorBackEvent event) {
+ if (event.getAppliancesInfo().getDeviceSubnetID() == appliancesInfo.getDeviceSubnetID()
+ && event.getAppliancesInfo().getDeviceDeviceID() == appliancesInfo.getDeviceDeviceID()
+ && event.getAppliancesInfo().getChannelNum() == appliancesInfo.getChannelNum()
+ ) {
+
+ //浼犳劅鍣� 骞叉帴鐐� 銆傚彧鏈夊紑鍏崇姸鎬�
+ if (!event.isSuccess()) {
+ showToast("鑾峰彇浼犳劅鍣ㄧ姸鎬佸け璐ワ紝璇烽噸鏂板啀璇�");
+ return;
+ }
+ String mData = "";
+ if (appliancesInfo.getDeviceType() == HDLApConfig.TYPE_SENSOR_MOVEMENT_DETECTOR) {
+ mData = event.getState() == 0 ? "鏃犲姩闈�" : "鏈夊姩闈�";
+ } else {
+ mData = event.getState() == 0 ? "闂悎" : "鏂紑";
+ }
+
+ sensorText.setText("浼犳劅鍣�---骞叉帴鐐圭姸鎬侊細" + mData);
+// showToast("浼犳劅鍣�---骞叉帴鐐圭姸鎬侊細" + mData);
+ HDLLog.I("浼犳劅鍣�---骞叉帴鐐圭姸鎬侊細" + mData);
+ }
+ }
+
+
+// /**
+// * 浼犳劅鍣ㄧ姸鎬佸洖璋� Event
+// *
+// * @param event
+// */
+// @Subscribe(threadMode = ThreadMode.MAIN)
+// public void onSensorStateBackInfoMain(SensorStateBackInfo event) {
+// if (event.getAppliancesInfo().getDeviceSubnetID() == appliancesInfo.getDeviceSubnetID()
+// && event.getAppliancesInfo().getDeviceDeviceID() == appliancesInfo.getDeviceDeviceID()
+// && event.getAppliancesInfo().getChannelNum() == appliancesInfo.getChannelNum()
+// ) {
+// //杩欎釜杩斿洖鐨勪俊鎭槸褰撳墠鐘舵�佺殑
+// switch (event.getAppliancesInfo().getDeviceType()) {
+// case HDLApConfig.TYPE_SENSOR_DRY_CONTACT://2019-07-03 灞忚斀
+// //浼犳劅鍣� 骞叉帴鐐� 銆傚彧鏈夊紑鍏崇姸鎬�
+// if (!event.isSuccess()) {
+// showToast("鑾峰彇浼犳劅鍣�---骞叉帴鐐圭姸鎬佸け璐ワ紝璇烽噸鏂板啀璇�");
+// return;
+// }
+// float dryContactValue = (float) event.getAppliancesInfo().getCurState();
+// String dryContactUnit = ((SensorStateBackInfo) event).getUnite();
+// showToast("浼犳劅鍣�---骞叉帴鐐圭姸鎬侊細" + dryContactValue + dryContactUnit);
+// HDLLog.Log("浼犳劅鍣�---骞叉帴鐐圭姸鎬侊細" + dryContactValue + dryContactUnit);
+// break;
+// case HDLApConfig.TYPE_SENSOR_MOVEMENT_DETECTOR:
+// //浼犳劅鍣� 绉诲姩鎺㈡祴 銆傜伒鏁忓害
+// if (!event.isSuccess()) {
+// showToast("鑾峰彇浼犳劅鍣�---绉诲姩鎺㈡祴鐏垫晱搴︾姸鎬佸け璐ワ紝璇烽噸鏂板啀璇�");
+// return;
+// }
+// float mdValue = (float) event.getAppliancesInfo().getCurState();
+// String mdValueUnit = ((SensorStateBackInfo) event).getUnite();
+// showToast("浼犳劅鍣�---绉诲姩鎺㈡祴鐏垫晱搴︼細" + mdValue + mdValueUnit);
+// HDLLog.Log("浼犳劅鍣�---绉诲姩鎺㈡祴鐏垫晱搴︼細" + mdValue + mdValueUnit);
+// break;
+// case HDLApConfig.TYPE_SENSOR_TEMP:
+// //浼犳劅鍣� 娓╁害
+// if (!event.isSuccess()) {
+// showToast("鑾峰彇浼犳劅鍣�---娓╁害鐘舵�佸け璐ワ紝璇烽噸鏂板啀璇�");
+// return;
+// }
+// float tempValue = (float) event.getAppliancesInfo().getCurState();
+// String tempValueUnit = ((SensorStateBackInfo) event).getUnite();
+// showToast("浼犳劅鍣�---娓╁害锛�" + tempValue + tempValueUnit);
+// HDLLog.Log("浼犳劅鍣�---娓╁害锛�" + tempValue + tempValueUnit);
+// break;
+// case HDLApConfig.TYPE_SENSOR_HUMIDITY:
+// //浼犳劅鍣� 婀垮害
+// if (!event.isSuccess()) {
+// showToast("鑾峰彇浼犳劅鍣�---婀垮害鐘舵�佸け璐ワ紝璇烽噸鏂板啀璇�");
+// return;
+// }
+// float humidityValue = (float) event.getAppliancesInfo().getCurState();
+// String humidityValueUnit = ((SensorStateBackInfo) event).getUnite();
+// showToast("浼犳劅鍣�---婀垮害锛�" + humidityValue + humidityValueUnit);
+// HDLLog.Log("浼犳劅鍣�---婀垮害锛�" + humidityValue + humidityValueUnit);
+// break;
+// case HDLApConfig.TYPE_SENSOR_ILLUMINACE:
+// //浼犳劅鍣� 鐓у害
+// if (!event.isSuccess()) {
+// showToast("鑾峰彇浼犳劅鍣�---鐓у害鐘舵�佸け璐ワ紝璇烽噸鏂板啀璇�");
+// return;
+// }
+// float illuminaceValue = (float) event.getAppliancesInfo().getCurState();
+// String illuminaceValueUnit = ((SensorStateBackInfo) event).getUnite();
+// showToast("浼犳劅鍣�---鐓у害锛�" + illuminaceValue + illuminaceValueUnit);
+// HDLLog.Log("浼犳劅鍣�---鐓у害锛�" + illuminaceValue + illuminaceValueUnit);
+// break;
+// case HDLApConfig.TYPE_SENSOR_VOC:
+// //浼犳劅鍣� 褰撳墠绌烘皵璐ㄩ噺绛夌骇
+// if (!event.isSuccess()) {
+// showToast("鑾峰彇浼犳劅鍣�---褰撳墠绌烘皵璐ㄩ噺绛夌骇鐘舵�佸け璐ワ紝璇烽噸鏂板啀璇�");
+// return;
+// }
+// float vocValue = (float) event.getAppliancesInfo().getCurState();
+// String vocValueUnit = ((SensorStateBackInfo) event).getUnite();
+// showToast("浼犳劅鍣�---褰撳墠绌烘皵璐ㄩ噺绛夌骇锛�" + vocValue + vocValueUnit);
+// HDLLog.Log("浼犳劅鍣�---褰撳墠绌烘皵璐ㄩ噺绛夌骇锛�" + vocValue + vocValueUnit);
+// break;
+// case HDLApConfig.TYPE_SENSOR_PM_2_POINT_5:
+// //浼犳劅鍣� pm2.5
+// if (!event.isSuccess()) {
+// showToast("鑾峰彇浼犳劅鍣�---pm2.5鐘舵�佸け璐ワ紝璇烽噸鏂板啀璇�");
+// return;
+// }
+// float pm2_5Value = (float) event.getAppliancesInfo().getCurState();
+// String pm2_5ValueUnit = ((SensorStateBackInfo) event).getUnite();
+// showToast("浼犳劅鍣�---pm2.5锛�" + pm2_5Value + pm2_5ValueUnit);
+// HDLLog.Log("浼犳劅鍣�---pm2.5锛�" + pm2_5Value + pm2_5ValueUnit);
+// break;
+// case HDLApConfig.TYPE_SENSOR_C02:
+// //浼犳劅鍣� 浜屾哀鍖栫⒊
+// if (!event.isSuccess()) {
+// showToast("鑾峰彇浼犳劅鍣�---浜屾哀鍖栫⒊鐘舵�佸け璐ワ紝璇烽噸鏂板啀璇�");
+// return;
+// }
+// float co2Value = (float) event.getAppliancesInfo().getCurState();
+// String co2ValueUnit = ((SensorStateBackInfo) event).getUnite();
+// showToast("浼犳劅鍣�---浜屾哀鍖栫⒊锛�" + co2Value + co2ValueUnit);
+// HDLLog.Log("浼犳劅鍣�---浜屾哀鍖栫⒊锛�" + co2Value + co2ValueUnit);
+// break;
+// case HDLApConfig.TYPE_SENSOR_LPG:
+// //浼犳劅鍣� 娑插寲鐭虫补姘�
+// if (!event.isSuccess()) {
+// showToast("鑾峰彇浼犳劅鍣�---娑插寲鐭虫补姘旂姸鎬佸け璐ワ紝璇烽噸鏂板啀璇�");
+// return;
+// }
+// float lpgValue = (float) event.getAppliancesInfo().getCurState();
+// String lpgValueUnit = ((SensorStateBackInfo) event).getUnite();
+// showToast("浼犳劅鍣�---娑插寲鐭虫补姘旓細" + lpgValue + lpgValueUnit);
+// HDLLog.Log("浼犳劅鍣�---娑插寲鐭虫补姘旓細" + lpgValue + lpgValueUnit);
+// break;
+// case HDLApConfig.TYPE_SENSOR_CO_H2:
+// //浼犳劅鍣� 浜哄伐鐓ゆ皵
+// if (!event.isSuccess()) {
+// showToast("鑾峰彇浼犳劅鍣�---浜哄伐鐓ゆ皵鐘舵�佸け璐ワ紝璇烽噸鏂板啀璇�");
+// return;
+// }
+// float coh2Value = (float) event.getAppliancesInfo().getCurState();
+// String coh2ValueUnit = ((SensorStateBackInfo) event).getUnite();
+// showToast("浼犳劅鍣�---浜哄伐鐓ゆ皵锛�" + coh2Value + coh2ValueUnit);
+// HDLLog.Log("浼犳劅鍣�---浜哄伐鐓ゆ皵锛�" + coh2Value + coh2ValueUnit);
+// break;
+// case HDLApConfig.TYPE_SENSOR_CH4:
+// //浼犳劅鍣� 澶╃劧姘�
+// if (!event.isSuccess()) {
+// showToast("鑾峰彇浼犳劅鍣�---澶╃劧姘旂姸鎬佸け璐ワ紝璇烽噸鏂板啀璇�");
+// return;
+// }
+// float ch4Value = (float) event.getAppliancesInfo().getCurState();
+// String ch4ValueUnit = ((SensorStateBackInfo) event).getUnite();
+// showToast("浼犳劅鍣�---澶╃劧姘旓細" + ch4Value + ch4ValueUnit);
+// HDLLog.Log("浼犳劅鍣�---澶╃劧姘旓細" + ch4Value + ch4ValueUnit);
+// break;
+// case HDLApConfig.TYPE_SENSOR_SMOG:
+// //浼犳劅鍣� 鐑熼浘
+// if (!event.isSuccess()) {
+// showToast("鑾峰彇浼犳劅鍣�---鐑熼浘鐘舵�佸け璐ワ紝璇烽噸鏂板啀璇�");
+// return;
+// }
+// float smogValue = (float) event.getAppliancesInfo().getCurState();
+// String smogValueUnit = ((SensorStateBackInfo) event).getUnite();
+// showToast("浼犳劅鍣�---鐑熼浘锛�" + smogValue + smogValueUnit);
+// HDLLog.Log("浼犳劅鍣�---鐑熼浘锛�" + smogValue + smogValueUnit);
+// break;
+// case HDLApConfig.TYPE_SENSOR_WIND_SPEED:
+// //浼犳劅鍣� 椋庨��
+// if (!event.isSuccess()) {
+// showToast("鑾峰彇浼犳劅鍣�---椋庨�熺姸鎬佸け璐ワ紝璇烽噸鏂板啀璇�");
+// return;
+// }
+// float windSpeedValue = (float) event.getAppliancesInfo().getCurState();
+// String windSpeedValueUnit = ((SensorStateBackInfo) event).getUnite();
+// showToast("浼犳劅鍣�---椋庨�燂細" + windSpeedValue + windSpeedValueUnit);
+// HDLLog.Log("浼犳劅鍣�---椋庨�燂細" + windSpeedValue + windSpeedValueUnit);
+// break;
+// case HDLApConfig.TYPE_SENSOR_WIND_PRESSURE:
+// //浼犳劅鍣� 椋庡帇
+// if (!event.isSuccess()) {
+// showToast("鑾峰彇浼犳劅鍣�---椋庡帇鐘舵�佸け璐ワ紝璇烽噸鏂板啀璇�");
+// return;
+// }
+// float windPressureValue = (float) event.getAppliancesInfo().getCurState();
+// String windPressureValueUnit = ((SensorStateBackInfo) event).getUnite();
+// showToast("浼犳劅鍣�---椋庡帇锛�" + windPressureValue + windPressureValueUnit);
+// HDLLog.Log("浼犳劅鍣�---椋庡帇锛�" + windPressureValue + windPressureValueUnit);
+// break;
+// case HDLApConfig.TYPE_SENSOR_LIQUID_FLOW:
+// //浼犳劅鍣� 娑蹭綋娴侀噺
+// if (!event.isSuccess()) {
+// showToast("鑾峰彇浼犳劅鍣�---娑蹭綋娴侀噺鐘舵�佸け璐ワ紝璇烽噸鏂板啀璇�");
+// return;
+// }
+// float liquidFlowValue = (float) event.getAppliancesInfo().getCurState();
+// String liquidFlowValueUnit = ((SensorStateBackInfo) event).getUnite();
+// showToast("浼犳劅鍣�---娑蹭綋娴侀噺锛�" + liquidFlowValue + liquidFlowValueUnit);
+// HDLLog.Log("浼犳劅鍣�---娑蹭綋娴侀噺锛�" + liquidFlowValue + liquidFlowValueUnit);
+// break;
+// case HDLApConfig.TYPE_SENSOR_LIQUID_PRESSURE:
+// //浼犳劅鍣� 娑蹭綋鍘嬪姏
+// if (!event.isSuccess()) {
+// showToast("鑾峰彇浼犳劅鍣�---娑蹭綋鍘嬪姏鐘舵�佸け璐ワ紝璇烽噸鏂板啀璇�");
+// return;
+// }
+// float liquidPressureValue = (float) event.getAppliancesInfo().getCurState();
+// String liquidPressureValueUnit = ((SensorStateBackInfo) event).getUnite();
+// showToast("浼犳劅鍣�---娑蹭綋鍘嬪姏锛�" + liquidPressureValue + liquidPressureValueUnit);
+// HDLLog.Log("浼犳劅鍣�---娑蹭綋鍘嬪姏锛�" + liquidPressureValue + liquidPressureValueUnit);
+// break;
+// case HDLApConfig.TYPE_SENSOR_LIQUID_DEPTH:
+// //浼犳劅鍣� 娑蹭綋娣卞害
+// if (!event.isSuccess()) {
+// showToast("鑾峰彇浼犳劅鍣�---娑蹭綋娣卞害鐘舵�佸け璐ワ紝璇烽噸鏂板啀璇�");
+// return;
+// }
+// float liquidDepthValue = (float) event.getAppliancesInfo().getCurState();
+// String liquidDepthValueUnit = ((SensorStateBackInfo) event).getUnite();
+// showToast("浼犳劅鍣�---娑蹭綋娣卞害锛�" + liquidDepthValue + liquidDepthValueUnit);
+// HDLLog.Log("浼犳劅鍣�---娑蹭綋娣卞害锛�" + liquidDepthValue + liquidDepthValueUnit);
+// break;
+// case HDLApConfig.TYPE_SENSOR_RAIN_FALL:
+// //浼犳劅鍣� 闆ㄩ噺
+// if (!event.isSuccess()) {
+// showToast("鑾峰彇浼犳劅鍣�---闆ㄩ噺鐘舵�佸け璐ワ紝璇烽噸鏂板啀璇�");
+// return;
+// }
+// float rainFallValue = (float) event.getAppliancesInfo().getCurState();
+// String rainFallValueUnit = ((SensorStateBackInfo) event).getUnite();
+// showToast("浼犳劅鍣�---闆ㄩ噺锛�" + rainFallValue + rainFallValueUnit);
+// HDLLog.Log("浼犳劅鍣�---闆ㄩ噺锛�" + rainFallValue + rainFallValueUnit);
+// break;
+// case HDLApConfig.TYPE_SENSOR_WEIGHT:
+// //浼犳劅鍣� 閲嶉噺
+// if (!event.isSuccess()) {
+// showToast("鑾峰彇浼犳劅鍣�---閲嶉噺鐘舵�佸け璐ワ紝璇烽噸鏂板啀璇�");
+// return;
+// }
+// float weightValue = (float) event.getAppliancesInfo().getCurState();
+// String weightValueUnit = ((SensorStateBackInfo) event).getUnite();
+// showToast("浼犳劅鍣�---閲嶉噺锛�" + weightValue + weightValueUnit);
+// HDLLog.Log("浼犳劅鍣�---閲嶉噺锛�" + weightValue + weightValueUnit);
+// break;
+// case HDLApConfig.TYPE_SENSOR_HEIGHT_LENGTH:
+// //浼犳劅鍣� 閲嶉噺
+// if (!event.isSuccess()) {
+// showToast("鑾峰彇浼犳劅鍣�---閲嶉噺鐘舵�佸け璐ワ紝璇烽噸鏂板啀璇�");
+// return;
+// }
+// float height_lengthValue = (float) event.getAppliancesInfo().getCurState();
+// String height_lengthValueUnit = ((SensorStateBackInfo) event).getUnite();
+// showToast("浼犳劅鍣�---閲嶉噺锛�" + height_lengthValue + height_lengthValueUnit);
+// HDLLog.Log("浼犳劅鍣�---閲嶉噺锛�" + height_lengthValue + height_lengthValueUnit);
+// break;
+// case HDLApConfig.TYPE_SENSOR_OBJECT_SPEED:
+// //浼犳劅鍣� 鐗╀綋閫熷害
+// if (!event.isSuccess()) {
+// showToast("鑾峰彇浼犳劅鍣�---鐗╀綋閫熷害鐘舵�佸け璐ワ紝璇烽噸鏂板啀璇�");
+// return;
+// }
+// float objectSpeedValue = (float) event.getAppliancesInfo().getCurState();
+// String objectSpeedUnite = ((SensorStateBackInfo) event).getUnite();//鏁板�煎崟浣�
+// showToast("浼犳劅鍣�---鐗╀綋閫熷害锛�" + objectSpeedValue + objectSpeedUnite);
+// HDLLog.Log("浼犳劅鍣�---鐗╀綋閫熷害锛�" + objectSpeedValue + objectSpeedUnite);
+// break;
+// case HDLApConfig.TYPE_SENSOR_SHAKE:
+// //浼犳劅鍣� 闇囧姩
+// if (!event.isSuccess()) {
+// showToast("鑾峰彇浼犳劅鍣�---闇囧姩鐘舵�佸け璐ワ紝璇烽噸鏂板啀璇�");
+// return;
+// }
+// float shakeValue = (float) event.getAppliancesInfo().getCurState();
+// String shakeValueUnite = ((SensorStateBackInfo) event).getUnite();//鏁板�煎崟浣�
+// showToast("浼犳劅鍣�---闇囧姩锛�" + shakeValue + shakeValueUnite);
+// HDLLog.Log("浼犳劅鍣�---闇囧姩锛�" + shakeValue + shakeValueUnite);
+// break;
+// case HDLApConfig.TYPE_SENSOR_VOLTAGE:
+// //浼犳劅鍣� 鐢靛帇
+// if (!event.isSuccess()) {
+// showToast("鑾峰彇浼犳劅鍣�---鐢靛帇鐘舵�佸け璐ワ紝璇烽噸鏂板啀璇�");
+// return;
+// }
+// float voltageValue = (float) event.getAppliancesInfo().getCurState();
+// String voltageValueUnite = ((SensorStateBackInfo) event).getUnite();//鏁板�煎崟浣�
+// showToast("浼犳劅鍣�---鐢靛帇锛�" + voltageValue + voltageValueUnite);
+// HDLLog.Log("浼犳劅鍣�---鐢靛帇锛�" + voltageValue + voltageValueUnite);
+// break;
+// case HDLApConfig.TYPE_SENSOR_ELECTRICITY:
+// //浼犳劅鍣� 鐢垫祦
+// if (!event.isSuccess()) {
+// showToast("鑾峰彇浼犳劅鍣�---鐢垫祦鐘舵�佸け璐ワ紝璇烽噸鏂板啀璇�");
+// return;
+// }
+// float electricityValue = (float) event.getAppliancesInfo().getCurState();
+// String electricityValueUnite = ((SensorStateBackInfo) event).getUnite();//鏁板�煎崟浣�
+// showToast("浼犳劅鍣�---鐢垫祦锛�" + electricityValue + electricityValueUnite);
+// HDLLog.Log("浼犳劅鍣�---鐢垫祦锛�" + electricityValue + electricityValueUnite);
+// break;
+// case HDLApConfig.TYPE_SENSOR_POWER:
+// //浼犳劅鍣� 鍔熺巼
+// if (!event.isSuccess()) {
+// showToast("鑾峰彇浼犳劅鍣�---鍔熺巼鐘舵�佸け璐ワ紝璇烽噸鏂板啀璇�");
+// return;
+// }
+// float powerValue = (float) event.getAppliancesInfo().getCurState();
+// String powerValueUnite = ((SensorStateBackInfo) event).getUnite();//鏁板�煎崟浣�
+// showToast("浼犳劅鍣�---鍔熺巼锛�" + powerValue + powerValueUnite);
+// HDLLog.Log("浼犳劅鍣�---鍔熺巼锛�" + powerValue + powerValueUnite);
+// break;
+// case HDLApConfig.TYPE_SENSOR_FLOODING:
+// //浼犳劅鍣� 姘存蹈
+// if (!event.isSuccess()) {
+// showToast("鑾峰彇浼犳劅鍣�---姘存蹈鐘舵�佸け璐ワ紝璇烽噸鏂板啀璇�");
+// return;
+// }
+// float floodingValue = (float) event.getAppliancesInfo().getCurState();
+// String floodingValueUnite = ((SensorStateBackInfo) event).getUnite();//鏁板�煎崟浣�
+// showToast("浼犳劅鍣�---姘存蹈锛�" + floodingValue + floodingValueUnite);
+// HDLLog.Log("浼犳劅鍣�---姘存蹈锛�" + floodingValue + floodingValueUnite);
+// break;
+// case HDLApConfig.TYPE_SENSOR_DOOR_MAGNET:
+// //浼犳劅鍣� 闂ㄧ绐楃
+// if (!event.isSuccess()) {
+// showToast("鑾峰彇浼犳劅鍣�---闂ㄧ绐楃鐘舵�佸け璐ワ紝璇烽噸鏂板啀璇�");
+// return;
+// }
+// float doorMagnetValue = (float) event.getAppliancesInfo().getCurState();
+// String doorMagnetValueUnite = ((SensorStateBackInfo) event).getUnite();//鏁板�煎崟浣�
+// showToast("浼犳劅鍣�---闂ㄧ绐楃锛�" + doorMagnetValue + doorMagnetValueUnite);
+// HDLLog.Log("浼犳劅鍣�---闂ㄧ绐楃锛�" + doorMagnetValue + doorMagnetValueUnite);
+// break;
+// case HDLApConfig.TYPE_SENSOR_EMERGENCY_BUTTON:
+// //浼犳劅鍣� 绱ф�ユ寜閽�
+// if (!event.isSuccess()) {
+// showToast("鑾峰彇浼犳劅鍣�---绱ф�ユ寜閽姸鎬佸け璐ワ紝璇烽噸鏂板啀璇�");
+// return;
+// }
+// float emergencyButtonValue = (float) event.getAppliancesInfo().getCurState();
+// String emergencyButtonUnite = ((SensorStateBackInfo) event).getUnite();//鏁板�煎崟浣�
+// showToast("浼犳劅鍣�---绱ф�ユ寜閽細" + emergencyButtonValue + emergencyButtonUnite);
+// HDLLog.Log("浼犳劅鍣�---绱ф�ユ寜閽細" + emergencyButtonValue + emergencyButtonUnite);
+// break;
+//
+//
+// }
+// }
+// }
+
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_add_devices.xml b/app/src/main/res/layout/activity_add_devices.xml
index f853785..6f46a7d 100644
--- a/app/src/main/res/layout/activity_add_devices.xml
+++ b/app/src/main/res/layout/activity_add_devices.xml
@@ -10,7 +10,7 @@
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
- android:layout_height="wrap_content"
+ android:layout_height="match_parent"
android:layout_marginLeft="10dp"
android:layout_marginTop="20dp"
android:layout_marginRight="10dp"
@@ -264,7 +264,7 @@
android:id="@+id/btn_addAll"
android:layout_width="match_parent"
android:layout_height="50dp"
- android:layout_marginTop="10dp"
+ android:layout_marginBottom="20dp"
android:text="娣诲姞娴嬭瘯" />
diff --git a/hdl_core/src/main/java/com/hdl/sdk/hdl_core/Config/Configuration.java b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/Config/Configuration.java
index e4af1f5..0e08292 100644
--- a/hdl_core/src/main/java/com/hdl/sdk/hdl_core/Config/Configuration.java
+++ b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/Config/Configuration.java
@@ -170,7 +170,13 @@
public static final int COMMON_SWITCH_CTRL_BACK_COMMAND = 0xE01D;//閫氱敤寮�鍏虫帶鍒跺弽棣�
public static final int COMMON_SWITCH_STATE_COMMAND = 0xE018;//璇婚�氱敤寮�鍏崇姸鎬�
public static final int COMMON_SWITCH_STATE_BACK_COMMAND = 0xE019;//璇婚�氱敤寮�鍏崇姸鎬佸弽棣�
+ /**
+ * 2020-06-23 骞叉帴鐐� 姘存蹈銆侀棬纾併�佺叅姘斻�佺儫闆�
+ */
+ public static final int DRY_CONTACT_STATE_COMMAND = 0x15CE;//璇诲彇骞茶妭鐐圭姸鎬�
+ public static final int DRY_CONTACT_STATE_BACK_COMMAND = 0x15CF;// 骞茶妭鐐圭姸鎬佸洖澶�
+ public static final int DRY_CONTACT_BROADCAST_STATE_COMMAND = 0x15D0;//骞茶妭鐐圭姸鎬佷富鍔ㄥ箍鎾弽棣�
/**
* RCU 閰嶇疆鏁版嵁
diff --git a/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLCommand.java b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLCommand.java
index c0593f8..1c572c8 100644
--- a/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLCommand.java
+++ b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLCommand.java
@@ -1228,4 +1228,57 @@
// }
// }
+
+ /**
+ * 鑾峰彇骞叉帴鐐逛紶鎰熷櫒妯″潡鐘舵��
+ * @param info
+ */
+ public static void getDryContactSensorStateFromNetwork(final AppliancesInfo info) {
+ if (info == null) {
+ return;
+ }
+ HDLDeviceManager.isGetDeviceStateSuccess = false;
+ switch (info.getDeviceType()) {
+ case HDLApConfig.TYPE_SENSOR_DRY_CONTACT:
+ case HDLApConfig.TYPE_SENSOR_MOVEMENT_DETECTOR:
+ case HDLApConfig.TYPE_SENSOR_TEMP:
+ case HDLApConfig.TYPE_SENSOR_HUMIDITY:
+ case HDLApConfig.TYPE_SENSOR_ILLUMINACE:
+ case HDLApConfig.TYPE_SENSOR_VOC:
+ case HDLApConfig.TYPE_SENSOR_PM_2_POINT_5:
+ case HDLApConfig.TYPE_SENSOR_C02:
+ case HDLApConfig.TYPE_SENSOR_LPG:
+ case HDLApConfig.TYPE_SENSOR_CO_H2:
+ case HDLApConfig.TYPE_SENSOR_CH4:
+ case HDLApConfig.TYPE_SENSOR_SMOG:
+ case HDLApConfig.TYPE_SENSOR_WIND_SPEED:
+ case HDLApConfig.TYPE_SENSOR_WIND_PRESSURE:
+ case HDLApConfig.TYPE_SENSOR_LIQUID_FLOW:
+ case HDLApConfig.TYPE_SENSOR_LIQUID_PRESSURE:
+ case HDLApConfig.TYPE_SENSOR_LIQUID_DEPTH:
+ case HDLApConfig.TYPE_SENSOR_RAIN_FALL:
+ case HDLApConfig.TYPE_SENSOR_WEIGHT:
+ case HDLApConfig.TYPE_SENSOR_HEIGHT_LENGTH:
+ case HDLApConfig.TYPE_SENSOR_OBJECT_SPEED:
+ case HDLApConfig.TYPE_SENSOR_SHAKE:
+ case HDLApConfig.TYPE_SENSOR_VOLTAGE:
+ case HDLApConfig.TYPE_SENSOR_ELECTRICITY:
+ case HDLApConfig.TYPE_SENSOR_POWER:
+ case HDLApConfig.TYPE_SENSOR_FLOODING:
+ case HDLApConfig.TYPE_SENSOR_DOOR_MAGNET:
+ case HDLApConfig.TYPE_SENSOR_EMERGENCY_BUTTON:
+ //鍙戦�佽幏浼犳劅鍣ㄦā鍧楃姸鎬佹暟鎹�
+ byte[] sendDatabyte = new byte[]{
+ (byte) 1,
+ (byte) info.getChannelNum()
+ };
+
+ addSendData(info, sendDatabyte, Configuration.STATE);
+ break;
+ default:
+ HDLLog.info("涓嶆槸浼犳劅鍣ㄦā鍧�");
+ break;
+ }
+ }
+
}
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;
+ }
+ }
+ }
+
+
}
diff --git a/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLUdpCore.java b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLUdpCore.java
index 713c936..42479d3 100644
--- a/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLUdpCore.java
+++ b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLUdpCore.java
@@ -438,6 +438,8 @@
case Configuration.SECURITY_ARMING_CTRL_BACK_COMMAND://20190729瀹夐槻妯″潡 甯冮槻璁剧疆鍙嶉
case Configuration.SECURITY_STATE_BACK_COMMAND://20190729 璇诲彇瀹夐槻璁剧疆鍙嶉
case Configuration.SECURITY_ALARM_CTRL_BACK_COMMAND://20190729 鎶ヨ璁剧疆鍙嶉
+ case Configuration.DRY_CONTACT_STATE_BACK_COMMAND:
+ case Configuration.DRY_CONTACT_BROADCAST_STATE_COMMAND://2020-06-23 澧炲姞骞叉帴鐐圭姸鎬佸洖澶�
case Configuration.CURTAIN_STATE_BACK_COMMAND:
case Configuration.AIR_STATE_BACK_COMMAND:
diff --git a/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/EventBusEvent/DryContactSensorBackEvent.java b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/EventBusEvent/DryContactSensorBackEvent.java
new file mode 100644
index 0000000..489227f
--- /dev/null
+++ b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/EventBusEvent/DryContactSensorBackEvent.java
@@ -0,0 +1,22 @@
+package com.hdl.sdk.hdl_core.HDLDeviceManger.EventBusEvent;
+
+
+import com.hdl.sdk.hdl_core.HDLDeviceManger.Bean.AppliancesInfo;
+
+public class DryContactSensorBackEvent extends DeviceStateEvent {
+
+ private int mState;
+
+ public DryContactSensorBackEvent(AppliancesInfo appliancesInfo, boolean isSuccess) {
+ super(appliancesInfo, isSuccess);
+
+ }
+ public DryContactSensorBackEvent(AppliancesInfo appliancesInfo, boolean isSuccess, int mState) {
+ super(appliancesInfo, isSuccess);
+ this.mState = mState;
+ }
+
+ public int getState() {
+ return mState;
+ }
+}
diff --git a/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Parser/DeviceParser.java b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Parser/DeviceParser.java
index 0508d49..acbcf35 100644
--- a/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Parser/DeviceParser.java
+++ b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Parser/DeviceParser.java
@@ -599,7 +599,18 @@
appliancesInfo.setDeviceName("浼犳劅鍣� 鍔熺巼");
appliancesInfo.setDeviceType(HDLApConfig.TYPE_SENSOR_POWER);
break;
-
+ case 25:
+ appliancesInfo.setDeviceName("浼犳劅鍣� 姘存蹈");
+ appliancesInfo.setDeviceType(HDLApConfig.TYPE_SENSOR_FLOODING);
+ break;
+ case 26:
+ appliancesInfo.setDeviceName("浼犳劅鍣� 闂ㄧ绐楃");
+ appliancesInfo.setDeviceType(HDLApConfig.TYPE_SENSOR_DOOR_MAGNET);
+ break;
+ case 27:
+ appliancesInfo.setDeviceName("浼犳劅鍣� 绱ф�ユ寜閽�");
+ appliancesInfo.setDeviceType(HDLApConfig.TYPE_SENSOR_EMERGENCY_BUTTON);
+ break;
default:
appliancesInfo.setDeviceName(Configuration.UNKNOW_TYPE);
@@ -611,8 +622,9 @@
appliancesInfo.setLittleType(littleType);
// appliancesInfo.setCtrlCommand(Configuration.LOGIC_CTRL_COMMAND);
// appliancesInfo.setCtrlBackCommand(Configuration.LOGIC_CTRL_BACK_COMMAND);
- appliancesInfo.setStateCommand(Configuration.SENSOR_STATE_COMMAND);
- appliancesInfo.setStateBackCommand(Configuration.SENSOR_STATE_BACK_COMMAND);
+
+// appliancesInfo.setStateCommand(Configuration.SENSOR_STATE_COMMAND);
+// appliancesInfo.setStateBackCommand(Configuration.SENSOR_STATE_BACK_COMMAND);
appliancesInfo.setDeviceSubnetID(devicesData.getSourceSubnetID());
appliancesInfo.setDeviceDeviceID(devicesData.getSourceDeviceID());
appliancesInfo.setParentRemarks(parentRemarks);
@@ -620,6 +632,16 @@
appliancesInfo.setIpAddress(ipAddress);
+ if (littleType == 0 || littleType == 1 || littleType == 10 || littleType == 11 || littleType == 25 || littleType == 26 || littleType == 27) {
+ //骞茶妭鐐�0 绉诲姩浼犳劅鍣�1 鐓ゆ皵浼犳劅鍣�10 鐑熼浘浼犳劅鍣�11 姘存蹈25 闂ㄧ绐楃26 绱ф�ユ寜閽�27
+ appliancesInfo.setStateCommand(Configuration.DRY_CONTACT_STATE_COMMAND);
+ appliancesInfo.setStateBackCommand(Configuration.DRY_CONTACT_STATE_BACK_COMMAND);
+ } else {
+ appliancesInfo.setStateCommand(Configuration.SENSOR_STATE_COMMAND);
+ appliancesInfo.setStateBackCommand(Configuration.SENSOR_STATE_BACK_COMMAND);
+
+ }
+
}
--
Gitblit v1.8.0