Explorar el Código

UI 순서 변경 관련 오류 수정

jslee(madeinlab) hace 3 años
padre
commit
1ba6c8afd9
Se han modificado 12 ficheros con 138 adiciones y 91 borrados
  1. 0 1
      WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/PopupActivity.java
  2. 1 1
      WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/screen/screen_aircon/KnxSystemAirconPopupScreen.java
  3. 0 1
      WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/screen/screen_heating/HeatingV2MainScreen.java
  4. 3 3
      WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/screen/screen_heating/HeatingV2PopupScreen.java
  5. 58 46
      WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/screen/screen_multi/HeatingV2PopupTestScreen.java
  6. 8 7
      WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/screen/screen_multi/HeatingV2TestScreen.java
  7. 17 2
      WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/screen/screen_multi/KnxSystemAirconMainTestScreen.java
  8. 26 13
      WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/screen/screen_multi/KnxSystemAirconPopupTestScreen.java
  9. 5 4
      WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/screen/screen_multi/LightKnxMainTestScreen.java
  10. 8 7
      WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/screen/screen_multi/LightKnxPopupTestScreen.java
  11. 1 1
      WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/screen/screen_multi/SystemAirconPopupTestScreen.java
  12. 11 5
      WallPadMultiControlService/src/main/java/kr/co/icontrols/wallpadmulticontrolservice/DataSenderService.java

+ 0 - 1
WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/PopupActivity.java

@@ -878,7 +878,6 @@ public class PopupActivity extends WpadActivity
                             break;
                         }
                         stb.append(data);
-                        Log.d("ClientThread", "data=" + data + "@@");
                     } catch (Exception e) {
                         if (socket != null) {
                             socket.close();

+ 1 - 1
WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/screen/screen_aircon/KnxSystemAirconPopupScreen.java

@@ -134,7 +134,7 @@ public class KnxSystemAirconPopupScreen extends WpadScreen {
         if (intent != null) {
             // 시작할 룸인덱스
             int RoomIndex = intent.getIntExtra("ROOM_INDEX", -1);
-            if (RoomIndex > 0) {
+            if (RoomIndex >= 0) {
                 //mCurrentRoomIndex = RoomIndex;
                 mCurrentOriginRoomIndex = RoomIndex;
                 mCurrentRoomIndex = ROOM_POS[RoomIndex];

+ 0 - 1
WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/screen/screen_heating/HeatingV2MainScreen.java

@@ -80,7 +80,6 @@ public class HeatingV2MainScreen extends WpadScreen {
     private final static int ROOM_CNT_EASYMODE = 4;
     private final static int ROOM_CNT_NORMAL = 6;
     private final int[] ROOM_POS = {0,1,2,3,4,5,6,7,8,9,10,11,12};
-    //private final int[] ROOM_POS = {7,6,5,4,3,2,1,0,8,9,10,11,12};
 
 
     int nDistributionPanelType = Version.DISTRIBUTION_MODEL.OTHER;

+ 3 - 3
WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/screen/screen_heating/HeatingV2PopupScreen.java

@@ -121,8 +121,8 @@ public class HeatingV2PopupScreen extends WpadScreen {
     private int mCurrentRoomIndex = 0;
     private int mCurrentOriginRoomIndex = 0;
 
-    //private final int[] ROOM_POS = {0,1,2,3,4,5,6,7,8,9,10,11,12};
-    private final int[] ROOM_POS = {7,6,5,4,3,2,1,0,8,9,10,11,12};
+    private final int[] ROOM_POS = {0,1,2,3,4,5,6,7,8,9,10,11,12};
+    //private final int[] ROOM_POS = {7,6,5,4,3,2,1,0,8,9,10,11,12};
 
     private class Data {
         private HeatingV2API.Data heatingV2;
@@ -231,7 +231,7 @@ public class HeatingV2PopupScreen extends WpadScreen {
         if (intent != null) {
             // 시작할 룸인덱스
             int RoomIndex = intent.getIntExtra("ROOM_INDEX", -1);
-            if (RoomIndex > 0) {
+            if (RoomIndex >= 0) {
                 mCurrentOriginRoomIndex = RoomIndex;
                 mCurrentRoomIndex = ROOM_POS[RoomIndex];
             }

+ 58 - 46
WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/screen/screen_multi/HeatingV2PopupTestScreen.java

@@ -192,7 +192,7 @@ public class HeatingV2PopupTestScreen extends WpadScreen {
             String dataSeq = heatingData.getData_seq();
             String[] strDataSeq = dataSeq.split("_");
             for(int i=0;i<strDataSeq.length;i++){
-                ROOM_POS[i] = Integer.valueOf(strDataSeq[i]);
+                ROOM_POS[i] = Integer.valueOf(strDataSeq[i])-1;
             }
 
             DataClasses.HeatingV2.Info info = mData.heatingV2.Device.info;
@@ -234,10 +234,16 @@ public class HeatingV2PopupTestScreen extends WpadScreen {
     }
 
     private void requestMultiCommand(int kind, int reason, int position, String category, int number, int state) {
+        if (timer != null)
+            timer.cancel();
+        position = ROOM_POS[position];
         ((PopupActivity) mContext).requestMultiControl(handler, JSON.MENU.HEATING, kind, reason, position, category, number, state);
     }
 
     private void requestMultiCommand(int kind, int reason, int position, String category, int number, double state) {
+        if (timer != null)
+            timer.cancel();
+        position = ROOM_POS[position];
         ((PopupActivity) mContext).requestMultiControl(handler, JSON.MENU.HEATING, kind, reason, position, category, number, state);
     }
 
@@ -665,6 +671,9 @@ public class HeatingV2PopupTestScreen extends WpadScreen {
         Data_CheckReservation();
         Data_CheckSleep();
 
+        //if (timer != null)
+        //    timer.cancel();
+
         new Handler().postDelayed(new Runnable() {
             @Override
             public void run() {
@@ -788,8 +797,7 @@ public class HeatingV2PopupTestScreen extends WpadScreen {
             if (MoveEvent == MotionEvent.ACTION_UP) {
                 if (TargetId == ID.heatingV2Popup.tabDefault.button.ONOFF) {
                     DebugLogOutput("onTouchEvent [DefaultTab-ONOFF] BUTTON !!!");
-                    if (timer != null)
-                        timer.cancel();
+
 
                     byte ChangeMode = HeatingV2.MODE.HeatingOFF;
                     if (!Data_DriveModeConverterOnOff((byte) this.mCurrentRoomIndex))
@@ -799,12 +807,10 @@ public class HeatingV2PopupTestScreen extends WpadScreen {
                     //Sample_ControlMode((byte) this.mCurrentRoomIndex, ChangeMode);
                 } else if (TargetId == ID.heatingV2Popup.tabDefault.button.HEATING) {
                     DebugLogOutput("onTouchEvent [DefaultTab-HEATING] BUTTON !!!");
-                    if (timer != null)
-                        timer.cancel();
+
 
                     if (Data_getDriveMode((byte) mCurrentRoomIndex) != HeatingV2.MODE.HeatingON) {
-                        if (timer != null)
-                            timer.cancel();
+
                         byte ChangeMode = HeatingV2.MODE.HeatingON;
                         //난방 개별 제어.
                         requestMultiCommand(JSON.KIND.Individual, JSON.REASON.Control, this.mCurrentRoomIndex, "set_mode", 0, ChangeMode);
@@ -812,34 +818,29 @@ public class HeatingV2PopupTestScreen extends WpadScreen {
                     }
                 } else if (TargetId == ID.heatingV2Popup.tabDefault.button.RESERVATION) {
                     DebugLogOutput("onTouchEvent [DefaultTab-RESERVATION] BUTTON !!!");
-                    if (timer != null)
-                        timer.cancel();
+
 
                     if (Data_getDriveMode((byte) mCurrentRoomIndex) != HeatingV2.MODE.Reservation) {
                         byte ChangeMode = HeatingV2.MODE.Reservation;
-                        if (timer != null)
-                            timer.cancel();
+
                         //난방 개별 제어.
                         requestMultiCommand(JSON.KIND.Individual, JSON.REASON.Control, this.mCurrentRoomIndex, "set_mode", 0, ChangeMode);
                         //Sample_ControlMode((byte) this.mCurrentRoomIndex, ChangeMode);
                     }
                 } else if (TargetId == ID.heatingV2Popup.tabDefault.button.SLEEP) {
                     DebugLogOutput("onTouchEvent [DefaultTab-SLEEP] BUTTON !!!");
-                    if (timer != null)
-                        timer.cancel();
+
 
                     if (Data_getDriveMode((byte) mCurrentRoomIndex) != HeatingV2.MODE.Sleep) {
                         byte ChangeMode = HeatingV2.MODE.Sleep;
-                        if (timer != null)
-                            timer.cancel();
+
                         //난방 개별 제어.
                         requestMultiCommand(JSON.KIND.Individual, JSON.REASON.Control, this.mCurrentRoomIndex, "set_mode", 0, ChangeMode);
                         //Sample_ControlMode((byte) this.mCurrentRoomIndex, ChangeMode);
                     }
                 } else if (TargetId == ID.heatingV2Popup.tabDefault.button.OUTING) {
                     DebugLogOutput("onTouchEvent [DefaultTab-OUTING] BUTTON !!!");
-                    if (timer != null)
-                        timer.cancel();
+
 
                     if (Data_getDriveMode((byte) mCurrentRoomIndex) != HeatingV2.MODE.Outing) {
                         byte ChangeMode = HeatingV2.MODE.Outing;
@@ -850,8 +851,7 @@ public class HeatingV2PopupTestScreen extends WpadScreen {
                 } else if (TargetId == ID.heatingV2Popup.tabDefault.button.TEMP_UP) {
                     DebugLogOutput("onTouchEvent [DefaultTab-TEMP_UP(short)] BUTTON !!!");
                     //Sound().Play(SND.effect.TOUCH_LATCHED);
-                    if (timer != null)
-                        timer.cancel();
+
 
                     Data_TempUpDn(true);
 
@@ -862,8 +862,7 @@ public class HeatingV2PopupTestScreen extends WpadScreen {
                 } else if (TargetId == ID.heatingV2Popup.tabDefault.button.TEMP_DN) {
                     DebugLogOutput("onTouchEvent [DefaultTab-TEMP_DN(short)] BUTTON !!!");
                     //Sound().Play(SND.effect.TOUCH_LATCHED);
-                    if (timer != null)
-                        timer.cancel();
+
 
                     Data_TempUpDn(false);
 
@@ -876,8 +875,7 @@ public class HeatingV2PopupTestScreen extends WpadScreen {
                 if (TargetId == ID.heatingV2Popup.tabDefault.button.TEMP_UP) {
                     DebugLogOutput("onTouchEvent [DefaultTab-TEMP_UP(long)] BUTTON !!!");
                     Sound().Play(SND.effect.TOUCH_LATCHED);
-                    if (timer != null)
-                        timer.cancel();
+
 
                     Data_TempUpDn(true);
 
@@ -889,8 +887,7 @@ public class HeatingV2PopupTestScreen extends WpadScreen {
                 } else if (TargetId == ID.heatingV2Popup.tabDefault.button.TEMP_DN) {
                     DebugLogOutput("onTouchEvent [DefaultTab-TEMP_DN(long)] BUTTON !!!");
                     Sound().Play(SND.effect.TOUCH_LATCHED);
-                    if (timer != null)
-                        timer.cancel();
+
 
                     Data_TempUpDn(false);
 
@@ -920,10 +917,12 @@ public class HeatingV2PopupTestScreen extends WpadScreen {
 
                     int base = 0;
                     if (mData.AmPm) base = 12;
-                    boolean OnOff = mData.heatingV2.Device.Room[mCurrentRoomIndex].Reservation.getSchedule(index + base);
+                    byte pos = (byte) ROOM_POS[mCurrentRoomIndex];
+
+                    boolean OnOff = mData.heatingV2.Device.Room[pos].Reservation.getSchedule(index + base);
                     if (OnOff) OnOff = false;
                     else OnOff = true;
-                    mData.heatingV2.Device.Room[mCurrentRoomIndex].Reservation.setSchedule(index + base, OnOff);
+                    mData.heatingV2.Device.Room[pos].Reservation.setSchedule(index + base, OnOff);
                     Draw_TimeBtn(index, OnOff);
 
                     mData.ChangeReservation = true;
@@ -937,20 +936,20 @@ public class HeatingV2PopupTestScreen extends WpadScreen {
                 if (TargetId == ID.heatingV2Popup.tabSleep.button.TIME_LEFT) {
                     DebugLogOutput("onTouchEvent [Sleep-TIME_LEFT] BUTTON !!!");
                     Sound().Play(SND.effect.TOUCH_LATCHED);
-                    if (timer != null)
-                        timer.cancel();
+                    byte pos = (byte) ROOM_POS[mCurrentRoomIndex];
+
 
-                    mData.heatingV2.Device.Room[mCurrentRoomIndex].Sleep.setTimeDecrease();
+                    mData.heatingV2.Device.Room[pos].Sleep.setTimeDecrease();
                     drawUpdate((byte) mCurrentRoomIndex);
                     mData.ChangeSleep = true;
                     mData.ChangeSleepTime = true;
                 } else if (TargetId == ID.heatingV2Popup.tabSleep.button.TIME_RIGHT) {
                     DebugLogOutput("onTouchEvent [Sleep-TIME_RIGHT] BUTTON !!!");
                     Sound().Play(SND.effect.TOUCH_LATCHED);
-                    if (timer != null)
-                        timer.cancel();
 
-                    mData.heatingV2.Device.Room[mCurrentRoomIndex].Sleep.setTimeIncrease();
+                    byte pos = (byte) ROOM_POS[mCurrentRoomIndex];
+
+                    mData.heatingV2.Device.Room[pos].Sleep.setTimeIncrease();
                     drawUpdate((byte) mCurrentRoomIndex);
                     mData.ChangeSleep = true;
                     mData.ChangeSleepTime = true;
@@ -958,7 +957,10 @@ public class HeatingV2PopupTestScreen extends WpadScreen {
                     DebugLogOutput("onTouchEvent [Sleep-TEMP_LEFT] BUTTON !!!");
                     Sound().Play(SND.effect.TOUCH_LATCHED);
 
-                    mData.heatingV2.Device.Room[mCurrentRoomIndex].Sleep.setTempDecrease();
+                    byte pos = (byte) ROOM_POS[mCurrentRoomIndex];
+
+
+                    mData.heatingV2.Device.Room[pos].Sleep.setTempDecrease();
                     drawUpdate((byte) mCurrentRoomIndex);
                     mData.ChangeSleep = true;
                     mData.ChangeSleepTemp = true;
@@ -966,7 +968,10 @@ public class HeatingV2PopupTestScreen extends WpadScreen {
                     DebugLogOutput("onTouchEvent [Sleep-TEMP_RIGHT] BUTTON !!!");
                     Sound().Play(SND.effect.TOUCH_LATCHED);
 
-                    mData.heatingV2.Device.Room[mCurrentRoomIndex].Sleep.setTempIncrease();
+                    byte pos = (byte) ROOM_POS[mCurrentRoomIndex];
+
+
+                    mData.heatingV2.Device.Room[pos].Sleep.setTempIncrease();
                     drawUpdate((byte) mCurrentRoomIndex);
                     mData.ChangeSleep = true;
                     mData.ChangeSleepTemp = true;
@@ -1051,7 +1056,9 @@ public class HeatingV2PopupTestScreen extends WpadScreen {
                     Background.setImageResource(R.drawable.bg_popup_heat_reserv);
                 }
 
-                HeatingV2.RoomData roomData = mData.heatingV2.Device.Room[mCurrentRoomIndex];
+                int pos = ROOM_POS[index];
+
+                HeatingV2.RoomData roomData = mData.heatingV2.Device.Room[pos];
 
                 // 오전오후
                 if (!mData.AmPm) R_AmPmBtn.setButtonFrontImage();
@@ -1070,7 +1077,9 @@ public class HeatingV2PopupTestScreen extends WpadScreen {
                     Background.setImageResource(R.drawable.bg_popup_heat_sleep);
                 }
 
-                HeatingV2.RoomData roomData = mData.heatingV2.Device.Room[mCurrentRoomIndex];
+                int pos = ROOM_POS[index];
+
+                HeatingV2.RoomData roomData = mData.heatingV2.Device.Room[pos];
 
                 // 운전시간
                 S_TimeText.setText(roomData.Sleep.getTimeStr());
@@ -1414,8 +1423,8 @@ public class HeatingV2PopupTestScreen extends WpadScreen {
     private void Device_NowTempSet() {
         if (mData.TempSetDelayedEnable) {
             mDeviceTempSetHandler.removeMessages(DEVICE_CMD_TEMP_CHANGE);
-
-            double SetTemp = mData.heatingV2.Device.Room[mCurrentRoomIndex].SetTemp;
+            int newIndex = ROOM_POS[mCurrentRoomIndex];
+            double SetTemp = mData.heatingV2.Device.Room[newIndex].SetTemp;
             Log.i(TAG, "[Device_NowTempSet] mCurrentRoomIndex : " + mCurrentRoomIndex + " , SetTemp : " + SetTemp);
             Device_ControlTemp((byte) mCurrentRoomIndex, SetTemp);
 
@@ -1438,9 +1447,8 @@ public class HeatingV2PopupTestScreen extends WpadScreen {
             try {
                 if (msg.what == DEVICE_CMD_TEMP_CHANGE) {
                     Log.i(TAG, "DEVICE_CMD_TEMP_CHANGE !!!");
-
-                    double SetTemp = mData.heatingV2.Device.Room[mCurrentRoomIndex].SetTemp;
-                    Log.i(TAG, "[mDeviceTempSetHandler] mCurrentRoomIndex : " + mCurrentRoomIndex + " , SetTemp : " + SetTemp);
+                    int newIndex = ROOM_POS[mCurrentRoomIndex];
+                    double SetTemp = mData.heatingV2.Device.Room[newIndex].SetTemp;
 
                     Device_ControlTemp((byte) mCurrentRoomIndex, SetTemp);
 
@@ -1479,7 +1487,8 @@ public class HeatingV2PopupTestScreen extends WpadScreen {
         double TempRange = 1.0;
         if (info.Support.SetTempPoint05) TempRange = 0.5;
 
-        HeatingV2.RoomData roomData = mData.heatingV2.Device.Room[mCurrentRoomIndex];
+        byte newIndex = (byte) ROOM_POS[mCurrentRoomIndex];
+        HeatingV2.RoomData roomData = mData.heatingV2.Device.Room[newIndex];
         if (UpDn) {
             // UP
             roomData.SetTemp += TempRange;
@@ -1534,10 +1543,11 @@ public class HeatingV2PopupTestScreen extends WpadScreen {
     private void Data_CheckReservation() {
         if (!mData.ChangeReservation) return;
         mData.ChangeReservation = false;
+        int newIndex = ROOM_POS[mCurrentRoomIndex];
 
         //난방 개별 제어.
         requestMultiCommand(JSON.KIND.Individual, JSON.REASON.Control, mCurrentRoomIndex, "set_reservation", 0,
-                mData.heatingV2.Device.Room[mCurrentRoomIndex].Reservation.getInt());
+                mData.heatingV2.Device.Room[newIndex].Reservation.getInt());
         //Device_SetReservation((byte) mCurrentRoomIndex,
         //        mData.heatingV2.Device.Room[mCurrentRoomIndex].Reservation.getInt());
     }
@@ -1551,12 +1561,14 @@ public class HeatingV2PopupTestScreen extends WpadScreen {
 
         byte SetTemp = 0x00;
         byte SetTime = 0x00;
+        int newIndex = ROOM_POS[mCurrentRoomIndex];
+
         if (mData.ChangeSleepTemp) {
-            SetTemp = mData.heatingV2.Device.Room[mCurrentRoomIndex].Sleep.getTemp();
+            SetTemp = mData.heatingV2.Device.Room[newIndex].Sleep.getTemp();
         }
         mData.ChangeSleepTemp = false;
         if (mData.ChangeSleepTime) {
-            SetTime = mData.heatingV2.Device.Room[mCurrentRoomIndex].Sleep.getTime();
+            SetTime = mData.heatingV2.Device.Room[newIndex].Sleep.getTime();
         }
         mData.ChangeSleepTime = false;
 

+ 8 - 7
WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/screen/screen_multi/HeatingV2TestScreen.java

@@ -340,7 +340,7 @@ public class HeatingV2TestScreen extends WpadScreen {
             String[] strDataSeq = dataSeq.split("_");
             for(int i=0;i<strDataSeq.length;i++){
                 if(strDataSeq[i]!=null) {
-                    ROOM_POS[i] = Integer.valueOf(strDataSeq[i]);
+                    ROOM_POS[i] = Integer.valueOf(strDataSeq[i])-1;
                 }
             }
 
@@ -503,6 +503,7 @@ public class HeatingV2TestScreen extends WpadScreen {
     }
 
     private void requestMultiCommand(int kind, int reason, int position, String category, int number, int state){
+        position = ROOM_POS[position];
         ((MainActivity) mContext).requestMultiControl(handler, JSON.MENU.HEATING, kind, reason, position, category, number, state);
     }
 
@@ -752,20 +753,20 @@ public class HeatingV2TestScreen extends WpadScreen {
                 }
             }
             else {
-                
+
 
                 byte pos = (byte) ROOM_POS[index];
-				
+
 				if (!checkRoomIndex(index)) return;
 
-                //HeatingV2.RoomData roomData = mData.heatingV2.Device.Room[pos];
-                HeatingV2.RoomData roomData = mData.heatingV2.Device.Room[index];
+                HeatingV2.RoomData roomData = mData.heatingV2.Device.Room[pos];
+                //HeatingV2.RoomData roomData = mData.heatingV2.Device.Room[index];
 
                 // 운전모드 표시
-                drawModeChange(pos, roomData.bValveStatus, roomData.Mode);
+                drawModeChange(index, roomData.bValveStatus, roomData.Mode);
 
                 // 현재온도 표시
-                drawCurrentTemper(pos, roomData.NowTemp);
+                drawCurrentTemper(index, roomData.NowTemp);
 
                 // 설정온도 표시
                 if (Data_DriveModeConverterOnOff(index)) drawSetTemper(index, roomData.SetTemp);

+ 17 - 2
WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/screen/screen_multi/KnxSystemAirconMainTestScreen.java

@@ -302,8 +302,8 @@ public class KnxSystemAirconMainTestScreen extends WpadScreen {
 
             String dataSeq = airconData.getData_seq();
             String[] strDataSeq = dataSeq.split("_");
-            for(int i=0;i<ROOM_POS.length;i++){
-                ROOM_POS[i] = Integer.valueOf(strDataSeq[i]);
+            for(int i=0;i<strDataSeq.length;i++){
+                ROOM_POS[i] = Integer.valueOf(strDataSeq[i])-1;
             }
 
             KnxSystemAircon.Info info = mData.systemAircon.Device.info;
@@ -627,6 +627,7 @@ public class KnxSystemAirconMainTestScreen extends WpadScreen {
                 Intent data = new Intent();
                 data.putExtra("ROOM_INDEX", index); // 타겟 룸 인덱스
                 data.putExtra("ROOM_NAME_ARRAY", mRoomNameList); // 룸 명칭 리스트
+                data.putExtra("DATA_SEQ"   , ROOM_POS);
 
                 if (OPERATION_MODE == Common.MODE_BUSINESS_SAMPLE) {
                     data.putExtra("ROOM_COUNT", mData.systemAircon.Device.info.InsideAirconCount);
@@ -752,6 +753,20 @@ public class KnxSystemAirconMainTestScreen extends WpadScreen {
         }
     }
 
+    /**
+     * 팝업종료시 데이터가 있을시 호출됨
+     */
+    @Override
+    protected void onPopupResult(Intent intent) {
+        new Handler().postDelayed(new Runnable() {
+            @Override
+            public void run() {
+                updateData();
+            }
+        }, 5000);  
+
+    }
+
     // =================================================================================================
     // [[ Draw ]] region
     // =================================================================================================

+ 26 - 13
WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/screen/screen_multi/KnxSystemAirconPopupTestScreen.java

@@ -88,6 +88,7 @@ public class KnxSystemAirconPopupTestScreen extends WpadScreen {
 
     private int OPERATION_MODE = -1;
     private int mCurrentRoomIndex = 0;
+    private int mCurrentOriginRoomIndex = 0;
     private String[] mVolumeString = new String[]{"자동", "약", "중", "강"};
     private int[] mVolumeImgID = new int[]{R.drawable.wind_p_4, R.drawable.wind_p_1, R.drawable.wind_p_2, R.drawable.wind_p_3};
     //"모드가 자동->냉방->제습->송풍->난방" 인 경우 count를 5로 한다. 현재 난방은 제거하므로 4로 한다.
@@ -103,10 +104,12 @@ public class KnxSystemAirconPopupTestScreen extends WpadScreen {
      */
 
     private void requestMultiCommand(int kind, int reason, int position, String category, int number, int state) {
+
         ((PopupActivity) mContext).requestMultiControl(handler, Common.JSON.MENU.AIRCON, kind, reason, position, category, number, state);
     }
 
     private void requestMultiCommand(int kind, int reason, int position, String category, int number, double state) {
+
         ((PopupActivity) mContext).requestMultiControl(handler, Common.JSON.MENU.AIRCON, kind, reason, position, category, number, state);
     }
 
@@ -127,7 +130,7 @@ public class KnxSystemAirconPopupTestScreen extends WpadScreen {
             String dataSeq = airconData.getData_seq();
             String[] strDataSeq = dataSeq.split("_");
             for (int i = 0; i < strDataSeq.length; i++) {
-                ROOM_POS[i] = Integer.valueOf(strDataSeq[i]);
+                ROOM_POS[i] = Integer.valueOf(strDataSeq[i])-1;
             }
 
             KnxSystemAircon.Info info = mData.systemAircon.Device.info;
@@ -238,9 +241,11 @@ public class KnxSystemAirconPopupTestScreen extends WpadScreen {
         intent.setExtrasClassLoader(AirconData.class.getClassLoader());
         if (intent != null) {
             // 시작할 룸인덱스
+            ROOM_POS = intent.getIntArrayExtra("DATA_SEQ");
             int RoomIndex = intent.getIntExtra("ROOM_INDEX", -1);
-            if (RoomIndex > 0) {
-                mCurrentRoomIndex = RoomIndex;
+            if (RoomIndex >= 0) {
+                mCurrentOriginRoomIndex = RoomIndex;
+                mCurrentRoomIndex = ROOM_POS[RoomIndex];
             }
 
             // 방명칭
@@ -383,6 +388,8 @@ public class KnxSystemAirconPopupTestScreen extends WpadScreen {
             e.printStackTrace();
         }
 
+
+
         super.onClose();
     }
 
@@ -414,22 +421,28 @@ public class KnxSystemAirconPopupTestScreen extends WpadScreen {
         if (nMoveEvent == MotionEvent.ACTION_UP) {
             if (nTargetId == ID.KNxSystemAirconPopup.button.EXIT) {
                 Sound().Play(SND.effect.TOUCH_LATCHED);
+
                 if (OPERATION_MODE == Common.MODE_BUSINESS_SAMPLE) Sample_setPopupResult();
+
+                Intent data = new Intent();
+                super.setPopupResult(data);
                 super.finish();
             } else if (nTargetId == ID.KNxSystemAirconPopup.button.ROOM_PREV) {
                 DebugLogOutput("onTouchEvent [ROOM_PREV] BUTTON !!!");
                 Sound().Play(SND.effect.TOUCH_LATCHED);
-                mCurrentRoomIndex--;
-                if (mCurrentRoomIndex < 0)
-                    mCurrentRoomIndex = (int) (mData.systemAircon.Device.info.InsideAirconCount - 1);
+                mCurrentOriginRoomIndex--;
+                if (mCurrentOriginRoomIndex < 0)
+                    mCurrentOriginRoomIndex = (int) (mData.systemAircon.Device.info.InsideAirconCount - 1);
+                mCurrentRoomIndex = ROOM_POS[mCurrentOriginRoomIndex];
                 Draw_TitleChange(mCurrentRoomIndex);
                 Draw_Update((byte) mCurrentRoomIndex);
             } else if (nTargetId == ID.KNxSystemAirconPopup.button.ROOM_NEXT) {
                 DebugLogOutput("onTouchEvent [ROOM_PREV] BUTTON !!!");
                 Sound().Play(SND.effect.TOUCH_LATCHED);
-                mCurrentRoomIndex++;
-                if (mCurrentRoomIndex >= (int) mData.systemAircon.Device.info.InsideAirconCount)
-                    mCurrentRoomIndex = 0;
+                mCurrentOriginRoomIndex++;
+                if (mCurrentOriginRoomIndex >= (int) mData.systemAircon.Device.info.InsideAirconCount)
+                    mCurrentOriginRoomIndex = 0;
+                mCurrentRoomIndex = ROOM_POS[mCurrentOriginRoomIndex];
                 Draw_TitleChange(mCurrentRoomIndex);
                 Draw_Update((byte) mCurrentRoomIndex);
             } else if (nTargetId == ID.KNxSystemAirconPopup.button.ONOFF) {
@@ -489,9 +502,9 @@ public class KnxSystemAirconPopupTestScreen extends WpadScreen {
         if ((index != Common.INDEX_ALL) && (index != (byte) mCurrentRoomIndex)) {
             return;
         }
-        int pos = ROOM_POS[index];
-        KnxSystemAircon.AirData roomData = mData.systemAircon.Device.Aircon[pos];
-        //KnxSystemAircon.AirData roomData = mData.systemAircon.Device.Aircon[mCurrentRoomIndex];
+        //int pos = ROOM_POS[index];
+        //KnxSystemAircon.AirData roomData = mData.systemAircon.Device.Aircon[pos];
+        KnxSystemAircon.AirData roomData = mData.systemAircon.Device.Aircon[mCurrentRoomIndex];
 
         // 운전모드 갱신
         //madeinLab 현재온도와 설정온도에 따라 자동으로 에어컨이 OFF로 전환되어야 하는지 확인이 필요함.
@@ -528,7 +541,7 @@ public class KnxSystemAirconPopupTestScreen extends WpadScreen {
         if (mRoomNameList == null) return;
         if (TitleText == null) return;
         if ((index < 0) || (index >= 15)) return;
-        index = ROOM_POS[index];
+        //index = ROOM_POS[index];
         TitleText.setText(mRoomNameList[index]);
     }
 

+ 5 - 4
WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/screen/screen_multi/LightKnxMainTestScreen.java

@@ -294,8 +294,8 @@ public class LightKnxMainTestScreen extends WpadScreen {
             lightData = gson.fromJson(jsonObject.toString(), LightData.class);
             String dataSeq = lightData.getData_seq();
             String[] strDataSeq = dataSeq.split("_");
-            for (int i = 0; i < ROOM_POS.length; i++) {
-                ROOM_POS[i] = Integer.valueOf(strDataSeq[i]);
+            for (int i = 0; i < strDataSeq.length; i++) {
+                ROOM_POS[i] = Integer.valueOf(strDataSeq[i])-1;
             }
             JSONArray livDataArray = jsonObject.getJSONArray("liv_data_array");
             JSONArray bedDataArray = jsonObject.getJSONArray("bed_data_array");
@@ -528,8 +528,7 @@ public class LightKnxMainTestScreen extends WpadScreen {
         // 1. Data Create
         DebugLogOutput("[Create] - Step1 : Data Create");
         OPERATION_MODE = operationMode;
-        //madeinLab for test
-        OPERATION_MODE = Common.MODE_BUSINESS_SAMPLE;
+
         mData = new Data_KnxLiv();
 
         // 2. Device API Load & Update
@@ -609,6 +608,7 @@ public class LightKnxMainTestScreen extends WpadScreen {
                 Intent data = new Intent();
                 // 타겟 룸인덱스
                 data.putExtra("ROOM_INDEX", index);
+                data.putExtra("DATA_SEQ"   , ROOM_POS);
                 // 룸명칭 리스트
                 data.putStringArrayListExtra("ROOM_NAME_ARRAY", mRoomName);
                 ((MainActivity) (getContext())).StartPopup(ID.screen.LightKnxPopupTestScreen, data);
@@ -617,6 +617,7 @@ public class LightKnxMainTestScreen extends WpadScreen {
                 if (timer != null)
                     timer.cancel();
                 int index = TargetId - ID.KnxLight.button.Light_Btn_1;
+                index = ROOM_POS[index];
                 DebugLogOutput("onTouchEvent [LIGHT_" + (index + 1) + "] BUTTON !!!");
 
                 boolean OnOff = false;

+ 8 - 7
WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/screen/screen_multi/LightKnxPopupTestScreen.java

@@ -106,14 +106,14 @@ public class LightKnxPopupTestScreen extends WpadScreen {
     public static final int min = 1;
     public int SeekBarValue = 1;
 
-    private final int[] ROOM_POS = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20};
+    private int[] ROOM_POS = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20};
 
 
     private String[] mDefaultRoomNameList = new String[]{"거실!", "거실!", "침실4", "침실1", "파우더룸", "침실2", "주방1", "침실3",
             "복도1", "욕실1", "욕실2","보조주방","욕실3","욕실4","욕실5","복도2", "현관", "신발장", "창고", "주방2", "간이주방"};
 
-    private String[] mDefaultRoomNameList_PH = new String[]{"거실!", "거실!", "침실4", "침실1", "파우더룸", "침실2", "주방1", "침실3",
-            "복도1", "욕실1", "욕실2","보조주방","욕실3","욕실4","욕실5","복도2", "현관", "신발장", "창고", "주방2", "간이주방", "임시","임시","임시","임시"};
+    private String[] mDefaultRoomNameList_PH = new String[]{"거실", "거실", "침실4", "침실1", "파우더룸", "침실2", "주방1", "침실3",
+            "복도1", "욕실1", "욕실2", "보조주방", "욕실3", "욕실4", "욕실5", "복도2", "현관", "신발장", "창고", "주방2", "간이주방", "임시", "임시", "임시", "임시"};
 
 
     /**
@@ -215,7 +215,7 @@ public class LightKnxPopupTestScreen extends WpadScreen {
             String dataSeq = lightData.getData_seq();
             String[] strDataSeq = dataSeq.split("_");
             for (int i = 0; i < strDataSeq.length; i++) {
-                ROOM_POS[i] = Integer.valueOf(strDataSeq[i]);
+                ROOM_POS[i] = Integer.valueOf(strDataSeq[i])-1;
             }
             JSONArray livDataArray = jsonObject.getJSONArray("liv_data_array");
             JSONArray bedDataArray = jsonObject.getJSONArray("bed_data_array");
@@ -455,8 +455,9 @@ public class LightKnxPopupTestScreen extends WpadScreen {
         Intent intent = super.getScreenIntent();
         if (intent != null) {
             // 시작할 룸인덱스
+            ROOM_POS = intent.getIntArrayExtra("DATA_SEQ");
             int RoomIndex = intent.getIntExtra("ROOM_INDEX", -1);
-            if (RoomIndex > 0) {
+            if (RoomIndex >= 0) {
                 mCurrentRoomIndex = ROOM_POS[RoomIndex];
                 mRoomIndex = RoomIndex;
             }
@@ -591,8 +592,8 @@ public class LightKnxPopupTestScreen extends WpadScreen {
                 DebugLogOutput("onTouchEvent [ROOMSEL_RIGHT] BUTTON !!!");
                 Sound().Play(SND.effect.TOUCH_LATCHED);
 
-                mRoomIndex--;
-                if (mRoomIndex < 0) mRoomIndex = AllEMcount - 1;
+                mRoomIndex++;
+                if (mRoomIndex >= AllEMcount) mRoomIndex = 0;
 
                 mCurrentRoomIndex = ROOM_POS[mRoomIndex];
 

+ 1 - 1
WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/screen/screen_multi/SystemAirconPopupTestScreen.java

@@ -205,7 +205,7 @@ public class SystemAirconPopupTestScreen extends WpadScreen {
         OPERATION_MODE = operationMode;
 
         //madeinLab for test
-        OPERATION_MODE = Common.MODE_BUSINESS_SAMPLE;
+        //OPERATION_MODE = Common.MODE_BUSINESS_SAMPLE;
 
         mData = new Data();
 

+ 11 - 5
WallPadMultiControlService/src/main/java/kr/co/icontrols/wallpadmulticontrolservice/DataSenderService.java

@@ -1410,7 +1410,7 @@ public class DataSenderService extends Service {
     }
 
     private JSONObject updateLight(int kind, int position) {
-        String strLight = "0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16_17_18_19_20";
+        String strLight = "1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16_17_18_19_20";
         if (mKnxData == null) {
             deviceApiLoadLight();
             return null;
@@ -1433,9 +1433,11 @@ public class DataSenderService extends Service {
 
             int strLightCount = Integer.valueOf(strLight.substring(0, strLight.indexOf(":")));
 
-            if(strLightCount==(livDataCount + bedDataCount)){
+            if(strLightCount==(1 + bedDataCount)){
                 //개수가 일치하는 경우에 적용
                 strLight = strLight.substring(strLight.indexOf(":")+1);
+            }else{
+                strLight = "1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16_17_18_19_20";
             }
         }
 
@@ -1519,7 +1521,7 @@ public class DataSenderService extends Service {
     }
 
     private JSONObject updateHeating(int kind, int pos) {
-        String strHeating = "0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16_17_18_19_20";
+        String strHeating = "1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16_17_18_19_20";
         int roomCount = mHeatingV2API.data.Device.info.RoomCount;
         WallpadDeviceSet devSet = new WallpadDeviceSet(this.getContext());
         String[] strValue = devSet.GetSettingData("UI순서");
@@ -1534,6 +1536,8 @@ public class DataSenderService extends Service {
             if(strHeatingCount==roomCount){
                 //개수가 일치하는 경우에 적용
                 strHeating = strHeating.substring(strHeating.indexOf(":")+1);
+            }else{
+                strHeating = "1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16_17_18_19_20";
             }
         }
         JSONObject jsonObject = new JSONObject();
@@ -1669,14 +1673,14 @@ public class DataSenderService extends Service {
     }
 
     private JSONObject updateKnxAircon(int kind, int pos) {
-        String strAircon = "0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16_17_18_19_20";
+        String strAircon = "1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16_17_18_19_20";
         int roomCount = mKnxSystemAirconAPI.data.Device.info.InsideAirconCount;
 
         WallpadDeviceSet devSet = new WallpadDeviceSet(this.getContext());
         String[] strValue = devSet.GetSettingData("UI순서");
         devSet.closeDB();
 
-        // 현대건설 더 펜트하우스 서버에서 설정된 UI 순서를 이용하도록 한다.
+        // 서버에서 설정된 UI 순서를 이용하도록 한다.
         if( strValue != null ) {
             strAircon = strValue[1].substring( (strValue[1].indexOf("에어컨(") + 4) , (strValue[1].indexOf("))")));
 
@@ -1685,6 +1689,8 @@ public class DataSenderService extends Service {
             if(strAirconCount==roomCount){
                 //개수가 일치하는 경우에 적용
                 strAircon = strAircon.substring(strAircon.indexOf(":")+1);
+            }else{
+                strAircon = "1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16_17_18_19_20";
             }
         }