Selaa lähdekoodia

[WallPadMain]
1. 서브 월패드 제어 처리
- 서브월패드 사용 이면서, 조명 직접 제어인경우 WallPadDevService 시작
- 조명 직접 제어의 경우 아이콘 추가

jglee 3 vuotta sitten
vanhempi
commit
d108c9de4e

+ 27 - 1
WallPadMain/src/main/java/kr/co/icontrols/wallpadmain/MainActivity.java

@@ -2402,7 +2402,33 @@ public class MainActivity extends WpadActivity {
                 startService(mIntent);
             }
     	    else {
-                Log.w(TAG, "[runDeviceService] This wallpad is sub-wallpad. not need DevService!!!");
+    	        //여기서 직접 연동이 있는지 확인이 필요
+                WallpadDeviceSet mWallpadDeviceSet = new WallpadDeviceSet(this);
+                int[] naSubWallPadLight = mWallpadDeviceSet.GetSubWpdDirect_Light();
+                mWallpadDeviceSet.closeDB();
+                if(naSubWallPadLight!=null && naSubWallPadLight.length == 2 && naSubWallPadLight[1] == WallpadDeviceSet.SUBWPD_CTR_DIRECT)
+                {
+                    ActivityManager mActivityManager = (ActivityManager)getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE);
+                    List<ActivityManager.RunningAppProcessInfo> RunningAppList = mActivityManager.getRunningAppProcesses();
+
+                    Common.DebugLog("[runDeviceService] -----> RunningAppProcessInfo : " + RunningAppList.size() + " +++ Version : " + this.getAppVersion());
+                    for (int i = 0; i < RunningAppList.size(); i++) {
+                        ActivityManager.RunningAppProcessInfo RunningAppListInfo = RunningAppList.get(i);
+                        Common.DebugLog("[runDeviceService] -----> RunningAppListInfo.processName : " + RunningAppListInfo.processName);
+
+                        if (RunningAppListInfo.processName.equals("com.artncore.deviceservice")) {
+                            Log.w(TAG, "[runDeviceService] DevService is already running");
+                            return;
+                        }
+                    }
+
+                    Log.i(TAG, "[runDeviceService] Start DevService!!");
+                    Intent mIntent = new Intent("wallpaddevservice.ServiceMain");
+                    startService(mIntent);
+                }
+                else {
+                    Log.w(TAG, "[runDeviceService] This wallpad is sub-wallpad. not need DevService!!!");
+                }
             }
 
     	} catch (RuntimeException re) {

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

@@ -42,6 +42,9 @@ public class IconManager {
     boolean bCookTopOutletEnable = false;   // 쿡탑콘센트
     int nSystemAirconEnable = WallpadDeviceSet.DO_NOT_USE;    // 시스템에어컨
     boolean bShadingEnable = false;   // 전동커튼
+    
+    //서브월패드 - 제어
+    int[] naSubWallPadLight; // 서브월패드 조명
 
     // 에너지 기기
     boolean bRemoteMeterEnable = false;   // 원격검침
@@ -189,6 +192,10 @@ public class IconManager {
             naKeyType = mWallpadDeviceSet.Get_BLESmartKey_Info();   // 출입키 종류
             bNonInternetSupportEnable = mWallpadDeviceSet.Get_NonInternetSupportUse();   // 인터넷 미지원
 
+            //서브월패드 조명
+            //서브 월패드 사용 여부 확인
+            if(mWallpadDeviceSet.getIsSubWallpad()) naSubWallPadLight = mWallpadDeviceSet.GetSubWpdDirect_Light();
+
             if (mWallpadDeviceSet != null) mWallpadDeviceSet.closeDB();
 
             mWallpadStatusData = new WallpadStatusData(mContext);
@@ -1382,6 +1389,8 @@ public class IconManager {
              *      - 이웃 : 세대 수신/발신
              *
              *  # 제어 (제어연동기능은 제주 내도동 파라곤만 적용이며, 이후 현장에는 없다. 현산/대외 모두 동일)
+             *     - 조명(멀티스위치 연동하여 사용)
+             *
              *     - 난방
              *        > 병합세대의 밸브제어기가 통합 된 경우(1개) : 난방 상태 확인, 난방 제어 기능 (On/Off, 온도설정)
              *        > 병합세대의 밸브제어기가 분리된 경우 (2개) : 메인월패드와 기능 동일 (On/Off, 온도설정, 외출설정) -> 메인월패드와 서브월패드가 각각 1개의 밸브제어기와 연동한다.
@@ -1417,6 +1426,47 @@ public class IconManager {
             mIconInfoTable.addIconInfo(ID.ICONS.MENUS.TALK_GUARD.getID(), ID.ICONS.MENUS.TALK_GUARD.getNameKR(), ID.LINKEDSCREEN.SubCall.Guard,
                     R.drawable.icon_talk_guard_normal, R.drawable.icon_talk_guard_pressed, R.drawable.icon_talk_guard_pressed, R.drawable.icon_talk_guard_pressed);
 
+            //제어
+            //조명
+            //연동 타입 확인
+            if(naSubWallPadLight!=null && naSubWallPadLight.length == 2)
+            {
+                if(naSubWallPadLight[1] == WallpadDeviceSet.SUBWPD_CTR_DIRECT)
+                {
+                    //여기다 조명 추가
+                    if (naLightEnable != null && naLightEnable[0] == WallpadDeviceSet.DO_USE) {
+                        if (naLightEnable[1] == WallpadDeviceSet.LIGHT_TYPE_LIVING) {
+                            // 거실조명 스위치
+                            mIconInfoTable.addIconInfo(ID.ICONS.MENUS.CTRL_LIGHT.getID(), ID.ICONS.MENUS.CTRL_LIGHT.getNameKR(), ID.LINKEDSCREEN.SubMenuCtrl.OutSide_livingLamp,
+                                    R.drawable.icon_ctrl_light_normal, R.drawable.icon_ctrl_light_pressed, R.drawable.icon_ctrl_light_pressed, R.drawable.icon_ctrl_light_pressed);
+                        }
+                        else if (naLightEnable[1] == WallpadDeviceSet.LIGHT_TYPE_ROOM) {
+                            // 각실조명 스위치 (멀티스위치)
+                            mIconInfoTable.addIconInfo(ID.ICONS.MENUS.CTRL_LIGHT.getID(), ID.ICONS.MENUS.CTRL_LIGHT.getNameKR(), ID.LINKEDSCREEN.SubMenuCtrl.OutSide_EachLamp,
+                                    R.drawable.icon_ctrl_light_normal, R.drawable.icon_ctrl_light_pressed, R.drawable.icon_ctrl_light_pressed, R.drawable.icon_ctrl_light_pressed);
+
+                        }
+                        else if (naLightEnable[1] == WallpadDeviceSet.LIGHT_TYPE_HDC_INTLIGHT_NORMAL) {
+                            mIconInfoTable.addIconInfo(ID.ICONS.MENUS.CTRL_LIGHT.getID(), ID.ICONS.MENUS.CTRL_LIGHT.getNameKR(), ID.LINKEDSCREEN.SubMenuCtrl.HDCLivingNEach_Lamp,
+                                    R.drawable.icon_ctrl_light_normal, R.drawable.icon_ctrl_light_pressed, R.drawable.icon_ctrl_light_pressed, R.drawable.icon_ctrl_light_pressed);
+                            //OutSide_livingLamp
+                        }
+                        else if (naLightEnable[1] == WallpadDeviceSet.LIGHT_TYPE_HDC_INTLIGHT_ADD_BATCHLIGHT) {
+                            mIconInfoTable.addIconInfo(ID.ICONS.MENUS.CTRL_LIGHT.getID(), ID.ICONS.MENUS.CTRL_LIGHT.getNameKR(), ID.LINKEDSCREEN.SubMenuCtrl.OutSide_EachLamp,
+                                    R.drawable.icon_ctrl_light_normal, R.drawable.icon_ctrl_light_pressed, R.drawable.icon_ctrl_light_pressed, R.drawable.icon_ctrl_light_pressed);
+                        }
+                        else if (naLightEnable[1] == WallpadDeviceSet.LIGHT_TYPE_HDC_INTLIGHT_ADD_BATCHLIGHT_MULTISWITCH) {
+                            // 기본형 + 에너지미터
+                            mIconInfoTable.addIconInfo(ID.ICONS.MENUS.CTRL_LIGHT.getID(), ID.ICONS.MENUS.CTRL_LIGHT.getNameKR(), ID.LINKEDSCREEN.SubMenuCtrl.HDCLivingNEnergyMeter_Lamp,
+                                    R.drawable.icon_ctrl_light_normal, R.drawable.icon_ctrl_light_pressed, R.drawable.icon_ctrl_light_pressed, R.drawable.icon_ctrl_light_pressed);
+                        }
+                        else {
+                            Log.w(TAG, "[setWallpadFunction] naLightEnable[1] is not available!! -> " + naLightEnable[1]);
+                        }
+                    }
+                }
+            }
+            
             /*
             부가 App
              */