From 145de2dcd3124f236e7d06bcdee17c7be08048b1 Mon Sep 17 00:00:00 2001
From: panlili2024 <14743743+panlili2024@user.noreply.gitee.com>
Date: 星期一, 11 十一月 2024 18:34:13 +0800
Subject: [PATCH] 修改搜索按照index索引

---
 HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Core/HandleSearch.java      |   47 ++++-----
 app/src/main/java/com/hdl/sdk/ttl_sdk/HDLApplication.java                               |    2 
 app/src/main/res/layout/activity_add_devices_manually.xml                               |   10 ++
 .idea/deploymentTargetSelector.xml                                                      |    4 
 app/src/main/java/com/hdl/sdk/ttl_sdk/activity/AddDevicesManuallyActivity.java          |   48 +++++----
 HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Core/HDLSerialPortCore.java |    2 
 HDL_TTLSDK485/build.gradle                                                              |    4 
 HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Bean/ListRemarks.java       |    9 +
 HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Parser/DeviceParser.java    |  107 ++++++++++++---------
 HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Bean/AppliancesInfo.java    |   11 ++
 HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Core/HDLTtlSdk.java         |    2 
 HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Core/HDLDeviceManager.java  |   40 ++++---
 12 files changed, 169 insertions(+), 117 deletions(-)

diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml
index ebc4157..72ad84c 100644
--- a/.idea/deploymentTargetSelector.xml
+++ b/.idea/deploymentTargetSelector.xml
@@ -4,10 +4,10 @@
     <selectionStates>
       <SelectionState runConfigName="app">
         <option name="selectionMode" value="DROPDOWN" />
-        <DropdownSelection timestamp="2024-09-23T05:28:34.940591100Z">
+        <DropdownSelection timestamp="2024-11-11T02:28:48.057319600Z">
           <Target type="DEFAULT_BOOT">
             <handle>
-              <DeviceId pluginId="Default" identifier="serial=192.168.1.106:5555;connection=9ecb2e58" />
+              <DeviceId pluginId="Default" identifier="serial=192.168.1.113:5555;connection=edc26430" />
             </handle>
           </Target>
         </DropdownSelection>
diff --git a/HDL_TTLSDK485/build.gradle b/HDL_TTLSDK485/build.gradle
index fa0137c..905b95b 100644
--- a/HDL_TTLSDK485/build.gradle
+++ b/HDL_TTLSDK485/build.gradle
@@ -7,8 +7,8 @@
     defaultConfig {
         minSdkVersion 17
         targetSdkVersion 30
-        versionCode 6
-        versionName "1.2.3"
+        versionCode 7
+        versionName "1.2.4"
 
         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
         ndk {
diff --git a/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Bean/AppliancesInfo.java b/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Bean/AppliancesInfo.java
index 928d154..701cacc 100644
--- a/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Bean/AppliancesInfo.java
+++ b/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Bean/AppliancesInfo.java
@@ -18,6 +18,7 @@
     private int stateCommand;//璇诲彇鐘舵�佺爜
     private int stateBackCommand;//璇诲彇鐘舵�佽繑鍥炵爜
     private int channelNum;//鍥炶矾鍙�
+    private int deviceIndex;//搴忓垪鍙�
     private int deviceSubnetID;//璁惧瀛愮綉鍙�
     private int deviceDeviceID;//璁惧鍙�
     private int sourceSubnetID;//婧愬瓙缃戝彿
@@ -131,6 +132,14 @@
         this.channelNum = channelNum;
     }
 
+    public int getDeviceIndex() {
+        return deviceIndex;
+    }
+
+    public void setDeviceIndex(int deviceIndex) {
+        this.deviceIndex = deviceIndex;
+    }
+
     public String getRemarks() {
         return remarks;
     }
@@ -228,6 +237,7 @@
                 ", stateCommand=" + stateCommand +
                 ", stateBackCommand=" + stateBackCommand +
                 ", channelNum=" + channelNum +
+                ", deviceIndex=" + deviceIndex +
                 ", deviceSubnetID=" + deviceSubnetID +
                 ", deviceDeviceID=" + deviceDeviceID +
                 ", sourceSubnetID=" + sourceSubnetID +
@@ -241,6 +251,7 @@
                 ", physicsChannelNum=" + physicsChannelNum +
                 ", intCurState=" + intCurState +
                 ", deviceKey='" + deviceKey + '\'' +
+                ", isGetDeviceStateSuccess=" + isGetDeviceStateSuccess +
                 '}';
     }
 }
diff --git a/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Bean/ListRemarks.java b/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Bean/ListRemarks.java
index 1e689c4..5b1d277 100644
--- a/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Bean/ListRemarks.java
+++ b/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Bean/ListRemarks.java
@@ -6,6 +6,7 @@
 
 public class ListRemarks {
     boolean isCallBack;
+    private int sendCount;
     AppliancesInfo appliancesInfo;
 
     public boolean isCallBack() {
@@ -16,6 +17,14 @@
         isCallBack = callBack;
     }
 
+    public int getSendCount() {
+        return sendCount;
+    }
+
+    public void setSendCount(int sendCount) {
+        this.sendCount = sendCount;
+    }
+
     public AppliancesInfo getAppliancesInfo() {
         return appliancesInfo;
     }
diff --git a/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Core/HDLDeviceManager.java b/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Core/HDLDeviceManager.java
index 6f5f7a6..6d8dfcc 100644
--- a/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Core/HDLDeviceManager.java
+++ b/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Core/HDLDeviceManager.java
@@ -166,7 +166,7 @@
      * @param commandType 鍛戒护绫诲瀷
      */
     public static void handle(UdpDataBean getDatas, int commandType) {
-//        Log.e("panlili", "commandType=" + Integer.toHexString(commandType) + " sourceSubnetID=" + getDatas.sourceSubnetID + " sourceDeviceID=" + getDatas.sourceDeviceID);
+        Log.e("panlili", "commandType=" + Integer.toHexString(commandType) + " sourceSubnetID=" + getDatas.sourceSubnetID + " sourceDeviceID=" + getDatas.sourceDeviceID);
         switch (commandType) {
             case Configuration.SEARCH_GATEWAY_BACK_COMMAND:
                 break;
@@ -382,7 +382,7 @@
      *
      * @param getDatas
      */
-    private static void handleSearchData(UdpDataBean getDatas) {
+    private static synchronized void handleSearchData(UdpDataBean getDatas) {
 
         DevicesData devicesData = new DevicesData();
         devicesData.setSourceSubnetID(getDatas.sourceSubnetID);
@@ -439,11 +439,13 @@
             EventBus.getDefault().post(new DiscoverNewDevicesEvent(devicesData));
 
             //杩囨护鎺夎儗鏅煶涔愶紝鑳屾櫙闊充箰娌℃湁澶囨敞杩斿洖
-            if (devicesDataList.get(devicesDataList.size() - 1).getAppliancesInfoList().get(0).getBigType() != Configuration.AUDIO_BIG_TYPE) {
-                for (int i = 0, len = devicesDataList.get(devicesDataList.size() - 1).getAppliancesInfoList().size(); i < len; i++) {
+            if (devicesData.getAppliancesInfoList().get(0).getBigType() != Configuration.AUDIO_BIG_TYPE) {
+                for (int i = 0, len = devicesData.getAppliancesInfoList().size(); i < len; i++) {
                     ListRemarks listRemarksTemp = new ListRemarks();
                     listRemarksTemp.setCallBack(false);
-                    listRemarksTemp.setAppliancesInfo(devicesDataList.get(devicesDataList.size() - 1).getAppliancesInfoList().get(i));
+                    AppliancesInfo appliancesInfo = devicesData.getAppliancesInfoList().get(i);
+                    Log.d("panlili", "HDLDeviceManager.java:handleSearchData----->getChannelNum= " + appliancesInfo.getChannelNum() + " getDeviceKey=" + appliancesInfo.getDeviceKey());
+                    listRemarksTemp.setAppliancesInfo(appliancesInfo);
                     listRemarks.add(listRemarksTemp);
                 }
             }
@@ -1204,7 +1206,7 @@
                 for (int appPos = 0, len2 = infos.size(); appPos < len2; appPos++) {
                     if ((infos.get(appPos).getDeviceSubnetID()) == (getDatas.addBytes[0] & 0xFF)
                             && (infos.get(appPos).getDeviceDeviceID()) == (getDatas.addBytes[1] & 0xFF)
-                            && ((infos.get(appPos).getChannelNum()) == (getDatas.addBytes[2] & 0xFF))
+                            && ((infos.get(appPos).getDeviceIndex()) == (getDatas.addBytes[2] & 0xFF))//搴忓彿
                             && (infos.get(appPos).getBigType()) == (getDatas.addBytes[3] & 0xFF)
                             && ((infos.get(appPos).getLittleType()) == (getDatas.addBytes[4] & 0xFF))) {
 
@@ -1222,6 +1224,7 @@
                         HDLLog.I("remarkStr鑾峰彇鐨勫娉ㄥ悕涓猴細" + remarkStr);
                         devicesDataList.get(devPos).getAppliancesInfoList().get(appPos).setChannelNum(getDatas.addBytes[5] & 0xFF);
                         devicesDataList.get(devPos).getAppliancesInfoList().get(appPos).setRemarks(remarkStr);
+//                        HDLLog.I("getRemarks()锛�" + devicesDataList.get(devPos).getAppliancesInfoList().get(appPos).getRemarks());
 
                         String key = "K" + devicesDataList.get(devPos).getAppliancesInfoList().get(appPos).getBigType()
                                 + "-" + devicesDataList.get(devPos).getAppliancesInfoList().get(appPos).getLittleType()
@@ -1233,9 +1236,10 @@
                         listRemarksOutter:
                         for (int lRPos = 0, len3 = listRemarks.size(); lRPos < len3; lRPos++) {
                             //鎵惧埌F44B瀵瑰簲鐨勮澶囧洖璺紝鍒ゆ柇鏄惁宸茬粡鎷垮埌浜嗘暟鎹��
+
                             if (listRemarks.get(lRPos).getAppliancesInfo().getDeviceSubnetID() == (getDatas.addBytes[0] & 0xFF)
                                     && listRemarks.get(lRPos).getAppliancesInfo().getDeviceDeviceID() == (getDatas.addBytes[1] & 0xFF)
-                                    && listRemarks.get(lRPos).getAppliancesInfo().getChannelNum() == (getDatas.addBytes[2] & 0xFF)
+                                    && listRemarks.get(lRPos).getAppliancesInfo().getDeviceIndex() == (getDatas.addBytes[2] & 0xFF)
                                     && listRemarks.get(lRPos).getAppliancesInfo().getBigType() == (getDatas.addBytes[3] & 0xFF)
                                     && listRemarks.get(lRPos).getAppliancesInfo().getLittleType() == (getDatas.addBytes[4] & 0xFF)) {
 
@@ -1251,7 +1255,7 @@
                                         } else {
                                             HDLLog.I("涓嶅瓨鍦ㄧ殑璁惧澶囨敞锛屽啀娆℃悳绱㈠娉ㄣ�傝澶囷細瀛愮綉鍙凤細" + listRemarks.get(lRPos).getAppliancesInfo().getDeviceSubnetID()
                                                     + "璁惧鍙凤細" + listRemarks.get(lRPos).getAppliancesInfo().getDeviceDeviceID()
-                                                    + "鍥炶矾鍙�" + listRemarks.get(lRPos).getAppliancesInfo().getChannelNum()
+                                                    + "搴忓垪鍙凤細" + listRemarks.get(lRPos).getAppliancesInfo().getDeviceIndex()
                                                     + "澶囨敞锛�" + listRemarks.get(lRPos).getAppliancesInfo().getRemarks());
                                             HandleSearch.getDevRemarks();
                                             break listRemarksOutter;
@@ -1260,7 +1264,7 @@
                                 } else {
                                     HDLLog.I("杩斿洖澶囨敞璁惧锛氬瓙缃戝彿锛�" + listRemarks.get(lRPos).getAppliancesInfo().getDeviceSubnetID()
                                             + ",璁惧鍙凤細" + listRemarks.get(lRPos).getAppliancesInfo().getDeviceDeviceID()
-                                            + ",鍥炶矾鍙�" + listRemarks.get(lRPos).getAppliancesInfo().getChannelNum()
+                                            + ",搴忓垪鍙凤細" + listRemarks.get(lRPos).getAppliancesInfo().getDeviceIndex()
                                             + ",澶囨敞锛�" + listRemarks.get(lRPos).getAppliancesInfo().getRemarks());
                                     listRemarks.get(lRPos).setCallBack(true);
                                     HandleSearch.getDevRemarks();
@@ -2693,8 +2697,8 @@
      * @param mRemarks    澶囨敞
      * @return Boolean
      */
-    public static boolean addSecurityDevicesManually(int mSubnetID, int mDeviceID, int mChannelNum, String mRemarks) {
-        return addDevicesManuallyWithoutSearching(Configuration.SECURITY_BIG_TYPE, 0, mSubnetID, mDeviceID, mChannelNum, mRemarks);
+    public static boolean addSecurityDevicesManually(int mSubnetID, int mDeviceID, int mChannelNum, int mIndex, String mRemarks) {
+        return addDevicesManuallyWithoutSearching(Configuration.SECURITY_BIG_TYPE, 0, mSubnetID, mDeviceID, mChannelNum, mIndex, mRemarks);
     }
 
     /**
@@ -2706,8 +2710,8 @@
      * @param mRemarks    澶囨敞
      * @return Boolean
      */
-    public static boolean addAudioDevicesManually(int mSubnetID, int mDeviceID, int mChannelNum, String mRemarks) {
-        return addDevicesManuallyWithoutSearching(Configuration.AUDIO_BIG_TYPE, 0, mSubnetID, mDeviceID, mChannelNum, mRemarks);
+    public static boolean addAudioDevicesManually(int mSubnetID, int mDeviceID, int mChannelNum, int mIndex, String mRemarks) {
+        return addDevicesManuallyWithoutSearching(Configuration.AUDIO_BIG_TYPE, 0, mSubnetID, mDeviceID, mChannelNum, mIndex, mRemarks);
     }
 
     /**
@@ -2722,9 +2726,9 @@
      * @param mRemarks
      * @return
      */
-    public static boolean addDevicesManuallyWithoutSearchingWithNewDevice(int mBigType, int mLittleType, int mSubnetID, int mDeviceID, int mChannelNum, String mRemarks) {
+    public static boolean addDevicesManuallyWithoutSearchingWithNewDevice(int mBigType, int mLittleType, int mSubnetID, int mDeviceID, int mChannelNum, int mIndex, String mRemarks) {
         try {
-            DevicesData mDevicesData = DeviceParser.addDevicesManuallyWithoutSearching(mBigType, mLittleType, mSubnetID, mDeviceID, mChannelNum, mRemarks);
+            DevicesData mDevicesData = DeviceParser.addDevicesManuallyWithoutSearching(mBigType, mLittleType, mSubnetID, mDeviceID, mChannelNum, mIndex, mRemarks);
             if (mDevicesData != null) {
                 devicesDataList.add(mDevicesData);
                 HandleSearch.OnDeviceListGetSuccessCallBack();
@@ -2752,7 +2756,7 @@
      * @param mRemarks
      * @return
      */
-    public static boolean addDevicesManuallyWithoutSearching(int mBigType, int mLittleType, int mSubnetID, int mDeviceID, int mChannelNum, String mRemarks) {
+    public static boolean addDevicesManuallyWithoutSearching(int mBigType, int mLittleType, int mSubnetID, int mDeviceID, int mChannelNum, int mIndex, String mRemarks) {
         try {
 
             if (!DeviceParser.isWantData(mBigType, mLittleType)) {//鍒ゆ柇鏄惁鏀寔鐨勫ぇ绫诲皬绫�
@@ -2770,7 +2774,7 @@
                     DevicesData mDevicesData = devicesDataList.get(i);
                     bCanAdd = getIfCanAddDevice(mDevicesData.getAppliancesInfoList(), mBigType, mLittleType, mChannelNum);
                     if (bCanAdd) {//娣诲姞瀛愮綉鍙� 璁惧鍙� 宸插瓨鍦紝骞朵笖娌℃湁鐩稿悓鐨勫瓙缃戝彿璁惧鍙�
-                        AppliancesInfo mAppliancesInfo = DeviceParser.getDevicesInfo(mDevicesData, mBigType, mLittleType, mChannelNum, mRemarks, mRemarks);
+                        AppliancesInfo mAppliancesInfo = DeviceParser.getDevicesInfo(mDevicesData, mBigType, mLittleType, mChannelNum, mIndex, mRemarks, mRemarks);
                         devicesDataList.get(i).getAppliancesInfoList().add(mAppliancesInfo);
                         HandleSearch.OnDeviceListGetSuccessCallBack();
                         HDLLog.I("鏀寔鐨勮澶囷紝鍏佽娣诲姞");
@@ -2780,7 +2784,7 @@
             }
 
             if (!bExistSubnetID) {
-                return addDevicesManuallyWithoutSearchingWithNewDevice(mBigType, mLittleType, mSubnetID, mDeviceID, mChannelNum, mRemarks);
+                return addDevicesManuallyWithoutSearchingWithNewDevice(mBigType, mLittleType, mSubnetID, mDeviceID, mChannelNum, mIndex, mRemarks);
             }
 
             return bCanAdd;
diff --git a/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Core/HDLSerialPortCore.java b/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Core/HDLSerialPortCore.java
index 64546f2..bcf87ad 100644
--- a/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Core/HDLSerialPortCore.java
+++ b/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Core/HDLSerialPortCore.java
@@ -26,7 +26,7 @@
  */
 public class HDLSerialPortCore {
     //涓插彛璁惧璺緞鍚�
-    private static String mPathname = "/dev/ttyS4";
+    private static String mPathname = "/dev/ttyS9";
     //娉㈢壒鐜�
     private static int mBaudrate = 115200;
 
diff --git a/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Core/HDLTtlSdk.java b/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Core/HDLTtlSdk.java
index 327d325..f28c65c 100644
--- a/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Core/HDLTtlSdk.java
+++ b/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Core/HDLTtlSdk.java
@@ -16,7 +16,7 @@
      */
     public static void init(Context context, String mPathname, int mBaudrate) {
         HDLDeviceManager.init(context);
-        HDLDeviceManager.setIsGetBusLightState(false);//鏍规嵁鏄惁bus缃戝叧璁剧疆
+        HDLDeviceManager.setIsGetBusLightState(true);//鏍规嵁鏄惁bus缃戝叧璁剧疆
         HDLSerialPortCore.setIsModule(true);//鏍规嵁鏄惁甯︽ā缁勮缃�
         HDLSerialPortCore.initHDLSerialPort(mPathname, mBaudrate);
     }
diff --git a/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Core/HandleSearch.java b/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Core/HandleSearch.java
index 4fee86d..0735237 100644
--- a/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Core/HandleSearch.java
+++ b/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Core/HandleSearch.java
@@ -4,6 +4,7 @@
 
 import com.hdl.sdk.ttl.Config.Configuration;
 import com.hdl.sdk.ttl.HDLDeviceManger.Bean.DevicesData;
+import com.hdl.sdk.ttl.HDLDeviceManger.Bean.ListRemarks;
 import com.hdl.sdk.ttl.HDLDeviceManger.Bean.RemarkTimes;
 import com.hdl.sdk.ttl.HDLDeviceManger.Bean.SearchCountBean;
 import com.hdl.sdk.ttl.HDLDeviceManger.EventBusEvent.DevicesInfoEvent;
@@ -603,6 +604,7 @@
             remarkTimer.cancel();
             remarkTimer = null;
         }
+
         if ((HDLDeviceManager.listRemarks != null && HDLDeviceManager.listRemarks.size() == 0) || isSearching) {
             isRefreshAllDevicesState = false;
             if (HDLDeviceManager.devicesDataList != null && HDLDeviceManager.devicesDataList.size() > 0) {
@@ -620,7 +622,7 @@
         }
 
         //鍒ゆ柇鏄惁鑾峰彇璁惧澶囨敞瀹屽叏锛岃嫢瀹屽叏鍒欒繑鍥炴墍鏈夎澶囧垪琛ㄣ��
-        if (HDLDeviceManager.listRemarks != null && HDLDeviceManager.listRemarks.size() != 0 && pos == -1) {
+        if (pos == -1) {
             if (!isRefreshAllDevicesState) {
                 HandleSearch.OnDeviceListGetSuccessCallBack();
             } else {
@@ -630,46 +632,39 @@
                 isRefreshAllDevicesState = false;
                 HandleSearch.OnDeviceListGetSuccessCallBack();
             }
-
             return;
         }
         remarkTimer = new Timer();
         final int newPos = pos;
-        final RemarkTimes remarkTimes = new RemarkTimes();
-        remarkTimes.setCount(0);
 
-        if (remarkTimer == null) {
-            return;
-        }
+        ListRemarks listRemark = HDLDeviceManager.listRemarks.get(newPos);
         remarkTimer.schedule(new TimerTask() {
             @Override
             public void run() {
-                if (remarkTimes.getCount() < 1) {
-                    remarkTimes.setCount(remarkTimes.getCount() + 1);
+                listRemark.setSendCount(listRemark.getSendCount() + 1);
+                if (listRemark.getSendCount() < 3 && !listRemark.isCallBack()) {
                     if (newPos < HDLDeviceManager.listRemarks.size()) {
-                        HDLLog.I("----->鍙戦�佽幏鍙栧娉ㄥ懡浠ゃ�傚叡" + HDLDeviceManager.listRemarks.size() + "涓ā鍧椼�傜"
-                                + newPos + "涓ā鍧椼�傜 " + (HDLDeviceManager.listRemarks.get(newPos).getAppliancesInfo().getChannelNum())
-                                + " 鍥炶矾锛屽瓙缃戝彿锛�" + HDLDeviceManager.listRemarks.get(newPos).getAppliancesInfo().getDeviceSubnetID()
-                                + "锛岃澶囧彿锛�" + HDLDeviceManager.listRemarks.get(newPos).getAppliancesInfo().getDeviceDeviceID()
-                                + " 绗� " + remarkTimes.getCount() + " 娆�");
+                        HDLLog.I("----->鍙戦�佽幏鍙栧娉ㄥ懡浠ゃ�傚叡" + HDLDeviceManager.listRemarks.size() + "涓紝绗�"
+                                + newPos + "涓ā鍧椼�傜 " + (listRemark.getAppliancesInfo().getDeviceIndex())
+                                + " 搴忓彿锛屽瓙缃戝彿锛�" + listRemark.getAppliancesInfo().getDeviceSubnetID()
+                                + "锛岃澶囧彿锛�" + listRemark.getAppliancesInfo().getDeviceDeviceID()
+                                + " 绗� " + listRemark.getSendCount() + " 娆�");
                         HDLCommand.cusSendCommand(Configuration.DEVICES_READ_FROM_GATEWAY_COMMAND,
-                                HDLDeviceManager.listRemarks.get(newPos).getAppliancesInfo().getSourceSubnetID()
-                                , HDLDeviceManager.listRemarks.get(newPos).getAppliancesInfo().getSourceDeviceID(),
+                                listRemark.getAppliancesInfo().getSourceSubnetID()
+                                , listRemark.getAppliancesInfo().getSourceDeviceID(),
                                 new byte[]{
-                                        (byte) HDLDeviceManager.listRemarks.get(newPos).getAppliancesInfo().getDeviceSubnetID(),
-                                        (byte) HDLDeviceManager.listRemarks.get(newPos).getAppliancesInfo().getDeviceDeviceID(),
-                                        (byte) HDLDeviceManager.listRemarks.get(newPos).getAppliancesInfo().getChannelNum(),
-                                        (byte) HDLDeviceManager.listRemarks.get(newPos).getAppliancesInfo().getBigType(),
-                                        (byte) HDLDeviceManager.listRemarks.get(newPos).getAppliancesInfo().getLittleType(),
+                                        (byte) listRemark.getAppliancesInfo().getDeviceSubnetID(),
+                                        (byte) listRemark.getAppliancesInfo().getDeviceDeviceID(),
+                                        (byte) listRemark.getAppliancesInfo().getDeviceIndex(),
+                                        (byte) listRemark.getAppliancesInfo().getBigType(),
+                                        (byte) listRemark.getAppliancesInfo().getLittleType(),
                                 });
                     }
                 } else {
-
-                    if (HDLDeviceManager.listRemarks != null
-                            && HDLDeviceManager.listRemarks.size() != 0
-                            && newPos < HDLDeviceManager.listRemarks.size()) {
-                        HDLDeviceManager.listRemarks.get(newPos).setCallBack(true);
+                    if (!listRemark.isCallBack()) {
+                        HDLLog.I("----->鑾峰彇澶囨敞鍛戒护瓒呮椂 绗� " + (listRemark.getAppliancesInfo().getDeviceIndex()) + " 搴忓彿锛屽瓙缃戝彿锛�" + listRemark.getAppliancesInfo().getDeviceSubnetID() + "锛岃澶囧彿锛�" + listRemark.getAppliancesInfo().getDeviceDeviceID());
                     }
+                    listRemark.setCallBack(true);
                     getDevRemarks();
                 }
             }
diff --git a/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Parser/DeviceParser.java b/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Parser/DeviceParser.java
index 9e67ea5..f4087b7 100644
--- a/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Parser/DeviceParser.java
+++ b/HDL_TTLSDK485/src/main/java/com/hdl/sdk/ttl/HDLDeviceManger/Parser/DeviceParser.java
@@ -57,8 +57,10 @@
 
             curCount++;
             int curChannelNum = 0;
+            int index = 0;
             while (curChannelNum < channelNum) {
-                curChannelNum++;
+                curChannelNum++;//鏈夊彲鑳戒笉鏄粠1寮�濮嬬殑锛屾墍浠ュ鍔爄ndex鍒ゆ柇
+                index++;
                 if (isWantData(bigType, littleType)) {
                     AppliancesInfo appliancesInfo = new AppliancesInfo();
                     appliancesInfo.setDeviceSubnetID(subnetID);
@@ -67,40 +69,40 @@
                     /**鏍规嵁绫诲埆锛岃祴鍊兼搷浣滅爜绛変竴浜涢噸瑕佷俊鎭�*/
                     switch (bigType) {
                         case Configuration.LIGTH_BIG_TYPE:
-                            parseLightData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, "");
+                            parseLightData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, index, "");
                             break;
                         case Configuration.CURTAIN_BIG_TYPE:
-                            parseCurtainData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, "");
+                            parseCurtainData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, index, "");
                             break;
                         case Configuration.AIR_BIG_TYPE:
-                            parseAirData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, "");
+                            parseAirData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, index, "");
                             break;
                         case Configuration.AUDIO_BIG_TYPE:
-                            parseAudioData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, "");
+                            parseAudioData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, index, "");
                             break;
                         case Configuration.LOGIC_BIG_TYPE:
-                            parseLogicData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, "");
+                            parseLogicData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, index, "");
                             break;
                         case Configuration.GLOBAL_LOGIC_BIG_TYPE:
-                            parseGlobalLogicData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, "");
+                            parseGlobalLogicData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, index, "");
                             break;
                         case Configuration.SECURITY_BIG_TYPE://2019-7-29 鏂板
-                            parseSecurityData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, "");
+                            parseSecurityData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, index, "");
                             break;
                         case Configuration.SENSOR_BIG_TYPE:
-                            parseSensorData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, "");
+                            parseSensorData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, index, "");
                             break;
                         case Configuration.COMMON_SWITCH_BIG_TYPE://2020-04-01 閫氱敤寮�鍏�
-                            parseCommonSwitchData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, "");
+                            parseCommonSwitchData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, index, "");
                             break;
                         case Configuration.FRESH_AIR_BIG_TYPE://2020-07-20 鏂板鏂伴
-                            parseFreshAirData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, "");
+                            parseFreshAirData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, index, "");
                             break;
                         case Configuration.GEOTHERMAL_BIG_TYPE://鍦扮儹
-                            parseGeothermalData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, "");
+                            parseGeothermalData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, index, "");
                             break;
                         case Configuration.DOOR_MACHINE_BIG_TYPE://闂ㄩ攣
-                            parseDoorMachineData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, "");
+                            parseDoorMachineData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, index, "");
                             break;
                         default:
 //                            appliancesInfo.setDeviceName(Configuration.UNKNOW_TYPE);
@@ -300,7 +302,7 @@
     }
 
 
-    private static void parseLightData(int littleType, AppliancesInfo appliancesInfo, DevicesData devicesData, String parentRemarks, int channelNum, int port, String ipAddress) {
+    private static void parseLightData(int littleType, AppliancesInfo appliancesInfo, DevicesData devicesData, String parentRemarks, int channelNum, int index, String ipAddress) {
         switch (littleType) {
             case 0:
                 appliancesInfo.setDeviceName("璋冨厜鍥炶矾");
@@ -349,6 +351,7 @@
         }
         if (devicesData != null) {
             appliancesInfo.setChannelNum(channelNum);
+            appliancesInfo.setDeviceIndex(index);
             appliancesInfo.setBigType(Configuration.LIGTH_BIG_TYPE);
             appliancesInfo.setLittleType(littleType);
 
@@ -371,7 +374,7 @@
         }
     }
 
-    private static void parseCurtainData(int littleType, AppliancesInfo appliancesInfo, DevicesData devicesData, String parentRemarks, int channelNum, int port, String ipAddress) {
+    private static void parseCurtainData(int littleType, AppliancesInfo appliancesInfo, DevicesData devicesData, String parentRemarks, int channelNum, int index, String ipAddress) {
         switch (littleType) {
             case 0:
                 appliancesInfo.setDeviceName("寮�鍚堝笜鐢垫満");
@@ -396,6 +399,7 @@
         }
         if (devicesData != null) {
             appliancesInfo.setChannelNum(channelNum);
+            appliancesInfo.setDeviceIndex(index);
             appliancesInfo.setBigType(Configuration.CURTAIN_BIG_TYPE);
             appliancesInfo.setLittleType(littleType);
             appliancesInfo.setCtrlCommand(Configuration.CURTAIN_CTRL_COMMAND);
@@ -408,7 +412,7 @@
         }
     }
 
-    private static void parseAirData(int littleType, AppliancesInfo appliancesInfo, DevicesData devicesData, String parentRemarks, int channelNum, int port, String ipAddress) {
+    private static void parseAirData(int littleType, AppliancesInfo appliancesInfo, DevicesData devicesData, String parentRemarks, int channelNum, int index, String ipAddress) {
         switch (littleType) {
             case 0:
                 appliancesInfo.setDeviceName("HVAC 妯″潡");
@@ -441,6 +445,7 @@
         }
         if (devicesData != null) {
             appliancesInfo.setChannelNum(channelNum);
+            appliancesInfo.setDeviceIndex(index);
             appliancesInfo.setBigType(Configuration.AIR_BIG_TYPE);
             appliancesInfo.setLittleType(littleType);
             appliancesInfo.setSourceSubnetID(devicesData.getSourceSubnetID());
@@ -463,7 +468,7 @@
         }
     }
 
-    private static void parseAudioData(int littleType, AppliancesInfo appliancesInfo, DevicesData devicesData, String parentRemarks, int channelNum, int port, String ipAddress) {
+    private static void parseAudioData(int littleType, AppliancesInfo appliancesInfo, DevicesData devicesData, String parentRemarks, int channelNum, int index, String ipAddress) {
         switch (littleType) {
             case 0:
                 appliancesInfo.setDeviceName("鑳屾櫙闊充箰妯″潡");
@@ -483,6 +488,7 @@
 
         if (devicesData != null) {
             appliancesInfo.setChannelNum(channelNum);
+            appliancesInfo.setDeviceIndex(index);
             appliancesInfo.setBigType(Configuration.AUDIO_BIG_TYPE);
             appliancesInfo.setLittleType(littleType);
             appliancesInfo.setCtrlCommand(Configuration.AUDIO_CTRL_READ_COMMAND);
@@ -496,7 +502,7 @@
         HDLLog.I("闊充箰妯″潡锛�" + parentRemarks);
     }
 
-    private static void parseLogicData(int littleType, AppliancesInfo appliancesInfo, DevicesData devicesData, String parentRemarks, int channelNum, int port, String ipAddress) {
+    private static void parseLogicData(int littleType, AppliancesInfo appliancesInfo, DevicesData devicesData, String parentRemarks, int channelNum, int index, String ipAddress) {
         switch (littleType) {
             case 0:
                 appliancesInfo.setDeviceName("閫昏緫妯″潡");
@@ -509,6 +515,7 @@
 
         if (devicesData != null) {
             appliancesInfo.setChannelNum(channelNum);
+            appliancesInfo.setDeviceIndex(index);
             appliancesInfo.setBigType(Configuration.LOGIC_BIG_TYPE);
             appliancesInfo.setLittleType(littleType);
             appliancesInfo.setCtrlCommand(Configuration.LOGIC_CTRL_COMMAND);
@@ -522,7 +529,7 @@
         }
     }
 
-    private static void parseGlobalLogicData(int littleType, AppliancesInfo appliancesInfo, DevicesData devicesData, String parentRemarks, int channelNum, int port, String ipAddress) {
+    private static void parseGlobalLogicData(int littleType, AppliancesInfo appliancesInfo, DevicesData devicesData, String parentRemarks, int channelNum, int index, String ipAddress) {
         switch (littleType) {
             case 0:
                 appliancesInfo.setDeviceName("鍏ㄥ眬閫昏緫妯″潡");
@@ -535,6 +542,7 @@
 
         if (devicesData != null) {
             appliancesInfo.setChannelNum(channelNum);
+            appliancesInfo.setDeviceIndex(index);
             appliancesInfo.setBigType(Configuration.GLOBAL_LOGIC_BIG_TYPE);
             appliancesInfo.setLittleType(littleType);
             appliancesInfo.setCtrlCommand(Configuration.LOGIC_CTRL_COMMAND);
@@ -559,7 +567,7 @@
      * @param port
      * @param ipAddress
      */
-    private static void parseSecurityData(int littleType, AppliancesInfo appliancesInfo, DevicesData devicesData, String parentRemarks, int channelNum, int port, String ipAddress) {
+    private static void parseSecurityData(int littleType, AppliancesInfo appliancesInfo, DevicesData devicesData, String parentRemarks, int channelNum, int index, String ipAddress) {
         switch (littleType) {
             case 0:
                 appliancesInfo.setDeviceName("瀹夐槻妯″潡");
@@ -576,6 +584,7 @@
         }
         if (devicesData != null) {
             appliancesInfo.setChannelNum(channelNum);
+            appliancesInfo.setDeviceIndex(index);
             appliancesInfo.setBigType(Configuration.SECURITY_BIG_TYPE);
             appliancesInfo.setLittleType(littleType);
             appliancesInfo.setSourceSubnetID(devicesData.getSourceSubnetID());
@@ -606,7 +615,7 @@
 
 
     //    2019-07-03 灞忚斀 2019-11-5 浼犳劅鍣ㄩ兘鏀逛负骞叉帴鐐瑰疄鐜�
-    private static void parseSensorData(int littleType, AppliancesInfo appliancesInfo, DevicesData devicesData, String parentRemarks, int curChannelNum, int port, String ipAddress) {
+    private static void parseSensorData(int littleType, AppliancesInfo appliancesInfo, DevicesData devicesData, String parentRemarks, int channelNum, int index, String ipAddress) {
         switch (littleType) {
             case 0:
                 appliancesInfo.setDeviceName("浼犳劅鍣� 骞茬粨鐐�");
@@ -732,7 +741,8 @@
 
 
         if (devicesData != null) {
-            appliancesInfo.setChannelNum(curChannelNum);
+            appliancesInfo.setChannelNum(channelNum);
+            appliancesInfo.setDeviceIndex(index);
             appliancesInfo.setBigType(Configuration.SENSOR_BIG_TYPE);
             appliancesInfo.setLittleType(littleType);
 
@@ -751,7 +761,7 @@
      * 2020-07-20
      * 鏂伴绯荤粺
      */
-    private static void parseFreshAirData(int littleType, AppliancesInfo appliancesInfo, DevicesData devicesData, String parentRemarks, int channelNum, int port, String ipAddress) {
+    private static void parseFreshAirData(int littleType, AppliancesInfo appliancesInfo, DevicesData devicesData, String parentRemarks, int channelNum, int index, String ipAddress) {
         switch (littleType) {
             case 0:
                 appliancesInfo.setDeviceName("鏂伴绯荤粺妯″潡");
@@ -776,6 +786,7 @@
 
         if (devicesData != null) {
             appliancesInfo.setChannelNum(channelNum);
+            appliancesInfo.setDeviceIndex(index);
             appliancesInfo.setBigType(Configuration.FRESH_AIR_BIG_TYPE);
             appliancesInfo.setLittleType(littleType);
             appliancesInfo.setSourceSubnetID(devicesData.getSourceSubnetID());
@@ -788,7 +799,7 @@
     /**
      * 鍦扮儹
      */
-    private static void parseGeothermalData(int littleType, AppliancesInfo appliancesInfo, DevicesData devicesData, String parentRemarks, int channelNum, int port, String ipAddress) {
+    private static void parseGeothermalData(int littleType, AppliancesInfo appliancesInfo, DevicesData devicesData, String parentRemarks, int channelNum, int index, String ipAddress) {
         switch (littleType) {
             case 0:
                 appliancesInfo.setDeviceName("鍦扮儹妯″潡");
@@ -813,6 +824,7 @@
         }
         if (devicesData != null) {
             appliancesInfo.setChannelNum(channelNum);
+            appliancesInfo.setDeviceIndex(index);
             appliancesInfo.setBigType(Configuration.GEOTHERMAL_BIG_TYPE);
             appliancesInfo.setLittleType(littleType);
             appliancesInfo.setSourceSubnetID(devicesData.getSourceSubnetID());
@@ -832,7 +844,7 @@
     /**
      * 闂ㄩ攣
      */
-    private static void parseDoorMachineData(int littleType, AppliancesInfo appliancesInfo, DevicesData devicesData, String parentRemarks, int channelNum, int port, String ipAddress) {
+    private static void parseDoorMachineData(int littleType, AppliancesInfo appliancesInfo, DevicesData devicesData, String parentRemarks, int channelNum, int index, String ipAddress) {
         switch (littleType) {
             case 4:
                 appliancesInfo.setDeviceName("闂ㄩ攣妯″潡");
@@ -844,6 +856,7 @@
         }
         if (devicesData != null) {
             appliancesInfo.setChannelNum(channelNum);
+            appliancesInfo.setDeviceIndex(index);
             appliancesInfo.setBigType(Configuration.DOOR_MACHINE_BIG_TYPE);
             appliancesInfo.setLittleType(littleType);
             appliancesInfo.setSourceSubnetID(devicesData.getSourceSubnetID());
@@ -871,7 +884,7 @@
      * @param port
      * @param ipAddress
      */
-    private static void parseCommonSwitchData(int littleType, AppliancesInfo appliancesInfo, DevicesData devicesData, String parentRemarks, int channelNum, int port, String ipAddress) {
+    private static void parseCommonSwitchData(int littleType, AppliancesInfo appliancesInfo, DevicesData devicesData, String parentRemarks, int channelNum, int index, String ipAddress) {
         switch (littleType) {
             case 0:
                 appliancesInfo.setDeviceName("閫氱敤寮�鍏�");
@@ -884,6 +897,7 @@
         }
         if (devicesData != null) {
             appliancesInfo.setChannelNum(channelNum);
+            appliancesInfo.setDeviceIndex(index);
             appliancesInfo.setBigType(Configuration.COMMON_SWITCH_BIG_TYPE);
             appliancesInfo.setLittleType(littleType);
             appliancesInfo.setSourceSubnetID(devicesData.getSourceSubnetID());
@@ -908,7 +922,7 @@
      * @param mRemarks
      * @return
      */
-    public static DevicesData addDevicesManuallyWithoutSearching(int mBigType, int mLittleType, int mSubnetID, int mDeviceID, int mChannelNum, String mRemarks) {
+    public static DevicesData addDevicesManuallyWithoutSearching(int mBigType, int mLittleType, int mSubnetID, int mDeviceID, int mChannelNum, int mIndex, String mRemarks) {
         boolean bWantData = false;
         DevicesData mDevicesData = new DevicesData();
         mDevicesData.setSourceSubnetID(mSubnetID);
@@ -918,7 +932,7 @@
         List<AppliancesInfo> appliancesInfoList = new ArrayList<>();
         if (isWantData(mBigType, mLittleType)) {
             bWantData = true;
-            AppliancesInfo appliancesInfo = getDevicesInfo(mDevicesData, mBigType, mLittleType, mChannelNum, mRemarks, mRemarks);
+            AppliancesInfo appliancesInfo = getDevicesInfo(mDevicesData, mBigType, mLittleType, mChannelNum, mIndex, mRemarks, mRemarks);
 
             appliancesInfoList.add(appliancesInfo);
 //            HDLLog.I( "鍚戞ā鍧楁坊鍔犲洖璺細"+"澶х被锛�" + mBigType + " 灏忕被锛�" + mLittleType +" 妯″潡澶囨敞" + mRemarks );
@@ -1003,7 +1017,7 @@
         List<AppliancesInfo> appliancesInfoList = new ArrayList<>();
         if (isWantData(bigType, littleType)) {
             for (int i = 0; i < parentRemarksList.size(); i++) {
-                appliancesInfoList.add(getDevicesInfo(devicesData, bigType, littleType, i + 1, parentRemarks, parentRemarksList.get(i)));
+                appliancesInfoList.add(getDevicesInfo(devicesData, bigType, littleType, i + 1, i+1, parentRemarks, parentRemarksList.get(i)));
             }
             bWantData = true;
 
@@ -1024,45 +1038,45 @@
         return devicesData;
     }
 
-    public static AppliancesInfo getDevicesInfo(DevicesData devicesData, int bigType, int littleType, int curChannelNum, String parentRemarks, String mRemarks) {
+    public static AppliancesInfo getDevicesInfo(DevicesData devicesData, int bigType, int littleType, int curChannelNum, int index, String parentRemarks, String mRemarks) {
         AppliancesInfo appliancesInfo = new AppliancesInfo();
         /**鏍规嵁绫诲埆锛岃祴鍊兼搷浣滅爜绛変竴浜涢噸瑕佷俊鎭�*/
         switch (bigType) {
             case Configuration.LIGTH_BIG_TYPE:
-                parseLightData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, "");
+                parseLightData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, index, "");
                 break;
             case Configuration.CURTAIN_BIG_TYPE:
-                parseCurtainData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, "");
+                parseCurtainData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, index, "");
                 break;
             case Configuration.AIR_BIG_TYPE:
-                parseAirData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, "");
+                parseAirData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, index, "");
                 break;
             case Configuration.AUDIO_BIG_TYPE:
-                parseAudioData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, "");
+                parseAudioData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, index, "");
                 break;
             case Configuration.LOGIC_BIG_TYPE:
-                parseLogicData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, "");
+                parseLogicData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, index, "");
                 break;
             case Configuration.GLOBAL_LOGIC_BIG_TYPE:
-                parseGlobalLogicData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, "");
+                parseGlobalLogicData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, index, "");
                 break;
             case Configuration.SECURITY_BIG_TYPE://2019-7-29 鏂板
-                parseSecurityData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, "");
+                parseSecurityData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, index, "");
                 break;
             case Configuration.SENSOR_BIG_TYPE:
-                parseSensorData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, "");
+                parseSensorData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, index, "");
                 break;
             case Configuration.COMMON_SWITCH_BIG_TYPE://2020-04-01 閫氱敤寮�鍏�
-                parseCommonSwitchData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, "");
+                parseCommonSwitchData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, index, "");
                 break;
             case Configuration.FRESH_AIR_BIG_TYPE://2020-07-20 鏂板鏂伴
-                parseFreshAirData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, "");
+                parseFreshAirData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, index, "");
                 break;
             case Configuration.GEOTHERMAL_BIG_TYPE://2020-07-20 鍦扮儹
-                parseGeothermalData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, "");
+                parseGeothermalData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, index, "");
                 break;
             case Configuration.DOOR_MACHINE_BIG_TYPE://2023-08-22 闂ㄩ攣
-                parseDoorMachineData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, 0, "");
+                parseDoorMachineData(littleType, appliancesInfo, devicesData, parentRemarks, curChannelNum, index, "");
                 break;
             default:
 //                            appliancesInfo.setDeviceName(Configuration.UNKNOW_TYPE);
@@ -1074,7 +1088,8 @@
                 + "-" + appliancesInfo.getDeviceSubnetID()
                 + "-" + appliancesInfo.getDeviceDeviceID()
                 + "-" + appliancesInfo.getChannelNum();
-        appliancesInfo.setRemarks(mRemarks);
+//        appliancesInfo.setRemarks(mRemarks);
+        HDLLog.I("---getDevicesInfo getRemarks()锛�" + appliancesInfo.getRemarks());
         appliancesInfo.setDeviceKey(key);//2019-8-2 娣诲姞鍞竴鏍囪瘑key
         return appliancesInfo;
 
@@ -1092,7 +1107,7 @@
      * @param parentRemarks
      * @return
      */
-    public static DevicesData addDevicesListWithoutSearching(int bigType, int littleType, int mSubnetID, int mDeviceID, int mChannelNum, String mChannelRemark, String parentRemarks) {
+    public static DevicesData addDevicesListWithoutSearching(int bigType, int littleType, int mSubnetID, int mDeviceID, int mChannelNum, int mIndex,  String mChannelRemark, String parentRemarks) {
 //        boolean bWantData = false;
         if (isWantData(bigType, littleType)) {
             DevicesData devicesData = new DevicesData();
@@ -1112,13 +1127,13 @@
 
 
             if (isFindDevicesData) {
-                AppliancesInfo mAppliancesInfo = getDevicesInfo(devicesData, bigType, littleType, mChannelNum, parentRemarks, mChannelRemark);
+                AppliancesInfo mAppliancesInfo = getDevicesInfo(devicesData, bigType, littleType, mChannelNum, mIndex, parentRemarks, mChannelRemark);
                 devicesDataList.get(index).getAppliancesInfoList().add(mAppliancesInfo);
                 devicesData = devicesDataList.get(index);
                 HandleSearch.OnDeviceListGetSuccessCallBack();
             } else {
                 List<AppliancesInfo> appliancesInfoList = new ArrayList<>();
-                appliancesInfoList.add(getDevicesInfo(devicesData, bigType, littleType, mChannelNum, parentRemarks, mChannelRemark));
+                appliancesInfoList.add(getDevicesInfo(devicesData, bigType, littleType, mChannelNum, mIndex, parentRemarks, mChannelRemark));
                 devicesData.setAppliancesInfoList(appliancesInfoList);
                 devicesDataList.add(devicesData);
                 HandleSearch.OnDeviceListGetSuccessCallBack();
diff --git a/app/src/main/java/com/hdl/sdk/ttl_sdk/HDLApplication.java b/app/src/main/java/com/hdl/sdk/ttl_sdk/HDLApplication.java
index 99d5609..728c877 100644
--- a/app/src/main/java/com/hdl/sdk/ttl_sdk/HDLApplication.java
+++ b/app/src/main/java/com/hdl/sdk/ttl_sdk/HDLApplication.java
@@ -9,7 +9,7 @@
  */
 public class HDLApplication extends Application {
 
-    public static final String HDL_UART_PATH = "/dev/ttyS4"; //涓插彛璁惧璺緞鍚�
+    public static final String HDL_UART_PATH = "/dev/ttyS9"; //涓插彛璁惧璺緞鍚�
     public static final int HDL_BAUDRATE = 115200;  //娉㈢壒鐜�
 
     @Override
diff --git a/app/src/main/java/com/hdl/sdk/ttl_sdk/activity/AddDevicesManuallyActivity.java b/app/src/main/java/com/hdl/sdk/ttl_sdk/activity/AddDevicesManuallyActivity.java
index cfe6ca6..cb1e581 100644
--- a/app/src/main/java/com/hdl/sdk/ttl_sdk/activity/AddDevicesManuallyActivity.java
+++ b/app/src/main/java/com/hdl/sdk/ttl_sdk/activity/AddDevicesManuallyActivity.java
@@ -36,11 +36,12 @@
     private EditText subnetIDEditText;
     private EditText deviceIDEditText;
     private EditText channelNumEditText;
+    private EditText indexEditText;
     private EditText remarksEditText;
     private Button addButton;
-//    private String subnetIDStr, deviceIDStr, channelNumStr, remarksStr;
-    private int subnetID, deviceID, channelNum;
-    private String  remarksStr;
+    //    private String subnetIDStr, deviceIDStr, channelNumStr, remarksStr;
+    private int subnetID, deviceID, channelNum, index;
+    private String remarksStr;
 
     private int deviceTypeId = 0;
     private static final String[] deviceTypeItems = {"瀹夐槻妯″潡", "闊充箰妯″潡", "浼犳劅鍣ㄦā鍧�"};
@@ -77,6 +78,7 @@
         subnetIDEditText = findViewById(R.id.et_subnetID);
         deviceIDEditText = findViewById(R.id.et_deviceID);
         channelNumEditText = findViewById(R.id.et_channelNum);
+        indexEditText = findViewById(R.id.et_index);
         remarksEditText = findViewById(R.id.et_remarks);
 
         addButton = findViewById(R.id.btn_add);
@@ -125,24 +127,24 @@
         boolean isSuccess = false;
         if (deviceTypeId == 0) {
 
-            isSuccess = HDLDeviceManager.addSecurityDevicesManually(subnetID, deviceID, channelNum, remarksStr);
-        } else if(deviceTypeId == 1) {
-            isSuccess = HDLDeviceManager.addAudioDevicesManually(subnetID, deviceID, channelNum, remarksStr);
-        }else {
+            isSuccess = HDLDeviceManager.addSecurityDevicesManually(subnetID, deviceID, channelNum, index, remarksStr);
+        } else if (deviceTypeId == 1) {
+            isSuccess = HDLDeviceManager.addAudioDevicesManually(subnetID, deviceID, channelNum, index, remarksStr);
+        } else {
             //鎸囧畾澶х被鍜屽皬绫诲弬鏁� 鍖哄垎妯″潡绫诲瀷
-            isSuccess = HDLDeviceManager.addDevicesManuallyWithoutSearching(Configuration.SENSOR_BIG_TYPE,11 ,subnetID, deviceID, channelNum, remarksStr);
+            isSuccess = HDLDeviceManager.addDevicesManuallyWithoutSearching(Configuration.SENSOR_BIG_TYPE, 11, subnetID, deviceID, channelNum, index, remarksStr);
         }
 
-        if(isSuccess){
+        if (isSuccess) {
             showToast("娣诲姞鎴愬姛");
             finish();
-        }else {
+        } else {
             showToast("娣诲姞澶辫触");
         }
     }
 
-    private void addButtonAction(){
-       String subnetIDStr = subnetIDEditText.getText().toString();
+    private void addButtonAction() {
+        String subnetIDStr = subnetIDEditText.getText().toString();
         if (TextUtils.isEmpty(subnetIDStr)) {
             showToast("瀛愮綉鍙蜂笉鑳戒负绌�");
             return;
@@ -160,6 +162,12 @@
             return;
         }
 
+        String indexStr = indexEditText.getText().toString();
+        if (TextUtils.isEmpty(indexStr)) {
+            showToast("搴忓垪鍙蜂笉鑳戒负绌�");
+            return;
+        }
+
         String remarksString = remarksEditText.getText().toString();
         if (TextUtils.isEmpty(remarksString)) {
             showToast("澶囨敞涓嶈兘涓虹┖");
@@ -167,20 +175,21 @@
         }
 
 
-         subnetID = Integer.parseInt(subnetIDStr);
-         deviceID = Integer.parseInt(deviceIDStr);
-         channelNum = Integer.parseInt(channelNumStr);
-         remarksStr = remarksString;
-         String mes = "";
+        subnetID = Integer.parseInt(subnetIDStr);
+        deviceID = Integer.parseInt(deviceIDStr);
+        channelNum = Integer.parseInt(channelNumStr);
+        index = Integer.parseInt(indexStr);
+        remarksStr = remarksString;
+        String mes = "";
         mes = "璁惧绫诲瀷锛�" + deviceTypeItems[deviceTypeId];
-         mes += "\n瀛愮綉鍙凤細" + subnetIDStr +"\n璁惧鍙凤細" + deviceIDStr +"\n鍥炶矾鍙凤細" + channelNumStr +"\n澶囨敞鍚嶏細" + remarksStr;
+        mes += "\n瀛愮綉鍙凤細" + subnetIDStr + "\n璁惧鍙凤細" + deviceIDStr + "\n鍥炶矾鍙凤細" + channelNumStr + "\n搴忓垪鍙凤細" + indexStr + "\n澶囨敞鍚嶏細" + remarksStr;
         showTipDialog(mes);
 
     }
 
     private void showTipDialog(String message) {
 
-         MaterialDialog mMaterialDialog = new MaterialDialog.Builder(this)
+        MaterialDialog mMaterialDialog = new MaterialDialog.Builder(this)
                 .title("鏄惁纭畾娣诲姞璇ヨ澶囷紵")
                 .content(message)
                 .positiveText(R.string.ok)
@@ -199,7 +208,6 @@
                 }).build();
         mMaterialDialog.show();
     }
-
 
 
 }
diff --git a/app/src/main/res/layout/activity_add_devices_manually.xml b/app/src/main/res/layout/activity_add_devices_manually.xml
index c1905c5..27f26a1 100644
--- a/app/src/main/res/layout/activity_add_devices_manually.xml
+++ b/app/src/main/res/layout/activity_add_devices_manually.xml
@@ -86,6 +86,16 @@
             android:hint="鍥炶矾鍙�"
             />
         <EditText
+            android:id="@+id/et_index"
+            android:layout_width="match_parent"
+            android:layout_height="40dp"
+            android:layout_marginTop="10dp"
+            android:inputType="number"
+            android:maxLength="3"
+            android:text="1"
+            android:hint="搴忓垪鍙�"
+            />
+        <EditText
             android:id="@+id/et_remarks"
             android:layout_width="match_parent"
             android:layout_height="40dp"

--
Gitblit v1.8.0