Forráskód Böngészése

Merge branch 'master' of https://hub.hdc-smart.com/WallPad/LuxuryWPMV2

 Conflicts:
	WallPadMain/src/main/java/kr/co/icontrols/wallpadmain/screen/MAIN.java
jslee(madeinlab) 2 éve
szülő
commit
f2af79c2dd
65 módosított fájl, 342 hozzáadás és 146 törlés
  1. BIN
      10_Release/AutoPicture.apk
  2. BIN
      10_Release/LogOutputService.apk
  3. BIN
      10_Release/ManagerSetting.apk
  4. BIN
      10_Release/WallPadAddService.apk
  5. BIN
      10_Release/WallPadCall.apk
  6. BIN
      10_Release/WallPadConfig.apk
  7. BIN
      10_Release/WallPadDevService.apk
  8. BIN
      10_Release/WallPadEmergency.apk
  9. BIN
      10_Release/WallPadEnergyCtrl.apk
  10. BIN
      10_Release/WallPadGlobalButton.apk
  11. BIN
      10_Release/WallPadGlobalScreen.apk
  12. BIN
      10_Release/WallPadHomeCtrl.apk
  13. BIN
      10_Release/WallPadMain.apk
  14. BIN
      10_Release/WallPadMultiControlService.apk
  15. BIN
      10_Release/WallPadOutModeRun.apk
  16. BIN
      10_Release/WallPadSecurity.apk
  17. BIN
      AutoPicture/libs/WallPadAPI.jar
  18. 1 1
      AutoPicture/src/main/AndroidManifest.xml
  19. BIN
      LogOutputService/libs/WallPadAPI.jar
  20. BIN
      LogOutputService/libs/WallPadAPIforSVC.jar
  21. 1 1
      LogOutputService/src/main/AndroidManifest.xml
  22. BIN
      ManagerSetting/libs/WallPadAPI.jar
  23. 1 1
      ManagerSetting/src/main/AndroidManifest.xml
  24. BIN
      WallPadAPI/jar/WallPadAPI.jar
  25. BIN
      WallPadAPI/jar/WallPadAPIforSVC.jar
  26. 1 1
      WallPadAPI/src/main/java/com/artncore/commons/define.java
  27. 1 1
      WallPadAPI/src/main/java/com/artncore/wallpadapi/KnxAPI.java
  28. BIN
      WallPadAddService/libs/WallPadAPI.jar
  29. 1 1
      WallPadAddService/src/main/AndroidManifest.xml
  30. BIN
      WallPadCall/libs/WallPadAPI.jar
  31. 1 1
      WallPadCall/src/main/AndroidManifest.xml
  32. BIN
      WallPadConfig/libs/WallPadAPI.jar
  33. 1 1
      WallPadConfig/src/main/AndroidManifest.xml
  34. BIN
      WallPadDevService/libs/WallPadAPIforSVC.jar
  35. 1 1
      WallPadDevService/src/main/AndroidManifest.xml
  36. 3 0
      WallPadDevService/src/main/java/com/artncore/wallpaddevservice/DeviceInitChecker.java
  37. 0 6
      WallPadDevService/src/main/java/com/artncore/wallpaddevservice/ServiceMain.java
  38. 2 1
      WallPadDevService/src/main/java/com/artncore/wallpaddevservice/driver/CookTopFinder_Controller.java
  39. 26 8
      WallPadDevService/src/main/java/com/artncore/wallpaddevservice/driver/KNX_Controller.java
  40. BIN
      WallPadEmergency/libs/WallPadAPI.jar
  41. 1 1
      WallPadEmergency/src/main/AndroidManifest.xml
  42. BIN
      WallPadEnergyCtrl/libs/WallPadAPI.jar
  43. 1 1
      WallPadEnergyCtrl/src/main/AndroidManifest.xml
  44. BIN
      WallPadGlobalButton/libs/WallPadAPI.jar
  45. 1 1
      WallPadGlobalButton/src/main/AndroidManifest.xml
  46. BIN
      WallPadGlobalScreen/libs/WallPadAPI.jar
  47. 1 1
      WallPadGlobalScreen/src/main/AndroidManifest.xml
  48. BIN
      WallPadHomeCtrl/libs/WallPadAPI.jar
  49. 1 1
      WallPadHomeCtrl/src/main/AndroidManifest.xml
  50. 4 0
      WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/declare/ID.java
  51. 2 2
      WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/screen/screen_gas/HybridCookTopMainScreen.java
  52. 1 1
      WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/screen/screen_multi/HybridCookTopTestScreen.java
  53. 18 0
      WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/screen/screen_multi/ParkingDoorMainScreen.java
  54. BIN
      WallPadMain/libs/WallPadAPI.jar
  55. 1 1
      WallPadMain/src/main/AndroidManifest.xml
  56. 5 2
      WallPadMain/src/main/java/kr/co/icontrols/wallpadmain/MainActivity.java
  57. 54 14
      WallPadMain/src/main/java/kr/co/icontrols/wallpadmain/screen/MAIN.java
  58. 1 1
      WallPadMain/src/main/java/kr/co/icontrols/wallpadmain/util/IconManager.java
  59. 208 93
      WallPadMain/src/main/java/kr/co/icontrols/wallpadmain/util/iMapServer.java
  60. BIN
      WallPadMultiControlService/libs/WallPadAPI.jar
  61. 1 1
      WallPadMultiControlService/src/main/AndroidManifest.xml
  62. BIN
      WallPadOutmodeRun/libs/WallPadAPI.jar
  63. 1 1
      WallPadOutmodeRun/src/main/AndroidManifest.xml
  64. BIN
      WallPadSecurity/libs/WallPadAPI.jar
  65. 1 1
      WallPadSecurity/src/main/AndroidManifest.xml

BIN
10_Release/AutoPicture.apk


BIN
10_Release/LogOutputService.apk


BIN
10_Release/ManagerSetting.apk


BIN
10_Release/WallPadAddService.apk


BIN
10_Release/WallPadCall.apk


BIN
10_Release/WallPadConfig.apk


BIN
10_Release/WallPadDevService.apk


BIN
10_Release/WallPadEmergency.apk


BIN
10_Release/WallPadEnergyCtrl.apk


BIN
10_Release/WallPadGlobalButton.apk


BIN
10_Release/WallPadGlobalScreen.apk


BIN
10_Release/WallPadHomeCtrl.apk


BIN
10_Release/WallPadMain.apk


BIN
10_Release/WallPadMultiControlService.apk


BIN
10_Release/WallPadOutModeRun.apk


BIN
10_Release/WallPadSecurity.apk


BIN
AutoPicture/libs/WallPadAPI.jar


+ 1 - 1
AutoPicture/src/main/AndroidManifest.xml

@@ -2,7 +2,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="kr.co.icontrols.autopicture"
     android:versionCode="17"
-    android:versionName="2022.04.11.03">
+    android:versionName="2022.05.09.01">
 
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

BIN
LogOutputService/libs/WallPadAPI.jar


BIN
LogOutputService/libs/WallPadAPIforSVC.jar


+ 1 - 1
LogOutputService/src/main/AndroidManifest.xml

@@ -1,7 +1,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.artncore.apps.ic_wallpad.service.log"
     android:versionCode="24"
-    android:versionName="2022.04.11.03">
+    android:versionName="2022.05.09.01">
 
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

BIN
ManagerSetting/libs/WallPadAPI.jar


+ 1 - 1
ManagerSetting/src/main/AndroidManifest.xml

@@ -2,7 +2,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.artncore.managersetting"
     android:versionCode="23"
-    android:versionName="2022.05.04.99">
+    android:versionName="2022.05.09.01">
 
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

BIN
WallPadAPI/jar/WallPadAPI.jar


BIN
WallPadAPI/jar/WallPadAPIforSVC.jar


+ 1 - 1
WallPadAPI/src/main/java/com/artncore/commons/define.java

@@ -4,7 +4,7 @@ import android.os.Environment;
 
 public class define {
 	/** WallPadAPI Version 을 정의합니다. */
-	public static final String WALLPADAPI_VERSION = "2022.05.04.99";
+	public static final String WALLPADAPI_VERSION = "2022.05.09.01";
 	///////////////////////////////////////////////////////////////////////
 	// WallPadDevService 의 각 드라이버와 통신을 위한 드라이버 이름을 정의합니다.
 	///////////////////////////////////////////////////////////////////////

+ 1 - 1
WallPadAPI/src/main/java/com/artncore/wallpadapi/KnxAPI.java

@@ -1579,7 +1579,7 @@ public class KnxAPI extends WallPadDevAPI
      */
     private boolean checkDimNColorRange(byte DimNColor)
     {
-        if(DimNColor < 1 || DimNColor > 10) return false;
+        if(DimNColor < 0 || DimNColor > 10) return false;
         return true;
     }
 

BIN
WallPadAddService/libs/WallPadAPI.jar


+ 1 - 1
WallPadAddService/src/main/AndroidManifest.xml

@@ -1,7 +1,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="kr.co.icontrols.wallpadaddservice"
     android:versionCode="17"
-    android:versionName="2022.04.11.05">
+    android:versionName="2022.05.09.01">
 
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

BIN
WallPadCall/libs/WallPadAPI.jar


+ 1 - 1
WallPadCall/src/main/AndroidManifest.xml

@@ -1,7 +1,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="kr.co.icontrols.wallpadcall"
     android:versionCode="17"
-    android:versionName="2022.04.11.03">
+    android:versionName="2022.05.09.01">
 
     <!--android:sharedUserId="android.uid.system"-->
     <!--<uses-sdk-->

BIN
WallPadConfig/libs/WallPadAPI.jar


+ 1 - 1
WallPadConfig/src/main/AndroidManifest.xml

@@ -1,7 +1,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="kr.co.icontrols.wallpadconfig"
     android:versionCode="01"
-    android:versionName="2022.04.11.03">
+    android:versionName="2022.05.09.01">
 
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

BIN
WallPadDevService/libs/WallPadAPIforSVC.jar


+ 1 - 1
WallPadDevService/src/main/AndroidManifest.xml

@@ -1,7 +1,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.artncore.deviceservice"
     android:versionCode="1"
-    android:versionName="2022.05.04.99">
+    android:versionName="2022.05.09.01">
 
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

+ 3 - 0
WallPadDevService/src/main/java/com/artncore/wallpaddevservice/DeviceInitChecker.java

@@ -153,6 +153,9 @@ public class DeviceInitChecker
 	 */
 	private void SendBR()
 	{
+		// 제어기기가 없으면(서브월패드) BR이 너무 빨리 전송되어 WallPadMain에서 BR를 등록하기 전에 완료가 되어
+		// 해당 BR을 수신하지 못하는 문제로 완료BR을 3초 지연하여 전송한다.
+		try { Thread.sleep(3000); } catch (Exception e) { e.printStackTrace(); };
 		mSendInitBR = true;
 		Intent notiIntent = new Intent();
 		notiIntent.setAction(define.NOTIFY_ACNAME);

+ 0 - 6
WallPadDevService/src/main/java/com/artncore/wallpaddevservice/ServiceMain.java

@@ -745,12 +745,6 @@ public class ServiceMain extends Service {
 					// CookTop_Driver
 					///////////////////////////////////////////
 
-					// 0. 로딩여부 판단
-					WallpadDeviceSet devset = new WallpadDeviceSet(getApplicationContext());
-					boolean cookTopConcent = devset.Get_CookTopConcent_Use();
-					devset.closeDB();
-					if (!cookTopConcent) return;
-
 					// 0. 로딩여부 판단
 					// 1. Class 생성
 					cooktop_Controller = new Cooktop_Controller();

+ 2 - 1
WallPadDevService/src/main/java/com/artncore/wallpaddevservice/driver/CookTopFinder_Controller.java

@@ -120,7 +120,8 @@ public class CookTopFinder_Controller extends DeviceManager
     public CookTopFinder_Controller()
     {
         /* 로그 초기상태 */
-        log_sw = false;
+//        log_sw = true;
+//        SerialLog = true;
 
         /* 통신성공률 변수 초기화 */
         super.CommDataGeneration(1);

+ 26 - 8
WallPadDevService/src/main/java/com/artncore/wallpaddevservice/driver/KNX_Controller.java

@@ -2135,7 +2135,12 @@ public class KNX_Controller extends DeviceManager {
             return "FAIL;" + APIErrorCode.DEVICEISNOTREADY;
         }
 
-        CtrDevFormat ctrDevFormat = GetCtrDevParamParsing(StrArg, 5);
+        CtrDevFormat ctrDevFormat;
+        if(StrArg.contains("SetEntireLivlight")){
+            ctrDevFormat = GetCtrDevParamParsing(StrArg, 13);
+        } else {
+            ctrDevFormat = GetCtrDevParamParsing(StrArg, 5);
+        }
         if (ctrDevFormat.ret != APIErrorCode.C_SUCCESS) {
             Log.w(TAG, "[NoSinkCtrl] GetCtrDevParamParsing Error (ret:" + ctrDevFormat.ret + ")");
             return "FAIL;" + APIErrorCode.DEFAULT_PARSING_ERR;
@@ -2207,8 +2212,13 @@ public class KNX_Controller extends DeviceManager {
             Log.w(TAG, "[do_ctrEmm] - Not Yet !!!");
             return SHMem.retVal = "FAIL;" + APIErrorCode.DEVICEISNOTREADY;
         }
-
-        CtrDevFormat ctrDevFormat = GetCtrDevParamParsing(SHMem.StrArg, 5);
+        CtrDevFormat ctrDevFormat;
+        if(SHMem.StrArg.contains("SetEntireLivlight")){
+            ctrDevFormat = GetCtrDevParamParsing(SHMem.StrArg, 13);
+        } else {
+            ctrDevFormat = GetCtrDevParamParsing(SHMem.StrArg, 5);
+        }
+        //CtrDevFormat ctrDevFormat = GetCtrDevParamParsing(SHMem.StrArg, 5);
         if (ctrDevFormat.ret != APIErrorCode.C_SUCCESS) {
             Log.w(TAG, "[do_ctrEmm] GetCtrDevParamParsing Error (ret:" + ctrDevFormat.ret + ")");
             return SHMem.retVal = "FAIL;" + APIErrorCode.DEFAULT_PARSING_ERR;
@@ -2432,8 +2442,8 @@ public class KNX_Controller extends DeviceManager {
                 byte hLightCnt = ahCtrlData[nIndex];
 
                 int nExpectedLength = (hLightCnt * 3) + 1;
-                if (hLightCnt != nExpectedLength) {
-                    Log.w(TAG, "[do_ctrEmm] SetEntireLivlight -> wrong param: nExpectedLength [" + nExpectedLength + "], hLightCnt [" + hLightCnt + "]");
+                if (ahCtrlData.length != nExpectedLength) {
+                    Log.w(TAG, "[do_ctrEmm] SetEntireLivlight -> wrong param: nExpectedLength [" + nExpectedLength + "], ahCtrlData.length [" + ahCtrlData.length + "]");
                     return SHMem.retVal = "FAIL;" + APIErrorCode.INVALIDPARAMETER;
                 }
 
@@ -4577,9 +4587,17 @@ public class KNX_Controller extends DeviceManager {
             int nReqDataLength = 4 + (nLightCnt * 3);
             byte[] ReqData = new byte[nReqDataLength];
 
-            ReqData[0] = EM_FIX_INDEX_LIVING;   // 거실EM ID
-            ReqData[1] = (byte) 0x00;   // 미사용 필드
-            System.arraycopy(ahCtrlData, 0, ReqData, 2, ahCtrlData.length);   // 조명 상태값 배열 복사
+            int index = 0;
+
+            ReqData[index++] = EM_FIX_INDEX_LIVING;   // 거실EM ID
+            ReqData[index++] = (byte) 0x00;   // 미사용 필드
+            ReqData[index++] = ahCtrlData[0];   // 조명 개수
+            for(int i=0; i<nLightCnt;i++){
+                ReqData[index++] = ahCtrlData[i+1];
+                ReqData[index++] = ahCtrlData[i+5];
+                ReqData[index++] = ahCtrlData[i+9];
+            }
+            //System.arraycopy(ahCtrlData, 0, ReqData, 2, ahCtrlData.length);   // 조명 상태값 배열 복사
             ReqData[ReqData.length - 1] = (byte) 0x00;   // 콘센트 개수
 
             // 3. 데이터 전송 및 응답

BIN
WallPadEmergency/libs/WallPadAPI.jar


+ 1 - 1
WallPadEmergency/src/main/AndroidManifest.xml

@@ -1,7 +1,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="kr.co.icontrols.wallpademergency"
     android:versionCode="01"
-    android:versionName="2022.04.11.03">
+    android:versionName="2022.05.09.01">
 
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

BIN
WallPadEnergyCtrl/libs/WallPadAPI.jar


+ 1 - 1
WallPadEnergyCtrl/src/main/AndroidManifest.xml

@@ -1,7 +1,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="kr.co.icontrols.wallpadenergyctrl"
     android:versionCode="01"
-    android:versionName="2022.04.20.01">
+    android:versionName="2022.05.09.01">
 
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

BIN
WallPadGlobalButton/libs/WallPadAPI.jar


+ 1 - 1
WallPadGlobalButton/src/main/AndroidManifest.xml

@@ -2,7 +2,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="kr.co.icontrols.wallpadglobalbutton"
     android:versionCode="17"
-    android:versionName="2022.04.11.03">
+    android:versionName="2022.05.09.01">
 
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

BIN
WallPadGlobalScreen/libs/WallPadAPI.jar


+ 1 - 1
WallPadGlobalScreen/src/main/AndroidManifest.xml

@@ -1,7 +1,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="kr.co.icontrols.wallpadglobalscreen"
     android:versionCode="17"
-    android:versionName="2022.04.11.03">
+    android:versionName="2022.05.09.01">
 
     <uses-feature android:name="android.hardware.camera" />
 

BIN
WallPadHomeCtrl/libs/WallPadAPI.jar


+ 1 - 1
WallPadHomeCtrl/src/main/AndroidManifest.xml

@@ -1,7 +1,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="kr.co.icontrols.wallpadhomectrl"
     android:versionCode="17"
-    android:versionName="2022.04.27.01">
+    android:versionName="2022.05.09.01">
 
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

+ 4 - 0
WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/declare/ID.java

@@ -3422,6 +3422,10 @@ public final class ID
 			public final static int OPEN_FIRST			= BASE + 200;
 			public final static int OPEN_SECOND			= BASE + 201;
 		}
+		public static final class text {
+			public final static int TITLE_PARRKING_DOOR_01 = BASE + 200;
+			public final static int TITLE_PARRKING_DOOR_02 = BASE + 201;
+		}
 	}
 
 

+ 2 - 2
WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/screen/screen_gas/HybridCookTopMainScreen.java

@@ -219,7 +219,7 @@ public class HybridCookTopMainScreen extends WpadScreen {
             if(isGas)
             {
                 //가스
-                TXT_TITLE.setText("가스브");
+                TXT_TITLE.setText("가스브");
             }
             else
             {
@@ -687,7 +687,7 @@ public class HybridCookTopMainScreen extends WpadScreen {
                 roomView[i] = new HybridCookTopMainScreen.RoomView(left, top, i, isGas);
                 if(isGas)
                 {
-                    astrRoomTitle[i] ="가스브";
+                    astrRoomTitle[i] ="가스브";
                 }
                 else
                 {

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

@@ -234,7 +234,7 @@ public class HybridCookTopTestScreen extends WpadScreen {
             if(isGas)
             {
                 //가스
-                TXT_TITLE.setText("가스브");
+                TXT_TITLE.setText("가스브");
             }
             else
             {

+ 18 - 0
WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/screen/screen_multi/ParkingDoorMainScreen.java

@@ -3,10 +3,12 @@ package kr.co.icontrols.wallpadhomectrl.screen.screen_multi;
 
 import android.annotation.SuppressLint;
 import android.content.Context;
+import android.graphics.Color;
 import android.os.CountDownTimer;
 import android.os.Handler;
 import android.os.SystemClock;
 import android.util.Log;
+import android.view.Gravity;
 import android.view.MotionEvent;
 import android.view.View;
 import android.widget.RelativeLayout;
@@ -32,6 +34,7 @@ import kr.co.icontrols.wallpadsupport.WpadImageView;
 import kr.co.icontrols.wallpadsupport.WpadImageView.TOUCH_KIND;
 import kr.co.icontrols.wallpadsupport.WpadScreen;
 import kr.co.icontrols.wallpadsupport.WpadSound.SND;
+import kr.co.icontrols.wallpadsupport.WpadTextView;
 
 
 /**
@@ -60,6 +63,9 @@ public class ParkingDoorMainScreen extends WpadScreen {
     // [Button]
     private WpadImageView OpenFirstBtn, OpenSecondBtn;
 
+    // [Text]
+    public WpadTextView TXT_TITLE_PARRKING_DOOR_01, TXT_TITLE_PARRKING_DOOR_02;          // 차량 자동대문 명칭
+
     // [Variables]
     private int OPERATION_MODE = -1;
     private DLockAPI.Data mData = null;
@@ -114,14 +120,26 @@ public class ParkingDoorMainScreen extends WpadScreen {
 
         GarageFirstImage = new WpadImageView(context, TOUCH_KIND.NONE, 544, 547, R.drawable.bg_garage_1, 0, ID.ParkingDoorMainScreenID.image.GARAGE_FIRST_IMG);
         ViewRegistration(layout, GarageFirstImage, Common.ImgPosion.GetX(93), Common.ImgPosion.GetY(169));
+
         GarageSecondImage = new WpadImageView(context, TOUCH_KIND.NONE, 544, 547, R.drawable.bg_garage_2, 0, ID.ParkingDoorMainScreenID.image.GARAGE_SECOND_IMG);
         ViewRegistration(layout, GarageSecondImage, Common.ImgPosion.GetX(640), Common.ImgPosion.GetY(169));
 
+        TXT_TITLE_PARRKING_DOOR_01 = new WpadTextView(context, false, 500, 70, Gravity.CENTER, Color.LTGRAY, Common.fontsize._30, true, ID.ParkingDoorMainScreenID.text.TITLE_PARRKING_DOOR_01);
+        ViewRegistration(layout, TXT_TITLE_PARRKING_DOOR_01, Common.ImgPosion.GetX(115), Common.ImgPosion.GetY(180));
+        TXT_TITLE_PARRKING_DOOR_01.setText("지상 자동 대문");
+//        TXT_TITLE_PARRKING_DOOR_01.setBackgroundColor(Color.RED);
+
+        TXT_TITLE_PARRKING_DOOR_02 = new WpadTextView(context, false, 500, 70, Gravity.CENTER, Color.LTGRAY, Common.fontsize._30, true, ID.ParkingDoorMainScreenID.text.TITLE_PARRKING_DOOR_02);
+        ViewRegistration(layout, TXT_TITLE_PARRKING_DOOR_02, Common.ImgPosion.GetX(664), Common.ImgPosion.GetY(180));
+        TXT_TITLE_PARRKING_DOOR_02.setText("지하 자동 대문");
+//        TXT_TITLE_PARRKING_DOOR_02.setBackgroundColor(Color.RED);
+
         // 4. Button Create
         DebugLogOutput("[Create] - Step4 : Button Create");
         OpenFirstBtn = new WpadImageView(context, TOUCH_KIND.BUTTON, 271, 56, R.drawable.btn_garage_open_normal, R.drawable.btn_garage_open_pressed, ID.ParkingDoorMainScreenID.button.OPEN_FIRST);
         ViewRegistration(layout, OpenFirstBtn, Common.ImgPosion.GetX(231), Common.ImgPosion.GetY(619));
         OpenFirstBtn.setTouchDelayMs(Common.BTN_DELAY_DEVCTRL);
+
         OpenSecondBtn = new WpadImageView(context, TOUCH_KIND.BUTTON, 271, 56, R.drawable.btn_garage_open_normal, R.drawable.btn_garage_open_pressed, ID.ParkingDoorMainScreenID.button.OPEN_SECOND);
         ViewRegistration(layout, OpenSecondBtn, Common.ImgPosion.GetX(778), Common.ImgPosion.GetY(619));
         OpenSecondBtn.setTouchDelayMs(Common.BTN_DELAY_DEVCTRL);

BIN
WallPadMain/libs/WallPadAPI.jar


+ 1 - 1
WallPadMain/src/main/AndroidManifest.xml

@@ -1,7 +1,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="kr.co.icontrols.wallpadmain"
     android:versionCode="17"
-    android:versionName="2022.05.04.99">
+    android:versionName="2022.05.09.01">
 
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

+ 5 - 2
WallPadMain/src/main/java/kr/co/icontrols/wallpadmain/MainActivity.java

@@ -2883,6 +2883,7 @@ public class MainActivity extends WpadActivity {
 
                     case define.NOTIFY_DEVICE_INIT_COMPLETION:
                         Log.i(TAG, "[mWallPadNotifyBR] NOTIFY_DEVICE_INIT_COMPLETION: bLCDKeeperUsage [" + bLCDKeeperUsage +"]");
+                        Common.setDeviceServeiceLoadComplite();
                         if (bLCDKeeperUsage) registerLCDKeeper();
                         if (getStrangerRecordingManagerSetting() && getStrangerRecordingUserSetting()) {
                             registerNoticeStrangerRecord();
@@ -3844,6 +3845,7 @@ public class MainActivity extends WpadActivity {
     
 	private void registerBroadcastReceiver() {
 		try {
+		    Log.i(TAG, "[registerBroadcastReceiver] start");
 			IntentFilter mIntentFilter = new IntentFilter();
             mIntentFilter.addAction("WALLPAD_ALERT");
 			registerReceiver(mWallPadAlertBR, mIntentFilter);
@@ -3854,10 +3856,11 @@ public class MainActivity extends WpadActivity {
             mIntentFilter.addAction(Common.BR_MAIN_NOTI.ACNAME_MAIN_NOTI); // ACC 꺼와 구분되는 Noti 추가
             mIntentFilter.addAction(BR_MAIN_LIVE_CHECKER.ACNAME_MAIN_LIVE_CHECKER);
             mIntentFilter.addAction(Common.BR_ACK_WALLPADCALL_LIVE);
+            mIntentFilter.addAction(define.NOTIFY_ACNAME);
 			registerReceiver(mWallPadNotifyBR, mIntentFilter);
 
             registerMainActivityBR();
-
+            Log.i(TAG, "[registerBroadcastReceiver] end");
 		} catch (RuntimeException re) {
             LogUtil.errorLogInfo("", TAG, re);
         }
@@ -11212,7 +11215,7 @@ public class MainActivity extends WpadActivity {
     }
 
     String myIP = "NONE";
-    int ho = 0;
+    public static int ho = 0;
 
     public void requestMultiControl(Handler handler, int menu, int reason, int position) {
         if(position!=ho) {

+ 54 - 14
WallPadMain/src/main/java/kr/co/icontrols/wallpadmain/screen/MAIN.java

@@ -2338,13 +2338,25 @@ public class MAIN extends WpadScreen {
 
     private int ctrlLightSceneDay(int nOnOff) {
         int floor = MainActivity.ho;
-        int ret = -1;
         int retAll = 0;
-        int dimming = 0;
-        int onoff = 1;
+        byte[] dimming = new byte[4];
+        byte[] onoff = new byte[4];
+
         try {
 
+            for (int i = 0; i < 4; i++) {
+                if (mDimming[(floor - 1)][i] == 0) {
+                    onoff[i] = 2;
+                    dimming[i] = 0;
+                } else {
+                    dimming[i] = (byte) mDimming[(floor - 1)][i];
+                    onoff[i] = (byte) nOnOff;
+                }
+            }
+
             if (mKnxData.ControlType == false) {
+                retAll = KnxApi.SetEntireLivlight((byte)4, onoff, dimming, new byte[]{0X00, 0X00, 0X00, 0X00});
+/*
                 for (int i = 0; i < 4; i++) {
                     if (mDimming[(floor - 1)][i] == 0) {
                         dimming = 0;
@@ -2353,9 +2365,12 @@ public class MAIN extends WpadScreen {
                         dimming = mDimming[(floor - 1)][i];
                         onoff = nOnOff;
                     }
-                    ret = KnxApi.SetLightDimming((byte) i, (byte) dimming, (byte) onoff);
+                    //ret = KnxApi.SetLightDimming((byte) i, (byte) dimming, (byte) onoff);
+                    retAll = KnxApi.SetEntireLivlight((byte)4, new byte[]{0X01, 0X01, 0X01, 0X01}, new byte[]{0X00, 0X00, 0X00, 0X00}, new byte[]{0X00, 0X00, 0X00, 0X00});
                     retAll = retAll + ret;
                 }
+
+ */
             }
             if (retAll >= 0) Sound().Play(SND.effect.TOUCH_LATCHED);
             else Sound().Play(SND.effect.TOUCH_UNLATCHED);
@@ -2370,13 +2385,24 @@ public class MAIN extends WpadScreen {
 
     private int ctrlLightSceneEvening(int nOnOff) {
         int floor = MainActivity.ho;
-        int ret = -1;
         int retAll = 0;
-        int dimming = 0;
-        int onoff = 1;
+        byte[] dimming = new byte[4];
+        byte[] onoff = new byte[4];
         try {
 
             if (mKnxData.ControlType == false) {
+                for (int i = 0; i < 4; i++) {
+                    if (mDimming[(floor*2 - 1)][i] == 0) {
+                        onoff[i] = 2;
+                        dimming[i] = 0;
+                    } else {
+                        dimming[i] = (byte) mDimming[(floor*2 - 1)][i];
+                        onoff[i] = (byte) nOnOff;
+                    }
+                }
+                retAll = KnxApi.SetEntireLivlight((byte)4, onoff, dimming, new byte[]{0X00, 0X00, 0X00, 0X00});
+                /*
+
                 for (int i = 0; i < 4; i++) {
                     if (mDimming[(floor * 2 - 1)][i] == 0) {
                         dimming = 0;
@@ -2385,9 +2411,11 @@ public class MAIN extends WpadScreen {
                         dimming = mDimming[(floor * 2 - 1)][i];
                         onoff = nOnOff;
                     }
-                    ret = KnxApi.SetLightDimming((byte) i, (byte) dimming, (byte) onoff);
+                    //ret = KnxApi.SetLightDimming((byte) i, (byte) dimming, (byte) onoff);
                     retAll = retAll + ret;
                 }
+
+                 */
             }
             if (retAll >= 0) Sound().Play(SND.effect.TOUCH_LATCHED);
             else Sound().Play(SND.effect.TOUCH_UNLATCHED);
@@ -2402,15 +2430,24 @@ public class MAIN extends WpadScreen {
 
     private int ctrlLightSceneRelaxing(int nOnOff) {
         int floor = MainActivity.ho;
-        int ret = -1;
         int retAll = 0;
-        int dimming = 1;
-        int onoff = 1;
+        byte[] dimming = new byte[4];
+        byte[] onoff = new byte[4];
 
         try {
 
             if (mKnxData.ControlType == false) {
-
+                for (int i = 0; i < 4; i++) {
+                    if (mDimming[(floor*3 - 1)][i] == 0) {
+                        onoff[i] = 2;
+                        dimming[i] = 0;
+                    } else {
+                        dimming[i] = (byte) mDimming[(floor*3 - 1)][i];
+                        onoff[i] = (byte) nOnOff;
+                    }
+                }
+                retAll = KnxApi.SetEntireLivlight((byte)4, onoff, dimming, new byte[]{0X00, 0X00, 0X00, 0X00});
+/*
                 for (int i = 0; i < 4; i++) {
                     if (mDimming[(floor * 3 - 1)][i] == 0) {
                         dimming = 0;
@@ -2419,9 +2456,11 @@ public class MAIN extends WpadScreen {
                         dimming = mDimming[(floor * 3 - 1)][i];
                         onoff = nOnOff;
                     }
-                    ret = KnxApi.SetLightDimming((byte) i, (byte) dimming, (byte) onoff);
+                    //ret = KnxApi.SetLightDimming((byte) i, (byte) dimming, (byte) onoff);
                     retAll = retAll + ret;
                 }
+
+ */
             }
             if (retAll >= 0) Sound().Play(SND.effect.TOUCH_LATCHED);
             else Sound().Play(SND.effect.TOUCH_UNLATCHED);
@@ -3002,7 +3041,8 @@ public class MAIN extends WpadScreen {
                             break;
                         }
                     }
-                    else if (mDimming[(floor*3 - 1)][i] != mKnxData.LivingRoom_EnergyMeter.Data.LivingLight[i].Data.Dimming) {
+                    else if (!mKnxData.LivingRoom_EnergyMeter.Data.LivingLight[i].Data.OnOff||
+                            mDimming[(floor*3 - 1)][i] != mKnxData.LivingRoom_EnergyMeter.Data.LivingLight[i].Data.Dimming) {
                         bSceneRelaxing = false;
                         BTN_LIGHT_SCENE_RELAXING.setButtonFrontImage();
                         Log.w(TAG, "[updateLightSceneBTN] relaxing dimming fail");

+ 1 - 1
WallPadMain/src/main/java/kr/co/icontrols/wallpadmain/util/IconManager.java

@@ -178,7 +178,7 @@ public class IconManager {
             nThermostatEnable = mWallpadDeviceSet.Get_Temper_Info();   // 난방제어
             naVentilEnable = mWallpadDeviceSet.Get_Ventil_Info();   // 환기 0 : 사용안함, 1 : 사용함
             //가스는 항상 사용하도록 한다.
-            //nGasValveEnable = mWallpadDeviceSet.Get_GAS_Info();   // 가스밸브 제어
+            nGasValveEnable = mWallpadDeviceSet.Get_GAS_Info();   // 가스밸브 제어
             bElecCooktopEnable = mWallpadDeviceSet.Get_ElectricRange_Use();   // 전기레인지
             nMoodLightEnable = mWallpadDeviceSet.GetDeviceSetted("무드등");
             nAirQualityEnable = mWallpadDeviceSet.GetDeviceSetted("센서AP");   // 공기질 센서

+ 208 - 93
WallPadMain/src/main/java/kr/co/icontrols/wallpadmain/util/iMapServer.java

@@ -215,6 +215,31 @@ public class iMapServer extends Service {
         return mSound;
     }
 
+    public enum ROOMNAME_TYPE {
+        LIGHT( 0 , "조명"),
+        CONCENT( 1 , "콘센트"),
+        HEATING( 2 , "난방"),
+        SYSTEMAIRCON( 3 , "시스템에어컨"),
+        PURITY( 4 , "청정환기"),
+        SHADING( 5 , "차광");
+
+        private int mIdx;
+        private String mContent;
+
+        private ROOMNAME_TYPE( int  idx, final String txt ) {
+            this.mIdx = idx;
+            this.mContent = txt;
+        }
+
+        public String getContents() {
+            return this.mContent;
+        }
+
+        public int getIndex() {
+            return this.mIdx;
+        }
+    }
+
     /**
      * 신형 단지서버 사용 유무
      */
@@ -4250,7 +4275,96 @@ public class iMapServer extends Service {
                                             mIOInterface.setCameraConfigure(Common.WALLPAD_CAM_AHD_FRONT_FLIP);
                                         }
                                     }
-                                } else {
+                                }
+                                else if (devname.equalsIgnoreCase("방명칭편집_조명") || devname.equalsIgnoreCase("방명칭편집_콘센트") || devname.equalsIgnoreCase("방명칭편집_난방")
+                                        || devname.equalsIgnoreCase("방명칭편집_시스템에어컨") || devname.equalsIgnoreCase("방명칭편집_청정환기") || devname.equalsIgnoreCase("방명칭편집_차광")) {
+                                    // 예) 기기: 방명칭편집_조명, 설정값:방명칭편집(조명)명칭(조명1:조명2:조명3:조명4:조명5:조명6:조명7:조명8:조명9:조명10)
+                                    Log.e(TAG, "[ProcSetsetup] devname [" + devname +"], devval [" + devval +"]");
+                                    String devInfo = devval;
+                                    if (devInfo != null) {
+                                        devInfo = devInfo.replace('(', '_');
+                                        devInfo = devInfo.replace(':', '_');
+                                        devInfo = devInfo.replace(')', '_');
+                                        Log.d(TAG, "[ProcSetsetup] devInfo = " + devInfo);
+
+                                        String[] astrDetailInfo = devInfo.split("_");
+                                        Log.e(TAG, "[ProcSetsetup] astrDetailInfo = " + Arrays.toString(astrDetailInfo));
+                                        String strType = astrDetailInfo[3];
+                                        String[] astrRoomName = Arrays.copyOfRange(astrDetailInfo, 5, astrDetailInfo.length);
+                                        Log.e(TAG, "[ProcSetsetup] astrRoomName = " + Arrays.toString(astrRoomName));
+
+                                        String strDeviceTypeDB = null;
+                                        if (strType.equals(ROOMNAME_TYPE.LIGHT.getContents())) {
+                                            roomNameList_light = new ArrayList<>();
+                                            for (int k = 0; k < astrRoomName.length; k++) {
+                                                if (!astrRoomName[k].equals("")) {
+                                                    roomNameList_light.add(astrRoomName[k]);
+                                                }
+                                            }
+
+                                            strDeviceTypeDB = define.ROOM_NAME_LIGHT;
+                                        }
+                                        else if (strType.equals(ROOMNAME_TYPE.CONCENT.getContents())) {
+                                            roomNameList_concent = new ArrayList<>();
+                                            for (int k = 0; k < astrRoomName.length; k++) {
+                                                if (!astrRoomName[k].equals("")) {
+                                                    roomNameList_concent.add(astrRoomName[k]);
+                                                }
+                                            }
+
+                                            strDeviceTypeDB = define.ROOM_NAME_CONCENT;
+                                        }
+                                        else if (strType.equals(ROOMNAME_TYPE.HEATING.getContents())) {
+                                            roomNameList_heating = new ArrayList<>();
+                                            for (int k = 0; k < astrRoomName.length; k++) {
+                                                if (!astrRoomName[k].equals("")) {
+                                                    roomNameList_heating.add(astrRoomName[k]);
+                                                }
+                                            }
+
+                                            strDeviceTypeDB = define.ROOM_NAME_HEATING;
+                                        }
+                                        else if (strType.equals(ROOMNAME_TYPE.SYSTEMAIRCON.getContents())) {
+                                            roomNameList_systemaircon = new ArrayList<>();
+                                            for (int k = 0; k < astrRoomName.length; k++) {
+                                                if (!astrRoomName[k].equals("")) {
+                                                    roomNameList_systemaircon.add(astrRoomName[k]);
+                                                }
+                                            }
+
+                                            strDeviceTypeDB = define.ROOM_NAME_SYSTEMAIRCON;
+                                        }
+                                        else if (strType.equals(ROOMNAME_TYPE.PURITY.getContents())) {
+                                            roomNameList_purity = new ArrayList<>();
+                                            for (int k = 6; k < astrRoomName.length; k++) {
+                                                if (!astrRoomName[k].equals("")) {
+                                                    roomNameList_purity.add(astrRoomName[k]);
+                                                }
+                                            }
+
+                                            strDeviceTypeDB = define.ROOM_NAME_PURITY;
+                                        }
+                                        else if (strType.equals(ROOMNAME_TYPE.SHADING.getContents())) {
+                                            roomNameList_shading = new ArrayList<>();
+                                            for (int k = 0; k < astrRoomName.length; k++) {
+                                                if (!astrRoomName[k].equals("")) {
+                                                    roomNameList_shading.add(astrRoomName[k]);
+                                                }
+                                            }
+
+                                            strDeviceTypeDB = define.ROOM_NAME_SHADING;
+                                        }
+
+                                        if (strDeviceTypeDB != null) {
+                                            AfterTransactionTodoListData afterTransactionTodoListData = new AfterTransactionTodoListData(devname, 0, strDeviceTypeDB);
+                                            AfterTransactionTodoList.offer(afterTransactionTodoListData);
+                                        }
+                                    }
+                                    else {
+                                        Log.w(TAG, "[ProcSetsetup] devInfo is null!!");
+                                    }
+                                }
+                                else {
                                     Log.w(TAG, "[ProcSetsetup] Not available devname -> " + devname);
                                 }
                             }
@@ -4362,112 +4476,112 @@ public class iMapServer extends Service {
                                     wdb.closeDB();
                                 }
                             }
-                            else if (afterTransactionTodoListData.Title.equals("방명칭편집_조명") || afterTransactionTodoListData.Title.equals("방명칭편집_콘센트") || afterTransactionTodoListData.Title.equals("방명칭편집_난방")
-                                    || afterTransactionTodoListData.Title.equals("방명칭편집_시스템에어컨") || afterTransactionTodoListData.Title.equals("방명칭편집_청정환기") || afterTransactionTodoListData.Title.equals("방명칭편집_차광")) {
-                                String deviceType = afterTransactionTodoListData.ValueString;
-                                Log.d(TAG, "[ProcSetsetup] deviceType [" + deviceType + "]");
-                                WallpadStatusData wdb = new WallpadStatusData(getApplicationContext());
-                                if (wdb != null) {
-                                    if (deviceType.equals(define.ROOM_NAME_LIGHT)) {
-                                        if (!wdb.GetRoomNameChangeByUser(deviceType)) {
-                                            Log.w(TAG, "[ProcSetsetup] Change LIGHT roomname by Manager!!! deviceType [" + deviceType + "]");
-                                            if (roomNameList_light != null) {
-                                                Log.d(TAG, "[ProcSetsetup] roomNameList_light = " + roomNameList_light.toString()); // debugging
-
-                                                String[] roomNameArr = roomNameList_light.toArray(new String[roomNameList_light.size()]);
-                                                wdb.SetDevRoomNameList(roomNameArr, deviceType);
-                                                wdb.SetRoomNameChangeByManager(1, deviceType);
-                                                if (roomNameList_light != null) roomNameList_light = null;
-                                            }
-                                        }
-                                        else {
-                                            Log.w(TAG, "[ProcSetsetup] Do not change roomname cause change by User!!! deviceType [" + deviceType + "]");
+                        }
+                        else if (afterTransactionTodoListData.Title.equals("방명칭편집_조명") || afterTransactionTodoListData.Title.equals("방명칭편집_콘센트") || afterTransactionTodoListData.Title.equals("방명칭편집_난방")
+                                || afterTransactionTodoListData.Title.equals("방명칭편집_시스템에어컨") || afterTransactionTodoListData.Title.equals("방명칭편집_청정환기") || afterTransactionTodoListData.Title.equals("방명칭편집_차광")) {
+                            String deviceType = afterTransactionTodoListData.ValueString;
+                            Log.d(TAG, "[ProcSetsetup] deviceType [" + deviceType + "]");
+                            WallpadStatusData wdb = new WallpadStatusData(getApplicationContext());
+                            if (wdb != null) {
+                                if (deviceType.equals(define.ROOM_NAME_LIGHT)) {
+                                    if (!wdb.GetRoomNameChangeByUser(deviceType)) {
+                                        Log.w(TAG, "[ProcSetsetup] Change LIGHT roomname by Manager!!! deviceType [" + deviceType + "]");
+                                        if (roomNameList_light != null) {
+                                            Log.d(TAG, "[ProcSetsetup] roomNameList_light = " + roomNameList_light.toString()); // debugging
+
+                                            String[] roomNameArr = roomNameList_light.toArray(new String[roomNameList_light.size()]);
+                                            wdb.SetDevRoomNameList(roomNameArr, deviceType);
+                                            wdb.SetRoomNameChangeByManager(1, deviceType);
+                                            if (roomNameList_light != null) roomNameList_light = null;
                                         }
                                     }
-                                    else if (deviceType.equals(define.ROOM_NAME_CONCENT)) {
-                                        if (!wdb.GetRoomNameChangeByUser(deviceType)) {
-                                            Log.w(TAG, "[ProcSetsetup] Change CONCENT roomname by Manager!!! deviceType [" + deviceType + "]");
-                                            if (roomNameList_concent != null) {
-                                                Log.d(TAG, "[ProcSetsetup] roomNameList_concent = " + roomNameList_concent.toString()); // debugging
-
-                                                String[] roomNameArr = roomNameList_concent.toArray(new String[roomNameList_concent.size()]);
-                                                wdb.SetDevRoomNameList(roomNameArr, deviceType);
-                                                wdb.SetRoomNameChangeByManager(1, deviceType);
-                                                if (roomNameList_concent != null) roomNameList_concent = null;
-                                            }
-                                        }
-                                        else {
-                                            Log.w(TAG, "[ProcSetsetup] Do not change roomname cause change by User!!! deviceType [" + deviceType + "]");
-                                        }
+                                    else {
+                                        Log.w(TAG, "[ProcSetsetup] Do not change roomname cause change by User!!! deviceType [" + deviceType + "]");
                                     }
-                                    else if (deviceType.equals(define.ROOM_NAME_HEATING)) {
-                                        if (!wdb.GetRoomNameChangeByUser(deviceType)) {
-                                            Log.w(TAG, "[ProcSetsetup] Change HEATING roomname by Manager!!! deviceType [" + deviceType + "]");
-                                            if (roomNameList_heating != null) {
-                                                Log.d(TAG, "[ProcSetsetup] roomNameList_heating = " + roomNameList_heating.toString()); // debugging
-
-                                                String[] roomNameArr = roomNameList_heating.toArray(new String[roomNameList_heating.size()]);
-                                                wdb.SetDevRoomNameList(roomNameArr, deviceType);
-                                                wdb.SetRoomNameChangeByManager(1, deviceType);
-                                                if (roomNameList_heating != null) roomNameList_heating = null;
-                                            }
-                                        }
-                                        else {
-                                            Log.w(TAG, "[ProcSetsetup] Do not change roomname cause change by User!!! deviceType [" + deviceType + "]");
+                                }
+                                else if (deviceType.equals(define.ROOM_NAME_CONCENT)) {
+                                    if (!wdb.GetRoomNameChangeByUser(deviceType)) {
+                                        Log.w(TAG, "[ProcSetsetup] Change CONCENT roomname by Manager!!! deviceType [" + deviceType + "]");
+                                        if (roomNameList_concent != null) {
+                                            Log.d(TAG, "[ProcSetsetup] roomNameList_concent = " + roomNameList_concent.toString()); // debugging
+
+                                            String[] roomNameArr = roomNameList_concent.toArray(new String[roomNameList_concent.size()]);
+                                            wdb.SetDevRoomNameList(roomNameArr, deviceType);
+                                            wdb.SetRoomNameChangeByManager(1, deviceType);
+                                            if (roomNameList_concent != null) roomNameList_concent = null;
                                         }
                                     }
-                                    else if (deviceType.equals(define.ROOM_NAME_SYSTEMAIRCON)) {
-                                        if (!wdb.GetRoomNameChangeByUser(deviceType)) {
-                                            Log.w(TAG, "[ProcSetsetup] Change SYSTEM AIRCON roomname by Manager!!! deviceType [" + deviceType + "]");
-                                            if (roomNameList_systemaircon != null) {
-                                                Log.d(TAG, "[ProcSetsetup] roomNameList_systemaircon = " + roomNameList_systemaircon.toString()); // debugging
-
-                                                String[] roomNameArr = roomNameList_systemaircon.toArray(new String[roomNameList_systemaircon.size()]);
-                                                wdb.SetDevRoomNameList(roomNameArr, deviceType);
-                                                wdb.SetRoomNameChangeByManager(1, deviceType);
-                                                if (roomNameList_systemaircon != null) roomNameList_systemaircon = null;
-                                            }
+                                    else {
+                                        Log.w(TAG, "[ProcSetsetup] Do not change roomname cause change by User!!! deviceType [" + deviceType + "]");
+                                    }
+                                }
+                                else if (deviceType.equals(define.ROOM_NAME_HEATING)) {
+                                    if (!wdb.GetRoomNameChangeByUser(deviceType)) {
+                                        Log.w(TAG, "[ProcSetsetup] Change HEATING roomname by Manager!!! deviceType [" + deviceType + "]");
+                                        if (roomNameList_heating != null) {
+                                            Log.d(TAG, "[ProcSetsetup] roomNameList_heating = " + roomNameList_heating.toString()); // debugging
+
+                                            String[] roomNameArr = roomNameList_heating.toArray(new String[roomNameList_heating.size()]);
+                                            wdb.SetDevRoomNameList(roomNameArr, deviceType);
+                                            wdb.SetRoomNameChangeByManager(1, deviceType);
+                                            if (roomNameList_heating != null) roomNameList_heating = null;
                                         }
-                                        else {
-                                            Log.w(TAG, "[ProcSetsetup] Do not change roomname cause change by User!!! deviceType [" + deviceType + "]");
+                                    }
+                                    else {
+                                        Log.w(TAG, "[ProcSetsetup] Do not change roomname cause change by User!!! deviceType [" + deviceType + "]");
+                                    }
+                                }
+                                else if (deviceType.equals(define.ROOM_NAME_SYSTEMAIRCON)) {
+                                    if (!wdb.GetRoomNameChangeByUser(deviceType)) {
+                                        Log.w(TAG, "[ProcSetsetup] Change SYSTEM AIRCON roomname by Manager!!! deviceType [" + deviceType + "]");
+                                        if (roomNameList_systemaircon != null) {
+                                            Log.d(TAG, "[ProcSetsetup] roomNameList_systemaircon = " + roomNameList_systemaircon.toString()); // debugging
+
+                                            String[] roomNameArr = roomNameList_systemaircon.toArray(new String[roomNameList_systemaircon.size()]);
+                                            wdb.SetDevRoomNameList(roomNameArr, deviceType);
+                                            wdb.SetRoomNameChangeByManager(1, deviceType);
+                                            if (roomNameList_systemaircon != null) roomNameList_systemaircon = null;
                                         }
                                     }
+                                    else {
+                                        Log.w(TAG, "[ProcSetsetup] Do not change roomname cause change by User!!! deviceType [" + deviceType + "]");
+                                    }
+                                }
 
-                                    else if (deviceType.equals(define.ROOM_NAME_PURITY)) {
-                                        if (!wdb.GetRoomNameChangeByUser(deviceType)) {
-                                            Log.w(TAG, "[ProcSetsetup] Change PURITY roomname by Manager!!! deviceType [" + deviceType + "]");
-                                            if (roomNameList_purity != null) {
-                                                Log.d(TAG, "[ProcSetsetup] roomNameList_purity = " + roomNameList_purity.toString()); // debugging
+                                else if (deviceType.equals(define.ROOM_NAME_PURITY)) {
+                                    if (!wdb.GetRoomNameChangeByUser(deviceType)) {
+                                        Log.w(TAG, "[ProcSetsetup] Change PURITY roomname by Manager!!! deviceType [" + deviceType + "]");
+                                        if (roomNameList_purity != null) {
+                                            Log.d(TAG, "[ProcSetsetup] roomNameList_purity = " + roomNameList_purity.toString()); // debugging
 
-                                                String[] roomNameArr = roomNameList_purity.toArray(new String[roomNameList_purity.size()]);
-                                                wdb.SetDevRoomNameList(roomNameArr, deviceType);
-                                                wdb.SetRoomNameChangeByManager(1, deviceType);
-                                                if (roomNameList_purity != null) roomNameList_purity = null;
-                                            }
-                                        }
-                                        else {
-                                            Log.w(TAG, "[ProcSetsetup] Do not change roomname cause change by User!!! deviceType [" + deviceType + "]");
+                                            String[] roomNameArr = roomNameList_purity.toArray(new String[roomNameList_purity.size()]);
+                                            wdb.SetDevRoomNameList(roomNameArr, deviceType);
+                                            wdb.SetRoomNameChangeByManager(1, deviceType);
+                                            if (roomNameList_purity != null) roomNameList_purity = null;
                                         }
                                     }
-                                    else if (deviceType.equals(define.ROOM_NAME_SHADING)) {
-                                        if (!wdb.GetRoomNameChangeByUser(deviceType)) {
-                                            Log.w(TAG, "[ProcSetsetup] Change SHADING roomname by Manager!!! deviceType [" + deviceType + "]");
-                                            if (roomNameList_shading != null) {
-                                                Log.d(TAG, "[ProcSetsetup] roomNameList_shading = " + roomNameList_shading.toString()); // debugging
-
-                                                String[] roomNameArr = roomNameList_shading.toArray(new String[roomNameList_shading.size()]);
-                                                wdb.SetDevRoomNameList(roomNameArr, deviceType);
-                                                wdb.SetRoomNameChangeByManager(1, deviceType);
-                                                if (roomNameList_shading != null) roomNameList_shading = null;
-                                            }
-                                        }
-                                        else {
-                                            Log.w(TAG, "[ProcSetsetup] Do not change roomname cause change by User!!! deviceType [" + deviceType + "]");
+                                    else {
+                                        Log.w(TAG, "[ProcSetsetup] Do not change roomname cause change by User!!! deviceType [" + deviceType + "]");
+                                    }
+                                }
+                                else if (deviceType.equals(define.ROOM_NAME_SHADING)) {
+                                    if (!wdb.GetRoomNameChangeByUser(deviceType)) {
+                                        Log.w(TAG, "[ProcSetsetup] Change SHADING roomname by Manager!!! deviceType [" + deviceType + "]");
+                                        if (roomNameList_shading != null) {
+                                            Log.d(TAG, "[ProcSetsetup] roomNameList_shading = " + roomNameList_shading.toString()); // debugging
+
+                                            String[] roomNameArr = roomNameList_shading.toArray(new String[roomNameList_shading.size()]);
+                                            wdb.SetDevRoomNameList(roomNameArr, deviceType);
+                                            wdb.SetRoomNameChangeByManager(1, deviceType);
+                                            if (roomNameList_shading != null) roomNameList_shading = null;
                                         }
                                     }
+                                    else {
+                                        Log.w(TAG, "[ProcSetsetup] Do not change roomname cause change by User!!! deviceType [" + deviceType + "]");
+                                    }
                                 }
-                                wdb.closeDB();
                             }
+                            wdb.closeDB();
                         }
                     }
                 }
@@ -8468,6 +8582,7 @@ public class iMapServer extends Service {
             lightcmd = null;
             return retStr;
         } catch (RuntimeException re) {
+            Log.e(TAG, "[Exception] iCMDProcSDPSmartLightControl(Document ele)");
             LogUtil.errorLogInfo("", TAG, re);
             return null;
         } catch (Exception e) {
@@ -8550,7 +8665,7 @@ public class iMapServer extends Service {
             int emCount = LivingLightCount + BadLightCount;
             //mData.MasterController.Info.Light_SwitchCount
 
-            Log.w(TAG, "[iCMDProcChumDamSmartLightControl] LivingLightCount [" + LivingLightCount + "], mSdbAPI.data.BadConcentCount [" + BadLightCount + "], nTotalLightCnt [" + totalLightCount +"]");
+            Log.w(TAG, "[iCMDProcChumDamSmartLightControl] LivingLightCount [" + LivingLightCount + "], BadLightCount [" + BadLightCount + "], SwitchCount [" + SwitchCount +"],  nTotalLightCnt [" + totalLightCount +"]");
 
             if (trimquotation(lightcmd.actionTXT).equalsIgnoreCase("status"))
             {
@@ -12720,7 +12835,7 @@ public class iMapServer extends Service {
                     try {
                         modbusClient.Connect();
                         modbusClient.WriteSingleCoil(address, true);
-                        Thread.sleep(600);
+                        Thread.sleep(2000);
                         modbusClient.WriteSingleCoil(address, false);
                         modbusClient.Disconnect();
                     } catch (IOException | ModbusException | InterruptedException e) {

BIN
WallPadMultiControlService/libs/WallPadAPI.jar


+ 1 - 1
WallPadMultiControlService/src/main/AndroidManifest.xml

@@ -2,7 +2,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="kr.co.icontrols.wallpadmulticontrolservice"
     android:versionCode="17"
-    android:versionName="2022.04.11.03">
+    android:versionName="2022.05.09.01">
 
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

BIN
WallPadOutmodeRun/libs/WallPadAPI.jar


+ 1 - 1
WallPadOutmodeRun/src/main/AndroidManifest.xml

@@ -2,7 +2,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="kr.co.icontrols.wallpadoutmoderun"
     android:versionCode="1"
-    android:versionName="2022.04.11.03">
+    android:versionName="2022.05.09.01">
 
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

BIN
WallPadSecurity/libs/WallPadAPI.jar


+ 1 - 1
WallPadSecurity/src/main/AndroidManifest.xml

@@ -1,7 +1,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="kr.co.icontrols.wallpadsecurity"
     android:versionCode="1"
-    android:versionName="2022.04.11.03">
+    android:versionName="2022.05.09.01">
 
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />