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] 完成金茂定制功能

---
 app/src/main/java/com/hdl/sdk/ttl_sdk/activity/CtrlCurtainActivity.java |  177 ++++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 145 insertions(+), 32 deletions(-)

diff --git a/app/src/main/java/com/hdl/sdk/ttl_sdk/activity/CtrlCurtainActivity.java b/app/src/main/java/com/hdl/sdk/ttl_sdk/activity/CtrlCurtainActivity.java
index 648dc8d..3613bf8 100644
--- a/app/src/main/java/com/hdl/sdk/ttl_sdk/activity/CtrlCurtainActivity.java
+++ b/app/src/main/java/com/hdl/sdk/ttl_sdk/activity/CtrlCurtainActivity.java
@@ -2,15 +2,20 @@
 
 
 import android.os.Bundle;
+import android.text.TextUtils;
+import android.util.Log;
 import android.view.View;
 import android.widget.Button;
+import android.widget.EditText;
 import android.widget.RelativeLayout;
 import android.widget.TextView;
+import android.widget.Toast;
 
 import com.hdl.sdk.ttl.HDLAppliances.Config.HDLApConfig;
 import com.hdl.sdk.ttl.HDLAppliances.HDLCurtain.Parser.CurtainCtrlParser;
 import com.hdl.sdk.ttl.HDLDeviceManger.Bean.AppliancesInfo;
 import com.hdl.sdk.ttl.HDLDeviceManger.Core.HDLCommand;
+import com.hdl.sdk.ttl.HDLDeviceManger.EventBusEvent.CurtainDeviceStateEvent;
 import com.hdl.sdk.ttl.HDLDeviceManger.EventBusEvent.CurtainFeedBackEvent;
 import com.hdl.sdk.ttl.HDLDeviceManger.EventBusEvent.DeviceStateEvent;
 import com.hdl.sdk.ttl_sdk.R;
@@ -28,14 +33,18 @@
  * 绐楀笜绫绘ā鍧楁帶鍒堕〉闈�
  */
 public class CtrlCurtainActivity extends BaseActivity {
-    /**Topbar*/
+    /**
+     * Topbar
+     */
     private RelativeLayout topBarBack;
     private TextView topBarTitle;
-    private Button curtainBtn, curtainBtn2, curtainBtn3, curtainBtn4, curtainBtn5;
+    private Button curtainBtn, curtainOpenBtn, curtainCloseBtn, curtainStopBtn, curtainPrecentBtn;
+    private Button curtainUp, curtainDown;
     private TextView curText1, curText2;
     private AppliancesInfo appliancesInfo;
     private int curtainState;
     private String showMessage;
+    private EditText etPrecent;
 
     /**
      * 澶嶅啓isRegisterEventBus()  瑕佹敞鍐屼娇鐢‥ventBus锛岃繖閲岃璁剧疆杩斿洖true
@@ -82,15 +91,26 @@
 
     private void initView() {
         curtainBtn = findViewById(R.id.curtainbtn);
-        curtainBtn2 = findViewById(R.id.curtainbtn2);
-        curtainBtn3 = findViewById(R.id.curtainbtn3);
-        curtainBtn4 = findViewById(R.id.curtainbtn4);
-        curtainBtn5 = findViewById(R.id.curtainbtn5);
+        curtainOpenBtn = findViewById(R.id.curtain_openbtn);
+        curtainCloseBtn = findViewById(R.id.curtain_closebtn);
+        curtainStopBtn = findViewById(R.id.curtain_stopbtn);
+        curtainPrecentBtn = findViewById(R.id.curtain_precentbtn);
         curText1 = findViewById(R.id.curtainText1);
         curText2 = findViewById(R.id.curtainText2);
+        curtainUp = findViewById(R.id.curtain_upbtn);
+        curtainDown = findViewById(R.id.curtain_downbtn);
+        etPrecent = findViewById(R.id.et_curtain_precent);
     }
 
     private void initOnClick() {
+        /*type锛�
+        0= HDL 绐楀笜鎺у埗鐗堟湰V1.0(绐楀笜鍙�<17 0 = 鍋滄, 1 = 鎵撳紑, 2 = 鍏抽棴
+                              绐楀笜鍙�>=17 0-100%锛岃〃绀烘墦寮�鐧惧垎姣�)
+        1=绐楀笜鎺у埗V1.1寮�鍏冲仠
+        2=绐楀笜鎺у埗V1.1鐧惧垎姣�
+        3=绐楀笜鎺у埗V1.1瑙掑害鍚戜笂
+        4=绐楀笜鎺у埗V1.1瑙掑害鍚戜笅
+        5=鐐瑰姩*/
         curtainBtn.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
@@ -100,36 +120,56 @@
                 } else {
                     curtainState = CurtainCtrlParser.curtainOn;
                 }
-                HDLCommand.curtainCtrl(appliancesInfo, curtainState);
+                //绐楀笜妯″潡鐢╒1.0
+                HDLCommand.curtainCtrl(appliancesInfo, curtainState, 0);
 
             }
         });
 
-        curtainBtn2.setOnClickListener(new View.OnClickListener() {
+        curtainOpenBtn.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                HDLCommand.curtainCtrl(appliancesInfo, CurtainCtrlParser.curtainOn);
+                HDLCommand.curtainCtrl(appliancesInfo, CurtainCtrlParser.curtainOn, 1);
             }
         });
 
-        curtainBtn3.setOnClickListener(new View.OnClickListener() {
+        curtainCloseBtn.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                HDLCommand.curtainCtrl(appliancesInfo, CurtainCtrlParser.curtainOff);
+                HDLCommand.curtainCtrl(appliancesInfo, CurtainCtrlParser.curtainOff, 1);
             }
         });
 
-        curtainBtn4.setOnClickListener(new View.OnClickListener() {
+        curtainStopBtn.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                HDLCommand.curtainCtrl(appliancesInfo, CurtainCtrlParser.curtainPause);
+                HDLCommand.curtainCtrl(appliancesInfo, CurtainCtrlParser.curtainPause, 1);
             }
         });
 
-        curtainBtn5.setOnClickListener(new View.OnClickListener() {
+        curtainPrecentBtn.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                HDLCommand.curtainCtrl(appliancesInfo, 50);
+                if (TextUtils.isEmpty(etPrecent.getText().toString())) {
+                    Toast.makeText(CtrlCurtainActivity.this, "璇疯緭鍏ラ渶瑕佹帶鍒剁殑绐楀笜鐧惧垎姣旓紒", Toast.LENGTH_SHORT).show();
+                    return;
+                }
+
+                HDLCommand.curtainCtrl(appliancesInfo, Integer.parseInt(etPrecent.getText().toString()), 2);//50涓虹櫨鍒嗘瘮
+            }
+        });
+
+        curtainUp.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                HDLCommand.curtainCtrl(appliancesInfo, 0, 5);//涓婄偣鍔�0x00锛宻tate鍥哄畾涓�0
+            }
+        });
+
+        curtainDown.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                HDLCommand.curtainCtrl(appliancesInfo, 128, 5);//涓婄偣鍔�0x80锛宻tate鍥哄畾涓�128
             }
         });
     }
@@ -138,10 +178,12 @@
         if (appliancesInfo.getDeviceType() == HDLApConfig.TYPE_CURTAIN_MODULE) {
             //绐楀笜妯″潡
             curText2.setVisibility(View.GONE);
-            curtainBtn2.setVisibility(View.GONE);
-            curtainBtn3.setVisibility(View.GONE);
-            curtainBtn4.setVisibility(View.GONE);
-            curtainBtn5.setVisibility(View.GONE);
+            curtainOpenBtn.setVisibility(View.GONE);
+            curtainCloseBtn.setVisibility(View.GONE);
+            curtainStopBtn.setVisibility(View.GONE);
+            curtainPrecentBtn.setVisibility(View.GONE);
+            curtainUp.setVisibility(View.GONE);
+            curtainDown.setVisibility(View.GONE);
 
             if (appliancesInfo.getCurState() != null) {
                 String stringCurtainState = "";
@@ -179,6 +221,17 @@
             //寮�鍚堝笜銆佸嵎甯�
             curText1.setVisibility(View.GONE);
             curtainBtn.setVisibility(View.GONE);
+            curtainUp.setVisibility(View.GONE);
+            curtainDown.setVisibility(View.GONE);
+            if (appliancesInfo.getCurState() != null) {
+                curText2.setText("褰撳墠绐楀笜鐘舵�侊細" + HDLUtlis.getIntegerByObject(appliancesInfo.getCurState()));
+            } else {
+                curText2.setText("鏈幏鍙栧埌绐楀笜妯″潡鐘舵��");
+            }
+        } else if (appliancesInfo.getDeviceType() == HDLApConfig.TYPE_CURTAIN_SHANGRILA) {
+            //棣欐牸閲屾媺甯�
+            curText1.setVisibility(View.GONE);
+            curtainBtn.setVisibility(View.GONE);
             if (appliancesInfo.getCurState() != null) {
                 curText2.setText("褰撳墠绐楀笜鐘舵�侊細" + HDLUtlis.getIntegerByObject(appliancesInfo.getCurState()));
             } else {
@@ -202,11 +255,9 @@
     @Subscribe(threadMode = ThreadMode.MAIN)
     public void onCurtainFeedBackInfoEventMain(CurtainFeedBackEvent event) {
 //        鍏堝垽鏂槸鍚﹁秴鏃�
-        HDLLog.Log("onCurtainFeedBackInfoEventMain in");
         if (event.getCurtainCtrlBackInfo().getAppliancesInfo().getDeviceSubnetID() == appliancesInfo.getDeviceSubnetID()
                 && event.getCurtainCtrlBackInfo().getAppliancesInfo().getDeviceDeviceID() == appliancesInfo.getDeviceDeviceID()
-                && event.getCurtainCtrlBackInfo().getNum() == appliancesInfo.getChannelNum()
-        ) {
+                && event.getCurtainCtrlBackInfo().getNum() == appliancesInfo.getChannelNum()) {
 
             if (!event.isSuccess()) {
                 showToast("绐楀笜鎺у埗瓒呮椂锛岃閲嶆柊鍐嶈瘯");
@@ -214,15 +265,15 @@
             }
 
             int curState = event.getCurtainCtrlBackInfo().getState();
+            int precent = event.getCurtainCtrlBackInfo().getPrecent();
             //绐楀笜妯″潡锛歝urState:0=鍋滄,1=鎵撳紑,2=鍏抽棴銆�
-            //寮�鍚堝笜鐢垫満锛屽嵎甯樼數鏈猴細curState:1-100寮�鍚堝害銆備篃浼氳繑鍥�0锛�1锛�2鐨勭姸鎬�
+            //寮�鍚堝笜鐢垫満锛屽嵎甯樼數鏈�,棣欐牸閲屾媺甯橈細curState:1-100寮�鍚堝害銆備篃浼氳繑鍥�0锛�1锛�2鐨勭姸鎬�
+            //                            precent:1-100寮�鍚堝害
             //寤鸿寮�鍚堝笜鐢垫満锛屽嵎甯樼數鏈烘寜鍋滄鍚庡啀璇诲彇褰撳墠鐘舵�佹潵鑾峰彇褰撳墠鐘舵�佸��
 
             String remarks = event.getCurtainCtrlBackInfo().getRemarks();
-            String parentRemarks = event.getCurtainCtrlBackInfo().getParentRemarks();
             int num = event.getCurtainCtrlBackInfo().getNum();
-//            showToast(parentRemarks+" 鐨� "+remarks+" 鍥炶矾鍙凤細"+num+" 杩斿洖"+" 鐘舵�佷负锛�"+curState);
-            HDLLog.Log(parentRemarks + " 鐨� " + remarks + " 鍥炶矾鍙凤細" + num + " 杩斿洖" + " 鐘舵�佷负锛�" + curState);
+            HDLLog.Log(remarks + " 鍥炶矾鍙凤細" + num + " 杩斿洖" + " 鐘舵�佷负锛�" + curState);
             if (event.getCurtainCtrlBackInfo().getAppliancesInfo().getDeviceType() == HDLApConfig.TYPE_CURTAIN_MODULE) {
                 showMessage = "";
                 //鍒ゆ柇鏄惁涓虹獥甯樻ā鍧�
@@ -251,14 +302,76 @@
                 }
                 showToast(showMessage);
             } else {
-                //寮�鍚堝笜鎴栧嵎甯� 鏄剧ず鐧惧垎姣�
-//                curtainBtn5.setText("绐楀笜寮�鍒�" + curState + "%");
-                curText2.setText("绐楀笜寮�鍒�" + curState + "%");
-                curtainState = curState;
+                //鏂板崗璁紝type=2涓虹櫨鍒嗘瘮
+                if (event.getCurtainCtrlBackInfo().getType() == 2) {
+                    //寮�鍚堝笜鎴栧嵎甯� 鏄剧ず鐧惧垎姣�
+                    curText2.setText("绐楀笜寮�鍒�" + precent + "%");
+                    curtainState = precent;
+                } else if (event.getCurtainCtrlBackInfo().getType() == 0) {
+                    //寮�鍚堝笜鎴栧嵎甯� 鏄剧ず鐧惧垎姣�
+                    curText2.setText("绐楀笜寮�鍒�" + curState + "%");
+                    curtainState = curState;
+                } else {
+                    //寮�鍚堝笜鎴栧嵎甯� 鏄剧ず鐧惧垎姣�
+                    curText2.setText("绐楀笜寮�鍒�" + curState + "%");
+                    curtainState = curState;
+                }
             }
 
         }
 
+    }
+
+    /**
+     * 绐楀笜鏂板崗璁姸鎬佽鍙栧洖璋僂vent
+     *
+     * @param event
+     */
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void onCurtainDeviceStateEventMain(CurtainDeviceStateEvent event) {
+        if (event.getCurtainCtrlBackInfo().getAppliancesInfo().getDeviceSubnetID() == appliancesInfo.getDeviceSubnetID()
+                && event.getCurtainCtrlBackInfo().getAppliancesInfo().getDeviceDeviceID() == appliancesInfo.getDeviceDeviceID()
+                && event.getCurtainCtrlBackInfo().getAppliancesInfo().getChannelNum() == appliancesInfo.getChannelNum()) {
+
+            if (!event.isSuccess()) {
+                showToast("鑾峰彇绐楀笜鐘舵�佸け璐ワ紝璇烽噸鏂板啀璇�");
+                return;
+            }
+
+            int curState = event.getCurtainCtrlBackInfo().getState();
+            int curPrecent = event.getCurtainCtrlBackInfo().getPrecent();
+            //绐楀笜妯″潡锛歝urState:0=鍋滄,1=鎵撳紑,2=鍏抽棴銆�
+            //寮�鍚堝笜鐢垫満锛屽嵎甯樼數鏈�,棣欐牸閲屾媺甯橈細curState:1-100寮�鍚堝害銆備篃浼氳繑鍥�0锛�1锛�2鐨勭姸鎬�
+            //                            precent:1-100寮�鍚堝害
+            //寤鸿寮�鍚堝笜鐢垫満锛屽嵎甯樼數鏈烘寜鍋滄鍚庡啀璇诲彇褰撳墠鐘舵�佹潵鑾峰彇褰撳墠鐘舵�佸��
+
+            String remarks = event.getCurtainCtrlBackInfo().getRemarks();
+            int num = event.getCurtainCtrlBackInfo().getNum();
+            HDLLog.Log(remarks + " 鍥炶矾鍙凤細" + num + " 杩斿洖" + " 鐘舵�佷负锛�" + curState);
+
+            switch (event.getCurtainCtrlBackInfo().getAppliancesInfo().getDeviceType()) {
+                case HDLApConfig.TYPE_CURTAIN_GLYSTRO:
+                case HDLApConfig.TYPE_CURTAIN_ROLLER:
+                case HDLApConfig.TYPE_CURTAIN_SHANGRILA:
+                    if (event.getCurtainCtrlBackInfo().getType() == 2) {//鏂板崗璁紝type=2涓虹櫨鍒嗘瘮
+                        //寮�鍚堝笜鎴栧嵎甯� 鏄剧ず鐧惧垎姣�
+                        int precent = event.getCurtainCtrlBackInfo().getPrecent();
+                        showMessage = "绐楀笜寮�鍒�" + precent + "%";
+                        curText2.setText(showMessage);
+                        showToast("鑾峰彇鎴愬姛锛�" + showMessage);
+                    } else if (event.getCurtainCtrlBackInfo().getType() == 0) {//鏃у崗璁紝type=0涓虹櫨鍒嗘瘮
+                        //寮�鍚堝笜鎴栧嵎甯� 鏄剧ず鐧惧垎姣�
+                        int state = event.getCurtainCtrlBackInfo().getState();
+                        showMessage = "绐楀笜寮�鍒�" + state + "%";
+                        curText2.setText(showMessage);
+                        showToast("鑾峰彇鎴愬姛锛�" + showMessage);
+                    }
+
+                    break;
+                default:
+                    break;
+            }
+        }
     }
 
     /**
@@ -276,6 +389,7 @@
                 case HDLApConfig.TYPE_CURTAIN_GLYSTRO:
                 case HDLApConfig.TYPE_CURTAIN_ROLLER:
                 case HDLApConfig.TYPE_CURTAIN_MODULE:
+                case HDLApConfig.TYPE_CURTAIN_SHANGRILA:
                     if (appliancesInfo.getChannelNum() == event.getAppliancesInfo().getChannelNum()) {
                         if (!event.isSuccess()) {
                             showToast("鑾峰彇绐楀笜鐘舵�佸け璐ワ紝璇烽噸鏂板啀璇�");
@@ -308,7 +422,7 @@
                             }
                         } else {
                             showMessage = "绐楀笜寮�鍒�" + curState + "%";
-//                            curtainBtn5.setText(showMessage);
+                            curText2.setText(showMessage);
                             curtainState = curState;
                         }
 
@@ -316,7 +430,6 @@
                     }
                     break;
                 default:
-                    //涓嶅鐞�
                     break;
             }
         }

--
Gitblit v1.8.0