From 498c442cd1be3a53364b42660a8eee9ffe34051a Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期二, 10 八月 2021 11:26:13 +0800
Subject: [PATCH] 2021-08-10 1.

---
 app/src/main/java/com/hdl/sdk/hdl_sdk/activity/CtrlAirActivity.java                    |  755 +++++++++++++++++++++++++++++++++++++
 app/src/main/res/layout/activity_ctrl_air.xml                                          |  145 +++++++
 app/src/main/AndroidManifest.xml                                                       |    2 
 app/src/main/java/com/hdl/sdk/hdl_sdk/activity/AppliancesActivity.java                 |    2 
 hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLUdpCore.java       |   61 --
 app/src/main/java/com/hdl/sdk/hdl_sdk/activity/CtrlAirHVACActivity.java                |  131 +++---
 hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLDeviceManager.java |   47 +-
 7 files changed, 994 insertions(+), 149 deletions(-)

diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 07313b4..ff8a3bf 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -39,7 +39,7 @@
         <activity android:name=".activity.CtrlSecurityActivity" />
         <activity android:name=".activity.SensorActivity" />
         <activity android:name=".activity.CtrlAirHVACActivity" />
-
+        <activity android:name=".activity.CtrlAirActivity" />
         <receiver android:name=".activity.BootComplete">
             <intent-filter>
                 <action android:name="android.intent.action.BOOT_COMPLETED" />
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 e7bfeeb..4e7f997 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
@@ -84,7 +84,7 @@
                     if(appliancesInfos.get(position).getDeviceType() == HDLApConfig.TYPE_AC_HVAC){
                         intent.setClass(AppliancesActivity.this, CtrlAirHVACActivity.class);
                     }else {
-                        intent.setClass(AppliancesActivity.this, CtrlActivity.class);
+                        intent.setClass(AppliancesActivity.this, CtrlAirActivity.class);
                     }
                 }
 
diff --git a/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/CtrlAirActivity.java b/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/CtrlAirActivity.java
new file mode 100644
index 0000000..847948a
--- /dev/null
+++ b/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/CtrlAirActivity.java
@@ -0,0 +1,755 @@
+package com.hdl.sdk.hdl_sdk.activity;
+
+
+import android.os.Bundle;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+
+import com.hdl.sdk.hdl_core.HDLAppliances.Config.HDLApConfig;
+import com.hdl.sdk.hdl_core.HDLAppliances.HDLAirCondition.Parser.AirCtrlParser;
+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.AirFeedBackEvent;
+import com.hdl.sdk.hdl_core.HDLDeviceManger.EventBusEvent.DeviceStateEvent;
+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;
+
+
+/**
+ * Created by JLChen on 2019/7/4
+ * 绌鸿皟绫绘ā鍧楁帶鍒堕〉闈�
+ * PANEL 绫诲瀷绌鸿皟妯″潡
+ * 16~30鎽勬皬搴�(鈩�)
+ */
+public class CtrlAirActivity extends BaseActivity {
+//    /**Topbar*/
+//    private RelativeLayout topBarBack;
+//    private TextView topBarTitle;
+
+    private Button airBtnSwitch, airBtnMode, airBtnTemp, airBtnSpeed;
+    private TextView airText;
+    private TextView tv_switch, tv_mode, tv_speed, tv_tempet;
+    private EditText airTempEd;
+    private AppliancesInfo appliancesInfo;
+
+
+    private int airSwitchState;//Demo浠呬互姝や綔涓烘紨绀猴紝瀹為檯璇锋牴鎹渶姹傚紑鍙戣璁�
+    private int airModeState;
+    private int airTempState;
+    private int airSpeedState;
+//    /**
+//     * true涓鸿缃憚姘忓害 false涓鸿缃崕姘忓害
+//     * 鍙傛暟鑼冨洿 16~30鎽勬皬搴�(鈩�)
+//     * ~86鍗庢皬搴�(鈩�)
+//     */
+//    private boolean bCelsius = true;
+
+    /**
+     * 澶嶅啓isRegisterEventBus()  瑕佹敞鍐屼娇鐢‥ventBus锛岃繖閲岃璁剧疆杩斿洖true
+     *
+     * @return true
+     */
+    @Override
+    protected boolean isRegisterEventBus() {
+        return true;
+    }
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_ctrl_air);
+        initToolbar();
+        initView();
+        initOnClick();
+        initcurState();
+        displayStateView();
+
+//        if(appliancesInfo.getDeviceType() == HDLApConfig.TYPE_AC_HVAC) {
+//            HDLCommand.getHVACDeviceStateFromNetwork(appliancesInfo);
+//        }
+//        //浠庢湰鍦拌幏鍙栫┖璋冮潰鏉跨姸鎬�
+//        HDLCommand.getDeviceStateFromLocal(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 displayStateView(){
+        switch (appliancesInfo.getDeviceType()) {
+//            case HDLApConfig.TYPE_AC_HVAC:
+            case HDLApConfig.TYPE_AC_PANEL:
+                loadDeviceData();
+                break;
+            default:
+                finish();//璁惧绫诲瀷涓嶅缁撴潫椤甸潰
+                break;
+        }
+        /**鏍规嵁闇�姹傛槸鍚﹀彂閫佷竴娆¤幏鍙栧埛鏂扮姸鎬佽姹�*/
+    }
+
+    private void initView() {
+        airBtnSwitch = findViewById(R.id.airbtn_switch);
+        airBtnMode = findViewById(R.id.airbtn_mode);
+        airBtnSpeed = findViewById(R.id.airbtn_speed);
+        airBtnTemp = findViewById(R.id.airbtn_tempBtn);
+        airTempEd = findViewById(R.id.airet_tempet);
+        airText = findViewById(R.id.airText);
+
+        tv_switch = findViewById(R.id.tv_switch);
+        tv_mode = findViewById(R.id.tv_mode);
+        tv_speed = findViewById(R.id.tv_speed);
+        tv_tempet = findViewById(R.id.tv_tempet);
+    }
+
+    private void initOnClick() {
+        airBtnSwitch.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                //婕旂ず褰撳墠鐘舵�佷负鍏筹紝璁剧疆涓哄紑銆傚紑锛岃缃负鍏炽��
+                if (airSwitchState == 0) {
+                    HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSwich, AirCtrlParser.airOn);//绌鸿皟寮�
+                } else {
+                    HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSwich, AirCtrlParser.airOff);//绌鸿皟鍏�
+                }
+            }
+        });
+
+
+        airBtnMode.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                switch (airModeState) {
+                    case 0:
+                        //鑻ュ綋鍓嶇┖璋冩ā寮忎负鍒跺喎锛屽垯鐐瑰嚮鎸夐挳璁剧疆涓哄埗鐑�
+                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airMode, AirCtrlParser.airModeHeatTem);//绌鸿皟妯″紡鍒剁儹
+                        break;
+                    case 1:
+                        //鑻ュ綋鍓嶇┖璋冩ā寮忎负鍒剁儹锛屽垯鐐瑰嚮鎸夐挳璁剧疆涓洪�氶
+                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airMode, AirCtrlParser.airModeVen);//绌鸿皟妯″紡閫氶
+                        break;
+                    case 2:
+                        //鑻ュ綋鍓嶇┖璋冩ā寮忎负閫氶锛屽垯鐐瑰嚮鎸夐挳璁剧疆涓鸿嚜鍔�
+                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airMode, AirCtrlParser.airModeAuto);//绌鸿皟妯″紡鑷姩
+                        break;
+                    case 3:
+                        //鑻ュ綋鍓嶇┖璋冩ā寮忎负鑷姩锛屽垯鐐瑰嚮鎸夐挳璁剧疆涓烘娊婀�
+                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airMode, AirCtrlParser.airModeDehum);//绌鸿皟妯″紡鎶芥箍
+                        break;
+                    case 4:
+                        //鑻ュ綋鍓嶇┖璋冩ā寮忎负鎶芥箍锛屽垯鐐瑰嚮鎸夐挳璁剧疆涓哄埗鍐�
+                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airMode, AirCtrlParser.airModeRefTem);//绌鸿皟妯″紡鍒跺喎
+                        break;
+                    default:
+                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airMode, AirCtrlParser.airModeRefTem);//绌鸿皟妯″紡鍒跺喎
+                        break;
+
+                }
+
+
+            }
+        });
+
+        airBtnSpeed.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                switch (airSpeedState) {
+                    case 0:
+                        //鑻ュ綋鍓嶇┖璋冮閫熶负鑷姩锛屽垯鐐瑰嚮鎸夐挳璁剧疆涓洪珮椋�
+                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSpeed, AirCtrlParser.airSpeedHigh);//椋庨�熼珮椋�
+                        break;
+                    case 1:
+                        //鑻ュ綋鍓嶇┖璋冮閫熶负楂橀锛屽垯鐐瑰嚮鎸夐挳璁剧疆涓轰腑椋�
+                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSpeed, AirCtrlParser.airSpeedMid);//椋庨�熶腑椋�
+                        break;
+                    case 2:
+                        //鑻ュ綋鍓嶇┖璋冮閫熶负涓锛屽垯鐐瑰嚮鎸夐挳璁剧疆涓轰綆椋�
+                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSpeed, AirCtrlParser.airSpeedLow);//椋庨�熶綆椋�
+                        break;
+                    case 3:
+                        //鑻ュ綋鍓嶇┖璋冮閫熶负浣庨锛屽垯鐐瑰嚮鎸夐挳璁剧疆涓鸿嚜鍔�
+                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSpeed, AirCtrlParser.airSpeedAuto);//椋庨�熻嚜鍔�
+                        break;
+
+
+                }
+            }
+        });
+
+        airBtnTemp.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                String tempStr = airTempEd.getText().toString();
+                if (TextUtils.isEmpty(tempStr)) {
+                    showToast("璁剧疆鐨勬俯搴︿笉鑳戒负绌�");
+                    return;
+                }
+                int tempInt = Integer.parseInt(tempStr);
+
+                if (tempInt < 16 || tempInt > 30) {
+                    showToast("娓╁害璁剧疆鑼冨洿涓猴細16~30鎽勬皬搴�(鈩�)");
+                    return;
+                }
+
+                switch (airModeState) {
+                    case 0:
+                        //褰撳墠绌鸿皟妯″紡涓哄埗鍐�
+                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.refTem, tempInt);//鍒跺喎娓╁害
+                        break;
+                    case 1:
+                        //褰撳墠绌鸿皟妯″紡涓哄埗鐑�
+                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.heatTem, tempInt);//鍒剁儹娓╁害
+                        break;
+                    case 2:
+                        //褰撳墠绌鸿皟妯″紡涓洪�氶
+                        showToast("閫氶妯″紡涓嶈兘鎺у埗娓╁害");
+                        break;
+                    case 3:
+                        //褰撳墠绌鸿皟妯″紡涓鸿嚜鍔�
+                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.autoTem, tempInt);//鑷姩娓╁害 鑼冨洿16-30
+                        break;
+                    case 4:
+                        //褰撳墠绌鸿皟妯″紡涓烘娊婀�
+                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.dehumTem, tempInt);//鎶芥箍娓╁害 鑼冨洿16-30
+                        break;
+                    default:
+                        break;
+
+                }
+
+//                HDLCommand.airCtrl(appliancesInfo,AirCtrlParser.upTem,1);//涓婂崌娓╁害 鑼冨洿0-5
+//                HDLCommand.airCtrl(appliancesInfo,AirCtrlParser.downTem,1);//涓嬮檷娓╁害 鑼冨洿0-5
+            }
+        });
+
+
+    }
+
+
+    private void loadDeviceData() {
+        if (appliancesInfo.getArrCurState() != null) {
+            String stringACState = "";
+            byte[] acCurState = appliancesInfo.getArrCurState();
+            for (int index = 0; index < acCurState.length; index++) {
+                if (index == 0 && acCurState[index] == 0) {
+                    airSwitchState = 0;
+                    stringACState += "绌鸿皟宸插叧闂�";
+                    //濡傛灉绌鸿皟鍏抽棴鐘舵�侊紝鍒欐棤闇�鍐嶉亶鍘�
+                    break;
+                }
+                if (index == 0 && acCurState[index] == 1) {
+                    airSwitchState = 1;
+                    stringACState += "绌鸿皟姝e湪杩愯";
+                }
+
+                switch (index) {
+
+                    case 1:
+                        switch (acCurState[index]) {
+                            case 0:
+                                airModeState = 0;
+                                stringACState += " 绌鸿皟妯″紡:鍒跺喎";
+                                break;
+                            case 1:
+                                airModeState = 1;
+                                stringACState += " 绌鸿皟妯″紡:鍒剁儹";
+                                break;
+                            case 2:
+                                airModeState = 2;
+                                stringACState += " 绌鸿皟妯″紡:閫氶";
+                                break;
+                            case 3:
+                                airModeState = 3;
+                                stringACState += " 绌鸿皟妯″紡:鑷姩";
+                                break;
+                            case 4:
+                                airModeState = 4;
+                                stringACState += " 绌鸿皟妯″紡:鎶芥箍";
+                                break;
+                            default:
+                                airModeState = -1;
+                                stringACState += " 鏈煡绌鸿皟妯″紡";
+                                break;
+                        }
+                        break;
+                    case 2:
+                        switch (acCurState[1]) {
+                            case 0:
+                                airTempState = acCurState[index] & 0xff;
+                                stringACState += " 鍒跺喎娓╁害锛�" + (acCurState[index] & 0xff);
+                                break;
+                            case 1:
+                                airTempState = acCurState[index] & 0xff;
+                                stringACState += " 鍒剁儹娓╁害锛�" + (acCurState[index] & 0xff);
+                                break;
+                            case 2:
+                                airTempState = -1;
+                                stringACState += " 閫氶鏃犳俯搴︽樉绀�";
+                                break;
+                            case 3:
+                                airTempState = acCurState[index] & 0xff;
+                                stringACState += " 鑷姩娓╁害锛�" + (acCurState[index] & 0xff);
+                                break;
+                            case 4:
+                                airTempState = acCurState[index] & 0xff;
+                                stringACState += " 鎶芥箍娓╁害锛�" + (acCurState[index] & 0xff);
+                                break;
+                            default:
+                                airTempState = -2;
+                                stringACState += " 鏈煡娓╁害";
+                                break;
+                        }
+                        break;
+                    case 3:
+                        String curSpeed;
+                        switch (appliancesInfo.getArrCurState()[index]) {
+                            case 0:
+                                airSpeedState = 0;
+                                curSpeed = " 椋庨�熻嚜鍔�";
+                                break;
+                            case 1:
+                                airSpeedState = 1;
+                                curSpeed = " 椋庨�熼珮";
+                                break;
+                            case 2:
+                                airSpeedState = 2;
+                                curSpeed = " 椋庨�熶腑";
+                                break;
+                            case 3:
+                                airSpeedState = 3;
+                                curSpeed = " 椋庨�熶綆";
+                                break;
+                            default:
+                                airSpeedState = -1;
+                                curSpeed = " 鏈煡椋庨��";
+                                break;
+                        }
+                        switch (appliancesInfo.getArrCurState()[1]) {
+                            case 0:
+                                stringACState += curSpeed;
+                                break;
+                            case 1:
+                                stringACState += curSpeed;
+                                break;
+                            case 2:
+                                stringACState += curSpeed;
+                                break;
+                            case 3:
+                                stringACState += curSpeed;
+                                break;
+                            case 4:
+                                stringACState += " 鎶芥箍鏃犻閫�";
+                                break;
+                            default:
+                                stringACState += " 鏈煡绌鸿皟妯″紡";
+                                break;
+                        }
+                        break;
+
+                    default:
+                        break;
+                }
+            }
+
+            airText.setText(stringACState);
+        } else {
+            airText.setText("鏈幏鍙栧埌绌鸿皟璁惧鐘舵��");
+        }
+
+    }
+
+    /**
+     * 绌鸿皟妯″潡鎺у埗鍥炶皟Event
+     *
+     * @param event
+     */
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void onAirFeedBackInfoEventMain(AirFeedBackEvent event) {
+        if (event.getAirCtrlBackInfo().getAppliancesInfo().getDeviceDeviceID() == appliancesInfo.getDeviceDeviceID()
+                && event.getAirCtrlBackInfo().getAppliancesInfo().getDeviceSubnetID() == appliancesInfo.getDeviceSubnetID()
+                && event.getAirCtrlBackInfo().getAppliancesInfo().getChannelNum() == appliancesInfo.getChannelNum()
+        ) {
+            //        鍏堝垽鏂槸鍚﹁秴鏃�
+            if (!event.isSuccess()) {
+                showToast("绌鸿皟鎺у埗瓒呮椂锛岃閲嶆柊鍐嶈瘯");
+                return;
+            }
+            String mes = "";
+            byte[] curState = event.getAirCtrlBackInfo().getCurState();
+            readAirState(curState);
+        }
+    }
+
+    /**
+     * 鑾峰彇鍗曚竴璁惧鐘舵�佸洖璋僂vent
+     *
+     * @param event
+     */
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void onDeviceStateEventMain(DeviceStateEvent event) {
+        if (event.getAppliancesInfo().getDeviceSubnetID() == appliancesInfo.getDeviceSubnetID()
+                && event.getAppliancesInfo().getDeviceDeviceID() == appliancesInfo.getDeviceDeviceID()
+        ) {
+            //杩欎釜杩斿洖鐨勪俊鎭槸褰撳墠鐘舵�佺殑
+            switch (event.getAppliancesInfo().getDeviceType()) {
+//                case HDLApConfig.TYPE_AC_HVAC:
+                case HDLApConfig.TYPE_AC_PANEL:
+                    if (appliancesInfo.getChannelNum() == event.getAppliancesInfo().getChannelNum()) {
+                        if (!event.isSuccess()) {
+                            showToast("鑾峰彇绌鸿皟鐘舵�佸け璐ワ紝璇烽噸鏂板啀璇�");
+                            return;
+                        }
+
+                        byte[] curState = event.getAppliancesInfo().getArrCurState();
+
+                        readAirState(curState);
+//                        switch (curState[0] & 0xFF) {
+//                            case AirCtrlParser.airSwich:
+//                                switch (curState[1] & 0xFF) {
+//                                    case AirCtrlParser.airOff:
+//                                        airSwitchState = 0;
+//                                        airText.setText("绌鸿皟鍏�");
+//                                        showToast("绌鸿皟鍏�");
+//                                        HDLLog.I("绌鸿皟鍏�");
+//                                        break;
+//                                    case AirCtrlParser.airOn:
+//                                        airSwitchState = 1;
+//                                        airText.setText("绌鸿皟寮�");
+//                                        showToast("绌鸿皟寮�");
+//                                        HDLLog.I("绌鸿皟寮�");
+//                                        break;
+//                                    default:
+//                                        break;
+//                                }
+//
+//                                break;
+//
+//                            case AirCtrlParser.airSpeed:
+//                                switch (curState[1] & 0xFF) {
+//                                    case AirCtrlParser.airSpeedAuto:
+//                                        airSpeedState = 0;
+//                                        airText.setText("绌鸿皟椋庨�燂紝椋庨�熸ā寮忎负锛歛irSpeedAuto鑷姩椋庨��");
+//                                        showToast("绌鸿皟椋庨�燂紝椋庨�熸ā寮忎负锛歛irSpeedAuto鑷姩椋庨��");
+//                                        HDLLog.I("绌鸿皟椋庨�燂紝椋庨�熸ā寮忎负锛歛irSpeedAuto鑷姩椋庨��");
+//                                        break;
+//                                    case AirCtrlParser.airSpeedHigh:
+//                                        airSpeedState = 1;
+//                                        airText.setText("绌鸿皟椋庨�燂紝椋庨�熸ā寮忎负锛歛irSpeedHigh椋庨�熼珮");
+//                                        showToast("绌鸿皟椋庨�燂紝椋庨�熸ā寮忎负锛歛irSpeedHigh椋庨�熼珮");
+//                                        HDLLog.I("绌鸿皟椋庨�燂紝椋庨�熸ā寮忎负锛歛irSpeedHigh椋庨�熼珮");
+//                                        break;
+//                                    case AirCtrlParser.airSpeedMid:
+//                                        airSpeedState = 2;
+//                                        airText.setText("绌鸿皟椋庨�燂紝椋庨�熸ā寮忎负锛歛irSpeedMid椋庨�熶腑");
+//                                        showToast("绌鸿皟椋庨�燂紝椋庨�熸ā寮忎负锛歛irSpeedMid椋庨�熶腑");
+//                                        HDLLog.I("绌鸿皟椋庨�燂紝椋庨�熸ā寮忎负锛歛irSpeedMid椋庨�熶腑");
+//                                        break;
+//                                    case AirCtrlParser.airSpeedLow:
+//                                        airSpeedState = 3;
+//                                        airText.setText("绌鸿皟椋庨�燂紝椋庨�熸ā寮忎负锛歛irSpeedLow椋庨�熶綆");
+//                                        showToast("绌鸿皟椋庨�燂紝椋庨�熸ā寮忎负锛歛irSpeedLow椋庨�熶綆");
+//                                        HDLLog.I("绌鸿皟椋庨�燂紝椋庨�熸ā寮忎负锛歛irSpeedLow椋庨�熶綆");
+//                                        break;
+//                                    default:
+//                                        break;
+//                                }
+//                                break;
+//                            case AirCtrlParser.airMode:
+//                                switch (curState[1] & 0xFF) {
+//                                    case AirCtrlParser.airModeRefTem:
+//                                        airModeState = 0;
+//                                        airText.setText("绌鸿皟妯″紡锛屾ā寮忎负锛氬埗鍐�");
+//                                        showToast("绌鸿皟妯″紡锛屾ā寮忎负锛氬埗鍐�");
+//                                        HDLLog.I("绌鸿皟妯″紡锛屾ā寮忎负锛氬埗鍐�");
+//                                        break;
+//                                    case AirCtrlParser.airModeHeatTem:
+//                                        airModeState = 1;
+//                                        airText.setText("绌鸿皟妯″紡锛屾ā寮忎负锛氬埗鐑�");
+//                                        showToast("绌鸿皟妯″紡锛屾ā寮忎负锛氬埗鐑�");
+//                                        HDLLog.I("绌鸿皟妯″紡锛屾ā寮忎负锛氬埗鐑�");
+//                                        break;
+//                                    case AirCtrlParser.airModeVen:
+//                                        airModeState = 2;
+//                                        airText.setText("绌鸿皟妯″紡锛屾ā寮忎负锛氶�氶");
+//                                        showToast("绌鸿皟妯″紡锛屾ā寮忎负锛氶�氶");
+//                                        HDLLog.I("绌鸿皟妯″紡锛屾ā寮忎负锛氶�氶");
+//                                        break;
+//                                    case AirCtrlParser.airModeAuto:
+//                                        airModeState = 3;
+//                                        airText.setText("绌鸿皟妯″紡锛屾ā寮忎负锛氳嚜鍔�");
+//                                        showToast("绌鸿皟妯″紡锛屾ā寮忎负锛氳嚜鍔�");
+//                                        HDLLog.I("绌鸿皟妯″紡锛屾ā寮忎负锛氳嚜鍔�");
+//                                        break;
+//                                    case AirCtrlParser.airModeDehum:
+//                                        airModeState = 4;
+//                                        airText.setText("绌鸿皟妯″紡锛屾ā寮忎负锛氭娊婀�");
+//                                        showToast("绌鸿皟妯″紡锛屾ā寮忎负锛氭娊婀�");
+//                                        HDLLog.I("绌鸿皟妯″紡锛屾ā寮忎负锛氭娊婀�");
+//                                        break;
+//                                    default:
+//                                        break;
+//                                }
+//                                break;
+//                            case AirCtrlParser.refTem:
+//                                airTempState = curState[1] & 0xFF;
+//                                airText.setText("绌鸿皟鍒跺喎锛屾俯搴︿负锛�" + (curState[1] & 0xFF));
+//                                showToast("绌鸿皟鍒跺喎锛屾俯搴︿负锛�" + (curState[1] & 0xFF));
+//                                HDLLog.I("绌鸿皟鍒跺喎锛屾俯搴︿负锛�" + (curState[1] & 0xFF));
+//                                break;
+//                            case AirCtrlParser.heatTem:
+//                                airTempState = curState[1] & 0xFF;
+//                                airText.setText("绌鸿皟鍒剁儹锛屽埗鐑俯搴︿负" + (curState[1] & 0xFF));
+//                                showToast("绌鸿皟鍒剁儹锛屽埗鐑俯搴︿负" + (curState[1] & 0xFF));
+//                                HDLLog.I("绌鸿皟鍒剁儹锛屽埗鐑俯搴︿负" + (curState[1] & 0xFF));
+//                                break;
+//                            case AirCtrlParser.autoTem:
+//                                airTempState = curState[1] & 0xFF;
+//                                airText.setText("绌鸿皟鑷姩锛岃嚜鍔ㄦ俯搴︿负" + (curState[1] & 0xFF));
+//                                showToast("绌鸿皟鑷姩锛岃嚜鍔ㄦ俯搴︿负" + (curState[1] & 0xFF));
+//                                HDLLog.I("绌鸿皟鑷姩锛岃嚜鍔ㄦ俯搴︿负" + (curState[1] & 0xFF));
+//                                break;
+//                            case AirCtrlParser.dehumTem:
+//                                airTempState = curState[1] & 0xFF;
+//                                airText.setText("绌鸿皟鎶芥箍锛屾娊婀挎俯搴︿负" + (curState[1] & 0xFF));
+//                                showToast("绌鸿皟鎶芥箍锛屾娊婀挎俯搴︿负" + (curState[1] & 0xFF));
+//                                HDLLog.I("绌鸿皟鎶芥箍锛屾娊婀挎俯搴︿负" + (curState[1] & 0xFF));
+//                                break;
+//                            case AirCtrlParser.upTem:
+//                                airTempState = curState[1] & 0xFF;
+//                                airText.setText("绌鸿皟璋冩俯锛屼笂鍗囨俯搴︼細" + (curState[1] & 0xFF));
+//                                showToast("绌鸿皟璋冩俯锛屼笂鍗囨俯搴︼細" + (curState[1] & 0xFF));
+//                                HDLLog.I("绌鸿皟璋冩俯锛屼笂鍗囨俯搴︼細" + (curState[1] & 0xFF));
+//                                break;
+//                            case AirCtrlParser.downTem:
+//                                airTempState = curState[1] & 0xFF;
+//                                airText.setText("绌鸿皟璋冩俯锛屼笅闄嶆俯搴︼細" + (curState[1] & 0xFF));
+//                                showToast("绌鸿皟璋冩俯锛屼笅闄嶆俯搴︼細" + (curState[1] & 0xFF));
+//                                HDLLog.I("绌鸿皟璋冩俯锛屼笅闄嶆俯搴︼細" + (curState[1] & 0xFF));
+//                                break;
+//                        }
+                    }
+                    break;
+                default:
+                    //涓嶅鐞�
+                    break;
+            }
+        }
+    }
+
+    private void readAirState( byte[] curState ){
+        String mes = "";
+        switch (curState[0] & 0xFF) {
+            case AirCtrlParser.airSwich:
+                switch (curState[1] & 0xFF) {
+                    case AirCtrlParser.airOff:
+                        airSwitchState = 0;
+
+                        tv_switch.setText("鍏�");
+
+                        mes = "绌鸿皟鍏�";
+                        tv_mesSetText(mes);
+                        HDLLog.I(mes);
+                        break;
+                    case AirCtrlParser.airOn:
+                        airSwitchState = 1;
+//                            airText.setText("绌鸿皟寮�");
+//                            showToast("绌鸿皟寮�");
+//                            HDLLog.I("绌鸿皟寮�");
+                        tv_switch.setText("寮�");
+
+                        mes = "绌鸿皟寮�";
+                        tv_mesSetText(mes);
+                        HDLLog.I(mes);
+                        break;
+                    default:
+                        break;
+                }
+
+                break;
+
+            case AirCtrlParser.airSpeed:
+                switch (curState[1] & 0xFF) {
+                    case AirCtrlParser.airSpeedAuto:
+                        airSpeedState = 0;
+                        tv_speed.setText("鑷姩");
+
+                        mes = "鑷姩椋庨��";
+                        tv_mesSetText(mes);
+                        HDLLog.I(mes);
+
+                        break;
+                    case AirCtrlParser.airSpeedHigh:
+                        airSpeedState = 1;
+
+                        tv_speed.setText("楂橀��");
+                        mes = "椋庨�熼珮";
+                        tv_mesSetText(mes);
+                        HDLLog.I(mes);
+                        break;
+                    case AirCtrlParser.airSpeedMid:
+                        airSpeedState = 2;
+                        tv_speed.setText("涓��");
+                        mes = "椋庨�熶腑";
+                        tv_mesSetText(mes);
+                        HDLLog.I(mes);
+
+                        break;
+                    case AirCtrlParser.airSpeedLow:
+                        airSpeedState = 3;
+
+                        tv_speed.setText("浣庨��");
+                        mes = "椋庨�熶綆";
+                        tv_mesSetText(mes);
+                        HDLLog.I(mes);
+
+                        break;
+                    default:
+                        break;
+                }
+                break;
+            case AirCtrlParser.airMode:
+                switch (curState[1] & 0xFF) {
+                    case AirCtrlParser.airModeRefTem:
+                        airModeState = 0;
+
+                        tv_mode.setText("鍒跺喎");
+
+                        mes = "妯″紡涓猴細鍒跺喎";
+                        tv_mesSetText(mes);
+                        HDLLog.I(mes);
+
+                        break;
+                    case AirCtrlParser.airModeHeatTem:
+                        airModeState = 1;
+                        tv_mode.setText("鍒剁儹");
+
+                        mes = "妯″紡涓猴細鍒剁儹";
+                        tv_mesSetText(mes);
+                        HDLLog.I(mes);
+                        break;
+                    case AirCtrlParser.airModeVen:
+                        airModeState = 2;
+                        tv_mode.setText("閫氶");
+
+                        mes = "妯″紡涓猴細閫氶";
+                        tv_mesSetText(mes);
+                        HDLLog.I(mes);
+                        break;
+                    case AirCtrlParser.airModeAuto:
+                        airModeState = 3;
+                        tv_mode.setText("鑷姩");
+
+                        mes = "妯″紡涓猴細鑷姩";
+                        tv_mesSetText(mes);
+                        HDLLog.I(mes);
+                        break;
+                    case AirCtrlParser.airModeDehum:
+                        airModeState = 4;
+                        tv_mode.setText("鎶芥箍");
+
+                        mes = "妯″紡涓猴細鎶芥箍";
+                        tv_mesSetText(mes);
+                        HDLLog.I(mes);
+                        break;
+                    default:
+                        airModeState = -1;
+                        break;
+                }
+                break;
+            case AirCtrlParser.refTem:
+                airTempState = curState[1] & 0xFF;
+
+                tv_tempet.setText("" + airTempState);
+                mes = "绌鸿皟鍒跺喎锛屾俯搴︿负锛�" + (airTempState);
+
+                tv_mesSetText(mes);
+                HDLLog.I(mes);
+
+                break;
+            case AirCtrlParser.heatTem:
+                airTempState = curState[1] & 0xFF;
+                tv_tempet.setText("" + airTempState);
+                mes = "绌鸿皟鍒剁儹锛屽埗鐑俯搴︿负锛�" + (airTempState);
+
+                tv_mesSetText(mes);
+                HDLLog.I(mes);
+
+                break;
+            case AirCtrlParser.autoTem:
+                airTempState = curState[1] & 0xFF;
+
+                tv_tempet.setText(""+airTempState);
+                mes = "绌鸿皟鑷姩锛岃嚜鍔ㄦ俯搴︿负锛�" + (airTempState);
+                tv_mesSetText(mes);
+                HDLLog.I(mes);
+                break;
+            case AirCtrlParser.dehumTem:
+                airTempState = curState[1] & 0xFF;
+
+                tv_tempet.setText("" + airTempState);
+                mes = "绌鸿皟鎶芥箍锛屾娊婀挎俯搴︿负锛�" + (airTempState);
+                tv_mesSetText(mes);
+                HDLLog.I(mes);
+                break;
+            case AirCtrlParser.upTem:
+                airTempState = curState[1] & 0xFF;
+
+
+                tv_tempet.setText("" + airTempState);
+                mes = "绌鸿皟璋冩俯锛屼笂鍗囨俯搴︼細" + (airTempState);
+                tv_mesSetText(mes);
+                HDLLog.I(mes);
+                break;
+            case AirCtrlParser.downTem:
+                airTempState = curState[1] & 0xFF;
+                tv_tempet.setText("" + airTempState);
+                mes = "绌鸿皟璋冩俯锛屼笅闄嶆俯搴︼細" + (airTempState);
+                tv_mesSetText(mes);
+                HDLLog.I(mes);
+                break;
+
+        }
+
+    }
+
+
+
+
+    /**
+     * TextView 鏄剧ず淇℃伅骞朵笖showToast鎻愮ず
+     *
+     * @param mes
+     */
+    private void tv_mesSetText(String mes) {
+        airText.setText(mes);
+        showToast(mes);
+    }
+}
diff --git a/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/CtrlAirHVACActivity.java b/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/CtrlAirHVACActivity.java
index a4ce08d..7b31ec0 100644
--- a/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/CtrlAirHVACActivity.java
+++ b/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/CtrlAirHVACActivity.java
@@ -78,7 +78,6 @@
     }
 
 
-
     /**
      * 鍒濆鍖朤oolbar
      */
@@ -99,7 +98,6 @@
         String titleStr = appliancesInfo.getRemarks();
 
     }
-
 
 
     private void initView() {
@@ -163,73 +161,71 @@
         airBtnSpeed.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                HDLCommand.airCtrl(appliancesInfo,AirCtrlParser.downTem,1);//涓婂崌娓╁害 鑼冨洿0-5
-                return;
-//                switch (airSpeedState) {
-//                    case 0:
-//                        //鑻ュ綋鍓嶇┖璋冮閫熶负鑷姩锛屽垯鐐瑰嚮鎸夐挳璁剧疆涓洪珮椋�
-//                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSpeed, AirCtrlParser.airSpeedHigh);//椋庨�熼珮椋�
-//                        break;
-//                    case 1:
-//                        //鑻ュ綋鍓嶇┖璋冮閫熶负楂橀锛屽垯鐐瑰嚮鎸夐挳璁剧疆涓轰腑椋�
-//                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSpeed, AirCtrlParser.airSpeedMid);//椋庨�熶腑椋�
-//                        break;
-//                    case 2:
-//                        //鑻ュ綋鍓嶇┖璋冮閫熶负涓锛屽垯鐐瑰嚮鎸夐挳璁剧疆涓轰綆椋�
-//                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSpeed, AirCtrlParser.airSpeedLow);//椋庨�熶綆椋�
-//                        break;
-//                    case 3:
-//                        //鑻ュ綋鍓嶇┖璋冮閫熶负浣庨锛屽垯鐐瑰嚮鎸夐挳璁剧疆涓鸿嚜鍔�
-//                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSpeed, AirCtrlParser.airSpeedAuto);//椋庨�熻嚜鍔�
-//                        break;
-//
-//
-//                }
+
+                switch (airSpeedState) {
+                    case 0:
+                        //鑻ュ綋鍓嶇┖璋冮閫熶负鑷姩锛屽垯鐐瑰嚮鎸夐挳璁剧疆涓洪珮椋�
+                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSpeed, AirCtrlParser.airSpeedHigh);//椋庨�熼珮椋�
+                        break;
+                    case 1:
+                        //鑻ュ綋鍓嶇┖璋冮閫熶负楂橀锛屽垯鐐瑰嚮鎸夐挳璁剧疆涓轰腑椋�
+                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSpeed, AirCtrlParser.airSpeedMid);//椋庨�熶腑椋�
+                        break;
+                    case 2:
+                        //鑻ュ綋鍓嶇┖璋冮閫熶负涓锛屽垯鐐瑰嚮鎸夐挳璁剧疆涓轰綆椋�
+                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSpeed, AirCtrlParser.airSpeedLow);//椋庨�熶綆椋�
+                        break;
+                    case 3:
+                        //鑻ュ綋鍓嶇┖璋冮閫熶负浣庨锛屽垯鐐瑰嚮鎸夐挳璁剧疆涓鸿嚜鍔�
+                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.airSpeed, AirCtrlParser.airSpeedAuto);//椋庨�熻嚜鍔�
+                        break;
+
+
+                }
             }
         });
 
         airBtnTemp.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                HDLCommand.airCtrl(appliancesInfo,AirCtrlParser.upTem,1);//涓婂崌娓╁害 鑼冨洿0-5
-                return;
-//                String tempStr = airTempEd.getText().toString();
-//                if (TextUtils.isEmpty(tempStr)) {
-//                    showToast("璁剧疆鐨勬俯搴︿笉鑳戒负绌�");
-//                    return;
-//                }
-//                int tempInt = Integer.parseInt(tempStr);
-//
-//                if (tempInt < 16 || tempInt > 30) {
-//                    showToast("娓╁害璁剧疆鑼冨洿涓猴細16~30鎽勬皬搴�(鈩�)");
-//                    return;
-//                }
-//
-//                switch (airModeState) {
-//                    case 0:
-//                        //褰撳墠绌鸿皟妯″紡涓哄埗鍐�
-//                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.refTem, tempInt);//鍒跺喎娓╁害
-//                        break;
-//                    case 1:
-//                        //褰撳墠绌鸿皟妯″紡涓哄埗鐑�
-//                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.heatTem, tempInt);//鍒剁儹娓╁害
-//                        break;
-//                    case 2:
-//                        //褰撳墠绌鸿皟妯″紡涓洪�氶
-//                        showToast("閫氶妯″紡涓嶈兘鎺у埗娓╁害");
-//                        break;
-//                    case 3:
-//                        //褰撳墠绌鸿皟妯″紡涓鸿嚜鍔�
-//                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.autoTem, tempInt);//鑷姩娓╁害 鑼冨洿16-30
-//                        break;
-//                    case 4:
-//                        //褰撳墠绌鸿皟妯″紡涓烘娊婀�
-//                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.dehumTem, tempInt);//鎶芥箍娓╁害 鑼冨洿16-30
-//                        break;
-//                    default:
-//                        break;
-//
-//                }
+
+                String tempStr = airTempEd.getText().toString();
+                if (TextUtils.isEmpty(tempStr)) {
+                    showToast("璁剧疆鐨勬俯搴︿笉鑳戒负绌�");
+                    return;
+                }
+                int tempInt = Integer.parseInt(tempStr);
+
+                if (tempInt < 16 || tempInt > 30) {
+                    showToast("娓╁害璁剧疆鑼冨洿涓猴細16~30鎽勬皬搴�(鈩�)");
+                    return;
+                }
+
+                switch (airModeState) {
+                    case 0:
+                        //褰撳墠绌鸿皟妯″紡涓哄埗鍐�
+                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.refTem, tempInt);//鍒跺喎娓╁害
+                        break;
+                    case 1:
+                        //褰撳墠绌鸿皟妯″紡涓哄埗鐑�
+                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.heatTem, tempInt);//鍒剁儹娓╁害
+                        break;
+                    case 2:
+                        //褰撳墠绌鸿皟妯″紡涓洪�氶
+                        showToast("閫氶妯″紡涓嶈兘鎺у埗娓╁害");
+                        break;
+                    case 3:
+                        //褰撳墠绌鸿皟妯″紡涓鸿嚜鍔�
+                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.autoTem, tempInt);//鑷姩娓╁害 鑼冨洿16-30
+                        break;
+                    case 4:
+                        //褰撳墠绌鸿皟妯″紡涓烘娊婀�
+                        HDLCommand.airCtrl(appliancesInfo, AirCtrlParser.dehumTem, tempInt);//鎶芥箍娓╁害 鑼冨洿16-30
+                        break;
+                    default:
+                        break;
+
+                }
 
 //                HDLCommand.airCtrl(appliancesInfo,AirCtrlParser.upTem,1);//涓婂崌娓╁害 鑼冨洿0-5
 //                HDLCommand.airCtrl(appliancesInfo,AirCtrlParser.downTem,1);//涓嬮檷娓╁害 鑼冨洿0-5
@@ -354,9 +350,9 @@
     }
 
 
-    private void showAirHVACBackInfo(AirHVACBackInfo mAirHVACBackInfo){
+    private void showAirHVACBackInfo(AirHVACBackInfo mAirHVACBackInfo) {
         String message = "";
-        if(mAirHVACBackInfo.getIsOn() == AirCtrlParser.airOn) {
+        if (mAirHVACBackInfo.getIsOn() == AirCtrlParser.airOn) {
             message = getSwichStateString(mAirHVACBackInfo.getIsOn());
             message += "\n" + getModeStateString(mAirHVACBackInfo.getAirMode());//妯″紡
             message += "\n" + getSpeedStateString(mAirHVACBackInfo.getAirSpeed());//椋庨��
@@ -365,7 +361,7 @@
             message += "\n鍒剁儹妯″紡娓╁害锛�" + mAirHVACBackInfo.getHeatTemp();
             message += "\n鑷姩妯″紡娓╁害锛�" + mAirHVACBackInfo.getAutoTemp();
             message += "\n鎶芥箍妯″紡娓╁害锛�" + mAirHVACBackInfo.getWettedTemp();
-        }else {
+        } else {
             message = getSwichStateString(mAirHVACBackInfo.getIsOn());
         }
         airText.setText(message);
@@ -373,8 +369,6 @@
         HDLLog.I(message);
 
     }
-
-
 
 
     /**
@@ -431,7 +425,6 @@
             }
         }
     }
-
 
 
 }
diff --git a/app/src/main/res/layout/activity_ctrl_air.xml b/app/src/main/res/layout/activity_ctrl_air.xml
new file mode 100644
index 0000000..b362174
--- /dev/null
+++ b/app/src/main/res/layout/activity_ctrl_air.xml
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:id="@+id/activity_ctrl"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_marginRight="20dp"
+        android:layout_marginLeft="20dp"
+        android:orientation="vertical">
+
+
+        <TextView
+            android:layout_width="match_parent"
+            android:layout_height="40dp"
+            android:text="绌鸿皟闈㈡澘鍔熻兘绫绘ā鍧�"
+            android:gravity="center|left"
+            android:textSize="@dimen/ts_24"
+            />
+
+        <LinearLayout
+            android:id="@+id/air"
+            android:orientation="vertical"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content">
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="40dp">
+
+                <TextView
+                    android:layout_width="80dp"
+                    android:layout_height="match_parent"
+                    android:gravity="center"
+                    android:text="寮�鍏崇姸鎬侊細" />
+
+                <TextView
+                    android:id="@+id/tv_switch"
+                    android:layout_width="80dp"
+                    android:layout_height="match_parent"
+                    android:gravity="center"
+                    android:text="" />
+            </LinearLayout>
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="40dp">
+
+                <TextView
+                    android:layout_width="80dp"
+                    android:layout_height="match_parent"
+                    android:gravity="center"
+                    android:text="绌鸿皟妯″紡锛�" />
+
+                <TextView
+                    android:id="@+id/tv_mode"
+                    android:layout_width="80dp"
+                    android:layout_height="match_parent"
+                    android:gravity="center"
+                    android:text="" />
+            </LinearLayout>
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="40dp">
+
+                <TextView
+                    android:layout_width="80dp"
+                    android:layout_height="match_parent"
+                    android:gravity="center"
+                    android:text="椋庨�熺姸鎬侊細" />
+
+                <TextView
+                    android:id="@+id/tv_speed"
+                    android:layout_width="80dp"
+                    android:layout_height="match_parent"
+                    android:gravity="center"
+                    android:text="" />
+            </LinearLayout>
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="40dp">
+
+                <TextView
+                    android:layout_width="80dp"
+                    android:layout_height="match_parent"
+                    android:gravity="center"
+                    android:text="娓╁害鐘舵�侊細" />
+
+                <TextView
+                    android:id="@+id/tv_tempet"
+                    android:layout_width="80dp"
+                    android:layout_height="match_parent"
+                    android:gravity="center"
+                    android:text="" />
+            </LinearLayout>
+
+            <TextView
+                android:id="@+id/airText"
+                android:textSize="@dimen/ts_20"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="杩欎釜鎸夐挳鍋氱┖璋冮潰鏉跨殑婕旂ず" />
+            <Button
+                android:id="@+id/airbtn_switch"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="绌鸿皟寮�鍏�" />
+
+
+            <Button
+                android:id="@+id/airbtn_mode"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="绌鸿皟妯″紡" />
+            <Button
+                android:id="@+id/airbtn_speed"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="绌鸿皟椋庨��" />
+            <LinearLayout
+                android:orientation="horizontal"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content">
+                <Button
+                    android:id="@+id/airbtn_tempBtn"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="鐐瑰嚮璁剧疆绌鸿皟娓╁害:" />
+                <EditText
+                    android:id="@+id/airet_tempet"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:inputType="number"/>
+            </LinearLayout>
+
+
+
+
+        </LinearLayout>
+    </LinearLayout>
+
+</RelativeLayout>
\ No newline at end of file
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 3124f53..74d178f 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
@@ -3134,39 +3134,34 @@
      * @param getDatas
      */
     private static void handleHVACCtrlData(UdpDataBean getDatas) {
-        switch (getDatas.command) {
-            case Configuration.AIR_HVAC_CTRL_BACK_COMMAND:
-                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 (getDatas.addBytes.length > 0) {
-                                if (infos.get(j).getBigType() == Configuration.AIR_BIG_TYPE
-                                        && infos.get(j).getDeviceType() == HDLApConfig.TYPE_AC_HVAC
-                                        && infos.get(j).getChannelNum() == (getDatas.addBytes[0] & 0xFF)) {
+        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 (getDatas.addBytes.length > 0) {
+                        if (infos.get(j).getBigType() == Configuration.AIR_BIG_TYPE
+                                && infos.get(j).getDeviceType() == HDLApConfig.TYPE_AC_HVAC
+                                && infos.get(j).getChannelNum() == (getDatas.addBytes[0] & 0xFF)) {
 
-                                    devicesDataList.get(i).getAppliancesInfoList().get(j).setArrCurState(getDatas.addBytes);
-                                    AppliancesInfo mHvacAirInfo = devicesDataList.get(i).getAppliancesInfoList().get(j);
-                                    AirHVACBackInfo info = new AirHVACBackInfo(mHvacAirInfo);
-                                    setDeviceCtrlSuccessStateWithInfo(infos.get(j), true);
-                                    EventBus.getDefault().post(new AirHVACFeedBackEvent(info, true));
-                                    break outter;
-                                }
+                            devicesDataList.get(i).getAppliancesInfoList().get(j).setArrCurState(getDatas.addBytes);
+                            AppliancesInfo mHvacAirInfo = devicesDataList.get(i).getAppliancesInfoList().get(j);
+                            AirHVACBackInfo info = new AirHVACBackInfo(mHvacAirInfo);
+                            setDeviceCtrlSuccessStateWithInfo(infos.get(j), true);
+                            EventBus.getDefault().post(new AirHVACFeedBackEvent(info, true));
+                            break outter;
+                        }
 //                                else {
 //                                    HDLLog.E("鎺у埗HVAC鐘舵�佸弽棣堟暟鎹紓甯�");
 //                                }
-                            }
-                        }
-
-                        break outter;
                     }
                 }
-                break;
-        }
 
+                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 5e732e9..b910026 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
@@ -419,58 +419,6 @@
                 }
 
                 break;
-            case Configuration.DEVICES_SEARCH_COMMAND: //绠�鏄撶紪绋嬭澶囨悳绱㈡搷浣滅爜銆佽澶囪鍙栨搷浣滅爜 鍥炲
-            case Configuration.ReadRemark: //000E 鎼滅储鍥炲
-            case Configuration.READ_MAC_COMMAND: //F003 璇昏澶嘙ac
-            case Configuration.LIGHT_CTRL_BACK_COMMAND:
-            case Configuration.CURTAIN_CTRL_BACK_COMMAND:
-            case Configuration.AIR_CTRL_BACK_COMMAND:
-            case Configuration.LOGIC_CTRL_BACK_COMMAND:
-            case Configuration.LIGHT_STATE_BACK_COMMAND:
-            case Configuration.FRESH_AIR_CTRL_BACK_COMMAND://20190709鏂板 鏂伴绯荤粺
-            case Configuration.FRESH_AIR_STATE_BACK_COMMAND://20190709鏂板
-            case Configuration.GEOTHERMAL_MODULE_CTRL_BACK_COMMAND://20190709鏂板 鍦扮儹妯″潡
-            case Configuration.GEOTHERMAL_MODULE_STATE_BACK_COMMAND://20190709鏂板
-            case Configuration.COMMON_SWITCH_CTRL_BACK_COMMAND:  //2020-06-23 閫氱敤寮�鍏�
-            case Configuration.COMMON_SWITCH_STATE_BACK_COMMAND: //2020-06-23 閫氱敤寮�鍏�
-            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.LIGHT_RGB_CTRL_BACK_COMMAND://2020-10-19  澧炲姞RGB CCT鎺у埗鍥炲
-            case Configuration.LIGHT_RGB_STATE_BACK_COMMAND://2020-10-19  澧炲姞RGB CCT鐘舵�佸洖澶�
-
-            case Configuration.CURTAIN_STATE_BACK_COMMAND:
-            case Configuration.AIR_STATE_BACK_COMMAND:
-
-            case Configuration.AIR_HVAC_CTRL_BACK_COMMAND:
-            case Configuration.AIR_HVAC_STATE_BACK_COMMAND:
-            case Configuration.RCU_ROOM_CAST_COMMAND:
-            case Configuration.RCU_CURTAIN_CAST_COMMAND:
-
-            case Configuration.DEVICES_READ_BACK_COMMAND://璇诲彇澶囨敞鍛戒护
-
-            case Configuration.WARNING_COMMAND:
-
-            case Configuration.SENSOR_STATE_BACK_COMMAND:
-            case Configuration.SENSOR_BROADCAST_COMMAND://2021-08-05
-//            case Configuration.AUDIO_CTRL_READ_COMMAND:
-            case Configuration.AUDIO_CTRL_READ_BACK_COMMAND:
-//            case Configuration.AUDIO_MenuPlay_INSTRUCTION_COMMAND:
-            case Configuration.AUDIO_MenuPlay_INSTRUCTION_BACK_COMMAND:
-
-                if (TextUtils.isEmpty(HandleSearch.rcuIp)) {
-                    HDLDeviceManager.handle(sendDatas, sendDatas.command);
-                } else {
-                    if (HandleSearch.rcuIp.equals(sendDatas.ipAddress)) {
-//                        HDLLog.info("sendDatas.command = "+sendDatas.command);
-                        HDLDeviceManager.handle(sendDatas, sendDatas.command);
-                    }
-                }
-                break;
-
-
             case Configuration.RCU_SEARCH_COMMAND:
                 if (sendDatas.port == Configuration.RCU_SEND_PORT) {
                     HDLLog.info("鏀跺埌鎼滅储RCU鍛戒护");
@@ -501,6 +449,15 @@
                 HDLDeviceManager.handle(sendDatas, sendDatas.command);
                 break;
             default:
+                //2021-08-10 鍏朵粬鎿嶄綔鐮佸啀缁熶竴澶勭悊
+                if (TextUtils.isEmpty(HandleSearch.rcuIp)) {
+                    HDLDeviceManager.handle(sendDatas, sendDatas.command);
+                } else {
+                    if (HandleSearch.rcuIp.equals(sendDatas.ipAddress)) {
+//                        HDLLog.info("sendDatas.command = "+sendDatas.command);
+                        HDLDeviceManager.handle(sendDatas, sendDatas.command);
+                    }
+                }
                 break;
         }
     }

--
Gitblit v1.8.0