From 7a951ecdc084ea8643e29e1ade59c1877fd7fbe5 Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期一, 16 三月 2020 09:49:07 +0800
Subject: [PATCH] 2020-03-16 1.增加地热模块自动根据当前模式设置当前模式的温度接口.

---
 app/src/main/java/com/hdl/sdk/hdl_sdk/activity/SettingActivity.java                                  |    2 
 app/src/main/java/com/hdl/sdk/hdl_sdk/activity/GeothermalActivity.java                               |   68 +++++++++--------
 hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLCommand.java                     |   38 +++++++++
 hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLAppliances/HDLGeothermal/Parser/GeothermalParser.java |   76 +++++++++++++++++++
 README.md                                                                                            |   32 +++++++
 hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLDeviceManager.java               |    6 
 6 files changed, 185 insertions(+), 37 deletions(-)

diff --git a/README.md b/README.md
index 2022202..1e3026a 100644
--- a/README.md
+++ b/README.md
@@ -2,6 +2,36 @@
 
 HDL XW Android SDK  Copyright (c) 2019 HDL Inc.
 
+SDK 鐗堟湰锛歨dl_lib_v1.6.9.20200316_beta
+1.澧炲姞灏忕被鏄�3鐨勯煶涔愭挱鏀惧櫒鏀寔;
+2.鍔犲湴鐑ā鍧楀崟鐙帶鍒舵俯搴︽帴鍙o紝鎺ュ彛鑷姩鏍规嵁褰撳墠妯″紡璁剧疆褰撳墠妯″紡鐨勬俯搴﹀弬鏁帮紝涓嶉渶瑕佷笂灞傝嚜宸卞垽鏂�;(HDLCommand.geothermalCtrlTemp())
+3.澧炲姞绠�鏄撶紪绋嬫悳绱㈠洖澶�,閫氳繃閰嶇疆澶х被灏忕被锛岃澹板繀鍙澶囨ā鎷熸垚绗笁鏂归煶涔愭挱鏀惧櫒琚悳绱� ;
+//閰嶇疆绠�鏄撶紪绋嬫悳绱㈢殑鍙傛暟 (SDK 鍒濆鍖栫殑鏃跺�欓厤缃竴娆�)
+/**
+ * 閰嶇疆绠�鏄撶紪绋嬫悳绱㈣繑鍥炵殑榛樿鍙傛暟
+ * @param mSDKLocalBigClass 澶х被ID
+ * @param mSDKLocalSmallClass 灏忕被ID
+ * @param mSDKLocalRemark 澶囨敞
+ */
+public static void setEasyProgrammingSearchLocalData(int mSDKLocalBigClass, int mSDKLocalSmallClass, String mSDKLocalRemark);
+澹板繀鍙澶噑etEasyProgrammingSearchLocalData(9,1,"澹板繀鍙煶涔�");
+
+鍘熷湴鐑搴斿叧绯�  
+HDL 澹板繀鍙�
+鏅�� 鑷姩
+鐧藉ぉ 鎵嬪姩
+绂诲紑 浼戠湢
+2020-03-15 淇敼涓�
+HDL 澹板繀鍙�
+鏅�� 鎵嬪姩
+鐧藉ぉ 鑷姩
+绂诲紑 浼戠湢
+
+SDK 鐗堟湰锛歨dl_lib_v1.6.9.20200118_beta
+1.淇RCU娣峰悎璋冨厜娣峰悎寮�鍏� 绫绘ā鍧楋紝浣跨敤鐗╃悊鍥炶矾闂;
+2.澧炲姞榛樿鑾峰彇WiFi杩炴帴鐨勫箍鎾厤缃柟娉�;
+
+
 SDK 鐗堟湰锛歨dl_lib_v1.6.8.20191016_beta
 1.鎺у埗閮芥敼鎴愬箍鎾舰寮忎簡锛屼笉璁板綍涓�绔彛鐨処P銆�
 
@@ -34,4 +64,4 @@
 ##Version 1.0.2
 1.鏂板鍦扮儹妯″潡鍜屾柊椋庣郴缁熸帶鍒跺拰璇诲彇鐘舵�佹帴鍙o紱
 2.鏂板鍦扮儹妯″潡鍜屾柊椋庣郴缁熸帶鍒舵紨绀洪〉闈紱
-3.targetSdkVersion 28锛�
\ No newline at end of file
+3.targetSdkVersion 28锛�
diff --git a/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/GeothermalActivity.java b/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/GeothermalActivity.java
index f474c9a..9fe35d5 100644
--- a/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/GeothermalActivity.java
+++ b/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/GeothermalActivity.java
@@ -141,6 +141,7 @@
                 }
 
 
+
             }
         });
 
@@ -161,40 +162,43 @@
                     return;
                 }
                 proDialog.show();
-                switch (gModeState) {
 
-                    case 1:
-                        //褰撳墠鍦扮儹妯″紡涓烘櫘閫�
-                        HDLCommand.geothermalCtrl(appliancesInfo, GeothermalParser.gNormalTemp, tempInt);//鏅�氭俯搴�
-                        ctrlId = GeothermalParser.gNormalTemp;
-                        break;
-                    case 2:
-                        //褰撳墠鍦扮儹妯″紡涓虹櫧澶�
-                        HDLCommand.geothermalCtrl(appliancesInfo, GeothermalParser.gDayTemp, tempInt);//鐧藉ぉ娓╁害
-                        ctrlId = GeothermalParser.gDayTemp;
-                        break;
-                    case 3:
-                        //褰撳墠鍦扮儹妯″紡涓哄闂�
-                        HDLCommand.geothermalCtrl(appliancesInfo, GeothermalParser.gNightTemp, tempInt);//澶滈棿娓╁害
-                        ctrlId = GeothermalParser.gNightTemp;
-                        break;
-                    case 4:
-                        //褰撳墠鍦扮儹妯″紡涓虹寮�
-                        HDLCommand.geothermalCtrl(appliancesInfo, GeothermalParser.gLeaveTemp, tempInt);//绂诲紑娓╁害
-                        ctrlId = GeothermalParser.gLeaveTemp;
-                        break;
-                    case 5:
-                        proDialog.dismiss();
-                        //褰撳墠鍦扮儹妯″紡涓鸿嚜鍔�
-                        showToast("鑷姩妯″紡锛屼笉鑳芥帶鍒舵俯搴�");
-                        break;
-                    default:
-                        proDialog.dismiss();
-                        //褰撳墠鍦扮儹妯″紡涓鸿嚜鍔�
-                        showToast("鏈煡妯″紡锛屼笉鑳芥帶鍒舵俯搴�");
-                        break;
+                HDLCommand.geothermalCtrlTemp(appliancesInfo, tempInt);//鑷姩鏍规嵁褰撳墠妯″紡璁剧疆褰撳墠妯″紡鐨勬俯搴︺��
 
-                }
+//                switch (gModeState) {
+//
+//                    case 1:
+//                        //褰撳墠鍦扮儹妯″紡涓烘櫘閫�
+//                        HDLCommand.geothermalCtrl(appliancesInfo, GeothermalParser.gNormalTemp, tempInt);//鏅�氭俯搴�
+//                        ctrlId = GeothermalParser.gNormalTemp;
+//                        break;
+//                    case 2:
+//                        //褰撳墠鍦扮儹妯″紡涓虹櫧澶�
+//                        HDLCommand.geothermalCtrl(appliancesInfo, GeothermalParser.gDayTemp, tempInt);//鐧藉ぉ娓╁害
+//                        ctrlId = GeothermalParser.gDayTemp;
+//                        break;
+//                    case 3:
+//                        //褰撳墠鍦扮儹妯″紡涓哄闂�
+//                        HDLCommand.geothermalCtrl(appliancesInfo, GeothermalParser.gNightTemp, tempInt);//澶滈棿娓╁害
+//                        ctrlId = GeothermalParser.gNightTemp;
+//                        break;
+//                    case 4:
+//                        //褰撳墠鍦扮儹妯″紡涓虹寮�
+//                        HDLCommand.geothermalCtrl(appliancesInfo, GeothermalParser.gLeaveTemp, tempInt);//绂诲紑娓╁害
+//                        ctrlId = GeothermalParser.gLeaveTemp;
+//                        break;
+//                    case 5:
+//                        proDialog.dismiss();
+//                        //褰撳墠鍦扮儹妯″紡涓鸿嚜鍔�
+//                        showToast("鑷姩妯″紡锛屼笉鑳芥帶鍒舵俯搴�");
+//                        break;
+//                    default:
+//                        proDialog.dismiss();
+//                        //褰撳墠鍦扮儹妯″紡涓鸿嚜鍔�
+//                        showToast("鏈煡妯″紡锛屼笉鑳芥帶鍒舵俯搴�");
+//                        break;
+//
+//                }
 
 
             }
diff --git a/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/SettingActivity.java b/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/SettingActivity.java
index 28707df..d1b5357 100644
--- a/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/SettingActivity.java
+++ b/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/SettingActivity.java
@@ -95,7 +95,7 @@
         deviceIDEditText.setText(strDeviceID);
 
         //閰嶇疆绠�鏄撶紪绋嬫悳绱㈢殑鍙傛暟
-        HDLDeviceManager.setEasyProgrammingSearchLocalData(9, 90);
+        HDLDeviceManager.setEasyProgrammingSearchLocalData(9, 1);
     }
 
 
diff --git a/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLAppliances/HDLGeothermal/Parser/GeothermalParser.java b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLAppliances/HDLGeothermal/Parser/GeothermalParser.java
index f099917..75b6587 100644
--- a/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLAppliances/HDLGeothermal/Parser/GeothermalParser.java
+++ b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLAppliances/HDLGeothermal/Parser/GeothermalParser.java
@@ -118,5 +118,81 @@
 
     }
 
+    //鏍规嵁褰撳墠妯″紡璁剧疆娓╁害
+    public static byte[] getGeothermalAddByteTemp(AppliancesInfo appliancesInfo, 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.GEOTHERMAL_BIG_TYPE
+                                && HDLDeviceManager.devicesDataList.get(i).getAppliancesInfoList().get(j).getDeviceType() == HDLApConfig.TYPE_GEOTHERMAL_MODULE
+                                && appliancesInfo.getChannelNum() == HDLDeviceManager.devicesDataList.get(i).getAppliancesInfoList().get(j).getChannelNum()) {
+                            newInfo = HDLDeviceManager.devicesDataList.get(i).getAppliancesInfoList().get(j);
+                            if (newInfo.getFeedbackState() == null) {
+                                newInfo.setFeedbackState(new byte[10]);
+                            }
+                            airBytes = newInfo.getFeedbackState();
+                            break outter;
+                        }
 
+                    }
+                }
+            }
+
+            byte[] addBytes = new byte[10];
+            if (airBytes != null && airBytes.length >= 10) {
+                addBytes[0] = (byte) newInfo.getChannelNum();
+                addBytes[1] = airBytes[1];
+                addBytes[2] = 0;
+                addBytes[3] = airBytes[3];
+                addBytes[4] = airBytes[4];
+                addBytes[5] = airBytes[5];
+                addBytes[6] = airBytes[6];
+                addBytes[7] = airBytes[7];
+                addBytes[8] = 0;
+                addBytes[9] = 0;
+            } else {
+                addBytes[0] = (byte) newInfo.getChannelNum();
+                addBytes[1] = 0;
+                addBytes[2] = 0;
+                addBytes[3] = 1;
+                addBytes[4] = 30;
+                addBytes[5] = 30;
+                addBytes[6] = 30;
+                addBytes[7] = 30;
+                addBytes[8] = 0;
+                addBytes[9] = 0;
+            }
+
+            switch (addBytes[3]) {
+                case gModeNormal:
+                    addBytes[1] = 1;//鎵撳紑
+                    addBytes[4] = (byte) state;
+                    break;
+                case gModeDay:
+                    addBytes[1] = 1;//鎵撳紑
+                    addBytes[5] = (byte) state;
+                    break;
+                case gModeNight:
+                    addBytes[1] = 1;//鎵撳紑
+                    addBytes[6] = (byte) state;
+                    break;
+                case gModeLeave:
+                    addBytes[1] = 1;//鎵撳紑
+                    addBytes[7] = (byte) state;
+                    break;
+            }
+            return addBytes;
+
+
+        } catch (Exception e) {
+            e.printStackTrace();
+            return new byte[]{fail};
+        }
+
+    }
 }
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 5062b57..129a88e 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
@@ -402,6 +402,44 @@
     }
 
     /**
+     * 鎺у埗鍦扮儹妯″潡娓╁害
+     *
+     * @param info
+     * @param state 2020-03-15
+     */
+    public static void geothermalCtrlTemp(final AppliancesInfo info, int state) {
+//        HDLDeviceManager.isGeothermalCtrlSuccess = false;
+        HDLDeviceManager.setDeviceCtrlSuccessStateWithInfo(info, false);
+        if (geothermalCtrlFailTimer != null) {
+            geothermalCtrlFailTimer.cancel();
+            geothermalCtrlFailTimer = null;
+        }
+        if (info.getBigType() == Configuration.GEOTHERMAL_BIG_TYPE) {
+            byte[] sendbytes = GeothermalParser.getGeothermalAddByteTemp(info, state);
+            addSendData(info, sendbytes, Configuration.CONTROL);
+
+            geothermalCtrlFailTimer = new Timer();
+            geothermalCtrlFailTimer.schedule(new TimerTask() {
+                @Override
+                public void run() {
+                    if (!HDLDeviceManager.getDeviceCtrlSuccessStateWithInfo(info)) {
+                        GeothermalBackInfo mGeothermalBackInfo = new GeothermalBackInfo();
+                        mGeothermalBackInfo.setAppliancesInfo(info);
+                        EventBus.getDefault().post(new GeothermalFeedBackEvent(mGeothermalBackInfo, EventCode.FAILURE));
+                    }
+                }
+            }, 5000);
+
+
+        } else {
+            HDLLog.info("鍦扮儹妯″潡鎺у埗涓嶅湪鑼冨洿鍐�"
+                    + " LittleType = " + info.getLittleType()
+                    + " BigType = " + info.getBigType()
+            );
+        }
+    }
+
+    /**
      * 鎺у埗鍦扮儹妯″潡
      *
      * @param info
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 0b21663..b94255d 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
@@ -111,9 +111,9 @@
 
     /**
      * 閰嶇疆绠�鏄撶紪绋嬫悳绱㈣繑鍥炵殑榛樿鍙傛暟
-     * @param mSDKLocalBigClass
-     * @param mSDKLocalSmallClass
-     * @param mSDKLocalRemark
+     * @param mSDKLocalBigClass 澶х被ID
+     * @param mSDKLocalSmallClass 灏忕被ID
+     * @param mSDKLocalRemark 澶囨敞
      */
     public static void setEasyProgrammingSearchLocalData(int mSDKLocalBigClass, int mSDKLocalSmallClass, String mSDKLocalRemark){
         SDKLocalBigClass = mSDKLocalBigClass;

--
Gitblit v1.8.0