Bläddra i källkod

방명칭 수정 작업

jslee(madeinlab) 3 år sedan
förälder
incheckning
870a2c4fe6

BIN
WallPadAPI/jar/WallPadAPI.jar


+ 147 - 1
WallPadAPI/src/main/java/com/artncore/WallPadDataMgr/WallpadDeviceSet.java

@@ -1083,7 +1083,7 @@ public class WallpadDeviceSet extends wallpaddbmgr {
 
 	/**
 	 * 분전반 종류를 가져온다.<br>
-	 * @return int 타입 - 0(사용안함), 1(스마트분전반(), 2(KNX분전반)
+	 * @return int 타입 - 0(사용안함), 1(스마트분전반(), 2(KNX분전반), 3(DC배전V2)
 	 */
 	public int Get_DistributionPannelType_Info() {
 		String[] GetData = GetSettingData("분전반");
@@ -4499,6 +4499,79 @@ public class WallpadDeviceSet extends wallpaddbmgr {
 	}
 
 
+	/**
+	 * 차광제어기에서 GroupID를 지원안하는 경우, 강제 아이디를 지정하기 위해 사용
+	 * 방1부터 ~방8
+	 * @return
+	 */
+	public String Get_ShaindgController_SplitRoomNumber()
+	{
+		String[] GetData = GetSettingData(define.DEVICE_ID_SHADING_SPLIT);
+		//기본값이 false이기 때문에 이렇게 설정
+		String returnData = "1,2,3,4,5,6,7,8";
+		try
+		{
+			if (GetData == null) return returnData;
+			if (GetData[1]!=null && !GetData[1].equals(""))
+			{
+				String[] _value = GetData[1].split("ID");
+				if(_value.length==2)
+				{
+					String _temp = _value[1].replace("(", "");
+					_temp = _temp.replace(")", "");
+					returnData = _temp;
+				}
+			}
+
+			return returnData;
+		}
+		catch (RuntimeException re) {
+			LogUtil.errorLogInfo("", TAG, re);
+			return  returnData;
+		} catch (Exception e)
+		{
+			LogUtil.errorLogInfo("", TAG, e);
+			return  returnData;
+		}
+	}
+
+
+	/**
+	 * 차광제어기 사용 여부
+	 * @return
+	 */
+	public int Get_ShadingUse()
+	{
+		String[] GetData = GetSettingData("차광제어기");
+
+		int returnData = 0;
+		try
+		{
+			if (GetData == null) return returnData;
+
+			if (GetData[1].indexOf("사용함") > 0) returnData = 1;
+			else
+			{
+				returnData = 0;
+				return returnData;
+			}
+
+			return returnData;
+		}
+		catch (RuntimeException re) {
+			LogUtil.errorLogInfo("", TAG, re);
+			returnData = 1;
+			return  returnData;
+		}
+		catch (Exception e) {
+			//e.printStackTrace();
+			LogUtil.errorLogInfo("", TAG, e);
+			returnData = 1;
+			return  returnData;
+		}
+	}
+
+
 	/**
 	 * 카카오 옵션을 사용하는 경우, 카카오 UI를 Show/Hide 설정
 	 * @return
@@ -5033,5 +5106,78 @@ public class WallpadDeviceSet extends wallpaddbmgr {
 		}
 	}
 
+	/**
+	 * 환기타이머 사용 유무
+	 **/
+	public boolean Get_VentiTimerUse() {
+		String[] GetData = GetSettingData(define.DEVICE_ID_VENTI_TIMER_USE);
+
+		boolean returnData = true; // DB에 값 없는 경우 사용함으로 반환(초기값)
+		try {
+			if (GetData == null) return returnData;
+
+			if (GetData[1].indexOf("사용함") > 0) returnData = true;
+			else returnData = false;
+
+			return returnData;
+		} catch (RuntimeException re) {
+			LogUtil.errorLogInfo("", TAG, re);
+			returnData = false;
+			return  returnData;
+		} catch (Exception e) {
+			LogUtil.errorLogInfo("", TAG, e);
+			returnData = false;
+			return  returnData;
+		}
+	}
+
+	/**
+	 * 환기예약설정 사용 유무
+	 **/
+	public boolean Get_VentiReservationUse() {
+		String[] GetData = GetSettingData(define.DEVICE_ID_VENTI_RESERVATION_USE);
+
+		boolean returnData = true; // DB에 값 없는 경우 사용함으로 반환(초기값)
+		try {
+			if (GetData == null) return returnData;
+
+			if (GetData[1].indexOf("사용함") > 0) returnData = true;
+			else returnData = false;
+
+			return returnData;
+		} catch (RuntimeException re) {
+			LogUtil.errorLogInfo("", TAG, re);
+			returnData = false;
+			return  returnData;
+		} catch (Exception e) {
+			LogUtil.errorLogInfo("", TAG, e);
+			returnData = false;
+			return  returnData;
+		}
+	}
+
+	/**
+	 * 방명칭수정 사용 유무
+	 **/
+	public boolean Get_RoomNameEditUse() {
+		String[] GetData = GetSettingData(define.DEVICE_ID_ROOMNAME_EDIT_USE);
+
+		boolean returnData = false; // DB에 값 없는 경우 사용안함으로 반환(초기값)
+		try {
+			if (GetData == null) return returnData;
+
+			if (GetData[1].indexOf("사용함") > 0) returnData = true;
+			else returnData = false;
+
+			return returnData;
+		} catch (RuntimeException re) {
+			LogUtil.errorLogInfo("", TAG, re);
+			return returnData;
+		} catch (Exception e) {
+			LogUtil.errorLogInfo("", TAG, e);
+			return returnData;
+		}
+	}
+
 
 }

+ 354 - 89
WallPadAPI/src/main/java/com/artncore/WallPadDataMgr/WallpadStatusData.java

@@ -833,6 +833,8 @@ public class WallpadStatusData extends wallpaddbmgr {
 	public static final String SOUND_OUTPUT_CALL_ALARM = "CALL_ALARM_SOUND";
 	public static final String SOUND_OUTPUT_BAND_LOCATION 	= "BAND_LOCATION_ALARM_SOUND";
 
+	public static final String HSPLATFORM_CERTIF_POPUP_RUN = "HSPLATFORM_CERTIF_POPUP_RUN";
+
 	/** 스마트키 감지시 알람 (사운드 및 토스트메시지) */
 	public static final String SMARTKEY_DETECTION_ALARM  = "SMARTKEY_DETECTION_ALARM";
 
@@ -1125,37 +1127,65 @@ public class WallpadStatusData extends wallpaddbmgr {
 
 	//////////////////////////////////////icontrols End/////////////////////////////////////////////////////
 	/////////////////////////////////////////////////////////////////////////////////////////////////////////
-	public static final String   DEVICE_ROOM               = "DEVICE_ROOM";
-	public static final String   DEVICE_ROOM_LIGHT         = "DEVICE_ROOM_LIGHT";
-	public static final String   DEVICE_ROOM_DEFAULT       = "1:3:4:5:6:7"; //GetEachRoomNameInfo == false 일 시
-	public static final String   DEVICE_ROOM_DEFAULT_LIGHT = "1:15:3:4:5:6"; //GetEachRoomNameInfo == true 일 시 조명&콘센트 방 명칭
-
-
+	public static final String DEVICE_ROOM               = "DEVICE_ROOM";
+	public static final String DEVICE_ROOM_LIGHT         = "DEVICE_ROOM_LIGHT";
+	public static final String DEVICE_ROOM_DEFAULT       = "1:3:4:5:6:7"; //GetEachRoomNameInfo == false 일 시
+	public static final String DEVICE_ROOM_DEFAULT_LIGHT = "1:15:3:4:5:6"; //GetEachRoomNameInfo == true 일 시 조명&콘센트 방 명칭
 	public static final String[] RoomTitle = {"거실","안방","방1","방2","방3","방4","방5","방6","방7","방8","작은방","작은방1","작은방2","서재","주방","큰방","공부방","알파룸",
 			"할아버지","할머니","아버지","어머니","아들","큰아들","작은아들","딸","큰딸","작은딸","막내","침실1","침실2","침실3","침실4","침실5","침실6"};
 
+	// 기기 명칭 편집
+	public static final String ROOM_NAME_DEFAULT_NORMAL = "거실:주방:침실1:침실2:침실3:침실4:침실5:침실6:침실7:침실8:침실9:침실10:침실11:침실12:침실13:침실14:침실15:침실16:침실17:침실18:침실19:침실20";
+	public static final String ROOM_NAME_DEFAULT_HEATING = "거실:침실1:침실2:침실3:침실4:침실5:침실6:침실7:침실8:침실9:침실10:침실11:침실12:침실13:침실14:침실15:침실16:침실17:침실18:침실19:침실20";
+	public static final String ROOM_NAME_DEFAULT_AIRCON = "에어컨1:에어컨2:에어컨3:에어컨4:에어컨5:에어컨6:에어컨7:에어컨8:에어컨9:에어컨10:에어컨11:에어컨12:에어컨13:에어컨14:에어컨15:에어컨16:에어컨17:에어컨18:에어컨19:에어컨20";
+	public static final String ROOM_NAME_DEFAULT_PURITY = "청정환기1:청정환기2:청정환기3:청정환기4:청정환기5:청정환기6:청정환기7:청정환기8:청정환기9:청정환기10:청정환기11:청정환기12:청정환기13:청정환기14:청정환기15:청정환기16:청정환기17:청정환기18:청정환기19:청정환기20";
+	public static final String ROOM_NAME_DEFAULT_SHADING = "차광1:차광2:차광3:차광4:차광5:차광6:차광7:차광8:차광9:차광10:차광11:차광12:차광13:차광14:차광15:차광16:차광17:차광18:차광19:차광20";
+	public static final String DEVICE_ROOM_NAME_CHANGE_DEFAULT_LIGHT = "0";
+	public static final String DEVICE_ROOM_NAME_CHANGE_DEFAULT_CONCENT = "0";
+	public static final String DEVICE_ROOM_NAME_CHANGE_DEFAULT_HEATING = "0";
+	public static final String DEVICE_ROOM_NAME_CHANGE_DEFAULT_SYSTEMAIRCON = "0";
+	public static final String DEVICE_ROOM_NAME_CHANGE_DEFAULT_PURITY = "0";
+	public static final String DEVICE_ROOM_NAME_CHANGE_DEFAULT_SHADING = "0";
+
+	public static final String ROOM_NAME_LIGHT = "ROOM_NAME_LIGHT";
+	public static final String ROOM_NAME_CONCENT = "ROOM_NAME_CONCENT";
+	public static final String ROOM_NAME_HEATING = "ROOM_NAME_HEATING";
+	public static final String ROOM_NAME_SYSTEMAIRCON = "ROOM_NAME_SYSTEMAIRCON";
+	public static final String ROOM_NAME_PURITY = "ROOM_NAME_PURITY";
+	public static final String ROOM_NAME_SHADING = "ROOM_NAME_SHADING";
+
+	public static final String ROOM_NAME_CHANGE_LIGHT_USER = "ROOM_NAME_CHANGE_LIGHT_USER";
+	public static final String ROOM_NAME_CHANGE_CONCENT_USER = "ROOM_NAME_CHANGE_CONCENT_USER";
+	public static final String ROOM_NAME_CHANGE_HEATING_USER = "ROOM_NAME_CHANGE_HEATING_USER";
+	public static final String ROOM_NAME_CHANGE_SYSTEMAIRCON_USER = "ROOM_NAME_CHANGE_SYSTEMAIRCON_USER";
+	public static final String ROOM_NAME_CHANGE_PURITY_USER = "ROOM_NAME_CHANGE_PURITY_USER";
+	public static final String ROOM_NAME_CHANGE_SHADING_USER = "ROOM_NAME_CHANGE_SHADING_USER";
+
+	public static final String ROOM_NAME_CHANGE_LIGHT_MANAGER = "ROOM_NAME_CHANGE_LIGHT_MANAGER";
+	public static final String ROOM_NAME_CHANGE_CONCENT_MANAGER = "ROOM_NAME_CHANGE_CONCENT_MANAGER";
+	public static final String ROOM_NAME_CHANGE_HEATING_MANAGER = "ROOM_NAME_CHANGE_HEATING_MANAGER";
+	public static final String ROOM_NAME_CHANGE_SYSTEMAIRCON_MANAGER = "ROOM_NAME_CHANGE_SYSTEMAIRCON_MANAGER";
+	public static final String ROOM_NAME_CHANGE_PURITY_MANAGER = "ROOM_NAME_CHANGE_PURITY_MANAGER";
+	public static final String ROOM_NAME_CHANGE_SHADING_MANAGER = "ROOM_NAME_CHANGE_SHADING_MANAGER";
+
 	/**
 	 *
 	 * @return
 	 */
-	public String [] GetDevRoomName()
-	{
-		try
-		{
+	public String [] GetDevRoomName() {
+		try {
 			String ret = GetWallPADData(DEVICE_ROOM);
 			String[] getidx = ret.split(define.DEVCTR_DATA_SPLITER);
 
-			for (int i = 0; i<getidx.length; i++)
+			for (int i = 0; i < getidx.length; i++) {
 				getidx[i] = RoomTitle[Integer.parseInt(getidx[i])-1];
+			}
 
 			return getidx;
-		}
-		catch (RuntimeException re) {
+		} catch (RuntimeException re) {
 			LogUtil.errorLogInfo("", TAG, re);
 			return null;
-		}
-		catch (Exception e)
-		{
+		} catch (Exception e) {
 			//e.printStackTrace();
 			LogUtil.errorLogInfo("", TAG, e);
 			return null;
@@ -1167,10 +1197,8 @@ public class WallpadStatusData extends wallpaddbmgr {
 	 * @param DeviceType = "light"이면 조명 설정정보 가져오고, "heating"이면 난방 설정정보 가져옴
 	 * @return String [] 해당 방 명칭 String 배열
 	 */
-	public String [] GetDevRoomName(String DeviceType)
-	{
-		try
-		{
+	public String [] GetDevRoomName(String DeviceType) {
+		try {
 			WallpadDeviceSet wallpadDeviceSet = new WallpadDeviceSet(CTX);
 			boolean UseEachRoomName = wallpadDeviceSet.GetEachRoomNameInfo();
 			wallpadDeviceSet.closeDB();
@@ -1181,59 +1209,50 @@ public class WallpadStatusData extends wallpaddbmgr {
 			ret = GetWallPADData(DEVICE_ROOM);
 			getidx = ret.split(define.DEVCTR_DATA_SPLITER);
 
-			for (int i = 0; i<getidx.length; i++)
+			for (int i = 0; i < getidx.length; i++) {
 				getidx[i] = RoomTitle[Integer.parseInt(getidx[i])-1];
+			}
 
-			if(UseEachRoomName == false)
-			{
+			if (UseEachRoomName == false) {
 				return getidx;
 			}
-			else
-			{
-				if(DeviceType.equalsIgnoreCase("light") == true)
-				{
+			else {
+				if (DeviceType.equalsIgnoreCase(define.ROOM_NAME_LIGHT) == true) {
 					ret = GetWallPADData(DEVICE_ROOM_LIGHT);
 					getidx = ret.split(define.DEVCTR_DATA_SPLITER);
 
-					for (int i = 0; i<getidx.length; i++)
+					for (int i = 0; i < getidx.length; i++) {
 						getidx[i] = RoomTitle[Integer.parseInt(getidx[i])-1];
+					}
 				}
-				else if(DeviceType.equalsIgnoreCase("heating") == true)
-				{
+				else if (DeviceType.equalsIgnoreCase(define.ROOM_NAME_HEATING) == true) {
 					return getidx;
 				}
 			}
 			return getidx;
-		}
-		catch (RuntimeException re) {
+		} catch (RuntimeException re) {
 			LogUtil.errorLogInfo("", TAG, re);
 			return null;
-		}
-		catch (Exception e)
-		{
+		} catch (Exception e) {
 			//e.printStackTrace();
 			LogUtil.errorLogInfo("", TAG, e);
 			return null;
 		}
 	}
 
-	public int[] GetDevRoomIdx()
-	{
-		try
-		{
+	public int[] GetDevRoomIdx() {
+		try {
 			String ret = GetWallPADData(DEVICE_ROOM);
 			String[] getidx = ret.split(define.DEVCTR_DATA_SPLITER);
 			int[] retdata = new int[getidx.length];
-			for (int i = 0; i<getidx.length; i++)
+			for (int i = 0; i < getidx.length; i++) {
 				retdata[i] = Integer.parseInt(getidx[i]);
+			}
 			return retdata;
-		}
-		catch (RuntimeException re) {
+		} catch (RuntimeException re) {
 			LogUtil.errorLogInfo("", TAG, re);
 			return null;
-		}
-		catch (Exception e)
-		{
+		} catch (Exception e) {
 			//e.printStackTrace();
 			LogUtil.errorLogInfo("", TAG, e);
 			return null;
@@ -1245,10 +1264,8 @@ public class WallpadStatusData extends wallpaddbmgr {
 	 * @param DeviceType = "light"이면 조명 설정정보 가져오고, "heating"이면 난방 설정정보 가져옴
 	 * @return int [] 해당 방 명칭 int 배열
 	 */
-	public int[] GetDevRoomIdx(String DeviceType)
-	{
-		try
-		{
+	public int[] GetDevRoomIdx(String DeviceType) {
+		try {
 			WallpadDeviceSet wallpadDeviceSet = new WallpadDeviceSet(CTX);
 			boolean UseEachRoomName = wallpadDeviceSet.GetEachRoomNameInfo();
 			wallpadDeviceSet.closeDB();
@@ -1256,56 +1273,48 @@ public class WallpadStatusData extends wallpaddbmgr {
 			String ret = GetWallPADData(DEVICE_ROOM);
 			String[] getidx = ret.split(define.DEVCTR_DATA_SPLITER);
 			int[] retdata = new int[getidx.length];
-			for (int i = 0; i<getidx.length; i++)
+			for (int i = 0; i < getidx.length; i++) {
 				retdata[i] = Integer.parseInt(getidx[i]);
+			}
 
-			if(UseEachRoomName == false)
-			{
+			if (UseEachRoomName == false) {
 				return retdata;
 			}
-			else
-			{
-				if(DeviceType.equalsIgnoreCase("light") == true)
-				{
+			else {
+				if (DeviceType.equalsIgnoreCase(define.ROOM_NAME_LIGHT) == true) {
 					ret = GetWallPADData(DEVICE_ROOM_LIGHT);
 					getidx = ret.split(define.DEVCTR_DATA_SPLITER);
 					retdata = new int[getidx.length];
-					for (int i = 0; i<getidx.length; i++)
+					for (int i = 0; i<getidx.length; i++) {
 						retdata[i] = Integer.parseInt(getidx[i]);
+					}
 				}
-				else if(DeviceType.equalsIgnoreCase("heating") == true)
-				{
+				else if (DeviceType.equalsIgnoreCase(define.ROOM_NAME_HEATING) == true) {
 					return retdata;
 				}
 			}
 			return retdata;
-		}
-		catch (RuntimeException re) {
+		} catch (RuntimeException re) {
 			LogUtil.errorLogInfo("", TAG, re);
 			return null;
-		}
-		catch (Exception e)
-		{
+		} catch (Exception e) {
 			//e.printStackTrace();
 			LogUtil.errorLogInfo("", TAG, e);
 			return null;
 		}
 	}
 
-	public int SetDevRoomIdx(int[] set)
-	{
-		try{
+	public int SetDevRoomIdx(int[] set) {
+		try {
 			String indata=String.valueOf(set[0]);
-			for(int i =1; i<set.length;i++)
+			for (int i =1; i < set.length; i++) {
 				indata+=(":"+set[i]);
+			}
 			return (UpdateWallPADData(DEVICE_ROOM, indata))?0:-1;
-		}
-		catch (RuntimeException re) {
+		} catch (RuntimeException re) {
 			LogUtil.errorLogInfo("", TAG, re);
 			return APIErrorCode.EXCEPTION;
-		}
-		catch (Exception e)
-		{
+		} catch (Exception e) {
 			//e.printStackTrace();
 			LogUtil.errorLogInfo("", TAG, e);
 			return APIErrorCode.EXCEPTION;
@@ -1317,46 +1326,262 @@ public class WallpadStatusData extends wallpaddbmgr {
 	 * @param DeviceType = "light"이면 조명 설정하고, "heating"이면 난방 설정함
 	 * @return int 0보다 작으면 실패
 	 */
-	public int SetDevRoomIdx(int[] set, String DeviceType)
-	{
-		try
-		{
+	public int SetDevRoomIdx(int[] set, String DeviceType) {
+		try {
 			WallpadDeviceSet wallpadDeviceSet = new WallpadDeviceSet(CTX);
 			boolean UseEachRoomName = wallpadDeviceSet.GetEachRoomNameInfo();
 			wallpadDeviceSet.closeDB();
 
 			String indata = String.valueOf(set[0]);
-			for (int i = 1; i < set.length; i++)
+			for (int i = 1; i < set.length; i++) {
 				indata += (":" + set[i]);
+			}
 
-			if(UseEachRoomName == false)
-			{
+			if (UseEachRoomName == false) {
 				return (UpdateWallPADData(DEVICE_ROOM, indata)) ? 0 : -1;
 			}
-			else
-			{
-				if(DeviceType.equalsIgnoreCase("light") == true)
-				{
+			else {
+				if (DeviceType.equalsIgnoreCase(define.ROOM_NAME_LIGHT) == true) {
 					return (UpdateWallPADData(DEVICE_ROOM_LIGHT, indata)) ? 0 : -1;
 				}
-				else if(DeviceType.equalsIgnoreCase("heating") == true)
-				{
+				else if (DeviceType.equalsIgnoreCase(define.ROOM_NAME_HEATING) == true) {
 					return (UpdateWallPADData(DEVICE_ROOM, indata)) ? 0 : -1;
 				}
 			}
 			return -1;
 
+		} catch (RuntimeException re) {
+			LogUtil.errorLogInfo("", TAG, re);
+			return APIErrorCode.EXCEPTION;
+		} catch (Exception e) {
+			//e.printStackTrace();
+			LogUtil.errorLogInfo("", TAG, e);
+			return APIErrorCode.EXCEPTION;
 		}
-		catch (RuntimeException re) {
+	}
+
+
+	//****************************************************************
+	// 					방명칭 수정 시나리오 New Version
+	//****************************************************************
+	public boolean GetRoomNameChangeByUser(String DeviceType) {
+		try {
+			boolean bChange = false;
+			String ret = null;
+			if (DeviceType.equalsIgnoreCase(define.ROOM_NAME_LIGHT) == true) {
+				ret = GetWallPADData(ROOM_NAME_CHANGE_LIGHT_USER);
+			}
+			else if (DeviceType.equalsIgnoreCase(define.ROOM_NAME_CONCENT) == true) {
+				ret = GetWallPADData(ROOM_NAME_CHANGE_CONCENT_USER);
+			}
+			else if (DeviceType.equalsIgnoreCase(define.ROOM_NAME_HEATING) == true) {
+				ret = GetWallPADData(ROOM_NAME_CHANGE_HEATING_USER);
+			}
+			else if (DeviceType.equalsIgnoreCase(define.ROOM_NAME_SYSTEMAIRCON) == true) {
+				ret = GetWallPADData(ROOM_NAME_CHANGE_SYSTEMAIRCON_USER);
+			}
+			else if (DeviceType.equalsIgnoreCase(define.ROOM_NAME_PURITY) == true) {
+				ret = GetWallPADData(ROOM_NAME_CHANGE_PURITY_USER);
+			}
+			else if (DeviceType.equalsIgnoreCase(define.ROOM_NAME_SHADING) == true) {
+				ret = GetWallPADData(ROOM_NAME_CHANGE_SHADING_USER);
+			}
+			Log.d(TAG, "[GetRoomNameChangeByUser] ret [" + ret + "]");
+
+			if (ret != null) {
+				bChange = Integer.parseInt(ret) > 0;
+				Log.d(TAG, "[GetRoomNameChangeByUser] bChange [" + bChange + "]");
+			}
+			return bChange;
+		} catch (RuntimeException re) {
+			LogUtil.errorLogInfo("", TAG, re);
+		} catch (Exception e) {
+			//e.printStackTrace();
+			LogUtil.errorLogInfo("", TAG, e);
+		}
+		return false;
+	}
+
+	public int SetRoomNameChangeByUser(int Set, String DeviceType) {
+		try {
+			String indata = String.valueOf(Set);
+			Log.d(TAG, "[SetRoomNameChangeByUser] indata = " + indata);
+
+			if (DeviceType.equalsIgnoreCase(define.ROOM_NAME_LIGHT) == true) {
+				return (UpdateWallPADData(ROOM_NAME_CHANGE_LIGHT_USER, indata)) ? 0 : -1;
+			}
+			else if (DeviceType.equalsIgnoreCase(define.ROOM_NAME_CONCENT) == true) {
+				return (UpdateWallPADData(ROOM_NAME_CHANGE_CONCENT_USER, indata)) ? 0 : -1;
+			}
+			else if (DeviceType.equalsIgnoreCase(define.ROOM_NAME_HEATING) == true) {
+				return (UpdateWallPADData(ROOM_NAME_CHANGE_HEATING_USER, indata)) ? 0 : -1;
+			}
+			else if (DeviceType.equalsIgnoreCase(define.ROOM_NAME_SYSTEMAIRCON) == true) {
+				return (UpdateWallPADData(ROOM_NAME_CHANGE_SYSTEMAIRCON_USER, indata)) ? 0 : -1;
+			}
+			else if (DeviceType.equalsIgnoreCase(define.ROOM_NAME_PURITY) == true) {
+				return (UpdateWallPADData(ROOM_NAME_CHANGE_PURITY_USER, indata)) ? 0 : -1;
+			}
+			else if (DeviceType.equalsIgnoreCase(define.ROOM_NAME_SHADING) == true) {
+				return (UpdateWallPADData(ROOM_NAME_CHANGE_SHADING_USER, indata)) ? 0 : -1;
+			}
+
+		} catch (RuntimeException re) {
 			LogUtil.errorLogInfo("", TAG, re);
 			return APIErrorCode.EXCEPTION;
+		} catch (Exception e) {
+			//e.printStackTrace();
+			LogUtil.errorLogInfo("", TAG, e);
+			return APIErrorCode.EXCEPTION;
 		}
-		catch (Exception e)
-		{
+		return -1;
+	}
+
+	public boolean GetRoomNameChangeByManager(String DeviceType) {
+		try {
+			boolean bChange = false;
+			String ret = null;
+			if (DeviceType.equalsIgnoreCase(define.ROOM_NAME_LIGHT) == true) {
+				ret = GetWallPADData(ROOM_NAME_CHANGE_LIGHT_MANAGER);
+			}
+			else if (DeviceType.equalsIgnoreCase(define.ROOM_NAME_CONCENT) == true) {
+				ret = GetWallPADData(ROOM_NAME_CHANGE_CONCENT_MANAGER);
+			}
+			else if (DeviceType.equalsIgnoreCase(define.ROOM_NAME_HEATING) == true) {
+				ret = GetWallPADData(ROOM_NAME_CHANGE_HEATING_MANAGER);
+			}
+			else if (DeviceType.equalsIgnoreCase(define.ROOM_NAME_SYSTEMAIRCON) == true) {
+				ret = GetWallPADData(ROOM_NAME_CHANGE_SYSTEMAIRCON_MANAGER);
+			}
+			else if (DeviceType.equalsIgnoreCase(define.ROOM_NAME_PURITY) == true) {
+				ret = GetWallPADData(ROOM_NAME_CHANGE_PURITY_MANAGER);
+			}
+			else if (DeviceType.equalsIgnoreCase(define.ROOM_NAME_SHADING) == true) {
+				ret = GetWallPADData(ROOM_NAME_CHANGE_SHADING_MANAGER);
+			}
+
+			Log.d(TAG, "[GetRoomNameChangeByManager] ret [" + ret + "]");
+
+			if (ret != null) {
+				bChange = Integer.parseInt(ret) > 0;
+				Log.d(TAG, "[GetRoomNameChangeByManager] bChange [" + bChange + "]");
+			}
+			return bChange;
+		} catch (RuntimeException re) {
+			LogUtil.errorLogInfo("", TAG, re);
+		} catch (Exception e) {
+			//e.printStackTrace();
+			LogUtil.errorLogInfo("", TAG, e);
+		}
+		return false;
+	}
+
+	public int SetRoomNameChangeByManager(int Set, String DeviceType) {
+		try {
+			String indata = String.valueOf(Set);
+			Log.d(TAG, "[SetRoomNameChangeByManager] indata = " + indata);
+
+			if (DeviceType.equalsIgnoreCase(define.ROOM_NAME_LIGHT) == true) {
+				return (UpdateWallPADData(ROOM_NAME_CHANGE_LIGHT_MANAGER, indata)) ? 0 : -1;
+			}
+			else if (DeviceType.equalsIgnoreCase(define.ROOM_NAME_CONCENT) == true) {
+				return (UpdateWallPADData(ROOM_NAME_CHANGE_CONCENT_MANAGER, indata)) ? 0 : -1;
+			}
+			else if (DeviceType.equalsIgnoreCase(define.ROOM_NAME_HEATING) == true) {
+				return (UpdateWallPADData(ROOM_NAME_CHANGE_HEATING_MANAGER, indata)) ? 0 : -1;
+			}
+			else if (DeviceType.equalsIgnoreCase(define.ROOM_NAME_SYSTEMAIRCON) == true) {
+				return (UpdateWallPADData(ROOM_NAME_CHANGE_SYSTEMAIRCON_MANAGER, indata)) ? 0 : -1;
+			}
+			else if (DeviceType.equalsIgnoreCase(define.ROOM_NAME_PURITY) == true) {
+				return (UpdateWallPADData(ROOM_NAME_CHANGE_PURITY_MANAGER, indata)) ? 0 : -1;
+			}
+			else if (DeviceType.equalsIgnoreCase(define.ROOM_NAME_SHADING) == true) {
+				return (UpdateWallPADData(ROOM_NAME_CHANGE_SHADING_MANAGER, indata)) ? 0 : -1;
+			}
+		} catch (RuntimeException re) {
+			LogUtil.errorLogInfo("", TAG, re);
+			return APIErrorCode.EXCEPTION;
+		} catch (Exception e) {
+			//e.printStackTrace();
+			LogUtil.errorLogInfo("", TAG, e);
+			return APIErrorCode.EXCEPTION;
+		}
+		return -1;
+	}
+
+	public String[] GetDevRoomNameList(String DeviceType) {
+		try {
+			String ret = null;
+			if (DeviceType.equalsIgnoreCase(define.ROOM_NAME_LIGHT) == true) {
+				ret = GetWallPADData(ROOM_NAME_LIGHT);
+			}
+			else if (DeviceType.equalsIgnoreCase(define.ROOM_NAME_CONCENT) == true) {
+				ret = GetWallPADData(ROOM_NAME_CONCENT);
+			}
+			else if (DeviceType.equalsIgnoreCase(define.ROOM_NAME_HEATING) == true) {
+				ret = GetWallPADData(ROOM_NAME_HEATING);
+			}
+			else if (DeviceType.equalsIgnoreCase(define.ROOM_NAME_SYSTEMAIRCON) == true) {
+				ret = GetWallPADData(ROOM_NAME_SYSTEMAIRCON);
+			}
+			else if (DeviceType.equalsIgnoreCase(define.ROOM_NAME_PURITY) == true) {
+				ret = GetWallPADData(ROOM_NAME_PURITY);
+			}
+			else if (DeviceType.equalsIgnoreCase(define.ROOM_NAME_SHADING) == true) {
+				ret = GetWallPADData(ROOM_NAME_SHADING);
+			}
+			Log.d(TAG, "[GetDevRoomNameList] ret [" + ret + "]");
+
+			String[] getname = null;
+			if (ret != null) {
+				getname = ret.split(define.DEVCTR_DATA_SPLITER);
+			}
+			return getname;
+		} catch (RuntimeException re) {
+			LogUtil.errorLogInfo("", TAG, re);
+		} catch (Exception e) {
+			//e.printStackTrace();
+			LogUtil.errorLogInfo("", TAG, e);
+		}
+		return null;
+	}
+
+	public int SetDevRoomNameList(String[] roomName, String DeviceType) {
+		try {
+			String indata = String.valueOf(roomName[0]);
+			for (int i = 1; i < roomName.length; i++)
+				indata += (":" + roomName[i]);
+			Log.d(TAG, "[SetDevRoomNameList] indata = " + indata);
+
+			if (DeviceType.equalsIgnoreCase(define.ROOM_NAME_LIGHT) == true) {
+				return (UpdateWallPADData(ROOM_NAME_LIGHT, indata)) ? 0 : -1;
+			}
+			else if (DeviceType.equalsIgnoreCase(define.ROOM_NAME_CONCENT) == true) {
+				return (UpdateWallPADData(ROOM_NAME_CONCENT, indata)) ? 0 : -1;
+			}
+			else if (DeviceType.equalsIgnoreCase(define.ROOM_NAME_HEATING) == true) {
+				return (UpdateWallPADData(ROOM_NAME_HEATING, indata)) ? 0 : -1;
+			}
+			else if (DeviceType.equalsIgnoreCase(define.ROOM_NAME_SYSTEMAIRCON) == true) {
+				return (UpdateWallPADData(ROOM_NAME_SYSTEMAIRCON, indata)) ? 0 : -1;
+			}
+			else if (DeviceType.equalsIgnoreCase(define.ROOM_NAME_PURITY) == true) {
+				return (UpdateWallPADData(ROOM_NAME_PURITY, indata)) ? 0 : -1;
+			}
+			else if (DeviceType.equalsIgnoreCase(define.ROOM_NAME_SHADING) == true) {
+				return (UpdateWallPADData(ROOM_NAME_SHADING, indata)) ? 0 : -1;
+			}
+
+		} catch (RuntimeException re) {
+			LogUtil.errorLogInfo("", TAG, re);
+			return APIErrorCode.EXCEPTION;
+		} catch (Exception e) {
 			//e.printStackTrace();
 			LogUtil.errorLogInfo("", TAG, e);
 			return APIErrorCode.EXCEPTION;
 		}
+		return -1;
 	}
 
 	public WallpadStatusData(Context ctx) {
@@ -2348,6 +2573,46 @@ public class WallpadStatusData extends wallpaddbmgr {
 		}
 	}
 
+	public void SetHSPlatformCertifRun( boolean Running )
+	{
+		try
+		{
+			if( Running == true )
+				UpdateWallPADData(HSPLATFORM_CERTIF_POPUP_RUN, "1" );
+			else
+				UpdateWallPADData(HSPLATFORM_CERTIF_POPUP_RUN, "0" );
+
+		}
+		catch (RuntimeException re) {
+			LogUtil.errorLogInfo("", TAG, re);
+		}
+		catch (Exception e )
+		{
+			LogUtil.errorLogInfo("", TAG, e);//e.printStackTrace();
+		}
+	}
+
+	public boolean GetHSPlatformCertifRun()
+	{
+		try
+		{
+			String ret = GetWallPADData(HSPLATFORM_CERTIF_POPUP_RUN);
+			if( ret.equals("1"))
+				return true;
+			else
+				return false;
+		}
+		catch (RuntimeException re) {
+			LogUtil.errorLogInfo("", TAG, re);
+			return false;
+		}
+		catch (Exception e )
+		{
+			LogUtil.errorLogInfo("", TAG, e);//e.printStackTrace();
+			return false;
+		}
+	}
+
 	public void SetModeLampBrLevel( int nLevel )
 	{
 		try

+ 29 - 3
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 = "2021.08.11.01";
+	public static final String WALLPADAPI_VERSION = "2021.11.03.01";
 	///////////////////////////////////////////////////////////////////////
 	// WallPadDevService 의 각 드라이버와 통신을 위한 드라이버 이름을 정의합니다.
 	///////////////////////////////////////////////////////////////////////
@@ -50,6 +50,9 @@ public class define {
 	public static final String DRIVER_TITLE_SMART_DISTRIBUTION_BD = "SMART_DISTRIBUTION_BD";			// 스마트분전반 드라이버 명칭
 	public static final String DRIVER_TITLE_SDB_LIVINGROOM_LIGHT  = "SDB_LIVINGROOM_LIGHT";			    // 스마트분전반 - 거실에너지미터 조명 드라이버 명칭
 
+	public static final String DRIVER_TITLE_DCV2_LIVING_EM = "DCV2_LIVING_EM";			// DC배전 V2 거실 에너지미터 드라이버 명칭
+	public static final String DRIVER_TITLE_DCV2_MASTER  = "DCV2_MASTER";			    // DC배전 V2 마스터기기 드라이버 명칭
+
 	public static final String DRIVER_TITLE_KNX_DISTRIBUTION_BD = "KNX_DISTRIBUTION_BD";				// KNX 분전반 드라이버 명칭
 	public static final String DRIVER_TITLE_KNX_LIVINGROOM_LIGHT  = "KNX_LIVINGROOM_LIGHT";			    // KNX 분전반 - 거실에너지미터 조명 드라이버 명칭
 
@@ -67,6 +70,9 @@ public class define {
 	public static final String DRIVER_TITLE_LOUVER 	  = "LOUVER";
 	public static final String DRIVER_TITLE_PURITY 	  = "PURITY";
 
+	//차광제어기
+	public static final String DRIVER_TITLE_SHADING     = "SHADING";
+
 	///////////////////////////////////////////////////////////////////////
 	// WallPadDevService 의 각 드라이버의 상수값을 정의합니다.
 	// 사용이 필요한 상수값만 정의함.
@@ -343,6 +349,12 @@ public class define {
 	public static final int NOTIFY_SCREEN_TOUCHED				= 4001;
 	public static final int NOTIFY_DOOR_OPENED					= 4002;
 
+	/** 효성 플랫폼 사용자 관리 **/
+	public static final int REQUEST_REMOVE_MOBILE_USER				= 5001;   // 모바일 회원 정보 삭제 요청
+	public static final int REQUEST_REMOVE_MOBILE_CERTIFICATION					= 5002;   // 모바일 회원 정보 삭제 응답
+	public static final int REPLY_REMOVE_MOBILE_USER				= 5003;   // 모바일 회원 인증 정보 삭제 요청
+	public static final int REPLY_REMOVE_MOBILE_CERTIFICATION					= 5004;   // 모바일 회원 인증 정보 삭제 응답
+
 	/////////////////////////////////////////////////////////////////////
 
 
@@ -723,6 +735,9 @@ public class define {
 	public static final String DEVICE_ID_PENTHOUSE_ESCAPELADDER = "펜트하우스피난사다리";
 	public static final String DEVICE_ID_REMOTECTRL_LIGHT = "원격제어조명선택";
 	public static final String DEVICE_ID_HS_PLATFORM_USE = "효성플랫폼연동";
+	public static final String DEVICE_ID_VENTI_TIMER_USE = "환기타이머";
+	public static final String DEVICE_ID_VENTI_RESERVATION_USE = "환기예약설정";
+	public static final String DEVICE_ID_ROOMNAME_EDIT_USE = "방명칭수정";
 
 	public static final String DEVICE_ENABLE  = "사용함";
 	public static final String DEVICE_DISABLE = "사용안함";
@@ -734,7 +749,18 @@ public class define {
 
 	public static final String DEVICE_ID_SDBEM_LIGHT_OPTION  = "각실EM제어옵션";   // 각실EM제어 옵션
 
-	public define()
-	{
+	public static final String DEVICE_ID_SHADING               = "차광제어기";
+
+	// 제어기기 방명칭 관리 파라미터
+	public final static String ROOM_NAME_LIGHT = "light";
+	public final static String ROOM_NAME_CONCENT = "concent";
+	public final static String ROOM_NAME_HEATING = "heating";
+	public final static String ROOM_NAME_SYSTEMAIRCON = "systemaircon";
+	public final static String ROOM_NAME_PURITY = "purity";
+	public final static String ROOM_NAME_SHADING = "shading";
+
+	public static final String DEVICE_ID_SHADING_SPLIT               = "차광제어기방설정";
+
+	public define() {
 	}
 }

BIN
WallPadHomeCtrl/libs/WallPadAPI.jar


+ 82 - 16
WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/MainActivity.java

@@ -53,6 +53,7 @@ import java.net.Socket;
 import java.sql.Timestamp;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 import kr.co.icontrols.v40ioctl.V40IF;
@@ -233,9 +234,18 @@ public class MainActivity extends WpadActivity {
 	// 명칭 관련
 	public static final int HEATING = 1;
 	public static final int LIGHT = 2;
+	public static final int CONCENT = 3;
+	public static final int SYSTEMAIRCON = 4;
+
+	public static boolean bRoomNameEditUse = false; // 방 명칭 수정 사용 여부
+
+	public String[] mRoomNameList_Light = null; //조명 방 명칭
+	public String[] mRoomNameList_Heating = null; //난방 방 명칭
+	public String[] mRoomNameList_Concent = null; //콘센트 방 명칭
+	public String[] mRoomNameList_SystemAircon = null; //시스템에어컨 방 명칭
+	public String[] mRoomNameList_Purity = null; //삼성청정환기 방 명칭
+	public String[] mRoomNameList_Shading = null; //차광제어기 방 명칭
 
-	private String[] mRoomNameList_Light = null; //조명 방 명칭
-	private String[] mRoomNameList_Heating = null; //난방 방 명칭
 	private String[] mDefaultRoomNameList = new String[]{"거실", "방1", "방2", "방3", "방4", "방5", "방6", "방7", "방8"};
 	private String[] mDefaultRoomNameList_Light = new String[]{"거실", "주방", "방1", "방2", "방3", "방4", "방5", "방6", "방7", "방8"};
 	private String[] mDefaultRoomNameList_Light_SK = new String[]{"거실", "주방", "안방", "침실1", "침실2", "침실3", "침실4", "침실5", "침실6", "침실7", "침실8"};
@@ -354,10 +364,6 @@ public class MainActivity extends WpadActivity {
 		if (Common.GetDeviceSampleMode(this)) OPERATION_MODE = Common.MODE_BUSINESS_SAMPLE;
 		else OPERATION_MODE = Common.MODE_NOMAL;
 
-
-		//for test
-		//OPERATION_MODE = Common.MODE_BUSINESS_SAMPLE;
-
 		//     3.1. wpapi 생성
         if (OPERATION_MODE == Common.MODE_NOMAL) {
 			Log.d(TAG, "[onCreate] OperationMode = MODE_NOMAL");
@@ -389,7 +395,9 @@ public class MainActivity extends WpadActivity {
 			myIP = addc.IPAddress;
 			myDong = addc.Dong;
 			myHo = addc.Ho;
-			ho = Integer.valueOf(myHo.substring(0,1));
+			if(!myHo.equals("NONE")) {
+				ho = Integer.valueOf(myHo.substring(0, 1));
+			}
         } catch (RuntimeException re) {
             LogUtil.errorLogInfo("", TAG, re);
         }
@@ -398,7 +406,14 @@ public class MainActivity extends WpadActivity {
 		}
 
 		getConstructionFunction();
-		GetRoomName();
+
+		WallpadDeviceSet deviceSet = new WallpadDeviceSet(getContext());
+		bRoomNameEditUse = deviceSet.Get_RoomNameEditUse();
+		deviceSet.closeDB();
+		Log.d(TAG, "[Create] bRoomNameEditUse [" + bRoomNameEditUse + "]");
+
+		if (bRoomNameEditUse) GetRoomNameV2(); // 방명칭 수정 시나리오 적용
+		else GetRoomName();
 		//mMultiConentCheckHandler.sendEmptyMessage(0); // 멀티스위치 콘센트 유무 확인
 
 		// 4. Layout registration
@@ -435,8 +450,6 @@ public class MainActivity extends WpadActivity {
 		TopHomeBtn = new WpadImageView(this, TOUCH_KIND.BUTTON, 110, 110, R.drawable.topbar_icon_home_normal, R.drawable.topbar_icon_home_pressed, ID.main.button.HOME);
 		ViewRegistration(TopLayout, TopHomeBtn, 1145, 0);
 
-
-
 		TopMenuBtn = new WpadImageView(this, TOUCH_KIND.BUTTON, 110, 110, R.drawable.topbar_icon_menu_normal, R.drawable.topbar_icon_menu_pressed, ID.main.button.MENU);
 		ViewRegistration(TopLayout, TopMenuBtn, 0, 0);
 
@@ -793,8 +806,8 @@ public class MainActivity extends WpadActivity {
 		try {
 			Log.d(TAG, "[setManualBtnVisible] bEnable [" + bEnable + "], marginLeft [" + marginLeft + "]");
 			if (bEnable) {
-				TopManualBtn.setVisibility(View.VISIBLE);
 				ViewRegistration(TopLayout, TopManualBtn, marginLeft, 0);
+				TopManualBtn.setVisibility(View.VISIBLE);
 			}
 			else {
 				TopManualBtn.setVisibility(View.INVISIBLE);
@@ -2799,10 +2812,10 @@ public class MainActivity extends WpadActivity {
 			WallpadStatusData wallpadStatusData = new WallpadStatusData(getContext().getApplicationContext());
 
             if (Device == HEATING) {
-				RoomNameList = wallpadStatusData.GetDevRoomName("heating");
+				RoomNameList = wallpadStatusData.GetDevRoomName(define.ROOM_NAME_HEATING);
             }
             else {
-				RoomNameList = wallpadStatusData.GetDevRoomName("light");
+				RoomNameList = wallpadStatusData.GetDevRoomName(define.ROOM_NAME_LIGHT);
 			}
 
 			wallpadStatusData.closeDB();
@@ -2833,6 +2846,31 @@ public class MainActivity extends WpadActivity {
 		return null;
 	}
 
+	private String[] getRoomNameFromDBV2(String strDeviceType) {
+		try {
+			String[] RoomNameList = null;
+			WallpadStatusData wallpadStatusData = new WallpadStatusData(getContext().getApplicationContext());
+			RoomNameList = wallpadStatusData.GetDevRoomNameList(strDeviceType);
+			wallpadStatusData.closeDB();
+
+			if (RoomNameList == null) {
+				Log.e(TAG, "[getRoomNameFromDBV2] - RoomNameList is null !!!");
+				return null;
+			}
+
+			Log.i(TAG, "[getRoomNameFromDBV2] RoomNameList " + Arrays.toString(RoomNameList));
+
+			return RoomNameList;
+		} catch (RuntimeException re) {
+			LogUtil.errorLogInfo("", TAG, re);
+		} catch (Exception e) {
+			Log.e(TAG, "[Exception] getRoomNameFromDBV2(int Device)");
+			//e.printStackTrace();
+			LogUtil.errorLogInfo("", TAG, e);
+		}
+		return null;
+	}
+
 	/**
 	 * DB에서 방 이름을 가져와서 방 명칭 관련 변수에 값을 넣는다.
 	 **/
@@ -2885,6 +2923,7 @@ public class MainActivity extends WpadActivity {
 					}
 				}
 			}
+			mRoomNameList_Concent = mDefaultRoomNameList;
 		} catch (RuntimeException re) {
             LogUtil.errorLogInfo("", TAG, re);
         }
@@ -2895,6 +2934,31 @@ public class MainActivity extends WpadActivity {
 		}
 	}
 
+	private void GetRoomNameV2() {
+		try {
+			Log.i(TAG, "[GetRoomNameV2] START");
+			mRoomNameList_Light = getRoomNameFromDBV2(define.ROOM_NAME_LIGHT);
+			mRoomNameList_Heating = getRoomNameFromDBV2(define.ROOM_NAME_HEATING);
+			mRoomNameList_Concent = getRoomNameFromDBV2(define.ROOM_NAME_CONCENT);
+			mRoomNameList_SystemAircon = getRoomNameFromDBV2(define.ROOM_NAME_SYSTEMAIRCON);
+			mRoomNameList_Purity = getRoomNameFromDBV2(define.ROOM_NAME_PURITY);
+			mRoomNameList_Shading = getRoomNameFromDBV2(define.ROOM_NAME_SHADING);
+
+			Log.i(TAG, "[GetRoomNameV2] mRoomNameList_Light: Length [" + mRoomNameList_Light.length + "], " + Arrays.toString(mRoomNameList_Light));
+			Log.i(TAG, "[GetRoomNameV2] mRoomNameList_Heating: Length [" + mRoomNameList_Heating.length + "], " + Arrays.toString(mRoomNameList_Heating));
+			Log.i(TAG, "[GetRoomNameV2] mRoomNameList_Concent: Length [" + mRoomNameList_Concent.length + "], " + Arrays.toString(mRoomNameList_Concent));
+			Log.i(TAG, "[GetRoomNameV2] mRoomNameList_SystemAircon: Length [" + mRoomNameList_SystemAircon.length + "], " + Arrays.toString(mRoomNameList_SystemAircon));
+			Log.i(TAG, "[GetRoomNameV2] mRoomNameList_Purity: Length [" + mRoomNameList_Purity.length + "], " + Arrays.toString(mRoomNameList_Purity));
+			Log.i(TAG, "[GetRoomNameV2] mRoomNameList_Shading: Length [" + mRoomNameList_Shading.length + "], " + Arrays.toString(mRoomNameList_Shading));
+		} catch (RuntimeException re) {
+			LogUtil.errorLogInfo("", TAG, re);
+		} catch (Exception e) {
+			Log.e(TAG, "[Exception] GetRoomName()");
+			//e.printStackTrace();
+			LogUtil.errorLogInfo("", TAG, e);
+		}
+	}
+
 	/**
 	 * TOP 에 보일러 아이콘 활성화 & 비활성화
 	 *
@@ -3016,13 +3080,15 @@ public class MainActivity extends WpadActivity {
 		}
 		return true;
 	}
-
+	
 	/**
-	 * 상단 KCC디밍조절 버튼 활성화 & 비활성화
+	 * 멀티 제어 층 버튼 활성화 & 비활성화
 	 *
 	 * @param Enabled - true : 활성화,  false : 비활성화
 	 * @return (boolean) true : 성공,  false : 실패
 	 */
+
+	
     public void setMultiBtnVisible(boolean Enabled) {
 		for (int i = 0; i < MultiBtn.length; i++) {
 			if (Enabled == true) {
@@ -3045,7 +3111,7 @@ public class MainActivity extends WpadActivity {
 	}
 
 	/**
-	 * 멀티 제어 층 버튼 활성화 & 비활성화
+	 * 상단 KCC디밍조절 버튼 활성화 & 비활성화
 	 *
 	 * @param Enabled - true : 활성화,  false : 비활성화
 	 * @return (boolean) true : 성공,  false : 실패

+ 64 - 31
WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/screen/screen_heating/HeatingV2MainScreen.java

@@ -22,12 +22,16 @@ import android.widget.RelativeLayout;
 
 import com.artncore.WallPadDataMgr.WallpadDeviceSet;
 import com.artncore.WallPadDataMgr.WallpadSalesSampleData;
+import com.artncore.WallPadDataMgr.WallpadStatusData;
 import com.artncore.commons.DataClasses.HeatingV2;
+import com.artncore.commons.define;
 import com.artncore.wallpadapi.HeatingV2API;
 import com.artncore.wallpadapi.WallPadAPI;
 import com.artncore.wallpadapi.WallPadDevAPI;
 import com.util.LogUtil;
 
+import java.util.Arrays;
+
 import kr.co.icontrols.wallpadhomectrl.MainActivity;
 import kr.co.icontrols.wallpadhomectrl.R;
 import kr.co.icontrols.wallpadhomectrl.declare.Common;
@@ -58,6 +62,8 @@ public class HeatingV2MainScreen extends WpadScreen {
     // =================================================================================================
     // [[ Declaration ]] region
     // =================================================================================================
+
+    Context mContext;
     // [Image]
     private WpadImageView BACKGROUND;
 
@@ -341,9 +347,9 @@ public class HeatingV2MainScreen extends WpadScreen {
         Log.i(TAG, "[START - Screen] --------------------------------------------");
 
         // 1. Data Create
+        mContext = context;
         DebugLogOutput("[HeatingV2MainScreen] - Step1 : Data Create");
         OPERATION_MODE = operationMode;
-        //OPERATION_MODE = Common.MODE_BUSINESS_SAMPLE;
         WallpadDeviceSet wds = new WallpadDeviceSet(getContext());
         nDistributionPanelType = wds.Get_DistributionPannelType_Info();
         wds.closeDB();
@@ -351,6 +357,8 @@ public class HeatingV2MainScreen extends WpadScreen {
         if (nDistributionPanelType == Version.DISTRIBUTION_MODEL.KNX_DIST) astrRoomTitle = mKNXDefaultRoomNameList;
         else astrRoomTitle = roomNameList;
 
+        Log.i(TAG, "[HeatingV2MainScreen] astrRoomTitle: " + Arrays.toString(astrRoomTitle));
+
         mData = new Data();
 
         UX_MODE = ((MainActivity) context).GetEasyModeUXUse() ? Common.UX_EASY_MODE : Common.UX_NORMAL_MODE;
@@ -383,7 +391,7 @@ public class HeatingV2MainScreen extends WpadScreen {
         String[] strValue = devSet.GetSettingData("UI순서");
         devSet.closeDB();
 
-        // 현대건설 더 펜트하우스 서버에서 설정된 UI 순서를 이용하도록 한다.
+        // 서버에서 설정된 UI 순서를 이용하도록 한다.
         if( strValue != null ) {
             //String strLight = strValue[1].substring( (strValue[1].indexOf("조명(") + 3) , (strValue[1].indexOf(")난방(")));
             String strHeating = strValue[1].substring( (strValue[1].indexOf("난방(") + 3) , (strValue[1].indexOf(")에어컨(")));
@@ -486,34 +494,37 @@ public class HeatingV2MainScreen extends WpadScreen {
         }
 
         if (bImageIDSet) {
+            int nTopMargin = 0;
+            if (mData.heatingV2.Device.info.RoomCount > 6) nTopMargin = 58;
+
             if (MainActivity.nConstructionFunction == WallpadDeviceSet.CONSTRUCTION_SPECIAL_FUNCTION_SK) {
-                int[][] mAllOnPos = {{980, 168}, {980, 168}};
+                int[][] mAllOnPos = {{980, 168 - nTopMargin}, {980, 168 - nTopMargin}};
                 BTN_ENTIRE_ON = new WpadImageView(context, TOUCH_KIND.BUTTON, 230, 136, nImgID_EntireOn_Normal, nImgID_EntireOn_Pressed, ID.heatingV2main.button.ALL_ON);
                 ViewRegistration(layout, BTN_ENTIRE_ON, Common.ImgPosion.GetX(mAllOnPos[UX_MODE][0]), Common.ImgPosion.GetY(mAllOnPos[UX_MODE][1]));
                 BTN_ENTIRE_ON.setTouchDelayMs(Common.BTN_DELAY_DEVCTRL);
 
-                int[][] mAllOffPos = {{980, 304}, {980, 384}};
+                int[][] mAllOffPos = {{980, 304 - nTopMargin}, {980, 384 - nTopMargin}};
                 BTN_ENTIRE_OFF = new WpadImageView(context, TOUCH_KIND.BUTTON, 230, 136, nImgID_EntireOff_Normal, nImgID_EntireOff_Pressed, ID.heatingV2main.button.ALL_OFF);
                 ViewRegistration(layout, BTN_ENTIRE_OFF, Common.ImgPosion.GetX(mAllOffPos[UX_MODE][0]), Common.ImgPosion.GetY(mAllOffPos[UX_MODE][1]));
                 BTN_ENTIRE_OFF.setTouchDelayMs(Common.BTN_DELAY_DEVCTRL);
 
-                int[][] mExecutePos = {{980, 440}, {980, 440}};
+                int[][] mExecutePos = {{980, 440 - nTopMargin}, {980, 440 - nTopMargin}};
                 BTN_ENTIRE_SET_PAUSEOUT = new WpadImageView(context, TOUCH_KIND.BUTTON, 230, 136, nImgID_Set_PuaseOut_Normal, nImgID_Set_PuaseOut_Pressed, ID.heatingV2main.button.ALL_EXECUTION);
                 ViewRegistration(layout, BTN_ENTIRE_SET_PAUSEOUT, Common.ImgPosion.GetX(mExecutePos[UX_MODE][0]), Common.ImgPosion.GetY(mExecutePos[UX_MODE][1]));
                 BTN_ENTIRE_SET_PAUSEOUT.setTouchDelayMs(Common.BTN_DELAY_DEVCTRL);
 
-                int[][] mReleasePos = {{980, 576}, {980, 576}};
+                int[][] mReleasePos = {{980, 576 - nTopMargin}, {980, 576 - nTopMargin}};
                 BTN_ENTIRE_UNSET_PAUSEOUT = new WpadImageView(context, TOUCH_KIND.BUTTON, 230, 136, nImgID_Unset_PuaseOut_Normal, nImgID_Unset_PuaseOut_Pressed, ID.heatingV2main.button.ALL_RELEASE);
                 ViewRegistration(layout, BTN_ENTIRE_UNSET_PAUSEOUT, Common.ImgPosion.GetX(mReleasePos[UX_MODE][0]), Common.ImgPosion.GetY(mReleasePos[UX_MODE][1]));
                 BTN_ENTIRE_UNSET_PAUSEOUT.setTouchDelayMs(Common.BTN_DELAY_DEVCTRL);
             }
             else {
-                int[][] mExecutePos = {{980, 168}, {936, 110}};
+                int[][] mExecutePos = {{980, 168 - nTopMargin}, {936, 110 - nTopMargin}};
                 BTN_ENTIRE_SET_PAUSEOUT = new WpadImageView(context, TOUCH_KIND.BUTTON, 230, 272, nImgID_Set_PuaseOut_Normal, nImgID_Set_PuaseOut_Pressed, ID.heatingV2main.button.ALL_EXECUTION);
                 ViewRegistration(layout, BTN_ENTIRE_SET_PAUSEOUT, Common.ImgPosion.GetX(mExecutePos[UX_MODE][0]), Common.ImgPosion.GetY(mExecutePos[UX_MODE][1]));
                 BTN_ENTIRE_SET_PAUSEOUT.setTouchDelayMs(Common.BTN_DELAY_DEVCTRL);
 
-                int[][] mReleasePos = {{980, 440}, {936, 382}};
+                int[][] mReleasePos = {{980, 440 - nTopMargin}, {936, 382 - nTopMargin}};
                 BTN_ENTIRE_UNSET_PAUSEOUT = new WpadImageView(context, TOUCH_KIND.BUTTON, 230, 272, nImgID_Unset_PuaseOut_Normal, nImgID_Unset_PuaseOut_Pressed, ID.heatingV2main.button.ALL_RELEASE);
                 ViewRegistration(layout, BTN_ENTIRE_UNSET_PAUSEOUT, Common.ImgPosion.GetX(mReleasePos[UX_MODE][0]), Common.ImgPosion.GetY(mReleasePos[UX_MODE][1]));
                 BTN_ENTIRE_UNSET_PAUSEOUT.setTouchDelayMs(Common.BTN_DELAY_DEVCTRL);
@@ -521,7 +532,6 @@ public class HeatingV2MainScreen extends WpadScreen {
         }
 
         nRoomCnt = info.RoomCount;
-        Log.i(TAG, "nRoomCnt = " + nRoomCnt);
         Heating_Manual_Str += "Room:" + nRoomCnt + "/";
         Log.d(TAG, "[HeatingV2MainScreen] nRoomCnt [" + nRoomCnt + "]");
 
@@ -540,7 +550,7 @@ public class HeatingV2MainScreen extends WpadScreen {
             }
             astrRoomTitle = tempRoomName;
             for (int i = 0; i < astrRoomTitle.length; i++) {
-                Log.i(TAG, "[HeatingV2MainScreen] mRoomNameList[" + i + "]: " + astrRoomTitle[i]);
+                Log.i(TAG, "[HeatingV2MainScreen] astrRoomTitle[" + i + "]: " + astrRoomTitle[i]);
             }
         }
 
@@ -625,27 +635,45 @@ public class HeatingV2MainScreen extends WpadScreen {
         if (intent != null) {
             int Screen = intent.getIntExtra("SCREEN", -1);
             if (Screen == ID.screen.HeatingV2PopupScreen) {
+                boolean bRefresh = intent.getBooleanExtra("REFRESH", false);
+                if (bRefresh) {
+                    WallpadStatusData wallpadStatusData = new WallpadStatusData(getContext().getApplicationContext());
+                    boolean bChangeUser = wallpadStatusData.GetRoomNameChangeByUser(define.ROOM_NAME_HEATING);
+                    boolean bChangeManager = wallpadStatusData.GetRoomNameChangeByManager(define.ROOM_NAME_HEATING);
+                    if (bChangeUser || bChangeManager) {
+                        astrRoomTitle = wallpadStatusData.GetDevRoomNameList(define.ROOM_NAME_HEATING);
+                        wallpadStatusData.closeDB();
+                        for (int i = 0; i < astrRoomTitle.length; i++) {
+//                            Log.d(TAG, "[onPopupResult] astrRoomTitle [" + i + "] = " + astrRoomTitle[i]);
+                            drawRoomTitle(i, astrRoomTitle[i]);
+                        }
+                        ((MainActivity)mContext).mRoomNameList_Heating = astrRoomTitle;
+                    }
+                }
                 if (OPERATION_MODE == Common.MODE_BUSINESS_SAMPLE) {
-                    double[] CurTempArray = intent.getDoubleArrayExtra("CURTEMP_ARRAY");
-                    double[] SetTempArray = intent.getDoubleArrayExtra("SETTEMP_ARRAY");
-                    byte[] ModeArray    = intent.getByteArrayExtra  ("MODE_ARRAY");
-
-                    if ((CurTempArray != null) && (SetTempArray != null) && (ModeArray != null)) {
-                        for (byte i = 0; i < mData.heatingV2.Device.info.RoomCount; i++) {
-                            HeatingV2.RoomData roomData = mData.heatingV2.Device.Room[i];
-                            roomData.NowTemp = CurTempArray[i];
-                            roomData.SetTemp = SetTempArray[i];
-                            roomData.Mode    = ModeArray[i];
-
-                            if (Data_DriveModeConverterOnOff((byte)i)) {
-                                if (roomData.NowTemp < roomData.SetTemp) roomData.bValveStatus = true;
-                                else roomData.bValveStatus = false;
-                            }
-                            else {
-                                roomData.bValveStatus = false;
+                    boolean bSample = intent.getBooleanExtra("SAMPLE_CTRL", false);
+                    if (bSample) {
+                        double[] CurTempArray = intent.getDoubleArrayExtra("CURTEMP_ARRAY");
+                        double[] SetTempArray = intent.getDoubleArrayExtra("SETTEMP_ARRAY");
+                        byte[] ModeArray    = intent.getByteArrayExtra  ("MODE_ARRAY");
+
+                        if ((CurTempArray != null) && (SetTempArray != null) && (ModeArray != null)) {
+                            for (byte i = 0; i < mData.heatingV2.Device.info.RoomCount; i++) {
+                                HeatingV2.RoomData roomData = mData.heatingV2.Device.Room[i];
+                                roomData.NowTemp = CurTempArray[i];
+                                roomData.SetTemp = SetTempArray[i];
+                                roomData.Mode    = ModeArray[i];
+
+                                if (Data_DriveModeConverterOnOff((byte)i)) {
+                                    if (roomData.NowTemp < roomData.SetTemp) roomData.bValveStatus = true;
+                                    else roomData.bValveStatus = false;
+                                }
+                                else {
+                                    roomData.bValveStatus = false;
+                                }
                             }
+                            drawUpdate(Common.INDEX_ALL);
                         }
-                        drawUpdate(Common.INDEX_ALL);
                     }
                 }
             }
@@ -787,8 +815,6 @@ public class HeatingV2MainScreen extends WpadScreen {
 
                 Intent data = new Intent();
 
-                //index = ROOM_POS[index];
-
                 // 타겟 룸인덱스
                 data.putExtra("ROOM_INDEX", index);
 
@@ -818,7 +844,6 @@ public class HeatingV2MainScreen extends WpadScreen {
             else if ((TargetId >= ID.heatingV2main.button.ROOM_ONOFF_1) && (TargetId <= ID.heatingV2main.button.ROOM_ONOFF_8)) {
                 // 각방 ON/OFF 클릭
                 int index = TargetId - ID.heatingV2main.button.ROOM_ONOFF_1;
-                //index = ROOM_POS[index];
                 DebugLogOutput("onTouchEvent [ROOM_ONOFF_" + (index+1) + "] BUTTON !!!");
 
                 if (OPERATION_MODE == Common.MODE_NOMAL) {
@@ -1033,6 +1058,9 @@ public class HeatingV2MainScreen extends WpadScreen {
                 BTN_PAGE_DOWN.setVisibility(View.INVISIBLE);
                 TXT_PAGE_NO.setVisibility(View.INVISIBLE);
             }
+            else {
+                TXT_PAGE_NO.setText(nCurrentPageNo + "/" + nTotalPageNo);
+            }
 
             if (startIdx >= 0 && startIdx % ROOM_CNT == 0) {
                 for (int j = 0; j < roomView.length; j++) {
@@ -1088,6 +1116,11 @@ public class HeatingV2MainScreen extends WpadScreen {
     private void drawRoomTitle(int index, String value) {
         if(!checkRoomIndex(index)) return;
         roomView[index].TXT_TITLE.setText(value);
+        roomView[index].TXT_TITLE.setTextSize(0, Common.fontsize._30);
+        if(value.length() == 6)
+        {
+            roomView[index].TXT_TITLE.setTextSize(0, Common.fontsize._26_DEFAULT);
+        }
     }
 
     /**

+ 0 - 7
WallPadHomeCtrl/src/main/java/kr/co/icontrols/wallpadhomectrl/screen/screen_light/LightKnxMainScreen.java

@@ -321,16 +321,9 @@ public class LightKnxMainScreen extends WpadScreen {
         myDong = addc.Dong;
         myHo = addc.Ho;
 
-        if(Integer.parseInt(myHo)>2000){
-            mDefaultRoomNameList = new String[]{"거실", "거실", "침실4", "침실1", "파우더룸", "침실2", "침실3", "복도1",
-                    "욕실1", "주방1", "세탁실","욕실2","간이주방","욕실3","테라스","현관", "신발장", "창고", "화장실", "계단", "테라스", "키친룸","세탁실","간이주방","욕실3","추가룸1","추가룸2","추가룸3","추가룸4"};
-        }
-
         // 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

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

@@ -763,7 +763,7 @@ public class KnxSystemAirconMainTestScreen extends WpadScreen {
             public void run() {
                 updateData();
             }
-        }, 5000);  
+        }, 5000);
 
     }