Ver Fonte

에너지 관련 작업, UI 순서 변경 작업

jslee(madeinlab) há 3 anos atrás
pai
commit
f3b86811bf

+ 2 - 0
.gitignore

@@ -23,6 +23,8 @@ WallPadSupport/WallPadSupport.iml
 /LogOutputService/LogOutputService.iml
 /ManagerSetting/ManagerSetting.iml
 /ManagerSetting/build
+/WallPadMain/build
+/WallPadHomeCtrl/build
 /WallPadDevService/lint.xml
 /WallPadDevService/build
 /WallPadEmergency/WallPadEmergency.iml

+ 4 - 2
WallPadEnergyCtrl/src/main/java/kr/co/icontrols/wallpadenergyctrl/MainActivity.java

@@ -173,6 +173,7 @@ public class MainActivity extends WpadActivity {
 
     // Screen
     private RemoteMeterMainScreen              remoteMeterMainScreen = null;  //원격검침
+    private VIPRemoteMeterMainScreen           vipRemoteMeterMainScreen = null;  //원격검침
     private IcEnergyMgrScreen                  icEnergyMgrScreen = null ;//HEMS
     private VIPIcEnergyMgrScreen               vipIcEnergyMgrScreen = null ;//HEMS
     //private RealTimeMeterMainScreen            realTimeMeterMainScreen = null; //실시간검침
@@ -1102,8 +1103,9 @@ public class MainActivity extends WpadActivity {
 
                 case API_Menu.SubMenuEnergy.RemoteMeter:
                     SetTitleText(API_Menu.SubMenuEnergy.Name_RemoteMeter);
-                    remoteMeterMainScreen = new RemoteMeterMainScreen(this, ScreenLayout, wpapi, OPERATION_MODE);
-                    super.setCurrentScreen(remoteMeterMainScreen);
+                    //remoteMeterMainScreen = new RemoteMeterMainScreen(this, ScreenLayout, wpapi, OPERATION_MODE);
+                    vipRemoteMeterMainScreen = new VIPRemoteMeterMainScreen(this, ScreenLayout, wpapi, OPERATION_MODE);
+                    super.setCurrentScreen(vipRemoteMeterMainScreen);
                     break;
 
                 case API_Menu.SubMenuEnergy.EnergyMgr:

+ 62 - 0
WallPadEnergyCtrl/src/main/java/kr/co/icontrols/wallpadenergyctrl/imap/iMAPRemotemeter.java

@@ -202,6 +202,39 @@ public class iMAPRemotemeter extends WallPadiMAPClient{
         
         return retXML;
     }
+    private String GetXMLGetRemoteMeterVIP(boolean isDistinguishYear, boolean kepco, boolean eleccar, boolean photovoltaics, boolean fuelcell, int year, int month)
+    {
+        String retXML = null;
+
+        String kepco_String = null;
+        String eleccar_String = null;
+        String photovoltaics_String = null;
+        String fuelcell_String = null;
+
+        if (isDistinguishYear == true) {
+            isDistinguishYear_String = "year";
+        } else {
+            isDistinguishYear_String = "month";
+        }
+
+        kepco_String = kepco==true?"yes":"no";
+        eleccar_String = eleccar==true?"yes":"no";
+        photovoltaics_String = photovoltaics==true?"yes":"no";
+        fuelcell_String = fuelcell==true?"yes":"no";
+
+        retXML = XMLHeader +
+                "   <service type = \"request\" name= \"get_elec_metering\">\r\n"+
+                "      <guidemap distinguish=\""+isDistinguishYear_String+"\""
+                +" kepco=\""+kepco_String+"\""
+                +" eleccar=\""+eleccar_String+"\""
+                +" photovoltaics=\""+photovoltaics_String+"\""
+                +" fuelcell=\""+fuelcell_String+"\">\r\n"+
+                "         <datelist year=\""+year+ "\" month=\""+month+"\" />\r\n"+
+                "      </guidemap>\r\n" +
+                "   </service>\r\n</imap>";
+
+        return retXML;
+    }
     public void SetServerIPcfg(String IPa, int port)
     {
         ServerIP = IPa;
@@ -245,6 +278,29 @@ public class iMAPRemotemeter extends WallPadiMAPClient{
                                 }
                             }
                         }
+                    } else if ((name!=null && name.equalsIgnoreCase("get_elec_metering"))
+                            && (type!=null && type.equalsIgnoreCase("reply"))) {
+                        if (SetItem("guidemap") == 1) {
+                            if (isDistinguishYear_String!=null && isDistinguishYear_String.equalsIgnoreCase("year")) {
+                                String distinguish = GetAttributeVal(0, "distinguish");
+                                if (distinguish!=null && distinguish.equalsIgnoreCase(
+                                        "year")) {
+                                    if (SetItem("valuelist") > 0) {
+                                        Proc.ProcSuccess();
+                                        return;
+                                    }
+                                }
+                            } else if (isDistinguishYear_String!=null && isDistinguishYear_String.equalsIgnoreCase("month")) {
+                                String distinguish = GetAttributeVal(0, "distinguish");
+                                if (distinguish!=null && distinguish.equalsIgnoreCase(
+                                        "month")) {
+                                    if (SetItem("valuelist") > 0) {
+                                        Proc.ProcSuccess();
+                                        return;
+                                    }
+                                }
+                            }
+                        }
                     }
                 }
             } 
@@ -262,4 +318,10 @@ public class iMAPRemotemeter extends WallPadiMAPClient{
         SetServerIPConfig(ServerIP, SvrPort);
         SendXMLDoc(GetXMLGetRemoteMeter(isDistinguishYear, elect, gas, water, hotwater, energy, carbon, support_ems, year, month), true);
     }
+
+    public void DoWorkVIP(boolean isDistinguishYear, boolean kepco, boolean eleccar, boolean photovoltaics, boolean fuelcell, int year, int month)
+    {
+        SetServerIPConfig(ServerIP, SvrPort);
+        SendXMLDoc(GetXMLGetRemoteMeterVIP(isDistinguishYear, kepco, eleccar, photovoltaics, fuelcell, year, month), true);
+    }
 }

+ 2 - 1
WallPadEnergyCtrl/src/main/java/kr/co/icontrols/wallpadenergyctrl/screen/RemoteMeterMainScreen.java

@@ -2422,7 +2422,8 @@ public class RemoteMeterMainScreen extends WpadScreen{
 			switch(inputType)
 			{
 				case 0: //당월
-					imapRemotemeter.DoWork(true, true, true, true, true, true, true, mEMS_Enable, year, month);
+					//imapRemotemeter.DoWork(true, true, true, true, true, true, true, mEMS_Enable, year, month);
+					imapRemotemeter.DoWorkVIP(true, true, true, true, true, year, month);
 					break;
 
 				case 1: //일별

+ 3177 - 0
WallPadEnergyCtrl/src/main/java/kr/co/icontrols/wallpadenergyctrl/screen/VIPRemoteMeterMainScreen.java

@@ -0,0 +1,3177 @@
+package kr.co.icontrols.wallpadenergyctrl.screen;
+
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.graphics.RectF;
+import android.os.Handler;
+import android.util.Log;
+import android.view.Gravity;
+import android.view.MotionEvent;
+import android.view.View;
+import android.widget.RelativeLayout;
+
+import com.artncore.WallPadDataMgr.WallpadDeviceSet;
+import com.artncore.WallPadDataMgr.WallpadStatusData;
+import com.artncore.wallpadapi.WallPadAPI;
+import com.artncore.wallpadimap.RetProci;
+import com.util.LogUtil;
+
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.Queue;
+
+import kr.co.icontrols.wallpadenergyctrl.MainActivity;
+import kr.co.icontrols.wallpadenergyctrl.R;
+import kr.co.icontrols.wallpadenergyctrl.declare.Common;
+import kr.co.icontrols.wallpadenergyctrl.declare.ID;
+import kr.co.icontrols.wallpadenergyctrl.imap.iMAPEnergyServer_SetGoalInfo;
+import kr.co.icontrols.wallpadenergyctrl.imap.iMAPRemotemeter;
+import kr.co.icontrols.wallpadsupport.WpadImageView;
+import kr.co.icontrols.wallpadsupport.WpadImageView.TOUCH_KIND;
+import kr.co.icontrols.wallpadsupport.WpadScale;
+import kr.co.icontrols.wallpadsupport.WpadScreen;
+import kr.co.icontrols.wallpadsupport.WpadSound.SND;
+import kr.co.icontrols.wallpadsupport.WpadTextView;
+
+public class VIPRemoteMeterMainScreen extends WpadScreen {
+
+    // [Define]
+    String TAG = this.getClass().getSimpleName();
+
+    private void DebugLogOutput(String s) {
+        if (Common.DEBUG_LOG_ON) Log.d(TAG, s);
+    }
+
+    // [View - ImageView(Background or Image - No touch)]
+    WpadImageView Background;
+    WpadImageView Show_BG_TOP; //상단 배경
+    WpadImageView Show_Date_Blank; //2014년 1월 텍스트 표시 이미지
+    WpadImageView Show_MonthTableRow1; //항목, 사용량 순위, 목표량 표의 1행 표시
+    WpadImageView Show_MonthTableEnergy; //3종일때 표
+    //WpadImageView Show_MonthTableEnergy5; //5종일때 표
+    //WpadImageView Show_MonthTableEnergy6; //6종일때 표
+    WpadImageView Show_ListTypeBG; //리스트의 배경 그리기
+    WpadImageView Show_EnergyListTypeBG; //에너지 선택 리스트의 배경 그리기
+    WpadImageView Show_BG_Calendar; //달력 배경
+    WpadImageView Show_BG_Discription; //에너지 설명 배경(예, 전기 사용량을 작년 3개월과 ...)
+    WpadImageView Show_BG_Graph; //에너지 그래프 배경
+    WpadImageView Show_Today;
+    WpadImageView Show_Calendar_Item[] = new WpadImageView[31];
+    WpadImageView Show_Discription_SamePyung; //동평형 그래프 색
+    WpadImageView Show_Discription_Myhome; //우리집 그래프 색
+
+
+    // [View - ImageView(Button - touch)]
+    WpadImageView MonthMinus; //달력의 월 '-' 버튼
+    WpadImageView MonthPlus;   //달력의 월 '+' 버튼
+    WpadImageView mShowListType;   //당월, 일별, 3개월, 전년비 버튼
+    WpadImageView ShowEnergy;   //전기, 수도, 가스 등.. 버튼
+    WpadImageView TopSetTargetBtn;
+
+    WpadImageView NEW_SEL_01;
+    WpadImageView NEW_SEL_02;
+    WpadImageView NEW_SEL_03;
+
+    WpadImageView mListEnergy;     //에너지 선택버튼
+    WpadImageView Energy_SEL_01;//에너지 1
+    WpadImageView Energy_SEL_02;
+    WpadImageView Energy_SEL_03;
+    WpadImageView Energy_SEL_04;
+    WpadImageView Energy_SEL_05;
+
+    WpadImageView mListMonth;                //당월 사용량/생산량 선택버튼
+    WpadImageView MONTH_SEL_01;            //사용량
+    WpadImageView MONTH_SEL_02;        //생산량
+    WpadImageView Show_MonthVipTableEnergy1;    //VIP 사용량 테이블 1
+    WpadImageView Show_MonthVipTableEnergy2;    //VIP 사용량 테이블 2
+    WpadImageView Show_MonthVipTableEnergy3;    //VIP 생산량 테이블
+
+
+    // [View - TextView]
+    private WpadTextView Title;
+    WpadTextView mYearMonth;
+    WpadTextView mShowListTypeText;
+
+    WpadTextView NEW_SEL_01_Text;
+    WpadTextView NEW_SEL_02_Text;
+    WpadTextView NEW_SEL_03_Text;
+
+    WpadTextView mShowListEnergyTypeText;
+    WpadTextView mShowListEnergyTypeUnit; //에너지 리스트 단위
+
+    WpadTextView Energy_SEL_01_Text;//에너지 1
+    WpadTextView Energy_SEL_02_Text;
+    WpadTextView Energy_SEL_03_Text;
+    WpadTextView Energy_SEL_04_Text;
+    WpadTextView Energy_SEL_05_Text;
+
+    //당월 사용량/생산량
+    WpadTextView mShowListMonthTypeText;
+    WpadTextView MONTH_SEL_01_Text;            //사용량
+    WpadTextView MONTH_SEL_02_Text;        //생산량
+
+    WpadTextView mTextDay[] = new WpadTextView[31];
+    WpadTextView Show_Calendar_Item_Text[] = new WpadTextView[31];
+    WpadImageView TouchDay[] = new WpadImageView[32];
+
+    WpadTextView Show_MonthTable_Item_Use_Text_LEFT[] = new WpadTextView[6];
+    WpadTextView Show_MonthTable_Item_Use_Text_RIGHT[] = new WpadTextView[3];
+    WpadTextView Show_MonthTable_Item_Use_Text_CENTER[] = new WpadTextView[3];
+
+    WpadTextView Show_3Month_Discription_Text; //미작업..
+    WpadTextView Show_3Month_DiscriptionLeft_Text;
+    WpadTextView Show_3Month_DiscriptionRight_Text;
+    WpadTextView Show_3Month_Legend_Text[] = new WpadTextView[6]; //왼쪽기준 텍스트
+    WpadTextView Show_TopGraphValue_Text[] = new WpadTextView[6];
+    WpadTextView Show_BottomGraphValue_Text[] = new WpadTextView[6];
+    WpadTextView Show_BottomGraphValue3Month_Text[] = new WpadTextView[3];
+
+    WpadTextView Show_Discription_SamePyung_Text; //동평형 그래프 색
+    WpadTextView Show_Discription_Myhome_Text; //우리집 그래프 색
+
+    // [Variables]
+    int mSampleShow;
+    boolean mEMS_Enable;
+    boolean mCostInfo_Enable = false;
+
+    int mNumberOfEnergy;
+    boolean mOpenList = false;
+    boolean mOpenListEnergy = false;
+    //당월 사용량/생산량
+    boolean mOpenListMonth = false;
+    int mCalendarItemIndex = 0;
+    MonthTableClass monthTableClass[] = new MonthTableClass[6];
+    MonthTableClass monthTableClassRight[] = new MonthTableClass[4];
+    int mDrawRectIndex = 0;
+    DrawRect drawRect[] = new DrawRect[478 * 6];
+    int mDrawGraphValue = 0;
+    int mDrawBottomGraphValue3Month_Text = 0;
+    Queue<Integer> TodoList = new LinkedList<Integer>();
+    iMAPRemotemeter imapRemotemeter;
+    boolean isScreenClosed = false;
+    boolean isResponseArrive = false;
+    WallpadStatusData DBMGR = null;
+    boolean isEnergyServerUse = false; //에너지관리서버 사용여부
+    boolean SpecialCase_EnergyCount2 = true;
+    // [API]
+    private WallPadAPI mAPI = null;
+
+    // [Value]
+    int ShowMonthTypeIndex = 0;
+    String[] ShowMonthType_String = {
+            "사용량",
+            "생산량",
+    };
+
+    int ShowNowTypeIndex = 0;
+    String[] ShowListType_String = {
+            "당월",
+            "일별",
+            "3개월",
+            "전년비",
+    };
+
+    int ShowNowEnergyIndex = 0;
+    String[] ShowListEnergyType_String = {
+            "전기 kWh",
+            "수도 ㎥",
+            "가스 ㎥",
+            "온수 ㎥",
+            "난방 ㎥/MWh",
+            "탄소 ㎥"
+    };
+    //메뉴화면 글자 조정을 위함. 한글: 36p, 단위:20p
+    int ShowEnergyIndex = 0;
+    String[] ShowEnergyType_String = {
+            "전기",
+            "수도",
+            "가스",
+            "온수",
+            "난방",
+            "탄소"
+    };
+
+    int ShowUnitIndex = 0;
+    String[] ShowEnergyTypeUnit_String = {
+            "kWh",
+            "㎥",
+            "㎥",
+            "㎥",
+            "㎥/MWh",
+            "㎥"
+    };
+
+
+    // [달력정보]
+    ArrayList<CalendarClass> arraylist = new ArrayList<CalendarClass>();
+    Calendar mCal;
+    int DayOfWeekColor;
+    int CalendarYear;
+    int CalendarMonth;
+    int CalendarDay;
+
+    /*
+     달력의 오늘 정보
+     */
+    int TodayYear;
+    int TodayMonth;
+    int TodayDay;
+
+
+    // [사용량 정보]
+    ArrayList<UsedValueArrayClass> arrayListElect = new ArrayList<UsedValueArrayClass>();
+    ArrayList<UsedValueArrayClass> arrayListWater = new ArrayList<UsedValueArrayClass>();
+    ArrayList<UsedValueArrayClass> arrayListGas = new ArrayList<UsedValueArrayClass>();
+    ArrayList<UsedValueArrayClass> arrayListHotwater = new ArrayList<UsedValueArrayClass>();
+    ArrayList<UsedValueArrayClass> arrayListEnergy = new ArrayList<UsedValueArrayClass>();
+    ArrayList<UsedValueArrayClass> arrayListCarbon = new ArrayList<UsedValueArrayClass>();
+
+    // [Class]
+    class CalendarClass {
+        private int Start_X;
+        private int Start_Y;
+
+        private int ItemCount;
+
+        public CalendarClass(int Start_X, int Start_Y, int ItemCount) {
+            this.Start_X = Start_X;
+            this.Start_Y = Start_Y;
+            this.ItemCount = ItemCount;
+        }
+
+        public int getStart_X() {
+            return Start_X;
+        }
+
+        public int getStart_Y() {
+            return Start_Y;
+        }
+
+        public int getItemCount() {
+            return ItemCount;
+        }
+    }
+
+    class MonthTableClass {
+        private String Use;
+        private String Rank;
+        private String Goal;
+        private String Price;
+
+        public MonthTableClass(String Use, String Rank, String Goal) {
+            this.Use = Use;
+            this.Rank = Rank;
+            this.Goal = Goal;
+        }
+
+        public String getUse() {
+            return Use;
+        }
+
+        public String getRank() {
+            return Rank;
+        }
+
+        public String getGoal() {
+            return Goal;
+        }
+
+        public String getPrice() {
+            return Price;
+        }
+    }
+
+    class UsedValueArrayClass {
+        private int Year;
+        private int Month;
+        private float UsedValue_Myhome;
+        private float UsedValue_SamePyung;
+
+        public UsedValueArrayClass(int Year, int Month, float UsedValue_Myhome, float UsedValue_SamePyung) {
+            this.Year = Year;
+            this.Month = Month;
+            this.UsedValue_Myhome = UsedValue_Myhome;
+            this.UsedValue_SamePyung = UsedValue_SamePyung;
+        }
+
+        public int getYear() {
+            return Year;
+        }
+
+        public int getMonth() {
+            return Month;
+        }
+
+        public float getUsedValue_Myhome() {
+            return UsedValue_Myhome;
+        }
+
+        public float getUsedValue_SamePyung() {
+            return UsedValue_SamePyung;
+        }
+    }
+
+
+    public class DrawRect extends View {
+        int x, y, input_r, input_g, input_b;
+        int colorKind;
+
+        public DrawRect(Context context, int i, int j, int ColorKind) {
+            super(context);
+            x = Common.ImgPosion.GetX(i);
+            y = Common.ImgPosion.GetY(j);
+            colorKind = ColorKind;
+        }
+
+        @Override
+        protected void onDraw(Canvas canvas) {
+            super.onDraw(canvas);
+            Paint paint = new Paint();
+            if (colorKind == 0) {
+                paint.setColor(Color.parseColor("#328cdc"));
+            } else {
+                paint.setColor(Color.parseColor("#96d200"));
+            }
+            //paint.setColor(Color.rgb(input_r, input_g, input_b));
+
+            //paint.setColor(0xff000000 + itemColor);
+            //paint.setColor(0xff000000 + 0x853b3b);
+            //paint.setColor(Color.parseColor("#853b3b"));
+
+            paint.setAntiAlias(true);
+
+            RectF r = new RectF();
+
+            r.set(0, 0, WpadScale.getWidth(50), WpadScale.getHeight(1));
+            canvas.translate(WpadScale.getWidth(x), WpadScale.getHeight(y));
+            canvas.drawRect(r, paint);
+        }
+    }
+
+    // =================================================================================================
+    // [[ Create & Close ]] region
+    // =================================================================================================
+    public VIPRemoteMeterMainScreen(Context context, RelativeLayout layout, WallPadAPI wpapi, int operationMode) {
+        super(context, layout);
+        Log.d(TAG, "[START - Screen] --------------------------------------------");
+        mAPI = wpapi;
+        mSampleShow = operationMode;
+
+        //테스트
+        LoadInfoFromDB();
+
+        Background = new WpadImageView(context, TOUCH_KIND.NONE, 1280, 690, R.drawable.bg_body, 0, ID.RemoteMeterMainScreenID.image.BACKGROUND);
+        ViewRegistration(layout, Background, Common.ImgPosion.GetX(0), Common.ImgPosion.GetY(110));
+
+        //Show_Date_Blank = new WpadImageView(context, TOUCH_KIND.NONE, 200, 44, R.drawable.blank, 0, ID.RemoteMeterMainScreenID.image.BG_DATE_BLANK);
+        //ViewRegistration(layout, Show_Date_Blank, TopImgPosion.GetX(515), TopImgPosion.GetY(88));
+
+        //최초 년도 월 정보입력
+        mCal = Calendar.getInstance();
+        CalendarYear = mCal.get(Calendar.YEAR);
+        CalendarMonth = mCal.get(Calendar.MONTH);
+        CalendarDay = mCal.get(Calendar.DAY_OF_MONTH);
+
+        TodayYear = CalendarYear;
+        TodayMonth = CalendarMonth;
+        TodayDay = CalendarDay;
+
+        //달력 년도 월 표시
+        mYearMonth = new WpadTextView(getContext(), false, 286, 54, Gravity.CENTER, Color.WHITE, Common.fontsize._36, false, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+        ViewRegistration(getLayout(), mYearMonth,
+                Common.ImgPosion.GetX(497),
+                Common.ImgPosion.GetY(132));
+        mYearMonth.setText(CalendarYear + "년 " + (CalendarMonth + 1) + "월");
+
+        //버튼
+        MonthMinus = new WpadImageView(context, TOUCH_KIND.BUTTON, 80, 54, R.drawable.but_arrow_left, R.drawable.but_arrow_left_p, ID.RemoteMeterMainScreenID.button.MONTH_MINUS);
+        MonthMinus.setTouchDelayMs(Common.BTN_DELAY_NETWORK_REQ);
+        ViewRegistration(layout, MonthMinus, Common.ImgPosion.GetX(417), Common.ImgPosion.GetY(132));
+
+        MonthPlus = new WpadImageView(context, TOUCH_KIND.BUTTON, 80, 54, R.drawable.but_arrow_right, R.drawable.but_arrow_right_p, ID.RemoteMeterMainScreenID.button.MONTH_PLUS);
+        MonthPlus.setTouchDelayMs(Common.BTN_DELAY_NETWORK_REQ);
+        ViewRegistration(layout, MonthPlus, Common.ImgPosion.GetX(783), Common.ImgPosion.GetY(132));
+
+
+        mShowListType = new WpadImageView(context, TOUCH_KIND.BUTTON, 230, 54, R.drawable.but_title, R.drawable.but_title_p, ID.RemoteMeterMainScreenID.button.SHOW_TYPE);
+        ViewRegistration(layout, mShowListType, Common.ImgPosion.GetX(957), Common.ImgPosion.GetY(132));
+
+        mShowListTypeText = new WpadTextView(context, false, 230, 54, Gravity.CENTER, Color.WHITE, Common.fontsize._36, false, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+        ViewRegistration(layout, mShowListTypeText,
+                Common.ImgPosion.GetX(957),
+                Common.ImgPosion.GetY(132));
+
+        //EMS 적용 시 - 당월 표 출력
+        if (mEMS_Enable == true) {
+            mShowListTypeText.setText(ShowListType_String[ShowNowTypeIndex]);
+            ShowMainPage();
+        }
+        // EMS 적용하지 않을 경우 - 일별 달력 출력
+        else {
+            ShowNowTypeIndex = 1;
+            mShowListTypeText.setText(ShowListType_String[ShowNowTypeIndex]);
+            ShowDayEnergy();
+        }
+
+        //EMS인 경우만 해당
+
+		/*if(mEMS_Enable == true)
+		{
+			setTopSetTargetBtnVisible(true);
+		}*/
+
+
+        Log.d(TAG, "[END - Screen] --------------------------------------------");
+    }
+
+    @Override
+    protected void onClose() {
+        super.onClose();
+        Log.d(TAG, "[END   - Screen] ********************************************");
+        isScreenClosed = true;
+
+        if (DBMGR != null) {
+            DBMGR.closeDB();
+        }
+
+        //EMS인 경우만 해당
+        //setTopSetTargetBtnVisible(false);
+    }
+/*
+
+	@Override
+	public void Close() {
+		super.Close();
+		Log.d(TAG, "[END - Screen] --------------------------------------------");
+		isScreenClosed = true;
+
+		if (DBMGR != null)
+		{
+			DBMGR.closeDB();
+		}
+
+		//EMS인 경우만 해당
+		((MainActivity)(getContext())).setTopSetTargetBtnVisible(false);
+	}
+*/
+
+    // =================================================================================================
+    // [[ BroadcastReceiver ]] region
+    // =================================================================================================
+
+    /**
+     * 부모 Activity 에서 BroadcastReceiver 을 수신받을시 호출됨
+     */
+    @Override
+    protected void onBrReceive(Intent intent) {
+        super.onBrReceive(intent);
+
+        String ActionName = intent.getAction();
+
+        DebugLogOutput("[[[[ onBrReceive ]]]]  ActionName = " + ActionName);
+    }
+
+    /**
+     * 팝업 호출하는 스크린
+     * 팝업 Activity에서 Result 를 전달 받았을시 호출된다.
+     */
+    @Override
+    protected void onPopupResult(Intent intent) {
+        super.onPopupResult(intent);
+        DebugLogOutput("onPopupResult!!!");
+        if (intent != null) {
+            int Screen = intent.getIntExtra("REMOTEMETER_POPUP_SCREEN", -1);
+            if (Screen == ID.screen.RemoteMeterPopupSetTargetScreen) {
+                boolean ReserveStop = intent.getBooleanExtra("CHANGED", false);
+                if (ReserveStop == true) {
+                    DebugLogOutput("CHANGED !!!");
+
+                    if (isEnergyServerUse == true) {
+                        iMAPEnergyServer_SetGoalInfo iMAPenergyServer_SetGoalInfo;
+                        iMAPenergyServer_SetGoalInfo = new iMAPEnergyServer_SetGoalInfo(getContext());
+                        iMAPenergyServer_SetGoalInfo.DoWork();
+                        iMAPenergyServer_SetGoalInfo.SetRetCtr(new RetProci() {
+                            @Override
+                            public void ProcSuccess() {
+                                Log.d(TAG, "[iMAPenergyServer_SetGoalInfo] ProcSuccess");
+                            }
+
+                            @Override
+                            public void ProcError() {
+                                Log.d(TAG, "[iMAPenergyServer_SetGoalInfo] ProcError");
+                            }
+
+                            @Override
+                            public void ProcDoing() {
+                                Log.d(TAG, "[iMAPenergyServer_SetGoalInfo] ProcDoing");
+                            }
+                        });
+                    }
+
+                }
+            }
+        }
+    }
+
+    @Override
+    protected void onTouchEvent(View v, MotionEvent event) {
+        super.onTouchEvent(v, event);
+
+        int TargetId = v.getId();
+        int MoveEvent = event.getAction();
+
+        if (MoveEvent == MotionEvent.ACTION_DOWN) {
+
+        } else if (MoveEvent == MotionEvent.ACTION_UP) {
+            if (true) {
+                Sound().Play(SND.effect.TOUCH_LATCHED);
+            }
+
+            if (TargetId == ID.RemoteMeterMainScreenID.text.TITLE) {
+                DebugLogOutput("onTouchEvent - ID: " + ID.RemoteMeterMainScreenID.text.TITLE);
+                //Sound().Play(SND.effect.TOUCH_LATCHED);
+            }
+
+            if (TargetId == ID.RemoteMeterMainScreenID.button.SHOW_TYPE) {
+                //Sound().Play(SND.effect.TOUCH_LATCHED);
+
+                if (mOpenList == false) //리스트 열기
+                {
+                    mOpenList = true;
+                    if (ShowNowTypeIndex != 0) {
+                        ListEnergyClose();
+                    }
+
+                    getLayout().removeView(mShowListType);
+                    getLayout().removeView(mShowListTypeText);
+
+                    if (mEMS_Enable == true) {
+                        //Show_ListTypeBG = new WpadImageView(getContext(), TOUCH_KIND.NONE, 182, 190, R.drawable.menu_4, 0, ID.RemoteMeterMainScreenID.image.BG_LISTTYPE_BG);
+                        //ViewRegistration(getLayout(), Show_ListTypeBG, TopImgPosion.GetX(807), TopImgPosion.GetY(82));
+
+                        mShowListType = new WpadImageView(getContext(), TOUCH_KIND.BUTTON, 230, 55, R.drawable.but_title_p, R.drawable.but_title, ID.RemoteMeterMainScreenID.button.SHOW_TYPE);
+                        ViewRegistration(getLayout(), mShowListType, Common.ImgPosion.GetX(957), Common.ImgPosion.GetY(132));
+
+                        mShowListTypeText = new WpadTextView(getContext(), false, 230, 55, Gravity.CENTER, Color.WHITE, Common.fontsize._36, false, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+                        ViewRegistration(getLayout(), mShowListTypeText,
+                                Common.ImgPosion.GetX(957),
+                                Common.ImgPosion.GetY(132));
+                        mShowListTypeText.setText(ShowListType_String[ShowNowTypeIndex]);
+
+                        //리스트가 열렸고 버튼 등록해야함.
+                        NEW_SEL_01 = new WpadImageView(getContext(), TOUCH_KIND.BUTTON, 230, 55, R.drawable.meter_list_text_bg, R.drawable.meter_list_text_bg_p, ID.RemoteMeterMainScreenID.button.NEW_SEL_01);
+                        ViewRegistration(getLayout(), NEW_SEL_01, Common.ImgPosion.GetX(957), Common.ImgPosion.GetY(186));
+
+                        NEW_SEL_02 = new WpadImageView(getContext(), TOUCH_KIND.BUTTON, 230, 55, R.drawable.meter_list_text_bg, R.drawable.meter_list_text_bg_p, ID.RemoteMeterMainScreenID.button.NEW_SEL_02);
+                        ViewRegistration(getLayout(), NEW_SEL_02, Common.ImgPosion.GetX(957), Common.ImgPosion.GetY(241));
+
+                        NEW_SEL_03 = new WpadImageView(getContext(), TOUCH_KIND.BUTTON, 230, 55, R.drawable.meter_list_text_bg, R.drawable.meter_list_text_bg_p, ID.RemoteMeterMainScreenID.button.NEW_SEL_03);
+                        ViewRegistration(getLayout(), NEW_SEL_03, Common.ImgPosion.GetX(957), Common.ImgPosion.GetY(296));
+
+                        ListTextWrite(3);
+                    } else //EMS가 아닌 경우 당월 삭제!!
+                    {
+                        //Show_ListTypeBG = new WpadImageView(getContext(), TOUCH_KIND.NONE, 182, 145, R.drawable.menu_3, 0, ID.RemoteMeterMainScreenID.image.BG_LISTTYPE_BG);
+                        //ViewRegistration(getLayout(), Show_ListTypeBG, TopImgPosion.GetX(807), TopImgPosion.GetY(82));
+
+                        mShowListType = new WpadImageView(getContext(), TOUCH_KIND.BUTTON, 230, 55, R.drawable.but_title_p, R.drawable.but_title, ID.RemoteMeterMainScreenID.button.SHOW_TYPE);
+                        ViewRegistration(getLayout(), mShowListType, Common.ImgPosion.GetX(957), Common.ImgPosion.GetY(132));
+
+                        mShowListTypeText = new WpadTextView(getContext(), false, 230, 55, Gravity.CENTER, Color.WHITE, Common.fontsize._36, true, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+                        ViewRegistration(getLayout(), mShowListTypeText,
+                                Common.ImgPosion.GetX(957),
+                                Common.ImgPosion.GetY(132));
+                        mShowListTypeText.setText(ShowListType_String[ShowNowTypeIndex]);
+
+
+                        //리스트가 열렸고 버튼 등록해야함.
+                        NEW_SEL_01 = new WpadImageView(getContext(), TOUCH_KIND.BUTTON, 230, 55, R.drawable.meter_list_text_bg, R.drawable.meter_list_text_bg_p, ID.RemoteMeterMainScreenID.button.NEW_SEL_01);
+                        ViewRegistration(getLayout(), NEW_SEL_01, Common.ImgPosion.GetX(957), Common.ImgPosion.GetY(186));
+
+                        NEW_SEL_02 = new WpadImageView(getContext(), TOUCH_KIND.BUTTON, 230, 55, R.drawable.meter_list_text_bg, R.drawable.meter_list_text_bg_p, ID.RemoteMeterMainScreenID.button.NEW_SEL_02);
+                        ViewRegistration(getLayout(), NEW_SEL_02, Common.ImgPosion.GetX(957), Common.ImgPosion.GetY(241));
+
+                        ListTextWrite(2);
+                    }
+                } // 리스트 닫기
+                else {
+                    ListClose();
+                }
+
+            } else if (TargetId == ID.RemoteMeterMainScreenID.button.NEW_SEL_01) {
+                ListClickEvent(NEW_SEL_01_Text);
+            } else if (TargetId == ID.RemoteMeterMainScreenID.button.NEW_SEL_02) {
+                ListClickEvent(NEW_SEL_02_Text);
+            } else if (TargetId == ID.RemoteMeterMainScreenID.button.NEW_SEL_03) {
+                ListClickEvent(NEW_SEL_03_Text);
+            } else if ((ID.RemoteMeterMainScreenID.button.TOUCHDAY01 <= TargetId) && (TargetId <= ID.RemoteMeterMainScreenID.button.TOUCHDAY31)) {
+                int DayTouched = (TargetId - ID.RemoteMeterMainScreenID.button.TOUCHDAY01 + 1);
+                DebugLogOutput("Touch Day : " + DayTouched);
+
+                Intent data = new Intent();
+                data.putExtra("iYear", CalendarYear);
+                data.putExtra("iMonth", CalendarMonth + 1);
+                data.putExtra("iDay", DayTouched);
+                data.putExtra("ShowNowEnergyIndex", ShowNowEnergyIndex);
+
+                ((MainActivity) (getContext())).StartPopup(ID.screen.RemoteMeterPopupGraph, data);
+
+            } else if (TargetId == ID.RemoteMeterMainScreenID.button.SHOW_LIST_ENERGY_TYPE) {
+                if (mOpenListEnergy == false) {
+                    mOpenListEnergy = true;
+                    ListClose();
+
+                    //리스트 열림
+                    RemoveListEnergy();
+                    //신규 조그 월패드는 리스트 Background 없음
+					/*
+					int TempImage;
+					int TempHeight;
+					switch(mNumberOfEnergy)
+					{
+						case 2:
+							TempImage = R.drawable.menu_2;
+							TempHeight = 100;
+							break;
+
+						case 3:
+							TempImage = R.drawable.menu_3;
+							TempHeight = 145;
+							break;
+
+						case 4:
+							TempImage = R.drawable.menu_4;
+							TempHeight = 190;
+							break;
+
+						case 5:
+							TempImage = R.drawable.menu_5;
+							TempHeight = 235;
+							break;
+
+						case 6:
+							TempImage = R.drawable.menu_6;
+							TempHeight = 280;
+							break;
+
+						default:
+							TempImage = R.drawable.menu_5;
+							TempHeight = 235;
+							break;
+					}
+
+					Show_EnergyListTypeBG = new WpadImageView(getContext(), TOUCH_KIND.NONE, 182, TempHeight,TempImage, 0, ID.RemoteMeterMainScreenID.image.BG_ENERGY_LISTTYPE_BG);
+					ViewRegistration(getLayout(), Show_EnergyListTypeBG, TopImgPosion.GetX(243), TopImgPosion.GetY(82));
+					*/
+                    ShowListEnergy(true);
+
+                    //리스트가 열렸고 버튼 등록해야함.
+
+                    Energy_SEL_01 = new WpadImageView(getContext(), TOUCH_KIND.BUTTON, 230, 55, R.drawable.meter_list_text_bg, R.drawable.meter_list_text_bg_p, ID.RemoteMeterMainScreenID.button.ENERGY_NEW_SEL_01);
+                    ViewRegistration(getLayout(), Energy_SEL_01, Common.ImgPosion.GetX(93), Common.ImgPosion.GetY(186));
+
+                    if (mNumberOfEnergy != 2) {
+                        Energy_SEL_02 = new WpadImageView(getContext(), TOUCH_KIND.BUTTON, 230, 55, R.drawable.meter_list_text_bg, R.drawable.meter_list_text_bg_p, ID.RemoteMeterMainScreenID.button.ENERGY_NEW_SEL_02);
+                        ViewRegistration(getLayout(), Energy_SEL_02, Common.ImgPosion.GetX(93), Common.ImgPosion.GetY(241));
+                    }
+
+                    switch (mNumberOfEnergy) {
+                        case 2:
+                            ListEnergyTextWrite(2);
+                            break;
+                        case 3:
+                            ListEnergyTextWrite(3);
+                            break;
+                        case 5:
+                            Energy_SEL_03 = new WpadImageView(getContext(), TOUCH_KIND.BUTTON, 230, 55, R.drawable.meter_list_text_bg, R.drawable.meter_list_text_bg_p, ID.RemoteMeterMainScreenID.button.ENERGY_NEW_SEL_03);
+                            ViewRegistration(getLayout(), Energy_SEL_03, Common.ImgPosion.GetX(93), Common.ImgPosion.GetY(296));
+
+                            Energy_SEL_04 = new WpadImageView(getContext(), TOUCH_KIND.BUTTON, 230, 55, R.drawable.meter_list_text_bg, R.drawable.meter_list_text_bg_p, ID.RemoteMeterMainScreenID.button.ENERGY_NEW_SEL_04);
+                            ViewRegistration(getLayout(), Energy_SEL_04, Common.ImgPosion.GetX(93), Common.ImgPosion.GetY(351));
+                            ListEnergyTextWrite(5);
+                            break;
+
+                        case 6:
+                            Energy_SEL_03 = new WpadImageView(getContext(), TOUCH_KIND.BUTTON, 230, 55, R.drawable.meter_list_text_bg, R.drawable.meter_list_text_bg_p, ID.RemoteMeterMainScreenID.button.ENERGY_NEW_SEL_03);
+                            ViewRegistration(getLayout(), Energy_SEL_03, Common.ImgPosion.GetX(93), Common.ImgPosion.GetY(296));
+
+                            Energy_SEL_04 = new WpadImageView(getContext(), TOUCH_KIND.BUTTON, 230, 55, R.drawable.meter_list_text_bg, R.drawable.meter_list_text_bg_p, ID.RemoteMeterMainScreenID.button.ENERGY_NEW_SEL_04);
+                            ViewRegistration(getLayout(), Energy_SEL_04, Common.ImgPosion.GetX(93), Common.ImgPosion.GetY(351));
+
+                            Energy_SEL_05 = new WpadImageView(getContext(), TOUCH_KIND.BUTTON, 230, 55, R.drawable.meter_list_text_bg, R.drawable.meter_list_text_bg_p, ID.RemoteMeterMainScreenID.button.ENERGY_NEW_SEL_05);
+                            ViewRegistration(getLayout(), Energy_SEL_05, Common.ImgPosion.GetX(93), Common.ImgPosion.GetY(406));
+                            ListEnergyTextWrite(6);
+                            break;
+
+                        default:
+                            break;
+                    }
+                } else {
+                    ListEnergyClose();
+                }
+            } else if (TargetId == ID.RemoteMeterMainScreenID.button.ENERGY_NEW_SEL_01) {
+                ListEnergyClickEvent(Energy_SEL_01_Text);
+                ChangeData();
+            } else if (TargetId == ID.RemoteMeterMainScreenID.button.ENERGY_NEW_SEL_02) {
+                ListEnergyClickEvent(Energy_SEL_02_Text);
+                ChangeData();
+            } else if (TargetId == ID.RemoteMeterMainScreenID.button.ENERGY_NEW_SEL_03) {
+                ListEnergyClickEvent(Energy_SEL_03_Text);
+                ChangeData();
+            } else if (TargetId == ID.RemoteMeterMainScreenID.button.ENERGY_NEW_SEL_04) {
+                ListEnergyClickEvent(Energy_SEL_04_Text);
+                ChangeData();
+            } else if (TargetId == ID.RemoteMeterMainScreenID.button.ENERGY_NEW_SEL_05) {
+                ListEnergyClickEvent(Energy_SEL_05_Text);
+                ChangeData();
+            } else if (TargetId == ID.RemoteMeterMainScreenID.button.SHOW_LIST_MONTH_TYPE) {
+                if (mOpenListMonth == false) {
+                    mOpenListMonth = true;
+                    ListClose();
+
+                    //리스트 열림
+                    RemoveListMonth();
+                    ShowListMonth(true);
+
+                    //리스트가 열렸고 버튼 등록해야함.
+
+                    MONTH_SEL_01 = new WpadImageView(getContext(), TOUCH_KIND.BUTTON, 230, 55, R.drawable.meter_list_text_bg, R.drawable.meter_list_text_bg_p, ID.RemoteMeterMainScreenID.button.MONTH_SEL_01);
+                    ViewRegistration(getLayout(), MONTH_SEL_01, Common.ImgPosion.GetX(93), Common.ImgPosion.GetY(186));
+
+                    MONTH_SEL_02 = new WpadImageView(getContext(), TOUCH_KIND.BUTTON, 230, 55, R.drawable.meter_list_text_bg, R.drawable.meter_list_text_bg_p, ID.RemoteMeterMainScreenID.button.MONTH_SEL_02);
+                    ViewRegistration(getLayout(), MONTH_SEL_02, Common.ImgPosion.GetX(93), Common.ImgPosion.GetY(241));
+
+                    MONTH_SEL_01_Text = new WpadTextView(getContext(), false, 230, 55, Gravity.CENTER, Color.WHITE, Common.fontsize._26_DEFAULT, false, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+                    ViewRegistration(getLayout(), MONTH_SEL_01_Text,
+                            Common.ImgPosion.GetX(93),
+                            Common.ImgPosion.GetY(186));
+                    MONTH_SEL_01_Text.setText(ShowMonthType_String[(ShowMonthTypeIndex + 1) % 2]);
+
+                    MONTH_SEL_02_Text = new WpadTextView(getContext(), false, 230, 55, Gravity.CENTER, Color.WHITE, Common.fontsize._26_DEFAULT, false, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+                    ViewRegistration(getLayout(), MONTH_SEL_02_Text,
+                            Common.ImgPosion.GetX(93),
+                            Common.ImgPosion.GetY(241));
+                    MONTH_SEL_02_Text.setText(ShowMonthType_String[(ShowMonthTypeIndex + 2) % 2]);
+                } else {
+                    ListMonthClose();
+                }
+            } else if (TargetId == ID.RemoteMeterMainScreenID.button.MONTH_SEL_01) {
+                ListMonthClickEvent(MONTH_SEL_01_Text);
+                ChangeData();
+            } else if (TargetId == ID.RemoteMeterMainScreenID.button.MONTH_SEL_02) {
+                ListMonthClickEvent(MONTH_SEL_02_Text);
+                ChangeData();
+            }
+            if (TargetId == ID.RemoteMeterMainScreenID.button.MONTH_PLUS) {
+                if (isResponseArrive == false) {
+                    if (mSampleShow != Common.MODE_BUSINESS_SAMPLE) {
+                        return;
+                    }
+                }
+
+                if (ShowNowTypeIndex != 0) {
+                    ListEnergyClose();
+                }
+                ListClose();
+
+                if (CalendarMonth == 11) {
+                    CalendarYear++;
+                    CalendarMonth = 0;
+                } else {
+                    CalendarMonth++;
+                }
+                mYearMonth.setText(CalendarYear + "년 " + (CalendarMonth + 1) + "월");
+
+                //Sound().Play(SND.effect.TOUCH_LATCHED);
+                ChangeData();
+            } else if (TargetId == ID.RemoteMeterMainScreenID.button.MONTH_MINUS) {
+                if (isResponseArrive == false) {
+                    if (mSampleShow != Common.MODE_BUSINESS_SAMPLE) {
+                        return;
+                    }
+                }
+
+                if (ShowNowTypeIndex != 0) {
+                    ListEnergyClose();
+                }
+                ListClose();
+                if (CalendarMonth == 0) {
+                    CalendarYear--;
+                    CalendarMonth = 11;
+                } else {
+                    CalendarMonth--;
+                }
+                mYearMonth.setText(CalendarYear + "년 " + (CalendarMonth + 1) + "월");
+
+                ChangeData();
+                //Sound().Play(SND.effect.TOUCH_LATCHED);
+
+            } else if (TargetId == ID.main.button.SET_TARGET) {
+                ((MainActivity) (getContext())).StartPopup(ID.screen.RemoteMeterPopupSetTargetScreen);
+                //Sound().Play(SND.effect.TOUCH_LATCHED);
+            }
+
+
+        }
+
+    }
+
+    /**
+     * @description 표현할 달력의 숫자 정보를 로딩해서 ArrayList에 넣는다.
+     */
+    private void LoadCalendarArray(int Year, int Month) {
+        mCal.set(Year, Month, 1); //월(0~11, 0:1월):
+
+        //Log.d(TAG, "Year:"+ mCal.get(Calendar.YEAR));
+        //Log.d(TAG, "Month:"+ mCal.get(Calendar.MONTH));
+        //Log.d(TAG, "Day:"+ mCal.get(Calendar.DAY_OF_MONTH));
+
+        arraylist.add(new CalendarClass(0, 0, 0));
+        for (int Week = 0; Week < 6; Week++) {
+            for (int i = 0; i < 7; i++) {
+                arraylist.add(new CalendarClass(95 + (i * 156), 261 + (Week * 82), 0));
+            }
+        }
+    }
+
+
+    private void CalendarItemShow(int ItemIndex, int day, String ItemValue) {
+        if (ItemValue == null) {
+            return;
+        }
+
+        mCalendarItemIndex++;
+        int ItemColor = 0;
+
+		/*if ((day + mCal.get(Calendar.DAY_OF_WEEK) - 1) % 7 == 1) {
+			ItemColor = R.drawable.bg_pink;
+		} else if ((day + mCal.get(Calendar.DAY_OF_WEEK) - 1) % 7 == 0) {
+			ItemColor = R.drawable.bg_green;
+		} else {
+			ItemColor = R.drawable.bg_blue;
+		}
+
+		Show_Calendar_Item[ItemIndex] = new WpadImageView(getContext(), TOUCH_KIND.NONE, 110, 50, ItemColor, 0, ID.RemoteMeterMainScreenID.image.BG_CALENDAR_ITEM);
+		ViewRegistration(getLayout(), Show_Calendar_Item[ItemIndex],
+				Common.ImgPosion.GetX(arraylist.get(day+mCal.get(Calendar.DAY_OF_WEEK)-1).getStart_X()+36),
+				Common.ImgPosion.GetY(arraylist.get(day+mCal.get(Calendar.DAY_OF_WEEK)-1).getStart_Y()+30));
+		*/
+        Show_Calendar_Item_Text[ItemIndex] = new WpadTextView(getContext(), false, 110, 50, Gravity.CENTER, Color.parseColor("#ff7d00"), Common.fontsize._22, false, ID.RemoteMeterMainScreenID.text.TEXT_ITEM);
+        ViewRegistration(getLayout(), Show_Calendar_Item_Text[ItemIndex],
+                Common.ImgPosion.GetX(arraylist.get(day + mCal.get(Calendar.DAY_OF_WEEK) - 1).getStart_X() + 36),
+                Common.ImgPosion.GetY(arraylist.get(day + mCal.get(Calendar.DAY_OF_WEEK) - 1).getStart_Y() + 30));
+        Show_Calendar_Item_Text[ItemIndex].setText(ItemValue);
+    }
+
+
+    private void ChangeData() {
+        if (isResponseArrive == false) {
+            if (mSampleShow != Common.MODE_BUSINESS_SAMPLE) {
+                return;
+            }
+        }
+
+        switch (ShowNowTypeIndex) {
+            case 0: //당월
+                //RemoveMonthEnergy();
+                //ShowMonthEnergy();
+                //vip
+                RemoveVipMonthEnergy();
+                ShowVipMonthEnergy();
+                break;
+
+            case 1:
+                RemoveCalendarDayViews();
+                ShowCalendar();
+                LoadRemotemeterDataFromServer(ShowNowTypeIndex, CalendarYear, CalendarMonth, ShowNowEnergyIndex);
+                break;
+
+            case 2:
+                Remove3MonthEnergy();
+                Show3MonthEnergy();
+                break;
+
+            case 3:
+                RemoveYearEnergy();
+                ShowYearEnergy();
+                break;
+
+            default:
+                break;
+        }
+
+    }
+
+    /**
+     * @description 에너지 리스트 버튼의 리스트 닫기
+     */
+    private void ListEnergyClose() {
+        mOpenListEnergy = false;
+        getLayout().removeView(Show_EnergyListTypeBG);
+        RemoveListEnergy();
+        ShowListEnergy(false);
+
+        getLayout().removeView(Energy_SEL_01);
+        getLayout().removeView(Energy_SEL_02);
+
+        getLayout().removeView(Energy_SEL_01_Text);
+        getLayout().removeView(Energy_SEL_02_Text);
+        switch (mNumberOfEnergy) {
+            case 5:
+                getLayout().removeView(Energy_SEL_03);
+                getLayout().removeView(Energy_SEL_04);
+
+                getLayout().removeView(Energy_SEL_03_Text);
+                getLayout().removeView(Energy_SEL_04_Text);
+                break;
+            case 6:
+                getLayout().removeView(Energy_SEL_03);
+                getLayout().removeView(Energy_SEL_04);
+                getLayout().removeView(Energy_SEL_05);
+
+                getLayout().removeView(Energy_SEL_03_Text);
+                getLayout().removeView(Energy_SEL_04_Text);
+                getLayout().removeView(Energy_SEL_05_Text);
+                break;
+
+            default:
+                break;
+        }
+    }
+
+    /**
+     * @description 당월 사용량/생산량 리스트 버튼의 리스트 닫기
+     */
+    private void ListMonthClose() {
+        mOpenListMonth = false;
+        RemoveListMonth();
+        ShowListMonth(false);
+
+        getLayout().removeView(MONTH_SEL_01);
+        getLayout().removeView(MONTH_SEL_02);
+
+        getLayout().removeView(MONTH_SEL_01_Text);
+        getLayout().removeView(MONTH_SEL_02_Text);
+    }
+
+    /**
+     * @param //3종, 5종, 6종 중 선택
+     * @description 에너지 리스트 버튼의 텍스트 출력
+     */
+    private void ListEnergyTextWrite(int number) {
+        if (number == 2) {
+            //텍스트 출력
+            Energy_SEL_01_Text = new WpadTextView(getContext(), false, 230, 55, Gravity.CENTER, Color.WHITE, Common.fontsize._26_DEFAULT, false, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+            ViewRegistration(getLayout(), Energy_SEL_01_Text,
+                    Common.ImgPosion.GetX(93),
+                    Common.ImgPosion.GetY(186));
+            int TempShowNextEnergyIndex = 0;
+            if (ShowNowEnergyIndex == 0) {
+                TempShowNextEnergyIndex = 2;
+            } else if (ShowNowEnergyIndex == 2) {
+                TempShowNextEnergyIndex = 0;
+            }
+
+            Energy_SEL_01_Text.setText(ShowListEnergyType_String[TempShowNextEnergyIndex]);
+        } else if (number == 3) {
+            //텍스트 출력
+            Energy_SEL_01_Text = new WpadTextView(getContext(), false, 230, 55, Gravity.CENTER, Color.WHITE, Common.fontsize._26_DEFAULT, false, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+            ViewRegistration(getLayout(), Energy_SEL_01_Text,
+                    Common.ImgPosion.GetX(93),
+                    Common.ImgPosion.GetY(186));
+            Energy_SEL_01_Text.setText(ShowListEnergyType_String[(ShowNowEnergyIndex + 1) % 3]);
+
+            Energy_SEL_02_Text = new WpadTextView(getContext(), false, 230, 55, Gravity.CENTER, Color.WHITE, Common.fontsize._26_DEFAULT, false, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+            ViewRegistration(getLayout(), Energy_SEL_02_Text,
+                    Common.ImgPosion.GetX(93),
+                    Common.ImgPosion.GetY(241));
+            Energy_SEL_02_Text.setText(ShowListEnergyType_String[(ShowNowEnergyIndex + 2) % 3]);
+        } else if (number == 5) {
+            //텍스트 출력
+            Energy_SEL_01_Text = new WpadTextView(getContext(), false, 230, 55, Gravity.CENTER, Color.WHITE, Common.fontsize._26_DEFAULT, false, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+            ViewRegistration(getLayout(), Energy_SEL_01_Text,
+                    Common.ImgPosion.GetX(93),
+                    Common.ImgPosion.GetY(186));
+            Energy_SEL_01_Text.setText(ShowListEnergyType_String[(ShowNowEnergyIndex + 1) % 5]);
+
+            Energy_SEL_02_Text = new WpadTextView(getContext(), false, 230, 55, Gravity.CENTER, Color.WHITE, Common.fontsize._26_DEFAULT, false, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+            ViewRegistration(getLayout(), Energy_SEL_02_Text,
+                    Common.ImgPosion.GetX(93),
+                    Common.ImgPosion.GetY(241));
+            Energy_SEL_02_Text.setText(ShowListEnergyType_String[(ShowNowEnergyIndex + 2) % 5]);
+
+            Energy_SEL_03_Text = new WpadTextView(getContext(), false, 230, 55, Gravity.CENTER, Color.WHITE, Common.fontsize._26_DEFAULT, false, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+            ViewRegistration(getLayout(), Energy_SEL_03_Text,
+                    Common.ImgPosion.GetX(93),
+                    Common.ImgPosion.GetY(296));
+            Energy_SEL_03_Text.setText(ShowListEnergyType_String[(ShowNowEnergyIndex + 3) % 5]);
+
+            Energy_SEL_04_Text = new WpadTextView(getContext(), false, 230, 55, Gravity.CENTER, Color.WHITE, Common.fontsize._26_DEFAULT, false, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+            ViewRegistration(getLayout(), Energy_SEL_04_Text,
+                    Common.ImgPosion.GetX(93),
+                    Common.ImgPosion.GetY(351));
+            Energy_SEL_04_Text.setText(ShowListEnergyType_String[(ShowNowEnergyIndex + 4) % 5]);
+        } else if (number == 6) {
+            //텍스트 출력
+            Energy_SEL_01_Text = new WpadTextView(getContext(), false, 230, 55, Gravity.CENTER, Color.WHITE, Common.fontsize._26_DEFAULT, true, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+            ViewRegistration(getLayout(), Energy_SEL_01_Text,
+                    Common.ImgPosion.GetX(93),
+                    Common.ImgPosion.GetY(186));
+            Energy_SEL_01_Text.setText(ShowListEnergyType_String[(ShowNowEnergyIndex + 1) % 6]);
+
+            Energy_SEL_02_Text = new WpadTextView(getContext(), false, 230, 55, Gravity.CENTER, Color.WHITE, Common.fontsize._26_DEFAULT, false, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+            ViewRegistration(getLayout(), Energy_SEL_02_Text,
+                    Common.ImgPosion.GetX(93),
+                    Common.ImgPosion.GetY(241));
+            Energy_SEL_02_Text.setText(ShowListEnergyType_String[(ShowNowEnergyIndex + 2) % 6]);
+
+            Energy_SEL_03_Text = new WpadTextView(getContext(), false, 230, 55, Gravity.CENTER, Color.WHITE, Common.fontsize._26_DEFAULT, false, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+            ViewRegistration(getLayout(), Energy_SEL_03_Text,
+                    Common.ImgPosion.GetX(93),
+                    Common.ImgPosion.GetY(296));
+            Energy_SEL_03_Text.setText(ShowListEnergyType_String[(ShowNowEnergyIndex + 3) % 6]);
+
+            Energy_SEL_04_Text = new WpadTextView(getContext(), false, 230, 55, Gravity.CENTER, Color.WHITE, Common.fontsize._26_DEFAULT, false, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+            ViewRegistration(getLayout(), Energy_SEL_04_Text,
+                    Common.ImgPosion.GetX(93),
+                    Common.ImgPosion.GetY(351));
+            Energy_SEL_04_Text.setText(ShowListEnergyType_String[(ShowNowEnergyIndex + 4) % 6]);
+
+            Energy_SEL_05_Text = new WpadTextView(getContext(), false, 230, 55, Gravity.CENTER, Color.WHITE, Common.fontsize._26_DEFAULT, false, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+            ViewRegistration(getLayout(), Energy_SEL_05_Text,
+                    Common.ImgPosion.GetX(93),
+                    Common.ImgPosion.GetY(406));
+            Energy_SEL_05_Text.setText(ShowListEnergyType_String[(ShowNowEnergyIndex + 5) % 6]);
+        }
+    }
+
+    /**
+     * @param //실제 표현된 텍스트를 비교
+     * @description 에너지 리스트 버튼의 터치입력 구분
+     */
+    private void ListEnergyClickEvent(WpadTextView wpadtextview) {
+        if (isResponseArrive == false) {
+            if (mSampleShow != Common.MODE_BUSINESS_SAMPLE) {
+                return;
+            }
+        }
+
+        RemoveMainEnergy();
+        if (wpadtextview.getText().equals(ShowListEnergyType_String[0])) {
+            DebugLogOutput("전기 선택");
+            ShowNowEnergyIndex = 0;
+        } else if (wpadtextview.getText().equals(ShowListEnergyType_String[1])) {
+            DebugLogOutput("수도 선택!");
+            ShowNowEnergyIndex = 1;
+        } else if (wpadtextview.getText().equals(ShowListEnergyType_String[2])) {
+            DebugLogOutput("가스 선택");
+            ShowNowEnergyIndex = 2;
+        } else if (wpadtextview.getText().equals(ShowListEnergyType_String[3])) {
+            DebugLogOutput("온수 선택");
+            ShowNowEnergyIndex = 3;
+        } else if (wpadtextview.getText().equals(ShowListEnergyType_String[4])) {
+            DebugLogOutput("난방 선택");
+            ShowNowEnergyIndex = 4;
+        } else if (wpadtextview.getText().equals(ShowListEnergyType_String[5])) {
+            DebugLogOutput("탄소 선택");
+            ShowNowEnergyIndex = 5;
+        }
+        ShowMainEnergy();
+        ListEnergyClose();
+    }
+
+    /**
+     * @param //실제 표현된 텍스트를 비교
+     * @description 에너지 리스트 버튼의 터치입력 구분
+     */
+    private void ListMonthClickEvent(WpadTextView wpadtextview) {
+        if (isResponseArrive == false) {
+            if (mSampleShow != Common.MODE_BUSINESS_SAMPLE) {
+                return;
+            }
+        }
+        if (wpadtextview.getText().equals(ShowMonthType_String[0])) {
+            DebugLogOutput("사용량 선택");
+            ShowMonthTypeIndex = 0;
+        } else if (wpadtextview.getText().equals(ShowMonthType_String[1])) {
+            DebugLogOutput("생산량 선택!");
+            ShowMonthTypeIndex = 1;
+        }
+        ListMonthClose();
+    }
+
+    /**
+     * @param //3 또는 2 입력(3:EMS 인경우 당월 존재, 2:EMS 존재하지 않는 경우 당월 삭제)
+     * @description 당월, 일별, 3개월, 전년비 리스트 버튼에 텍스트를 출력하기 위한 함수<br>
+     */
+    private void ListTextWrite(int number) {
+        if (number == 3) {
+            //텍스트 출력
+            NEW_SEL_01_Text = new WpadTextView(getContext(), false, 230, 55, Gravity.CENTER, Color.WHITE, Common.fontsize._26_DEFAULT, false, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+            ViewRegistration(getLayout(), NEW_SEL_01_Text,
+                    Common.ImgPosion.GetX(957),
+                    Common.ImgPosion.GetY(186));
+            NEW_SEL_01_Text.setText(ShowListType_String[(ShowNowTypeIndex + 1) % 4]);
+
+            //텍스트 출력
+            NEW_SEL_02_Text = new WpadTextView(getContext(), false, 230, 55, Gravity.CENTER, Color.WHITE, Common.fontsize._26_DEFAULT, false, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+            ViewRegistration(getLayout(), NEW_SEL_02_Text,
+                    Common.ImgPosion.GetX(957),
+                    Common.ImgPosion.GetY(241));
+            NEW_SEL_02_Text.setText(ShowListType_String[(ShowNowTypeIndex + 2) % 4]);
+
+            //텍스트 출력
+            NEW_SEL_03_Text = new WpadTextView(getContext(), false, 230, 55, Gravity.CENTER, Color.WHITE, Common.fontsize._26_DEFAULT, false, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+            ViewRegistration(getLayout(), NEW_SEL_03_Text,
+                    Common.ImgPosion.GetX(957),
+                    Common.ImgPosion.GetY(296));
+            NEW_SEL_03_Text.setText(ShowListType_String[(ShowNowTypeIndex + 3) % 4]);
+
+        } else if (number == 2) {
+            //텍스트 출력
+            NEW_SEL_01_Text = new WpadTextView(getContext(), false, 230, 55, Gravity.CENTER, Color.WHITE, Common.fontsize._26_DEFAULT, false, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+            ViewRegistration(getLayout(), NEW_SEL_01_Text,
+                    Common.ImgPosion.GetX(957),
+                    Common.ImgPosion.GetY(186));
+            NEW_SEL_01_Text.setText(ShowListType_String[(ShowNowTypeIndex % 3) + 1]);
+
+            int TempIndex;
+            switch (ShowNowTypeIndex) {
+                case 1:
+                    TempIndex = 3;
+                    break;
+                case 2:
+                    TempIndex = 1;
+                    break;
+                case 3:
+                    TempIndex = 2;
+                    break;
+                default:
+                    TempIndex = 1;
+                    break;
+            }
+
+            //텍스트 출력
+            NEW_SEL_02_Text = new WpadTextView(getContext(), false, 230, 55, Gravity.CENTER, Color.WHITE, Common.fontsize._26_DEFAULT, false, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+            ViewRegistration(getLayout(), NEW_SEL_02_Text,
+                    Common.ImgPosion.GetX(957),
+                    Common.ImgPosion.GetY(241));
+            NEW_SEL_02_Text.setText(ShowListType_String[(TempIndex)]);
+        }
+    }
+
+    /**
+     * @description 당월, 일별, 3개월, 전년비 리스트 버튼 닫기
+     */
+    private void ListClose() {
+        mOpenList = false;
+        getLayout().removeView(Show_ListTypeBG);
+        getLayout().removeView(mShowListType);
+        getLayout().removeView(mShowListTypeText);
+
+        getLayout().removeView(NEW_SEL_01);
+        getLayout().removeView(NEW_SEL_02);
+        getLayout().removeView(NEW_SEL_03);
+
+        getLayout().removeView(NEW_SEL_01_Text);
+        getLayout().removeView(NEW_SEL_02_Text);
+        getLayout().removeView(NEW_SEL_03_Text);
+
+
+        mShowListType = new WpadImageView(getContext(), TOUCH_KIND.BUTTON, 230, 55, R.drawable.but_title, R.drawable.but_title_p, ID.RemoteMeterMainScreenID.button.SHOW_TYPE);
+        ViewRegistration(getLayout(), mShowListType, Common.ImgPosion.GetX(957), Common.ImgPosion.GetY(132));
+        mShowListTypeText = new WpadTextView(getContext(), false, 230, 55, Gravity.CENTER, Color.WHITE, Common.fontsize._36, false, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+        ViewRegistration(getLayout(), mShowListTypeText,
+                Common.ImgPosion.GetX(957),
+                Common.ImgPosion.GetY(132));
+        mShowListTypeText.setText(ShowListType_String[ShowNowTypeIndex]);
+    }
+
+    /**
+     * @description 당월, 일별, 3개월, 전년비 리스트 버튼 터치 처리
+     */
+    private void ListClickEvent(WpadTextView wpadtextview) {
+        if (isResponseArrive == false) {
+            if (mSampleShow != Common.MODE_BUSINESS_SAMPLE) {
+                return;
+            }
+        }
+
+        RemoveMainPage();
+        if (wpadtextview.getText().equals(ShowListType_String[0])) {
+            DebugLogOutput("당월 표 출력");
+            ShowNowTypeIndex = 0;
+        } else if (wpadtextview.getText().equals(ShowListType_String[1])) {
+            DebugLogOutput("일별 터치함 -> 일별 출력!");
+            ShowNowTypeIndex = 1;
+        } else if (wpadtextview.getText().equals(ShowListType_String[2])) {
+            DebugLogOutput("3개월 터치함 -> 3개월 그래프 출력");
+            ShowNowTypeIndex = 2;
+        } else if (wpadtextview.getText().equals(ShowListType_String[3])) {
+            DebugLogOutput("전년비 터치함 -> 전년비 그래프 출력");
+            ShowNowTypeIndex = 3;
+        }
+        ShowMainPage();
+        ListClose();
+    }
+
+    /**
+     * @param //False면 닫힌상태, True면 열린상태 입력
+     * @description 에너지 리스트 버튼 등록
+     */
+    private void ShowListEnergy(boolean ListClosed) {
+        if (ListClosed == false) {
+            mListEnergy = new WpadImageView(getContext(), TOUCH_KIND.BUTTON, 230, 55, R.drawable.but_title, R.drawable.but_title_p, ID.RemoteMeterMainScreenID.button.SHOW_LIST_ENERGY_TYPE);
+            ViewRegistration(getLayout(), mListEnergy, Common.ImgPosion.GetX(93), Common.ImgPosion.GetY(132));
+        } else {
+            mListEnergy = new WpadImageView(getContext(), TOUCH_KIND.BUTTON, 230, 55, R.drawable.but_title_p, R.drawable.but_title, ID.RemoteMeterMainScreenID.button.SHOW_LIST_ENERGY_TYPE);
+            ViewRegistration(getLayout(), mListEnergy, Common.ImgPosion.GetX(93), Common.ImgPosion.GetY(132));
+
+        }
+        //한글
+        mShowListEnergyTypeText = new WpadTextView(getContext(), false, 89, 55, Gravity.LEFT, Color.WHITE, Common.fontsize._36, true, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+        ViewRegistration(getLayout(), mShowListEnergyTypeText,
+                Common.ImgPosion.GetX(100),
+                Common.ImgPosion.GetY(132));
+        mShowListEnergyTypeText.setText(ShowEnergyType_String[ShowNowEnergyIndex]);
+        //단위
+        mShowListEnergyTypeUnit = new WpadTextView(getContext(), false, 89, 55, Gravity.LEFT, Color.WHITE, Common.fontsize._20, true, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+        ViewRegistration(getLayout(), mShowListEnergyTypeUnit,
+                Common.ImgPosion.GetX(182),
+                Common.ImgPosion.GetY(132));
+        mShowListEnergyTypeUnit.setText(ShowEnergyTypeUnit_String[ShowNowEnergyIndex]);
+    }
+
+    /**
+     * @description 전기, 수도, 가스, 온수, 난방, 탄소 중 에너지 표현<br>
+     * ShowNowEnergyIndex 값으로 표현할 에너지 선택
+     */
+    private void ShowMainEnergy() {
+
+    }
+
+    /**
+     * @param //False면 닫힌상태, True면 열린상태 입력
+     * @description 당월 사용량/생산량 리스트 버튼 등록
+     */
+    private void ShowListMonth(boolean ListClosed) {
+        if (ListClosed == false) {
+            mListMonth = new WpadImageView(getContext(), TOUCH_KIND.BUTTON, 230, 55, R.drawable.but_title, R.drawable.but_title_p, ID.RemoteMeterMainScreenID.button.SHOW_LIST_MONTH_TYPE);
+            ViewRegistration(getLayout(), mListMonth, Common.ImgPosion.GetX(93), Common.ImgPosion.GetY(132));
+        } else {
+            mListMonth = new WpadImageView(getContext(), TOUCH_KIND.BUTTON, 230, 55, R.drawable.but_title_p, R.drawable.but_title, ID.RemoteMeterMainScreenID.button.SHOW_LIST_MONTH_TYPE);
+            ViewRegistration(getLayout(), mListMonth, Common.ImgPosion.GetX(93), Common.ImgPosion.GetY(132));
+
+        }
+        //한글
+        mShowListMonthTypeText = new WpadTextView(getContext(), false, 200, 55, Gravity.CENTER, Color.WHITE, Common.fontsize._36, true, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+        ViewRegistration(getLayout(), mShowListMonthTypeText,
+                Common.ImgPosion.GetX(93),
+                Common.ImgPosion.GetY(132));
+        mShowListMonthTypeText.setText(ShowMonthType_String[ShowMonthTypeIndex]);
+    }
+
+
+    /**
+     * @description 매인페이지 변경 (당월, 일별, 3개월, 전년비 중 선택)
+     */
+    private void ShowMainPage() {
+        switch (ShowNowTypeIndex) {
+            case 0:
+                //ShowMonthEnergy();
+                //VIP용
+                ShowVipMonthEnergy();
+                break;
+
+            case 1:
+                ShowDayEnergy();
+                break;
+
+            case 2:
+                Show3MonthEnergy();
+                break;
+
+            case 3:
+                ShowYearEnergy();
+                break;
+
+            default:
+                break;
+
+        }
+    }
+
+    /**
+     * @description 당월 표 및 데이터 출력
+     */
+    private void ShowMonthEnergy() {
+        //표의/항목, 사용량 순위, 목표량 표의 1행 표시
+        //Show_MonthTableRow1 = new WpadImageView(getContext(), TOUCH_KIND.NONE, 732, 55, R.drawable.title_bg, 0, ID.RemoteMeterMainScreenID.image.BG_MONTHTABLE_ROW1);
+        //ViewRegistration(getLayout(), Show_MonthTableRow1, ImgPosion.GetX(250), ImgPosion.GetY(169));
+        TopSetTargetBtn = new WpadImageView(getContext(), TOUCH_KIND.BUTTON, 230, 54, R.drawable.top_but_target_default, R.drawable.top_but_target_pressed, ID.main.button.SET_TARGET);
+        ViewRegistration(getLayout(), TopSetTargetBtn, Common.ImgPosion.GetX(93), Common.ImgPosion.GetY(132));
+        //setTopSetTargetBtnVisible(true);
+
+        switch (mNumberOfEnergy) {
+            case 2:
+                Show_MonthTableEnergy = new WpadImageView(getContext(), TOUCH_KIND.NONE, 1094, 532, R.drawable.bg_2, 0, ID.RemoteMeterMainScreenID.image.BG_MONTHTABLE_ENERGY);
+                ViewRegistration(getLayout(), Show_MonthTableEnergy, Common.ImgPosion.GetX(93), Common.ImgPosion.GetY(221));
+                break;
+
+            case 3:
+                Show_MonthTableEnergy = new WpadImageView(getContext(), TOUCH_KIND.NONE, 1094, 532, R.drawable.bg_3, 0, ID.RemoteMeterMainScreenID.image.BG_MONTHTABLE_ENERGY);
+                ViewRegistration(getLayout(), Show_MonthTableEnergy, Common.ImgPosion.GetX(93), Common.ImgPosion.GetY(221));
+                break;
+
+            case 5:
+                Show_MonthTableEnergy = new WpadImageView(getContext(), TOUCH_KIND.NONE, 1094, 532, R.drawable.bg_5, 0, ID.RemoteMeterMainScreenID.image.BG_MONTHTABLE_ENERGY);
+                ViewRegistration(getLayout(), Show_MonthTableEnergy, Common.ImgPosion.GetX(93), Common.ImgPosion.GetY(221));
+                break;
+
+            case 6:
+                Show_MonthTableEnergy = new WpadImageView(getContext(), TOUCH_KIND.NONE, 1094, 532, R.drawable.bg_6, 0, ID.RemoteMeterMainScreenID.image.BG_MONTHTABLE_ENERGY);
+                ViewRegistration(getLayout(), Show_MonthTableEnergy, Common.ImgPosion.GetX(93), Common.ImgPosion.GetY(221));
+                break;
+
+            default:
+                break;
+        }
+
+
+        if (mSampleShow == Common.MODE_BUSINESS_SAMPLE) {
+            for (int i = 0; i < 6; i++) {
+                monthTableClass[i] = new MonthTableClass("", "", "");
+                monthTableClass[i].Use = "1120/1231";
+                monthTableClass[i].Rank = "41/55";
+                monthTableClass[i].Goal = "1442";
+
+                if (mCostInfo_Enable == true) {
+                    monthTableClass[i].Price = "52000";
+                }
+            }
+            switch (mNumberOfEnergy) {
+                case 3:
+                    ShowMonthEnergyData(mNumberOfEnergy, 151, 151);
+                    break;
+
+                case 5:
+                    ShowMonthEnergyData(mNumberOfEnergy, 90, 90);
+                    break;
+
+                case 6:
+                    ShowMonthEnergyData(mNumberOfEnergy, 74, 74);
+                    break;
+
+                default:
+                    break;
+            }
+        } else {
+            LoadRemotemeterDataFromServer(ShowNowTypeIndex, CalendarYear, -1, ShowNowEnergyIndex);
+        }
+
+
+    }
+
+    /**
+     * @description 당월 표 및 데이터 출력
+     */
+    private void ShowVipMonthEnergy() {
+        //사용량, 생산량 선택
+        ShowListMonth(false);
+
+        if (ShowMonthTypeIndex == 0) { //사용량
+            Show_MonthVipTableEnergy1 = new WpadImageView(getContext(), TOUCH_KIND.NONE, 520, 532, R.drawable.bg_vip_2, 0, ID.RemoteMeterMainScreenID.image.BG_MONTHTABLE_VIP_ENERGY1);
+            ViewRegistration(getLayout(), Show_MonthVipTableEnergy1, Common.ImgPosion.GetX(93), Common.ImgPosion.GetY(221));
+
+            Show_MonthVipTableEnergy2 = new WpadImageView(getContext(), TOUCH_KIND.NONE, 520, 348, R.drawable.bg_vip_3, 0, ID.RemoteMeterMainScreenID.image.BG_MONTHTABLE_VIP_ENERGY2);
+            ViewRegistration(getLayout(), Show_MonthVipTableEnergy2, Common.ImgPosion.GetX(667), Common.ImgPosion.GetY(221));
+        } else if (ShowMonthTypeIndex == 1) { //생산량
+            Show_MonthVipTableEnergy3 = new WpadImageView(getContext(), TOUCH_KIND.NONE, 520, 348, R.drawable.bg_vip_1, 0, ID.RemoteMeterMainScreenID.image.BG_MONTHTABLE_VIP_ENERGY3);
+            ViewRegistration(getLayout(), Show_MonthVipTableEnergy3, Common.ImgPosion.GetX(360), Common.ImgPosion.GetY(221));
+        }
+
+        if (mSampleShow == Common.MODE_BUSINESS_SAMPLE) {
+            for (int i = 0; i < 6; i++) {
+                monthTableClass[i] = new MonthTableClass("", "", "");
+                monthTableClass[i].Use = "1120/1231";
+                monthTableClass[i].Rank = "41/55";
+                monthTableClass[i].Goal = "1442";
+
+                if (mCostInfo_Enable == true) {
+                    monthTableClass[i].Price = "52000";
+                }
+            }
+            switch (mNumberOfEnergy) {
+                case 3:
+                    ShowMonthEnergyData(mNumberOfEnergy, 151, 151);
+                    break;
+
+                case 5:
+                    ShowMonthEnergyData(mNumberOfEnergy, 90, 90);
+                    break;
+
+                case 6:
+                    ShowMonthEnergyData(mNumberOfEnergy, 74, 74);
+                    break;
+
+                default:
+                    break;
+            }
+        } else {
+            LoadRemotemeterDataFromServer(ShowNowTypeIndex, CalendarYear, -1, ShowNowEnergyIndex);
+            new Handler().postDelayed(new Runnable() {
+                @Override
+                public void run() {
+                    LoadRemotemeterDataFromServer(ShowNowTypeIndex + 100, CalendarYear, -1, ShowNowEnergyIndex);
+                }
+            }, 300); // 서버 연속 데이터 호출 시 응답이 제대로 오지 않아 처리
+        }
+
+    }
+
+
+    /**
+     * @description 당월 표의 텍스트 데이터 출력
+     */
+    private void ShowMonthEnergyData(int NumberOfEnergy, int Margin_x, int Margin_y) {
+        String tempMonthItem = "";
+        int TempMargin_y_ForEnergyNum2 = 0;
+        for (int i = 0; i < NumberOfEnergy; i++) {
+            if ((mNumberOfEnergy == 2) && (i == 0)) {
+                TempMargin_y_ForEnergyNum2 = 22;
+
+            } else if ((mNumberOfEnergy == 2) && (i == 1)) {
+                i = 2;
+                TempMargin_y_ForEnergyNum2 = -27;
+            }
+
+            tempMonthItem = monthTableClass[i].Use;
+
+            Show_MonthTable_Item_Use_Text_LEFT[i] = new WpadTextView(getContext(), false, 273, Margin_x, Gravity.CENTER, Color.WHITE, Common.fontsize._26_DEFAULT, false, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+            ViewRegistration(getLayout(), Show_MonthTable_Item_Use_Text_LEFT[i],
+                    Common.ImgPosion.GetX(332),
+                    Common.ImgPosion.GetY(293 + (i * Margin_y) + TempMargin_y_ForEnergyNum2));
+            if (Show_MonthTable_Item_Use_Text_LEFT[i] != null)
+                Show_MonthTable_Item_Use_Text_LEFT[i].setText(tempMonthItem);
+
+        }
+
+    }
+
+    private void ShowMonthEnergyDataRight(int Margin_x, int Margin_y) {
+        String tempMonthItem = "";
+        int TempMargin_y_ForEnergyNum2 = 0;
+        for (int i = 0; i < 3; i++) {
+            tempMonthItem = monthTableClassRight[1].Use;
+
+            Show_MonthTable_Item_Use_Text_RIGHT[i] = new WpadTextView(getContext(), false, 273, Margin_x, Gravity.CENTER, Color.WHITE, Common.fontsize._26_DEFAULT, false, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+            ViewRegistration(getLayout(), Show_MonthTable_Item_Use_Text_RIGHT[i],
+                    Common.ImgPosion.GetX(902),
+                    Common.ImgPosion.GetY(293 + (i * Margin_y) + TempMargin_y_ForEnergyNum2));
+            if (Show_MonthTable_Item_Use_Text_RIGHT[i] != null)
+                Show_MonthTable_Item_Use_Text_RIGHT[i].setText(tempMonthItem);
+        }
+    }
+
+    private void ShowMonthEnergyDataCenter(int Margin_x, int Margin_y) {
+        String kepcoMonthItem = "";
+        String fuelcellMonthItem = "";
+        int total = 0;
+        int TempMargin_y_ForEnergyNum2 = 0;
+        kepcoMonthItem = monthTableClassRight[0].Use;
+        fuelcellMonthItem = monthTableClassRight[3].Use;
+
+        total = Integer.valueOf(kepcoMonthItem) + Integer.valueOf(fuelcellMonthItem);
+
+        Show_MonthTable_Item_Use_Text_CENTER[0] = new WpadTextView(getContext(), false, 273, Margin_x, Gravity.CENTER, Color.WHITE, Common.fontsize._26_DEFAULT, false, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+        ViewRegistration(getLayout(), Show_MonthTable_Item_Use_Text_CENTER[0],
+                Common.ImgPosion.GetX(602),
+                Common.ImgPosion.GetY(293 + (0 * Margin_y) + TempMargin_y_ForEnergyNum2));
+        if (Show_MonthTable_Item_Use_Text_CENTER[0] != null)
+            Show_MonthTable_Item_Use_Text_CENTER[0].setText(kepcoMonthItem);
+
+        Show_MonthTable_Item_Use_Text_CENTER[1] = new WpadTextView(getContext(), false, 273, Margin_x, Gravity.CENTER, Color.WHITE, Common.fontsize._26_DEFAULT, false, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+        ViewRegistration(getLayout(), Show_MonthTable_Item_Use_Text_CENTER[1],
+                Common.ImgPosion.GetX(602),
+                Common.ImgPosion.GetY(293 + (1 * Margin_y) + TempMargin_y_ForEnergyNum2));
+        if (Show_MonthTable_Item_Use_Text_CENTER[1] != null)
+            Show_MonthTable_Item_Use_Text_CENTER[1].setText(fuelcellMonthItem);
+
+        Show_MonthTable_Item_Use_Text_CENTER[2] = new WpadTextView(getContext(), false, 273, Margin_x, Gravity.CENTER, Color.WHITE, Common.fontsize._26_DEFAULT, false, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+        ViewRegistration(getLayout(), Show_MonthTable_Item_Use_Text_CENTER[2],
+                Common.ImgPosion.GetX(602),
+                Common.ImgPosion.GetY(293 + (2 * Margin_y) + TempMargin_y_ForEnergyNum2));
+        if (Show_MonthTable_Item_Use_Text_CENTER[2] != null)
+            Show_MonthTable_Item_Use_Text_CENTER[2].setText(total+"");
+    }
+
+
+    /**
+     * @description 일별 달력 및 데이터 출력
+     */
+    private void ShowDayEnergy() {
+        ShowListEnergy(false);
+
+        Show_BG_Calendar = new WpadImageView(getContext(), TOUCH_KIND.NONE, 1094, 532, R.drawable.bg, 0, ID.RemoteMeterMainScreenID.image.BG_CALENDAR);
+        ViewRegistration(getLayout(), Show_BG_Calendar, Common.ImgPosion.GetX(93), Common.ImgPosion.GetY(221));
+
+
+        ShowCalendar();
+        if (mSampleShow == Common.MODE_NOMAL) {
+            LoadRemotemeterDataFromServer(ShowNowTypeIndex, CalendarYear, CalendarMonth, ShowNowEnergyIndex);
+        }
+
+
+    }
+
+    /**
+     * @description 전년비 비교 그래프 및 데이터 출력
+     */
+    private void ShowYearEnergy() {
+        //setTopSetTargetBtnVisible(false);
+        ShowListEnergy(false);
+
+        //Show_BG_Discription = new WpadImageView(getContext(), TOUCH_KIND.NONE, 645, 42, R.drawable.discription_bg, 0, ID.RemoteMeterMainScreenID.image.BG_DISCRIPTION);
+        //ViewRegistration(getLayout(), Show_BG_Discription, ImgPosion.GetX(337), ImgPosion.GetY(163));
+
+        Show_BG_Graph = new WpadImageView(getContext(), TOUCH_KIND.NONE, 890, 482, R.drawable.graph_bg_year, 0, ID.RemoteMeterMainScreenID.image.BG_GRAPH);
+        ViewRegistration(getLayout(), Show_BG_Graph, Common.ImgPosion.GetX(202), Common.ImgPosion.GetY(257));
+
+        Show_3Month_Discription_Text = new WpadTextView(getContext(), false, 890, 70, Gravity.CENTER, Color.parseColor("#646464"), Common.fontsize._26_DEFAULT, false, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+        ViewRegistration(getLayout(), Show_3Month_Discription_Text,
+                Common.ImgPosion.GetX(202),
+                Common.ImgPosion.GetY(187));
+
+        Show_3Month_Discription_Text.setText(mShowListEnergyTypeText.getText() + "사용량을 작년 3개월과 올해 3개월분 비교 데이터입니다.");
+
+
+        if (mSampleShow == Common.MODE_BUSINESS_SAMPLE) {
+            int MaxValue = 1801;
+            int FirstValue[] = new int[2];
+            FirstValue[0] = 1552;
+            FirstValue[1] = 1600;
+            int SecondValue[] = new int[2];
+            SecondValue[0] = 1211;
+            SecondValue[1] = 1321;
+            int ThirdValue[] = new int[2];
+            ThirdValue[0] = 522;
+            ThirdValue[1] = 801;
+
+            //왼쪽 기준 텍스트
+            for (int i = 0; i < 6; i++) {
+                Show_3Month_Legend_Text[i] = new WpadTextView(getContext(), false, 109, 30, Gravity.RIGHT, Color.parseColor("#969696"), Common.fontsize._26_DEFAULT, false, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+                ViewRegistration(getLayout(), Show_3Month_Legend_Text[i],
+                        Common.ImgPosion.GetX(86),
+                        Common.ImgPosion.GetY(726 - (i * 80)));
+                if (Show_3Month_Legend_Text[i] != null)
+                    Show_3Month_Legend_Text[i].setText(Integer.toString(i * MaxValue / 5));
+            }
+
+            //최근 3개월 비교일때 point_x : 274,378,570,674,866,970 (x축 위치)
+            //전년비 비교 or 최근 6개월 비교일때 252 시작으로 148씩 더하면 됨
+
+            DrawGraphAfterCalc((float) MaxValue, FirstValue[0], true, 252, true, "2013.01");
+            DrawGraphAfterCalc((float) MaxValue, FirstValue[1], false, 252 + (148 * 1), true, "2014.01");
+
+            DrawGraphAfterCalc((float) MaxValue, SecondValue[0], true, 252 + (148 * 2), true, "2013.02");
+            DrawGraphAfterCalc((float) MaxValue, SecondValue[1], false, 252 + (148 * 3), true, "2014.02");
+
+            DrawGraphAfterCalc((float) MaxValue, ThirdValue[0], true, 252 + (148 * 4), true, "2013.03");
+            DrawGraphAfterCalc((float) MaxValue, ThirdValue[1], false, 252 + (148 * 5), true, "2014.03");
+        } else {
+            //Quene 에 해야할일 삽입
+            TodoList.offer(CalendarYear - 1);
+            TodoList.offer(CalendarYear - 2);
+
+            //Get Data from Server
+            LoadRemotemeterDataFromServer(ShowNowTypeIndex, CalendarYear, -1, ShowNowEnergyIndex);
+
+        }
+    }
+
+
+    /**
+     * @description 달력을 월패드 화면에 표시
+     */
+    private void ShowCalendar() {
+        //setTopSetTargetBtnVisible(false);
+        mYearMonth.setText(CalendarYear + "년 " + (CalendarMonth + 1) + "월");
+        //달력 날짜 표시 시작
+        LoadCalendarArray(CalendarYear, CalendarMonth);
+
+        for (int i = 1; i <= mCal.getActualMaximum(Calendar.DATE); i++) {
+
+            if ((i + mCal.get(Calendar.DAY_OF_WEEK) - 1) % 7 == 1) {
+                DayOfWeekColor = Color.RED;
+            } else if ((i + mCal.get(Calendar.DAY_OF_WEEK) - 1) % 7 == 0) {
+                DayOfWeekColor = Color.rgb(83, 145, 22);
+            } else {
+                DayOfWeekColor = Color.WHITE;
+            }
+            mTextDay[i - 1] = new WpadTextView(getContext(), false, 36, 30, Gravity.CENTER, DayOfWeekColor, Common.fontsize._26_DEFAULT, false, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+            ViewRegistration(getLayout(), mTextDay[i - 1],
+                    Common.ImgPosion.GetX(arraylist.get(i + mCal.get(Calendar.DAY_OF_WEEK) - 1).getStart_X()), //요일(1~7, 1:일요일)
+                    Common.ImgPosion.GetY(arraylist.get(i + mCal.get(Calendar.DAY_OF_WEEK) - 1).getStart_Y()));
+            if (mTextDay[i - 1] != null) mTextDay[i - 1].setText(Integer.toString(i));
+
+            if (isEnergyServerUse == true) {
+                TouchDay[i] = new WpadImageView(getContext(), TOUCH_KIND.BUTTON, 118, 80, R.drawable.today_blank, R.drawable.today, ID.RemoteMeterMainScreenID.button.TOUCHDAY01 + i - 1);
+                ViewRegistration(getLayout(), TouchDay[i],
+                        Common.ImgPosion.GetX(arraylist.get(i + mCal.get(Calendar.DAY_OF_WEEK) - 1).getStart_X() + 36), //요일(1~7, 1:일요일)
+                        Common.ImgPosion.GetY(arraylist.get(i + mCal.get(Calendar.DAY_OF_WEEK) - 1).getStart_Y()));
+            }
+
+        }
+
+        if ((TodayYear == CalendarYear) && (TodayMonth == CalendarMonth)) {
+            if (mSampleShow == Common.MODE_NOMAL) {
+                //오늘 표시
+                Show_Today = new WpadImageView(getContext(), TOUCH_KIND.NONE, 158, 84, R.drawable.checked_day, 0, ID.RemoteMeterMainScreenID.image.BG_CALENDAR_TODAY);
+                ViewRegistration(getLayout(), Show_Today,
+                        Common.ImgPosion.GetX(arraylist.get(CalendarDay + mCal.get(Calendar.DAY_OF_WEEK) - 1).getStart_X() - 1),
+                        Common.ImgPosion.GetY(arraylist.get(CalendarDay + mCal.get(Calendar.DAY_OF_WEEK) - 1).getStart_Y()) - 1);
+            }
+        }
+
+        if (mSampleShow == Common.MODE_BUSINESS_SAMPLE) {
+            //item 표시
+            CalendarItemShow(mCalendarItemIndex, 1, "345");
+            CalendarItemShow(mCalendarItemIndex, 2, "112");
+            CalendarItemShow(mCalendarItemIndex, 3, "351");
+            CalendarItemShow(mCalendarItemIndex, 4, "1225");
+            CalendarItemShow(mCalendarItemIndex, 5, "1315");
+            CalendarItemShow(mCalendarItemIndex, 6, "1216");
+            CalendarItemShow(mCalendarItemIndex, 7, "1831");
+            CalendarItemShow(mCalendarItemIndex, 8, "125");
+            CalendarItemShow(mCalendarItemIndex, 9, "165");
+            CalendarItemShow(mCalendarItemIndex, 10, "775");
+            CalendarItemShow(mCalendarItemIndex, 11, "225");
+            CalendarItemShow(mCalendarItemIndex, 12, "815");
+            CalendarItemShow(mCalendarItemIndex, 13, "135");
+            CalendarItemShow(mCalendarItemIndex, 14, "1825");
+            CalendarItemShow(mCalendarItemIndex, 15, "1295");
+            CalendarItemShow(mCalendarItemIndex, 16, "1205");
+            CalendarItemShow(mCalendarItemIndex, 17, "225");
+            CalendarItemShow(mCalendarItemIndex, 18, "105");
+            CalendarItemShow(mCalendarItemIndex, 19, "15");
+            CalendarItemShow(mCalendarItemIndex, 20, "65");
+            CalendarItemShow(mCalendarItemIndex, 21, "125");
+            CalendarItemShow(mCalendarItemIndex, 22, "425");
+            CalendarItemShow(mCalendarItemIndex, 23, "185");
+            CalendarItemShow(mCalendarItemIndex, 24, "925");
+            CalendarItemShow(mCalendarItemIndex, 25, "11");
+        }
+    }
+
+
+    /**
+     * @description 3개월 비교 그래프 및 데이터 출력
+     */
+    private void Show3MonthEnergy() {
+        //setTopSetTargetBtnVisible(false);
+        ShowListEnergy(false);
+
+        //Show_BG_Discription = new WpadImageView(getContext(), TOUCH_KIND.NONE, 645, 42, R.drawable.discription_bg, 0, ID.RemoteMeterMainScreenID.image.BG_DISCRIPTION);
+        //ViewRegistration(getLayout(), Show_BG_Discription, ImgPosion.GetX(337), ImgPosion.GetY(163));
+
+        Show_BG_Graph = new WpadImageView(getContext(), TOUCH_KIND.NONE, 890, 482, R.drawable.graph_bg, 0, ID.RemoteMeterMainScreenID.image.BG_GRAPH);
+        ViewRegistration(getLayout(), Show_BG_Graph, Common.ImgPosion.GetX(202), Common.ImgPosion.GetY(257));
+
+        Show_3Month_Discription_Text = new WpadTextView(getContext(), false, 890, 70, Gravity.CENTER, Color.parseColor("#646464"), Common.fontsize._26_DEFAULT, false, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+        ViewRegistration(getLayout(), Show_3Month_Discription_Text,
+                Common.ImgPosion.GetX(202),
+                Common.ImgPosion.GetY(187));
+        if (mEMS_Enable == true) {
+            Show_3Month_Discription_Text.setText("최근 3개월간의 " + mShowListEnergyTypeText.getText() + "사용량 입니다.");
+
+            //동평형, 우리집 좌표 필요 //수정필요
+            Show_Discription_SamePyung = new WpadImageView(getContext(), TOUCH_KIND.NONE, 30, 15, R.drawable.image_dong, 0, ID.RemoteMeterMainScreenID.image.BG_DISCRIPTION_SAMEPYUNG);
+            ViewRegistration(getLayout(), Show_Discription_SamePyung, Common.ImgPosion.GetX(1109), Common.ImgPosion.GetY(264));
+
+            Show_Discription_Myhome = new WpadImageView(getContext(), TOUCH_KIND.NONE, 30, 15, R.drawable.image_myhouse, 0, ID.RemoteMeterMainScreenID.image.BG_DISCRIPTION_MYHOME);
+            ViewRegistration(getLayout(), Show_Discription_Myhome, Common.ImgPosion.GetX(1109), Common.ImgPosion.GetY(299));
+
+            Show_Discription_SamePyung_Text = new WpadTextView(getContext(), false, 92, 33, Gravity.CENTER, Color.parseColor("#969696"), Common.fontsize._26_DEFAULT, false, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+            ViewRegistration(getLayout(), Show_Discription_SamePyung_Text,
+                    Common.ImgPosion.GetX(1139),
+                    Common.ImgPosion.GetY(250));
+            Show_Discription_SamePyung_Text.setText("동평형");
+
+            Show_Discription_Myhome_Text = new WpadTextView(getContext(), false, 92, 33, Gravity.CENTER, Color.parseColor("#969696"), Common.fontsize._26_DEFAULT, false, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+            ViewRegistration(getLayout(), Show_Discription_Myhome_Text,
+                    Common.ImgPosion.GetX(1139),
+                    Common.ImgPosion.GetY(285));
+            Show_Discription_Myhome_Text.setText("우리집");
+        } else {
+            Show_3Month_Discription_Text.setText("최근 6개월간의 " + mShowListEnergyTypeText.getText() + "사용량 입니다.");
+        }
+
+        if (mSampleShow == Common.MODE_BUSINESS_SAMPLE) {
+            int MaxValue = 1801;
+            int FirstValue[] = new int[2];
+            FirstValue[0] = 1801;
+            FirstValue[1] = 1440;
+            int SecondValue[] = new int[2];
+            SecondValue[0] = 1080;
+            SecondValue[1] = 1321;
+            int ThirdValue[] = new int[2];
+            ThirdValue[0] = 522;
+            ThirdValue[1] = 801;
+            //기준 표시창 //수정필요
+            for (int i = 0; i < 6; i++) {
+                Show_3Month_Legend_Text[i] = new WpadTextView(getContext(), false, 109, 30, Gravity.RIGHT, Color.parseColor("#969696"), Common.fontsize._26_DEFAULT, false, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+                ViewRegistration(getLayout(), Show_3Month_Legend_Text[i],
+                        Common.ImgPosion.GetX(86),
+                        Common.ImgPosion.GetY(726 - (i * 80)));
+                if (Show_3Month_Legend_Text[i] != null)
+                    Show_3Month_Legend_Text[i].setText(Integer.toString(i * MaxValue / 5));
+            }
+
+            //최근 3개월 비교일때 point_x : 274,378,570,674,866,970 (x축 위치)
+            //전년비 비교 or 최근 6개월 비교일때 252 시작으로 148씩 더하면 됨
+
+            DrawGraphAfterCalc((float) MaxValue, FirstValue[0], true, 274, false, "13.01");
+            DrawGraphAfterCalc((float) MaxValue, FirstValue[1], false, 378, false, "14.01");
+
+            DrawGraphAfterCalc((float) MaxValue, SecondValue[0], true, 570, false, "13.02");
+            DrawGraphAfterCalc((float) MaxValue, SecondValue[1], false, 674, false, "14.02");
+
+            DrawGraphAfterCalc((float) MaxValue, ThirdValue[0], true, 866, false, "13.03");
+            DrawGraphAfterCalc((float) MaxValue, ThirdValue[1], false, 970, false, "14.03");
+
+            int TempCalendarYear = 2014;
+            int TempCalendarMonth = 10;
+            DrawBottomValueFor3Month(2, TempCalendarYear + "." + TempCalendarMonth);
+            DrawBottomValueFor3Month(1, TempCalendarYear + "." + (TempCalendarMonth - 1));
+            DrawBottomValueFor3Month(0, TempCalendarYear + "." + (TempCalendarMonth - 2));
+
+            mDrawBottomGraphValue3Month_Text = 3;
+        } else {
+            TodoList.offer(CalendarYear - 1);
+            TodoList.offer(CalendarYear - 2);
+            //Get Data from Server
+            LoadRemotemeterDataFromServer(ShowNowTypeIndex, CalendarYear, -1, ShowNowEnergyIndex);
+        }
+
+
+    }
+
+    //아래 날짜 기준
+    private void DrawBottomValueFor3Month(int number, String text) {
+        Show_BottomGraphValue3Month_Text[number] = new WpadTextView(getContext(), false, 194, 30, Gravity.CENTER, Color.parseColor("#969696"), Common.fontsize._26_DEFAULT, false, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+        ViewRegistration(getLayout(), Show_BottomGraphValue3Month_Text[number],
+                Common.ImgPosion.GetX(254 + (number * 296)),
+                Common.ImgPosion.GetY(746));
+        Show_BottomGraphValue3Month_Text[number].setText(text);
+
+    }
+
+    /**
+     * @description 그래프 값 계산 및 그래프 출력 호출
+     */
+    private void DrawGraphAfterCalc(Float temp_MaxValue, float usedValue_Myhome, boolean isColorRed, int Point_X, boolean isShowBottomValue, String BottomValue) {
+		/*if(temp_MaxValue < 32)
+		{
+			DrawGraph(usedValue_Myhome, usedValue_Myhome, isColorRed, Point_X, isShowBottomValue, BottomValue);
+		}
+		else
+		{*/
+        float number = (float) (usedValue_Myhome / temp_MaxValue * 400); //400: 그래프 높이 맞추기 위한 임의의 숫자
+        if (number > 478) {
+            DrawGraph(usedValue_Myhome, 478, isColorRed, Point_X, isShowBottomValue, BottomValue);
+        } else {
+            DebugLogOutput(Float.toString(number) + "개의 네모상자를 그려 그래프를 형성!");
+            DrawGraph(usedValue_Myhome, number, isColorRed, Point_X, isShowBottomValue, BottomValue);
+        }
+    }
+
+
+    /**
+     * @description 그래프를 그리기 위해 네모상자를 호출+네모상자 색깔 설정하는 함수
+     */
+    private void DrawGraph(float usedValue_Myhome, float usedValue_Myhome2, boolean isColorRed, int point_x, boolean isShowBottomValue, String BottomValue) {
+        DebugLogOutput("그래프 그리는 함수 호출됨");
+
+        // 그래프 y축 시작위치: 730
+        for (int i = 0; i < usedValue_Myhome2; i++) {
+            mDrawRectIndex++;
+            if (isColorRed == true) {
+                drawRect[i] = new DrawRect(getContext(), point_x, (737 - (i)), 0);
+            } else {
+                drawRect[i] = new DrawRect(getContext(), point_x, (737 - (i)), 1);
+            }
+
+            getLayout().addView(drawRect[i]);
+        }
+        //그래프 위에 그래프값 Text입력
+        ShowGraphValue(usedValue_Myhome, point_x, 737 - ((usedValue_Myhome2)), isShowBottomValue, BottomValue, (737));
+    }
+
+
+    /**
+     * @description 그래프의 아래 위 텍스트값을 출력하기 위한 함수
+     */
+    private void ShowGraphValue(float usedValue_Myhome, int PointX, float f, boolean isShowBottomValue, String BottomValue, int BottomValueofPointY) {
+        Show_TopGraphValue_Text[mDrawGraphValue] = new WpadTextView(getContext(), false, 120, 30, Gravity.CENTER, Color.WHITE, Common.fontsize._26_DEFAULT, false, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+        ViewRegistration(getLayout(), Show_TopGraphValue_Text[mDrawGraphValue],
+                Common.ImgPosion.GetX(PointX - 35),
+                Common.ImgPosion.GetY((int) f - 35));
+        Show_TopGraphValue_Text[mDrawGraphValue].setText(Integer.toString((int) usedValue_Myhome));
+
+        //전년비의 아래 텍스트값(2017.11 출력)
+        if (isShowBottomValue == true) {
+            Show_BottomGraphValue_Text[mDrawGraphValue] = new WpadTextView(getContext(), false, 120, 30, Gravity.CENTER, Color.parseColor("#969696"), Common.fontsize._26_DEFAULT, false, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+            ViewRegistration(getLayout(), Show_BottomGraphValue_Text[mDrawGraphValue],
+                    Common.ImgPosion.GetX(PointX - 25),
+                    Common.ImgPosion.GetY(BottomValueofPointY + 16));
+            Show_BottomGraphValue_Text[mDrawGraphValue].setText(BottomValue);
+        }
+
+        mDrawGraphValue++;
+    }
+
+
+    private void RemoveCalendarDayViews() {
+        for (int i = 1; i <= mCal.getActualMaximum(Calendar.DATE); i++) {
+            getLayout().removeView(mTextDay[i - 1]);
+            getLayout().removeView(TouchDay[i]);
+        }
+        getLayout().removeView(Show_Today);
+
+        for (int i = 0; i < mCalendarItemIndex; i++) {
+            getLayout().removeView(Show_Calendar_Item[i]);
+            getLayout().removeView(Show_Calendar_Item_Text[i]);
+        }
+        mCalendarItemIndex = 0;
+    }
+
+
+    /**
+     * @description 에너지 리스트 버튼 삭제
+     */
+    private void RemoveListEnergy() {
+        getLayout().removeView(mListEnergy);
+        getLayout().removeView(mShowListEnergyTypeText);
+
+    }
+
+    /**
+     * @description 당월 사용량/생산량 리스트 버튼 삭제
+     */
+    private void RemoveListMonth() {
+        getLayout().removeView(mListMonth);
+        getLayout().removeView(mShowListMonthTypeText);
+
+    }
+
+
+    /**
+     * @description 전기, 수도, 가스, 온수, 난방, 탄소 중 현재 표현된 에너지 정보 제거<br>
+     * ShowNowEnergyIndex 값으로 제거할 에너지 선택
+     */
+    private void RemoveMainEnergy() {
+
+    }
+
+
+    /**
+     * @description 그래프를 삭제하기 위한 함수
+     */
+    private void RemoveGraph() {
+        for (int i = 0; i < mDrawRectIndex; i++) {
+            getLayout().removeView(drawRect[i]);
+        }
+        for (int i = 0; i < mDrawGraphValue; i++) {
+            getLayout().removeView(Show_TopGraphValue_Text[i]);
+            getLayout().removeView(Show_BottomGraphValue_Text[i]);
+        }
+        mDrawRectIndex = 0;
+        mDrawGraphValue = 0;
+    }
+
+    /**
+     * @description 매인페이지 삭제 (당월, 일별, 3개월, 전년비 중 선택)
+     */
+    private void RemoveMainPage() {
+        switch (ShowNowTypeIndex) {
+            case 0:
+                //RemoveMonthEnergy();
+                //vip
+                RemoveVipMonthEnergy();
+                break;
+
+            case 1:
+                RemoveDayEnergy();
+                break;
+
+            case 2:
+                Remove3MonthEnergy();
+                break;
+
+            case 3:
+                RemoveYearEnergy();
+                break;
+
+            default:
+                break;
+
+        }
+    }
+
+    /**
+     * @description 당월 데이터 및 표 삭제
+     */
+    private void RemoveMonthEnergy() {
+        RemoveListEnergy();
+
+        getLayout().removeView(Show_MonthTableRow1);
+        getLayout().removeView(Show_MonthTableEnergy);
+
+
+        for (int i = 0; i < mNumberOfEnergy; i++) {
+            getLayout().removeView(Show_MonthTable_Item_Use_Text_LEFT[i]);
+        }
+    }
+
+    /**
+     * @description 당월 VIP 데이터 및 표 삭제
+     */
+    private void RemoveVipMonthEnergy() {
+        RemoveListEnergy();
+        getLayout().removeView(Show_MonthVipTableEnergy1);
+        getLayout().removeView(Show_MonthVipTableEnergy2);
+        getLayout().removeView(Show_MonthVipTableEnergy3);
+
+
+        for (int i = 0; i < mNumberOfEnergy; i++) {
+            getLayout().removeView(Show_MonthTable_Item_Use_Text_LEFT[i]);
+        }
+        for (int i = 0; i < 3; i++) {
+            getLayout().removeView(Show_MonthTable_Item_Use_Text_RIGHT[i]);
+            getLayout().removeView(Show_MonthTable_Item_Use_Text_CENTER[i]);
+        }
+    }
+
+    /**
+     * @description 일별 데이터 삭제
+     */
+    private void RemoveDayEnergy() {
+        RemoveListEnergy();
+        getLayout().removeView(Show_BG_Calendar);
+        RemoveCalendarDayViews();
+    }
+
+    /**
+     * @description 3개월 비교 데이터 및 그래프 삭제
+     */
+    private void Remove3MonthEnergy() {
+        RemoveListEnergy();
+
+        getLayout().removeView(Show_BG_Discription);
+        getLayout().removeView(Show_BG_Graph);
+        getLayout().removeView(Show_3Month_Discription_Text);
+
+        RemoveGraph();
+
+        for (int i = 0; i < 6; i++) {
+            getLayout().removeView(Show_3Month_Legend_Text[i]);
+        }
+
+        for (int i = 0; i < mDrawBottomGraphValue3Month_Text; i++) {
+            getLayout().removeView(Show_BottomGraphValue3Month_Text[i]);
+        }
+        mDrawBottomGraphValue3Month_Text = 0;
+
+
+        getLayout().removeView(Show_Discription_SamePyung);
+        getLayout().removeView(Show_Discription_Myhome);
+        getLayout().removeView(Show_Discription_SamePyung_Text);
+        getLayout().removeView(Show_Discription_Myhome_Text);
+
+        AllArrayListClear();
+    }
+
+    /**
+     * @description 작년도 비교 데이터 및 그래프 삭제
+     */
+    private void RemoveYearEnergy() {
+        RemoveListEnergy();
+        getLayout().removeView(Show_BG_Discription);
+        getLayout().removeView(Show_BG_Graph);
+        getLayout().removeView(Show_3Month_Discription_Text);
+
+        RemoveGraph();
+
+        for (int i = 0; i < 6; i++) {
+            getLayout().removeView(Show_3Month_Legend_Text[i]);
+        }
+        AllArrayListClear();
+
+    }
+
+    /**
+     * @description 전년비, 3개월 비교 그래프 생성을 위한 ArrayList를 초기화 하는 함수
+     */
+    private void AllArrayListClear() {
+        arrayListElect.removeAll(arrayListElect);
+        arrayListWater.removeAll(arrayListWater);
+        arrayListGas.removeAll(arrayListGas);
+        arrayListHotwater.removeAll(arrayListHotwater);
+        arrayListEnergy.removeAll(arrayListEnergy);
+        arrayListCarbon.removeAll(arrayListCarbon);
+    }
+
+    final int DEFAULT_METERING_COUNT = 5;
+
+    public void GetMeteringCount() {
+        WallpadDeviceSet devSet = new WallpadDeviceSet(getContext());
+        String[] MetringDB = devSet.GetSettingData("원격검침");
+        devSet.closeDB();
+
+        if (MetringDB != null) {
+            try {
+                String devInfo = MetringDB[1];
+
+                devInfo = devInfo.replace('(', '_');
+                devInfo = devInfo.replace(':', '_');
+                devInfo = devInfo.replace(')', '_');
+
+                String[] MetringInfo = devInfo.split("_");
+
+                // MetringInfo[1] -> 회로수
+                // MetringInfo[5] -> EMS 사용여부 사용함 or 사용안함
+                if ((Integer.parseInt(MetringInfo[1]) == 2) ||
+                        (Integer.parseInt(MetringInfo[1]) == 3) ||
+                        (Integer.parseInt(MetringInfo[1]) == 5) ||
+                        (Integer.parseInt(MetringInfo[1]) == 6)) {
+                    mNumberOfEnergy = Integer.parseInt(MetringInfo[1]);
+                } else {
+                    mNumberOfEnergy = 5;
+                }
+
+                if (MetringInfo[5].equals("사용함")) {
+                    mEMS_Enable = true;
+                } else {
+                    mEMS_Enable = false;
+                }
+                if (MetringInfo[7].equals("사용함")) {
+                    mCostInfo_Enable = true;
+                } else {
+                    mCostInfo_Enable = false;
+                }
+            } catch (RuntimeException re) {
+                Log.e(TAG, "exception : " + re);
+                mNumberOfEnergy = 5;
+                mEMS_Enable = true;
+            } catch (Exception e) {
+                //e.printStackTrace();
+                LogUtil.errorLogInfo("", TAG, e);
+                mNumberOfEnergy = 5;
+                mEMS_Enable = true;
+            }
+        } else {
+            mNumberOfEnergy = 5;
+            mEMS_Enable = true;
+        }
+    }
+
+    /**
+     * @description DB로 부터 3종인지 5종인지 6종인지와 EMS 지원 여부 수신
+     */
+    private void LoadInfoFromDB() {
+        if (mSampleShow == Common.MODE_BUSINESS_SAMPLE) //영업 샘플 모드
+        {
+            Log.d(TAG, "[MODE_BUSINESS_SAMPLE] --------------------------------------------");
+            mEMS_Enable = true;
+            //mNumberOfEnergy = 5;
+            GetMeteringCount();
+            mCostInfo_Enable = true;
+        } else {
+            Log.d(TAG, "[MODE_NORMAL_SAMPLE] --------------------------------------------");
+            //DB에서 값 읽어오기
+            GetMeteringCount();
+            //mEMS_Enable = DBMGR.GetRemoteMeteringIsEMSEnable();
+            //mNumberOfEnergy = DBMGR.GetRemoteMeteringNumberOfKind();
+
+            WallpadDeviceSet devSet = new WallpadDeviceSet(getContext());
+            String[] MetringDB = devSet.GetSettingData("에너지관리서버");
+            devSet.closeDB();
+
+            if (MetringDB != null) {
+                try {
+                    String devInfo = MetringDB[1];
+
+                    devInfo = devInfo.replace('(', '_');
+                    devInfo = devInfo.replace(':', '_');
+                    devInfo = devInfo.replace(')', '_');
+
+                    String[] MetringInfo = devInfo.split("_");
+
+                    // MetringInfo[1] -> 회로수
+                    // MetringInfo[3] -> 에너지관리서버 사용여부 사용함 or 사용안함
+                    // MetringInfo[4] -> IP
+                    // MetringInfo[5] -> IP정보
+                    // MetringInfo[6] -> 검침일사용자설정
+                    // MetringInfo[7] -> 사용함 또는 사용안함
+
+                    if (MetringInfo[3].equals("사용함") == true) {
+                        isEnergyServerUse = true;
+                        DebugLogOutput("isEnergyServerUse = true;");
+                    }
+                } catch (RuntimeException re) {
+                    Log.e(TAG, "exception : " + re);
+                } catch (Exception e) {
+                    //e.printStackTrace();
+                    LogUtil.errorLogInfo("", TAG, e);
+                }
+            } else {
+
+            }
+
+            if (mEMS_Enable == false) {
+                ShowListType_String[2] = "6개월";
+            }
+        }
+    }
+
+    /**
+     * @param InputType 0 당월, 1 일별, 2 3개월or6개월, 3 전년비 <br>
+     * @param Year      - 연도<br>
+     * @param Month     - 월<br>
+     * @param Energy    - 0 전기, 1 수도, 2 가스, 3 온수, 4 열량, 5 탄소<br>
+     * @description 서버로 부터 데이터를 받아와 분석하고 표현하는 함수<br>
+     */
+    private void LoadRemotemeterDataFromServer(int InputType, int Year, int Month, int Energy) {
+        final int inputType = InputType;
+        int year = Year;
+        int month = (Month + 1);
+        int energy = Energy;
+
+        try {
+            isResponseArrive = false;
+
+            imapRemotemeter = new iMAPRemotemeter(getContext());
+
+            //imapRemotemeter.DoWork(isDistinguishYear, elect, gas, water, hotwater, energy, carbon, support_ems, year, month);
+            switch (inputType) {
+                case 0: //당월(전기,가스,수도,온수,난방)
+                    imapRemotemeter.DoWork(true, true, true, true, true, true, true, mEMS_Enable, year, month);
+                    break;
+                case 100: //당월(전기차)
+                    imapRemotemeter.DoWorkVIP(true, true, true, true, true, year, month);
+                    break;
+
+                case 1: //일별
+                    switch (energy) {
+                        case 0: //전기
+                            imapRemotemeter.DoWork(false, true, false, false, false, false, false, false, year, month);
+                            break;
+                        case 1: //수도
+                            imapRemotemeter.DoWork(false, false, false, true, false, false, false, false, year, month);
+                            break;
+                        case 2: //가스
+                            imapRemotemeter.DoWork(false, false, true, false, false, false, false, false, year, month);
+                            break;
+                        case 3: //온수
+                            imapRemotemeter.DoWork(false, false, false, false, true, false, false, false, year, month);
+                            break;
+                        case 4: //난방
+                            imapRemotemeter.DoWork(false, false, false, false, false, true, false, false, year, month);
+                            break;
+                        case 5: //탄소
+                            imapRemotemeter.DoWork(false, false, false, false, false, false, true, false, year, month);
+                            break;
+                        default:
+                            break;
+                    }
+                    break;
+
+                case 2: //3개월 or 6개월
+                case 3: //전년비
+                    switch (energy) {
+                        case 0: //전기
+                            imapRemotemeter.DoWork(true, true, false, false, false, false, false, mEMS_Enable, year, month);
+                            break;
+                        case 1: //수도
+                            imapRemotemeter.DoWork(true, false, false, true, false, false, false, mEMS_Enable, year, month);
+                            break;
+                        case 2: //가스
+                            imapRemotemeter.DoWork(true, false, true, false, false, false, false, mEMS_Enable, year, month);
+                            break;
+                        case 3: //온수
+                            imapRemotemeter.DoWork(true, false, false, false, true, false, false, mEMS_Enable, year, month);
+                            break;
+                        case 4: //난방
+                            imapRemotemeter.DoWork(true, false, false, false, false, true, false, mEMS_Enable, year, month);
+                            break;
+                        case 5: //탄소
+                            imapRemotemeter.DoWork(true, false, false, false, false, false, true, mEMS_Enable, year, month);
+                            break;
+                        default:
+                            break;
+                    }
+                    break;
+
+                default:
+                    break;
+            }
+
+            imapRemotemeter.SetRetCtr(new RetProci() {
+
+                @Override
+                public void ProcSuccess() {
+                    String TempString = null;
+                    isResponseArrive = true;
+                    if (isScreenClosed == true) {
+                        return;
+                    }
+                    // DB
+                    DBMGR = new WallpadStatusData(getContext());
+
+                    DebugLogOutput("Load Data From Server - ProcSuccess");
+                    DebugLogOutput("inputType " + Integer.toString(inputType));
+                    boolean result = false;
+                    switch (inputType) {
+                        case 0: // 당월(전기,수도..)
+                            int NumberOfValuelist = imapRemotemeter.SetItem("valuelist");
+                            if (NumberOfValuelist != 0) {
+                                for (int i = 0; i < NumberOfValuelist; i++) {
+                                    DebugLogOutput("NumberOfValuelist " + Integer.toString(NumberOfValuelist));
+                                    DebugLogOutput("GetAttributeVal(i, month) " + imapRemotemeter.GetAttributeVal(i, "month"));
+                                    DebugLogOutput("CalendarMonth " + (CalendarMonth + 1));
+                                    if ((Integer.parseInt(imapRemotemeter.GetAttributeVal(i, "month")) == (CalendarMonth + 1))
+                                            && (Integer.parseInt(imapRemotemeter.GetAttributeVal(i, "year")) == (CalendarYear))) {
+                                        result = true;
+                                        int Temp_mNumberOfEnergy = mNumberOfEnergy;
+                                        if (Temp_mNumberOfEnergy == 2) {
+                                            Temp_mNumberOfEnergy = 3;
+                                        }
+                                        for (int j = 0; j < Temp_mNumberOfEnergy; j++) {
+                                            switch (j) {
+                                                case 0:
+                                                    monthTableClass[j] = new MonthTableClass("", "", "");
+                                                    if ((imapRemotemeter.GetAttributeVal(i, "elect_used") != null)
+                                                            && (imapRemotemeter.GetAttributeVal(i, "elect_average_used_samesize") != null)) {
+                                                        if (imapRemotemeter.GetAttributeVal(i, "elect_used").equals("1000000") == true) {
+                                                            TempString = "- / ";
+                                                        } else {
+                                                            TempString = imapRemotemeter.GetAttributeVal(i, "elect_used") + " / ";
+                                                        }
+                                                        if (imapRemotemeter.GetAttributeVal(i, "elect_average_used_samesize").equals("null") == true) {
+                                                            TempString = TempString + "-";
+                                                        } else {
+                                                            TempString = TempString + imapRemotemeter.GetAttributeVal(i, "elect_average_used_samesize");
+                                                        }
+                                                        monthTableClass[j].Use = TempString;
+                                                    }
+
+                                                    monthTableClass[j].Goal = DBMGR.GetRemoteMeteringTargetValue(j);
+                                                    DebugLogOutput("전기");
+                                                    DebugLogOutput(monthTableClass[j].Use);
+                                                    DebugLogOutput(monthTableClass[j].Rank);
+                                                    break;
+                                                case 1:
+                                                    monthTableClass[j] = new MonthTableClass("", "", "");
+                                                    if ((imapRemotemeter.GetAttributeVal(i, "water_used") != null)
+                                                            && (imapRemotemeter.GetAttributeVal(i, "water_average_used_samesize") != null)) {
+                                                        if (imapRemotemeter.GetAttributeVal(i, "water_used").equals("1000000") == true) {
+                                                            TempString = "- / ";
+                                                        } else {
+                                                            TempString = imapRemotemeter.GetAttributeVal(i, "water_used") + " / ";
+                                                        }
+                                                        if (imapRemotemeter.GetAttributeVal(i, "water_average_used_samesize").equals("null") == true) {
+                                                            TempString = TempString + "-";
+                                                        } else {
+                                                            TempString = TempString + imapRemotemeter.GetAttributeVal(i, "water_average_used_samesize");
+                                                        }
+                                                        monthTableClass[j].Use = TempString;
+                                                    }
+
+                                                    monthTableClass[j].Goal = DBMGR.GetRemoteMeteringTargetValue(j);
+                                                    DebugLogOutput("수도");
+                                                    DebugLogOutput(monthTableClass[j].Use);
+                                                    DebugLogOutput(monthTableClass[j].Rank);
+
+                                                    break;
+                                                case 2:
+                                                    monthTableClass[j] = new MonthTableClass("", "", "");
+                                                    if ((imapRemotemeter.GetAttributeVal(i, "gas_used") != null)
+                                                            && (imapRemotemeter.GetAttributeVal(i, "gas_average_used_samesize") != null)) {
+                                                        if (imapRemotemeter.GetAttributeVal(i, "gas_used").equals("1000000") == true) {
+                                                            TempString = "- / ";
+                                                        } else {
+                                                            TempString = imapRemotemeter.GetAttributeVal(i, "gas_used") + " / ";
+                                                        }
+                                                        if (imapRemotemeter.GetAttributeVal(i, "gas_average_used_samesize").equals("null") == true) {
+                                                            TempString = TempString + "-";
+                                                        } else {
+                                                            TempString = TempString + imapRemotemeter.GetAttributeVal(i, "gas_average_used_samesize");
+                                                        }
+                                                        monthTableClass[j].Use = TempString;
+                                                    }
+                                                    monthTableClass[j].Goal = DBMGR.GetRemoteMeteringTargetValue(j);
+                                                    DebugLogOutput("가스");
+                                                    DebugLogOutput(monthTableClass[j].Use);
+                                                    DebugLogOutput(monthTableClass[j].Rank);
+
+                                                    break;
+                                                case 3:
+                                                    monthTableClass[j] = new MonthTableClass("", "", "");
+                                                    if ((imapRemotemeter.GetAttributeVal(i, "hotwater_used") != null)
+                                                            && (imapRemotemeter.GetAttributeVal(i, "hotwater_average_used_samesize") != null)) {
+                                                        if (imapRemotemeter.GetAttributeVal(i, "hotwater_used").equals("1000000") == true) {
+                                                            TempString = "- / ";
+                                                        } else {
+                                                            TempString = imapRemotemeter.GetAttributeVal(i, "hotwater_used") + " / ";
+                                                        }
+                                                        if (imapRemotemeter.GetAttributeVal(i, "hotwater_average_used_samesize").equals("null") == true) {
+                                                            TempString = TempString + "-";
+                                                        } else {
+                                                            TempString = TempString + imapRemotemeter.GetAttributeVal(i, "hotwater_average_used_samesize");
+                                                        }
+                                                        monthTableClass[j].Use = TempString;
+                                                    }
+                                                    monthTableClass[j].Goal = DBMGR.GetRemoteMeteringTargetValue(j);
+                                                    DebugLogOutput("온수");
+                                                    DebugLogOutput(monthTableClass[j].Use);
+                                                    DebugLogOutput(monthTableClass[j].Rank);
+
+                                                    break;
+                                                case 4:
+                                                    monthTableClass[j] = new MonthTableClass("", "", "");
+                                                    if ((imapRemotemeter.GetAttributeVal(i, "energy_used") != null)
+                                                            && (imapRemotemeter.GetAttributeVal(i, "energy_average_used_samesize") != null)) {
+                                                        if (imapRemotemeter.GetAttributeVal(i, "energy_used").equals("1000000") == true) {
+                                                            TempString = "- / ";
+                                                        } else {
+                                                            TempString = imapRemotemeter.GetAttributeVal(i, "energy_used") + " / ";
+                                                        }
+                                                        if (imapRemotemeter.GetAttributeVal(i, "energy_average_used_samesize").equals("null") == true) {
+                                                            TempString = TempString + "-";
+                                                        } else {
+                                                            TempString = TempString + imapRemotemeter.GetAttributeVal(i, "energy_average_used_samesize");
+                                                        }
+                                                        monthTableClass[j].Use = TempString;
+                                                    }
+                                                    monthTableClass[j].Goal = DBMGR.GetRemoteMeteringTargetValue(j);
+                                                    DebugLogOutput("열량");
+                                                    DebugLogOutput(monthTableClass[j].Use);
+                                                    DebugLogOutput(monthTableClass[j].Rank);
+
+                                                    break;
+                                                case 5:
+                                                    monthTableClass[j] = new MonthTableClass("", "", "");
+                                                    if ((imapRemotemeter.GetAttributeVal(i, "carbon_used") != null)
+                                                            && (imapRemotemeter.GetAttributeVal(i, "carbon_average_used_samesize") != null)) {
+                                                        if (imapRemotemeter.GetAttributeVal(i, "carbon_used").equals("1000000") == true) {
+                                                            TempString = "- / ";
+                                                        } else {
+                                                            TempString = imapRemotemeter.GetAttributeVal(i, "carbon_used") + " / ";
+                                                        }
+                                                        if (imapRemotemeter.GetAttributeVal(i, "carbon_average_used_samesize").equals("null") == true) {
+                                                            TempString = TempString + "-";
+                                                        } else {
+                                                            TempString = TempString + imapRemotemeter.GetAttributeVal(i, "carbon_average_used_samesize");
+                                                        }
+                                                        monthTableClass[j].Use = TempString;
+                                                    }
+                                                    monthTableClass[j].Goal = DBMGR.GetRemoteMeteringTargetValue(j);
+                                                    DebugLogOutput("탄소");
+                                                    DebugLogOutput(monthTableClass[j].Use);
+                                                    DebugLogOutput(monthTableClass[j].Rank);
+                                                    break;
+                                                default:
+                                                    break;
+
+                                            }
+                                        }
+                                    }
+                                }
+
+                                if ((result == true) && (ShowNowTypeIndex == 0)) {
+                                    switch (mNumberOfEnergy) {
+                                        case 2:
+                                            ShowMonthEnergyData(3, 273, 228);
+                                            break;
+
+                                        case 3:
+                                            ShowMonthEnergyData(mNumberOfEnergy, 151, 151);
+                                            break;
+
+                                        case 5:
+                                            if (ShowMonthTypeIndex == 0) {
+                                                ShowMonthEnergyData(mNumberOfEnergy, 90, 90);
+                                            }
+                                            break;
+
+                                        case 6:
+                                            ShowMonthEnergyData(mNumberOfEnergy, 90, 74);
+                                            break;
+
+                                        default:
+                                            break;
+                                    }
+                                }
+                            }
+
+                            break;
+                        case 100: // 당월(전기차)
+                            NumberOfValuelist = imapRemotemeter.SetItem("valuelist");
+                            if (NumberOfValuelist != 0) {
+                                for (int i = 0; i < NumberOfValuelist; i++) {
+                                    DebugLogOutput("NumberOfValuelist " + Integer.toString(NumberOfValuelist));
+                                    DebugLogOutput("GetAttributeVal(i, month) " + imapRemotemeter.GetAttributeVal(i, "month"));
+                                    DebugLogOutput("CalendarMonth " + (CalendarMonth + 1));
+                                    if ((Integer.parseInt(imapRemotemeter.GetAttributeVal(i, "month")) == (CalendarMonth + 1))
+                                            && (Integer.parseInt(imapRemotemeter.GetAttributeVal(i, "year")) == (CalendarYear))) {
+                                        result = true;
+                                        //일단 kepco="yes" photovoltaics="yes" fuelcell="yes" eleccar="yes" 4개
+                                        int Temp_mNumberOfEnergy = 4;
+                                        for (int j = 0; j < Temp_mNumberOfEnergy; j++) {
+                                            monthTableClassRight[j] = new MonthTableClass("", "", "");
+                                        }
+                                        if (imapRemotemeter.GetAttributeVal(i, "kepco_used") != null) {
+                                            TempString = imapRemotemeter.GetAttributeVal(i, "kepco_used");
+                                            monthTableClassRight[0].Use = TempString;
+                                        }
+                                        if (imapRemotemeter.GetAttributeVal(i, "eleccar_used") != null) {
+                                            TempString = imapRemotemeter.GetAttributeVal(i, "eleccar_used");
+                                            monthTableClassRight[1].Use = TempString;
+                                        }
+                                        if (imapRemotemeter.GetAttributeVal(i, "photovoltaics_used") != null) {
+                                            TempString = imapRemotemeter.GetAttributeVal(i, "photovoltaics_used");
+                                            monthTableClassRight[2].Use = TempString;
+                                        }
+                                        if (imapRemotemeter.GetAttributeVal(i, "fuelcell_used") != null) {
+                                            TempString = imapRemotemeter.GetAttributeVal(i, "fuelcell_used");
+                                            monthTableClassRight[3].Use = TempString;
+                                        }
+                                    }
+                                }
+
+                                if (result == true) {
+                                    if (ShowMonthTypeIndex == 0) {
+                                        ShowMonthEnergyDataRight(90, 90);
+                                    } else if (ShowMonthTypeIndex == 1) {
+                                        ShowMonthEnergyDataCenter(90, 90);
+                                    }
+                                }
+                            }
+                            break;
+
+                        case 1: // 일별
+                            int NumberOfValuelist1 = imapRemotemeter.SetItem("valuelist");
+
+                            if (NumberOfValuelist1 != 0) {
+                                for (int i = 0; i < NumberOfValuelist1; i++) {
+                                    DebugLogOutput("NumberOfValuelist " + Integer.toString(NumberOfValuelist1));
+                                    DebugLogOutput("GetAttributeVal(i, month) " + imapRemotemeter.GetAttributeVal(i, "month"));
+                                    DebugLogOutput("CalendarMonth " + (CalendarMonth + 1));
+                                    if ((Integer.parseInt(imapRemotemeter.GetAttributeVal(i, "month")) == (CalendarMonth + 1))
+                                            && (Integer.parseInt(imapRemotemeter.GetAttributeVal(i, "year")) == (CalendarYear))) {
+                                        DebugLogOutput("day " + imapRemotemeter.GetAttributeVal(i, "day"));
+                                        switch (ShowNowEnergyIndex) {
+                                            case 0: // 전기
+                                                TempString = imapRemotemeter.GetAttributeVal(i, "elect_used");
+                                                if (TempString.equals("1000000") == false) {
+                                                    CalendarItemShow(mCalendarItemIndex, (Integer.parseInt(imapRemotemeter.GetAttributeVal(i, "day"))),
+                                                            imapRemotemeter.GetAttributeVal(i, "elect_used"));
+                                                }
+                                                break;
+
+                                            case 1: // 수도
+                                                TempString = imapRemotemeter.GetAttributeVal(i, "water_used");
+                                                if (TempString.equals("1000000") == false) {
+                                                    CalendarItemShow(mCalendarItemIndex, (Integer.parseInt(imapRemotemeter.GetAttributeVal(i, "day"))),
+                                                            imapRemotemeter.GetAttributeVal(i, "water_used"));
+                                                }
+                                                break;
+
+                                            case 2: // 가스
+                                                TempString = imapRemotemeter.GetAttributeVal(i, "gas_used");
+                                                if (TempString.equals("1000000") == false) {
+                                                    CalendarItemShow(mCalendarItemIndex, (Integer.parseInt(imapRemotemeter.GetAttributeVal(i, "day"))),
+                                                            imapRemotemeter.GetAttributeVal(i, "gas_used"));
+                                                }
+                                                break;
+
+                                            case 3: // 온수
+                                                TempString = imapRemotemeter.GetAttributeVal(i, "hotwater_used");
+                                                if (TempString.equals("1000000") == false) {
+                                                    CalendarItemShow(mCalendarItemIndex, (Integer.parseInt(imapRemotemeter.GetAttributeVal(i, "day"))),
+                                                            imapRemotemeter.GetAttributeVal(i, "hotwater_used"));
+                                                }
+                                                break;
+
+                                            case 4: // 난방
+                                                TempString = imapRemotemeter.GetAttributeVal(i, "energy_used");
+                                                if (TempString.equals("1000000") == false) {
+                                                    CalendarItemShow(mCalendarItemIndex, (Integer.parseInt(imapRemotemeter.GetAttributeVal(i, "day"))),
+                                                            imapRemotemeter.GetAttributeVal(i, "energy_used"));
+                                                }
+
+                                                break;
+
+                                            case 5: // 탄소
+                                                TempString = imapRemotemeter.GetAttributeVal(i, "carbon_used");
+                                                if (TempString.equals("1000000") == false) {
+                                                    CalendarItemShow(mCalendarItemIndex, (Integer.parseInt(imapRemotemeter.GetAttributeVal(i, "day"))),
+                                                            imapRemotemeter.GetAttributeVal(i, "carbon_used"));
+                                                }
+                                                break;
+                                        }
+                                    }
+                                }
+                            }
+                            break;
+
+                        case 2: // 3개월 or 6개월
+                        case 3: // 전년비
+
+                            int NumberOfValuelist2 = imapRemotemeter.SetItem("valuelist");
+
+                            if (NumberOfValuelist2 != 0) {
+                                for (int i = 0; i < NumberOfValuelist2; i++) {
+                                    DebugLogOutput("NumberOfValuelist " + Integer.toString(NumberOfValuelist2));
+                                    DebugLogOutput("GetAttributeVal(i, month) " + imapRemotemeter.GetAttributeVal(i, "month"));
+                                    DebugLogOutput("CalendarMonth " + (CalendarMonth + 1));
+
+                                    float Temp_Myhome = 0;
+                                    float Temp_SameSize = 0;
+
+                                    switch (ShowNowEnergyIndex) {
+                                        case 0: // 전기
+                                            if (imapRemotemeter.GetAttributeVal(i, "elect_used") != null) {
+                                                if (imapRemotemeter.GetAttributeVal(i, "elect_used").equals("1000000") == false) {
+                                                    Temp_Myhome = Float.parseFloat(imapRemotemeter.GetAttributeVal(i, "elect_used"));
+                                                }
+                                            }
+                                            if (imapRemotemeter.GetAttributeVal(i, "elect_average_used_samesize") != null) {
+                                                if (imapRemotemeter.GetAttributeVal(i, "elect_average_used_samesize").equals("null") == false) {
+                                                    Temp_SameSize = Float.parseFloat(imapRemotemeter.GetAttributeVal(i, "elect_average_used_samesize"));
+                                                }
+                                                DebugLogOutput("elect_average_used_samesize " + imapRemotemeter.GetAttributeVal(i, "elect_average_used_samesize"));
+
+                                            }
+                                            arrayListElect.add(new UsedValueArrayClass(Integer.parseInt(imapRemotemeter.GetAttributeVal(i, "year")), Integer
+                                                    .parseInt(imapRemotemeter.GetAttributeVal(i, "month")), Temp_Myhome, Temp_SameSize));
+
+                                            DebugLogOutput("arrayListElect " + arrayListElect.size());
+                                            DebugLogOutput("arrayListElect used " + arrayListElect.get(i).UsedValue_Myhome);
+                                            break;
+
+                                        case 1: // 수도
+                                            if (imapRemotemeter.GetAttributeVal(i, "water_used") != null) {
+                                                if (imapRemotemeter.GetAttributeVal(i, "water_used").equals("1000000") == false) {
+                                                    Temp_Myhome = Float.parseFloat(imapRemotemeter.GetAttributeVal(i, "water_used"));
+                                                }
+                                            }
+                                            if (imapRemotemeter.GetAttributeVal(i, "water_average_used_samesize") != null) {
+                                                if (imapRemotemeter.GetAttributeVal(i, "water_average_used_samesize").equals("null") == false) {
+                                                    Temp_SameSize = Float.parseFloat(imapRemotemeter.GetAttributeVal(i, "water_average_used_samesize"));
+                                                }
+                                            }
+                                            arrayListWater.add(new UsedValueArrayClass(Integer.parseInt(imapRemotemeter.GetAttributeVal(i, "year")), Integer
+                                                    .parseInt(imapRemotemeter.GetAttributeVal(i, "month")), Temp_Myhome, Temp_SameSize));
+
+                                            DebugLogOutput("arrayListWater " + arrayListWater.size());
+                                            DebugLogOutput("arrayListWater used " + arrayListWater.get(i).UsedValue_Myhome);
+                                            break;
+
+                                        case 2: // 가스
+                                            if (imapRemotemeter.GetAttributeVal(i, "gas_used") != null) {
+                                                if (imapRemotemeter.GetAttributeVal(i, "gas_used").equals("1000000") == false) {
+                                                    Temp_Myhome = Float.parseFloat(imapRemotemeter.GetAttributeVal(i, "gas_used"));
+                                                }
+                                            }
+                                            if (imapRemotemeter.GetAttributeVal(i, "gas_average_used_samesize") != null) {
+                                                if (imapRemotemeter.GetAttributeVal(i, "gas_average_used_samesize").equals("null") == false) {
+                                                    Temp_SameSize = Float.parseFloat(imapRemotemeter.GetAttributeVal(i, "gas_average_used_samesize"));
+                                                }
+                                            }
+                                            arrayListGas.add(new UsedValueArrayClass(Integer.parseInt(imapRemotemeter.GetAttributeVal(i, "year")), Integer
+                                                    .parseInt(imapRemotemeter.GetAttributeVal(i, "month")), Temp_Myhome, Temp_SameSize));
+
+                                            DebugLogOutput("arrayListGas " + arrayListGas.size());
+                                            DebugLogOutput("arrayListGas used " + arrayListGas.get(i).UsedValue_Myhome);
+                                            break;
+
+                                        case 3: // 온수
+                                            if (imapRemotemeter.GetAttributeVal(i, "hotwater_used") != null) {
+                                                if (imapRemotemeter.GetAttributeVal(i, "hotwater_used").equals("1000000") == false) {
+                                                    Temp_Myhome = Float.parseFloat(imapRemotemeter.GetAttributeVal(i, "hotwater_used"));
+                                                }
+                                            }
+                                            if (imapRemotemeter.GetAttributeVal(i, "hotwater_average_used_samesize") != null) {
+                                                if (imapRemotemeter.GetAttributeVal(i, "hotwater_average_used_samesize").equals("null") == false) {
+                                                    Temp_SameSize = Float.parseFloat(imapRemotemeter.GetAttributeVal(i, "hotwater_average_used_samesize"));
+                                                }
+                                            }
+                                            arrayListHotwater.add(new UsedValueArrayClass(Integer.parseInt(imapRemotemeter.GetAttributeVal(i, "year")), Integer
+                                                    .parseInt(imapRemotemeter.GetAttributeVal(i, "month")), Temp_Myhome, Temp_SameSize));
+
+                                            DebugLogOutput("arrayListHotwater " + arrayListHotwater.size());
+                                            DebugLogOutput("arrayListHotwater used " + arrayListHotwater.get(i).UsedValue_Myhome);
+                                            break;
+
+                                        case 4: // 난방
+                                            if (imapRemotemeter.GetAttributeVal(i, "energy_used") != null) {
+                                                if (imapRemotemeter.GetAttributeVal(i, "energy_used").equals("1000000") == false) {
+                                                    Temp_Myhome = Float.parseFloat(imapRemotemeter.GetAttributeVal(i, "energy_used"));
+                                                }
+                                            }
+                                            if (imapRemotemeter.GetAttributeVal(i, "energy_average_used_samesize") != null) {
+                                                if (imapRemotemeter.GetAttributeVal(i, "energy_average_used_samesize").equals("null") == false) {
+                                                    Temp_SameSize = Float.parseFloat(imapRemotemeter.GetAttributeVal(i, "energy_average_used_samesize"));
+                                                }
+                                            }
+                                            arrayListEnergy.add(new UsedValueArrayClass(Integer.parseInt(imapRemotemeter.GetAttributeVal(i, "year")), Integer
+                                                    .parseInt(imapRemotemeter.GetAttributeVal(i, "month")), Temp_Myhome, Temp_SameSize));
+
+                                            DebugLogOutput("arrayListEnergy " + arrayListEnergy.size());
+                                            DebugLogOutput("arrayListEnergy used " + arrayListEnergy.get(i).UsedValue_Myhome);
+                                            break;
+
+                                        case 5: // 탄소
+                                            if (imapRemotemeter.GetAttributeVal(i, "carbon_used") != null) {
+                                                if (imapRemotemeter.GetAttributeVal(i, "carbon_used").equals("1000000") == false) {
+                                                    Temp_Myhome = Float.parseFloat(imapRemotemeter.GetAttributeVal(i, "carbon_used"));
+                                                }
+                                            }
+                                            if (imapRemotemeter.GetAttributeVal(i, "carbon_average_used_samesize") != null) {
+                                                if (imapRemotemeter.GetAttributeVal(i, "carbon_average_used_samesize").equals("null") == false) {
+                                                    Temp_SameSize = Float.parseFloat(imapRemotemeter.GetAttributeVal(i, "carbon_average_used_samesize"));
+                                                }
+                                            }
+                                            arrayListCarbon.add(new UsedValueArrayClass(Integer.parseInt(imapRemotemeter.GetAttributeVal(i, "year")), Integer
+                                                    .parseInt(imapRemotemeter.GetAttributeVal(i, "month")), Temp_Myhome, Temp_SameSize));
+
+                                            DebugLogOutput("arrayListCarbon " + arrayListCarbon.size());
+                                            DebugLogOutput("arrayListCarbon used " + arrayListCarbon.get(i).UsedValue_Myhome);
+                                            break;
+                                    }
+                                }
+                            }
+                            if (TodoList.peek() != null) {
+                                DebugLogOutput("TodoList in! Count is " + TodoList.size());
+                                LoadRemotemeterDataFromServer(ShowNowTypeIndex, TodoList.poll(), -1, ShowNowEnergyIndex);
+                                return;
+                            }
+
+                            if (inputType == 2) {
+                                if (mEMS_Enable == true) {
+                                    int TempCalendarYear = CalendarYear;
+                                    int TempCalendarMonth = CalendarMonth + 1;
+                                    mDrawBottomGraphValue3Month_Text = 3;
+
+                                    if (TempCalendarMonth == 1) {
+                                        DrawBottomValueFor3Month(2, TempCalendarYear + "." + "1");
+                                        DrawBottomValueFor3Month(1, (TempCalendarYear - 1) + "." + "12");
+                                        DrawBottomValueFor3Month(0, (TempCalendarYear - 1) + "." + "11");
+                                    } else if (TempCalendarMonth == 2) {
+                                        DrawBottomValueFor3Month(2, TempCalendarYear + "." + "2");
+                                        DrawBottomValueFor3Month(1, TempCalendarYear + "." + "1");
+                                        DrawBottomValueFor3Month(0, (TempCalendarYear - 1) + "." + "12");
+                                    } else {
+                                        DrawBottomValueFor3Month(2, TempCalendarYear + "." + TempCalendarMonth);
+                                        DrawBottomValueFor3Month(1, TempCalendarYear + "." + (TempCalendarMonth - 1));
+                                        DrawBottomValueFor3Month(0, TempCalendarYear + "." + (TempCalendarMonth - 2));
+                                    }
+                                }
+
+                                switch (ShowNowEnergyIndex) {
+                                    case 0: // 전기
+                                        Show3MonthEnergy_inRetProci(arrayListElect);
+                                        break;
+
+                                    case 1: // 수도
+                                        Show3MonthEnergy_inRetProci(arrayListWater);
+                                        break;
+
+                                    case 2: // 가스
+                                        Show3MonthEnergy_inRetProci(arrayListGas);
+                                        break;
+
+                                    case 3: // 온수
+                                        Show3MonthEnergy_inRetProci(arrayListHotwater);
+                                        break;
+
+                                    case 4: // 열량
+                                        Show3MonthEnergy_inRetProci(arrayListEnergy);
+                                        break;
+
+                                    case 5: // 탄소
+                                        Show3MonthEnergy_inRetProci(arrayListCarbon);
+                                        break;
+
+                                    default:
+                                        break;
+                                }
+                            } else if (inputType == 3) {
+                                switch (ShowNowEnergyIndex) {
+                                    case 0: // 전기
+                                        ShowYearEnergy_inRetProci(arrayListElect);
+                                        break;
+
+                                    case 1: // 수도
+                                        ShowYearEnergy_inRetProci(arrayListWater);
+                                        break;
+
+                                    case 2: // 가스
+                                        ShowYearEnergy_inRetProci(arrayListGas);
+                                        break;
+
+                                    case 3: // 온수
+                                        ShowYearEnergy_inRetProci(arrayListHotwater);
+                                        break;
+
+                                    case 4: // 열량
+                                        ShowYearEnergy_inRetProci(arrayListEnergy);
+                                        break;
+
+                                    case 5: // 탄소
+                                        ShowYearEnergy_inRetProci(arrayListCarbon);
+                                        break;
+
+                                    default:
+                                        break;
+                                }
+                            }
+                            break;
+
+                        default:
+                            break;
+                    }
+                    DBMGR.closeDB();
+                }
+
+                @Override
+                public void ProcError() {
+                    DebugLogOutput("Load Data From Server - ProcError");
+                    isResponseArrive = true;
+                    if (TodoList.peek() != null) {
+                        TodoList.clear();
+                    }
+                    if (DBMGR != null) {
+                        DBMGR.closeDB();
+                    }
+                }
+
+                @Override
+                public void ProcDoing() {
+                    DebugLogOutput("Load Data From Server - ProcDoing");
+                }
+            });
+        } catch (RuntimeException re) {
+            Log.e(TAG, "exception : " + re);
+            if (DBMGR != null) {
+                DBMGR.closeDB();
+            }
+        } catch (Exception e) {
+            //e.printStackTrace();
+            LogUtil.errorLogInfo("", TAG, e);
+            if (DBMGR != null) {
+                DBMGR.closeDB();
+            }
+        } finally {
+            if (DBMGR != null) {
+                DBMGR.closeDB();
+            }
+        }
+
+    }
+
+    private void ShowYearEnergy_inRetProci(ArrayList<UsedValueArrayClass> TempArray) {
+        ArrayList<Float> CalcMaxValueArrayList = new ArrayList<Float>();
+        Float Temp_MaxValue = 0.0f;
+
+        for (int i = 0; i < TempArray.size(); i++) {
+            CalcMaxValueArrayList.add(TempArray.get(i).UsedValue_Myhome);
+            CalcMaxValueArrayList.add(TempArray.get(i).UsedValue_SamePyung);
+        }
+
+        DebugLogOutput("CalcMaxValueArrayList " + CalcMaxValueArrayList.size());
+
+        Temp_MaxValue = Collections.max(CalcMaxValueArrayList);
+        DebugLogOutput("Temp_MaxValue " + Temp_MaxValue);
+        if ((Temp_MaxValue == 0) || (Temp_MaxValue < 32)) {
+            Temp_MaxValue = (float) 31;
+        }
+        for (int i = 0; i < 6; i++) {
+            Show_3Month_Legend_Text[i] = new WpadTextView(getContext(), false, 109, 30, Gravity.RIGHT, Color.parseColor("#969696"), Common.fontsize._26_DEFAULT, false, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+            ViewRegistration(getLayout(), Show_3Month_Legend_Text[i],
+                    Common.ImgPosion.GetX(86),
+                    Common.ImgPosion.GetY(726 - (i * 80)));
+            if (Show_3Month_Legend_Text[i] != null)
+                Show_3Month_Legend_Text[i].setText(Integer.toString((int) (i * Temp_MaxValue / 5)));
+        }
+
+        //전년비 비교 or 최근 6개월 비교일때 375 시작으로 107씩 더하면 됨
+        //전년비 비교 or 최근 6개월 비교일때 252 시작으로 148씩 더하면 됨(2017.11)
+
+
+        for (int i = 0; i < TempArray.size(); i++) {
+            if ((CalendarMonth + 1) == 2) //2월인 경우
+            {
+                if ((TempArray.get(i).Year == (CalendarYear - 2)) && (TempArray.get(i).Month == 12)) {
+                    DrawGraphAfterCalc(Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, true,
+                            252, true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                }
+                if ((TempArray.get(i).Year == CalendarYear - 1) && (TempArray.get(i).Month == 12)) {
+                    DrawGraphAfterCalc(Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, false, (252 + (148 * 1)),
+                            true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                }
+
+                if ((TempArray.get(i).Year == (CalendarYear - 1)) && (TempArray.get(i).Month == 1)) {
+                    DrawGraphAfterCalc(Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, true, (252 + (148 * 2)),
+                            true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                }
+                if ((TempArray.get(i).Year == CalendarYear) && (TempArray.get(i).Month == 1)) {
+                    DrawGraphAfterCalc(Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, false, (252 + (148 * 3)),
+                            true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                }
+
+                if ((TempArray.get(i).Year == (CalendarYear - 1)) && (TempArray.get(i).Month == 2)) {
+                    DrawGraphAfterCalc(Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, true, (252 + (148 * 4)),
+                            true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                }
+                if ((TempArray.get(i).Year == CalendarYear) && (TempArray.get(i).Month == 2)) {
+                    DrawGraphAfterCalc(Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, false, (252 + (148 * 5)),
+                            true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                }
+            } else if ((CalendarMonth + 1) == 1) //1월 인 경우
+            {
+                if ((TempArray.get(i).Year == (CalendarYear - 2)) && (TempArray.get(i).Month == 11)) {
+                    DrawGraphAfterCalc(Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, true,
+                            (252 + (148 * 0)), true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                }
+                if ((TempArray.get(i).Year == CalendarYear - 1) && (TempArray.get(i).Month == 11)) {
+                    DrawGraphAfterCalc(Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, false,
+                            (252 + (148 * 1)), true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                }
+
+                if ((TempArray.get(i).Year == CalendarYear - 2) && (TempArray.get(i).Month == 12)) {
+                    DrawGraphAfterCalc(Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, true,
+                            (252 + (148 * 2)), true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                }
+                if ((TempArray.get(i).Year == CalendarYear - 1) && (TempArray.get(i).Month == 12)) {
+                    DrawGraphAfterCalc(Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, false,
+                            (252 + (148 * 3)), true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                }
+
+                if ((TempArray.get(i).Year == (CalendarYear - 1)) && (TempArray.get(i).Month == 1)) {
+                    DrawGraphAfterCalc(Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, true,
+                            (252 + (148 * 4)), true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                }
+                if ((TempArray.get(i).Year == CalendarYear) && (TempArray.get(i).Month == 1)) {
+                    DrawGraphAfterCalc(Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, false,
+                            (252 + (148 * 5)), true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                }
+            } else {
+                if ((TempArray.get(i).Year == (CalendarYear - 1)) && (TempArray.get(i).Month == (CalendarMonth + 1) - 2)) {
+                    DrawGraphAfterCalc(Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, true,
+                            (252 + (148 * 0)), true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                }
+                if ((TempArray.get(i).Year == CalendarYear) && (TempArray.get(i).Month == (CalendarMonth + 1) - 2)) {
+                    DrawGraphAfterCalc(Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, false,
+                            (252 + (148 * 1)), true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                }
+
+                if ((TempArray.get(i).Year == (CalendarYear - 1)) && (TempArray.get(i).Month == (CalendarMonth + 1) - 1)) {
+                    DrawGraphAfterCalc(Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, true,
+                            (252 + (148 * 2)), true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                }
+                if ((TempArray.get(i).Year == CalendarYear) && (TempArray.get(i).Month == (CalendarMonth + 1) - 1)) {
+                    DrawGraphAfterCalc(Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, false,
+                            (252 + (148 * 3)), true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                }
+
+                if ((TempArray.get(i).Year == (CalendarYear - 1)) && (TempArray.get(i).Month == (CalendarMonth + 1))) {
+                    DrawGraphAfterCalc(Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, true,
+                            (252 + (148 * 4)), true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                }
+                if ((TempArray.get(i).Year == CalendarYear) && (TempArray.get(i).Month == (CalendarMonth + 1))) {
+                    DrawGraphAfterCalc(Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, false,
+                            (252 + (148 * 5)), true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                }
+            }
+        }
+    }
+
+    private void Show3MonthEnergy_inRetProci(ArrayList<UsedValueArrayClass> TempArray) {
+        ArrayList<Integer> CalcMaxValueArrayList = new ArrayList<Integer>();
+        int Temp_MaxValue = 0;
+
+        for (int i = 0; i < TempArray.size(); i++) {
+            CalcMaxValueArrayList.add((int) TempArray.get(i).UsedValue_Myhome);
+            CalcMaxValueArrayList.add((int) TempArray.get(i).UsedValue_SamePyung);
+        }
+
+        DebugLogOutput("CalcMaxValueArrayList " + CalcMaxValueArrayList.size());
+
+        Temp_MaxValue = Collections.max(CalcMaxValueArrayList);
+        DebugLogOutput("Temp_MaxValue " + Temp_MaxValue);
+        if ((Temp_MaxValue == 0) || (Temp_MaxValue < 32)) {
+            Temp_MaxValue = 31;
+        }
+        for (int i = 0; i < 6; i++) {
+            Show_3Month_Legend_Text[i] = new WpadTextView(getContext(), false, 109, 30, Gravity.RIGHT, Color.parseColor("#969696"), Common.fontsize._26_DEFAULT, false, ID.RemoteMeterMainScreenID.text.TEXT_INFO);
+            ViewRegistration(getLayout(), Show_3Month_Legend_Text[i],
+                    Common.ImgPosion.GetX(86),
+                    Common.ImgPosion.GetY(726 - (i * 80)));
+            if (Show_3Month_Legend_Text[i] != null)
+                Show_3Month_Legend_Text[i].setText(Integer.toString(i * Temp_MaxValue / 5));
+        }
+        if (mEMS_Enable == true) {
+            Show_BG_Graph = new WpadImageView(getContext(), TOUCH_KIND.NONE, 890, 482, R.drawable.graph_bg, 0, ID.RemoteMeterMainScreenID.image.BG_GRAPH);
+            ViewRegistration(getLayout(), Show_BG_Graph, Common.ImgPosion.GetX(202), Common.ImgPosion.GetY(257));
+
+            for (int i = 0; i < TempArray.size(); i++) {
+                if ((CalendarMonth + 1) == 2) {
+                    if ((TempArray.get(i).Year == (CalendarYear - 1)) && (TempArray.get(i).Month == 12)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_SamePyung, true, 274, false, "");
+                    }
+                    if ((TempArray.get(i).Year == CalendarYear - 1) && (TempArray.get(i).Month == 12)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, false, 378, false, "");
+                    }
+
+                    if ((TempArray.get(i).Year == CalendarYear) && (TempArray.get(i).Month == 1)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_SamePyung, true, 570, false, "");
+                    }
+                    if ((TempArray.get(i).Year == CalendarYear) && (TempArray.get(i).Month == 1)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, false, 674, false, "");
+                    }
+
+                    if ((TempArray.get(i).Year == CalendarYear) && (TempArray.get(i).Month == 2)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_SamePyung, true, 866, false, "");
+                    }
+                    if ((TempArray.get(i).Year == CalendarYear) && (TempArray.get(i).Month == 2)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, false, 970, false, "");
+                    }
+                } else if ((CalendarMonth + 1) == 1) {
+                    if ((TempArray.get(i).Year == (CalendarYear - 1)) && (TempArray.get(i).Month == 11)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_SamePyung, true, 274, false, "");
+                    }
+                    if ((TempArray.get(i).Year == CalendarYear - 1) && (TempArray.get(i).Month == 11)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, false, 378, false, "");
+                    }
+
+                    if ((TempArray.get(i).Year == CalendarYear - 1) && (TempArray.get(i).Month == 12)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_SamePyung, true, 570, false, "");
+                    }
+                    if ((TempArray.get(i).Year == CalendarYear - 1) && (TempArray.get(i).Month == 12)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, false, 674, false, "");
+                    }
+
+                    if ((TempArray.get(i).Year == CalendarYear) && (TempArray.get(i).Month == 1)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_SamePyung, true, 866, false, "");
+                    }
+                    if ((TempArray.get(i).Year == CalendarYear) && (TempArray.get(i).Month == 1)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, false, 970, false, "");
+                    }
+                } else {
+                    if ((TempArray.get(i).Year == CalendarYear) && (TempArray.get(i).Month == (CalendarMonth + 1) - 2)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_SamePyung, true, 274, false, "");
+                    }
+                    if ((TempArray.get(i).Year == CalendarYear) && (TempArray.get(i).Month == (CalendarMonth + 1) - 2)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, false, 378, false, "");
+                    }
+
+                    if ((TempArray.get(i).Year == CalendarYear) && (TempArray.get(i).Month == (CalendarMonth + 1) - 1)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_SamePyung, true, 570, false, "");
+                    }
+                    if ((TempArray.get(i).Year == CalendarYear) && (TempArray.get(i).Month == (CalendarMonth + 1) - 1)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, false, 674, false, "");
+                    }
+
+                    if ((TempArray.get(i).Year == CalendarYear) && (TempArray.get(i).Month == (CalendarMonth + 1))) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_SamePyung, true, 866, false, "");
+                    }
+                    if ((TempArray.get(i).Year == CalendarYear) && (TempArray.get(i).Month == (CalendarMonth + 1))) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, false, 970, false, "");
+                    }
+                }
+            }
+        }
+        //전년비 비교 or 최근 6개월 비교일때 252 시작으로 148씩 더하면 됨(2017.11)
+        else // EMS 지원하지 않는 경우 최근 6개월 차트 보여줘야 함!
+        {
+            Show_BG_Graph = new WpadImageView(getContext(), TOUCH_KIND.NONE, 890, 482, R.drawable.graph_bg_year, 0, ID.RemoteMeterMainScreenID.image.BG_GRAPH);
+            ViewRegistration(getLayout(), Show_BG_Graph, Common.ImgPosion.GetX(202), Common.ImgPosion.GetY(257));
+
+            for (int i = 0; i < TempArray.size(); i++) {
+                if ((CalendarMonth + 1) == 1) {
+                    if ((TempArray.get(i).Year == (CalendarYear - 1)) && (TempArray.get(i).Month == 8)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, true, (252 + (148 * 0)),
+                                true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                    }
+                    if ((TempArray.get(i).Year == CalendarYear - 1) && (TempArray.get(i).Month == 9)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, false, (252 + (148 * 1)),
+                                true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                    }
+
+                    if ((TempArray.get(i).Year == CalendarYear - 1) && (TempArray.get(i).Month == 10)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, true, (252 + (148 * 2)),
+                                true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                    }
+                    if ((TempArray.get(i).Year == CalendarYear - 1) && (TempArray.get(i).Month == 11)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, false, (252 + (148 * 3)),
+                                true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                    }
+
+                    if ((TempArray.get(i).Year == CalendarYear - 1) && (TempArray.get(i).Month == 12)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, true, (252 + (148 * 4)),
+                                true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                    }
+                    if ((TempArray.get(i).Year == CalendarYear) && (TempArray.get(i).Month == 1)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, false, (252 + (148 * 5)),
+                                true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                    }
+                } else if ((CalendarMonth + 1) == 2) {
+                    if ((TempArray.get(i).Year == (CalendarYear - 1)) && (TempArray.get(i).Month == 9)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, true, (252 + (148 * 0)),
+                                true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                    }
+                    if ((TempArray.get(i).Year == CalendarYear - 1) && (TempArray.get(i).Month == 10)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, false, (252 + (148 * 1)),
+                                true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                    }
+
+                    if ((TempArray.get(i).Year == CalendarYear - 1) && (TempArray.get(i).Month == 11)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, true, (252 + (148 * 2)),
+                                true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                    }
+                    if ((TempArray.get(i).Year == CalendarYear - 1) && (TempArray.get(i).Month == 12)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, false, (252 + (148 * 3)),
+                                true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                    }
+
+                    if ((TempArray.get(i).Year == CalendarYear) && (TempArray.get(i).Month == 1)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, true, (252 + (148 * 4)),
+                                true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                    }
+                    if ((TempArray.get(i).Year == CalendarYear) && (TempArray.get(i).Month == 2)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, false, (252 + (148 * 5)),
+                                true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                    }
+                } else if ((CalendarMonth + 1) == 3) {
+                    if ((TempArray.get(i).Year == (CalendarYear - 1)) && (TempArray.get(i).Month == 10)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, true, (252 + (148 * 0)),
+                                true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                    }
+                    if ((TempArray.get(i).Year == CalendarYear - 1) && (TempArray.get(i).Month == 11)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, false, (252 + (148 * 1)),
+                                true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                    }
+
+                    if ((TempArray.get(i).Year == CalendarYear - 1) && (TempArray.get(i).Month == 12)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, true, (252 + (148 * 2)),
+                                true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                    }
+                    if ((TempArray.get(i).Year == CalendarYear) && (TempArray.get(i).Month == 1)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, false, (252 + (148 * 3)),
+                                true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                    }
+
+                    if ((TempArray.get(i).Year == CalendarYear) && (TempArray.get(i).Month == 2)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, true, (252 + (148 * 4)),
+                                true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                    }
+                    if ((TempArray.get(i).Year == CalendarYear) && (TempArray.get(i).Month == 3)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, false, (252 + (148 * 5)),
+                                true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                    }
+                } else if ((CalendarMonth + 1) == 4) {
+                    if ((TempArray.get(i).Year == (CalendarYear - 1)) && (TempArray.get(i).Month == 11)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, true, (252 + (148 * 0)),
+                                true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                    }
+                    if ((TempArray.get(i).Year == CalendarYear - 1) && (TempArray.get(i).Month == 12)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, false, (252 + (148 * 1)),
+                                true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                    }
+
+                    if ((TempArray.get(i).Year == CalendarYear) && (TempArray.get(i).Month == 1)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, true, (252 + (148 * 2)),
+                                true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                    }
+                    if ((TempArray.get(i).Year == CalendarYear) && (TempArray.get(i).Month == 2)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, false, (252 + (148 * 3)),
+                                true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                    }
+
+                    if ((TempArray.get(i).Year == CalendarYear) && (TempArray.get(i).Month == 3)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, true, (252 + (148 * 4)),
+                                true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                    }
+                    if ((TempArray.get(i).Year == CalendarYear) && (TempArray.get(i).Month == 4)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, false, (252 + (148 * 5)),
+                                true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                    }
+                } else if ((CalendarMonth + 1) == 5) {
+                    if ((TempArray.get(i).Year == (CalendarYear - 1)) && (TempArray.get(i).Month == 12)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, true, (252 + (148 * 0)),
+                                true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                    }
+                    if ((TempArray.get(i).Year == CalendarYear) && (TempArray.get(i).Month == 1)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, false, (252 + (148 * 1)),
+                                true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                    }
+
+                    if ((TempArray.get(i).Year == CalendarYear) && (TempArray.get(i).Month == 2)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, true, (252 + (148 * 2)),
+                                true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                    }
+                    if ((TempArray.get(i).Year == CalendarYear) && (TempArray.get(i).Month == 3)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, false, (252 + (148 * 3)),
+                                true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                    }
+
+                    if ((TempArray.get(i).Year == CalendarYear) && (TempArray.get(i).Month == 4)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, true, (252 + (148 * 4)),
+                                true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                    }
+                    if ((TempArray.get(i).Year == CalendarYear) && (TempArray.get(i).Month == 5)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, false, (252 + (148 * 5)),
+                                true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                    }
+                } else {
+                    if ((TempArray.get(i).Year == (CalendarYear)) && (TempArray.get(i).Month == (CalendarMonth + 1) - 5)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, true, (252 + (148 * 0)),
+                                true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                    }
+                    if ((TempArray.get(i).Year == CalendarYear) && (TempArray.get(i).Month == (CalendarMonth + 1) - 4)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, false, (252 + (148 * 1)),
+                                true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                    }
+
+                    if ((TempArray.get(i).Year == CalendarYear) && (TempArray.get(i).Month == (CalendarMonth + 1) - 3)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, true, (252 + (148 * 2)),
+                                true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                    }
+                    if ((TempArray.get(i).Year == CalendarYear) && (TempArray.get(i).Month == (CalendarMonth + 1) - 2)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, false, (252 + (148 * 3)),
+                                true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                    }
+
+                    if ((TempArray.get(i).Year == CalendarYear) && (TempArray.get(i).Month == (CalendarMonth + 1) - 1)) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, true, (252 + (148 * 4)),
+                                true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                    }
+                    if ((TempArray.get(i).Year == CalendarYear) && (TempArray.get(i).Month == (CalendarMonth + 1))) {
+                        DrawGraphAfterCalc((float) Temp_MaxValue, TempArray.get(i).UsedValue_Myhome, false, (252 + (148 * 5)),
+                                true, "" + TempArray.get(i).Year + "." + TempArray.get(i).Month);
+                    }
+                }
+            }
+        }
+
+    }
+    //[Function]
+
+}

+ 77 - 57
WallPadMain/src/main/java/kr/co/icontrols/wallpadmain/util/iMapServer.java

@@ -3946,6 +3946,11 @@ public class iMapServer extends Service {
                 if (!SplitedMSG[1].split(":")[1].equals(devName)) return false;
                 String[] UseStr = SplitedMSG[2].split("[)]");
                 if (!UseStr[0].equals(isUse) && !UseStr[0].equals(isNotUse)) return false;
+            } else if (devName.equals("UI순서")) {
+                SplitedMSG = devData.split("[(]");
+                if (!SplitedMSG[1].split(":")[1].equals(devName)) return false;
+                String[] UseStr = SplitedMSG[2].split("[)]");
+                if (!UseStr[0].equals(isUse) && !UseStr[0].equals(isNotUse)) return false;
             } else {
                 Log.w("iMAP", "No Such Name, Set Setup devName =" + devName + ", devData =" + devData);
                 Log.w("iMAP", "Return true");
@@ -5511,8 +5516,17 @@ public class iMapServer extends Service {
 
             WallpadDeviceSet mWallpadDeviceSet = new WallpadDeviceSet(getApplicationContext());
             int nResultPanelType = mWallpadDeviceSet.Get_DistributionPannelType_Info();
+            String[] strDeviceSeqValue = mWallpadDeviceSet.GetSettingData("UI순서");
             mWallpadDeviceSet.closeDB();
 
+            String strLight = strDeviceSeqValue[1].substring( (strDeviceSeqValue[1].indexOf("조명(") + 3) , (strDeviceSeqValue[1].indexOf(")난방(")));
+            String strHeating = strDeviceSeqValue[1].substring( (strDeviceSeqValue[1].indexOf("난방(") + 3) , (strDeviceSeqValue[1].indexOf(")에어컨(")));
+            String strAircon = strDeviceSeqValue[1].substring( (strDeviceSeqValue[1].indexOf("에어컨(") + 4) , (strDeviceSeqValue[1].indexOf("))")));
+
+            strLight = (strLight.substring(strLight.indexOf(":")+1)).replaceAll("_","/");
+            strHeating = (strHeating.substring(strHeating.indexOf(":")+1)).replaceAll("_","/");
+            strAircon = (strAircon.substring(strAircon.indexOf(":")+1)).replaceAll("_","/");
+
             for (int i = 0; i < devlist.length; i++) {
                 if (devlist[i].equals("cooktop")) {
                     if (mWallPadAPI.GetGasKind() == 1) {
@@ -5521,16 +5535,16 @@ public class iMapServer extends Service {
                         if (Gasinfo == 1) {
                             // 사용함
                             if (bGasAsCooktopOutlet) {
-                                strResult += "         <devinfo name=\"gas\" value=\"0\" floor=\"" + ho + "\"/>\r\n";
-                                strResult += "         <devinfo name=\"cooktop\" value=\"1\" floor=\"" + ho + "\"/>\r\n";
+                                strResult += "         <devinfo name=\"gas\" value=\"0\" order=\"1\" floor=\"" + ho + "\"/>\r\n";
+                                strResult += "         <devinfo name=\"cooktop\" value=\"1\" order=\"1\" floor=\"" + ho + "\"/>\r\n";
                             } else {
-                                strResult += "         <devinfo name=\"gas\" value=\"1\" floor=\"" + ho + "\"/>\r\n";
-                                strResult += "         <devinfo name=\"cooktop\" value=\"0\" floor=\"" + ho + "\"/>\r\n";
+                                strResult += "         <devinfo name=\"gas\" value=\"1\" order=\"1\" floor=\"" + ho + "\"/>\r\n";
+                                strResult += "         <devinfo name=\"cooktop\" value=\"0\" order=\"1\" floor=\"" + ho + "\"/>\r\n";
                             }
                         } else {
                             // 사용안함
-                            strResult += "         <devinfo name=\"gas\" value=\"0\" floor=\"" + ho + "\"/>\r\n";
-                            strResult += "         <devinfo name=\"cooktop\" value=\"0\" floor=\"" + ho + "\"/>\r\n";
+                            strResult += "         <devinfo name=\"gas\" value=\"0\" order=\"1\" floor=\"" + ho + "\"/>\r\n";
+                            strResult += "         <devinfo name=\"cooktop\" value=\"0\" order=\"1\" floor=\"" + ho + "\"/>\r\n";
                         }
                     } else if (mWallPadAPI.GetGasKind() == 2) {
                         // 하이브리드 쿡탑
@@ -5545,75 +5559,78 @@ public class iMapServer extends Service {
                                         nOutlet++;
                                 }
                             }
-                            strResult += "         <devinfo name=\"gas\" value=\"" + nGas + "\" floor=\"" + ho + "\"/>\r\n";
-                            strResult += "         <devinfo name=\"cooktop\" value=\"" + nOutlet + "\" floor=\"" + ho + "\"/>\r\n";
+                            strResult += "         <devinfo name=\"gas\" value=\"" + nGas + "\" order=\"1\" floor=\"" + ho + "\"/>\r\n";
+                            strResult += "         <devinfo name=\"cooktop\" value=\"" + nOutlet + "\" order=\"1\" floor=\"" + ho + "\"/>\r\n";
                         }
                     } else {
-                        strResult += "         <devinfo name=\"gas\" value=\"0\" floor=\"" + ho + "\"/>\r\n";
-                        strResult += "         <devinfo name=\"cooktop\" value=\"0\" floor=\"" + ho + "\"/>\r\n";
+                        strResult += "         <devinfo name=\"gas\" value=\"0\" order=\"1\" floor=\"" + ho + "\"/>\r\n";
+                        strResult += "         <devinfo name=\"cooktop\" value=\"0\" order=\"1\" floor=\"" + ho + "\"/>\r\n";
                     }
-                } else if (devlist[i].equals("doorlock")) {
+                }
+                else if (devlist[i].equals("doorlock")) {
                     try {
                         int[] DoorLockInfo = devSet.Get_DoorLock_Info();
                         if ((DoorLockInfo[0] == 1) && (DoorLockInfo[1] == WallpadDeviceSet.DOORLOCK_TYPE_NORMAL)) {
-                            strResult += "         <devinfo name=\"doorlock\" value=\"1\" floor=\"" + ho + "\"/>\r\n";
+                            strResult += "         <devinfo name=\"doorlock\" value=\"1\" order=\"1\" floor=\"" + ho + "\"/>\r\n";
                         } else {
-                            strResult += "         <devinfo name=\"doorlock\" value=\"0\" floor=\"" + ho + "\"/>\r\n";
+                            strResult += "         <devinfo name=\"doorlock\" value=\"0\" order=\"1\" floor=\"" + ho + "\"/>\r\n";
                         }
                     } catch (RuntimeException re) {
                         LogUtil.errorLogInfo("", TAG, re);
-                        strResult += "         <devinfo name=\"doorlock\" value=\"0\" floor=\"" + ho + "\"/>\r\n";
+                        strResult += "         <devinfo name=\"doorlock\" value=\"0\" order=\"1\" floor=\"" + ho + "\"/>\r\n";
                     } catch (Exception e) {
                         //e.printStackTrace();
                         LogUtil.errorLogInfo("", TAG, e);
-                        strResult += "         <devinfo name=\"doorlock\" value=\"0\" floor=\"" + ho + "\"/>\r\n";
+                        strResult += "         <devinfo name=\"doorlock\" value=\"0\" order=\"1\" floor=\"" + ho + "\"/>\r\n";
                     }
-                } else if (devlist[i].equals("light")) {
+                }
+                else if (devlist[i].equals("light")) {
                     try {
                         if (Version.getModelType() == Version.MODEL_TYPE.IHN_D101 || Version.getModelType() == Version.MODEL_TYPE.IHN_D101_I
                                 || Version.getModelType() == Version.MODEL_TYPE.IHN_D101K || Version.getModelType() == Version.MODEL_TYPE.IHN_D101K_I
                                 || Version.getModelType() == MODEL_TYPE.IHN_D101_I_OCF) {
                             if (bLightCMDUseAsSmartLight) {
                                 if (mSdbAPI != null) {
-                                    strResult += "         <devinfo name=\"light\" value=\"" + mSdbAPI.data.BadRoom_Em_Count + "\" floor=\"" + ho + "\"/>\r\n";
+                                    strResult += "         <devinfo name=\"light\" value=\"" + mSdbAPI.data.BadRoom_Em_Count + "\" order=\"1\" floor=\"" + ho + "\"/>\r\n";
                                 } else {
-                                    strResult += "         <devinfo name=\"light\" value=\"0\" floor=\"" + ho + "\"/>\r\n";
+                                    strResult += "         <devinfo name=\"light\" value=\"0\" order=\"1\" floor=\"" + ho + "\"/>\r\n";
                                 }
                             } else {
-                                strResult += "         <devinfo name=\"light\" value=\"0\" floor=\"" + ho + "\"/>\r\n";
+                                strResult += "         <devinfo name=\"light\" value=\"0\" order=\"1\" floor=\"" + ho + "\"/>\r\n";
                                 Log.w(TAG, "[iCMDProcDevList] Not supported!!");
                             }
                         } else if (Version.getModelType() == Version.MODEL_TYPE.IHN_1020GL) {
                             EnergyMeterAPI energymeter = mWallPadAPI.Get_EnergyMeterController();
                             if ((energymeter.Refresh((byte) 0xFF, false) == 0) && (energymeter.data.RoomCnt > 0)) {
-                                strResult += "         <devinfo name=\"light\" value=\"" + energymeter.data.RoomCnt + "\" floor=\"" + ho + "\"/>\r\n";
+                                strResult += "         <devinfo name=\"light\" value=\"" + energymeter.data.RoomCnt + "\" order=\"1\" floor=\"" + ho + "\"/>\r\n";
                             } else {
-                                strResult += "         <devinfo name=\"light\" value=\"0\" floor=\"" + ho + "\"/>\r\n";
+                                strResult += "         <devinfo name=\"light\" value=\"0\" order=\"1\" floor=\"" + ho + "\"/>\r\n";
                             }
                         } else {
                             int[] lightinfo = devSet.Get_Light_info();
                             if (lightinfo[0] == 0 || lightinfo[1] != WallpadDeviceSet.LIGHT_TYPE_ROOM) {
-                                strResult += "         <devinfo name=\"light\" value=\"0\" floor=\"" + ho + "\"/>\r\n";
+                                strResult += "         <devinfo name=\"light\" value=\"0\" order=\"1\" floor=\"" + ho + "\"/>\r\n";
                             } else if ((lightinfo[0] == 1) && (lightinfo[1] == WallpadDeviceSet.LIGHT_TYPE_LIVING)) {
-                                strResult += "         <devinfo name=\"light\" value=\"1\" floor=\"" + ho + "\"/>\r\n";
+                                strResult += "         <devinfo name=\"light\" value=\"1\" order=\"1\" floor=\"" + ho + "\"/>\r\n";
                             } else {
                                 MultiSwitchAPI multisw = mWallPadAPI.Get_MultiSwitchController();
                                 int ret = multisw.Refresh((byte) 0xFF, false);
                                 if (ret < 0 || multisw.data.DeviceCnt < 1)
-                                    strResult += "    <devinfo name=\"light\" value=\"0\" floor=\"" + ho + "\"/>\r\n";
+                                    strResult += "    <devinfo name=\"light\" value=\"0\" order=\"1\" floor=\"" + ho + "\"/>\r\n";
                                 else
-                                    strResult += "         <devinfo name=\"light\" value=\"" + multisw.data.DeviceCnt + "\" floor=\"" + ho + "\"/>\r\n";
+                                    strResult += "         <devinfo name=\"light\" value=\"" + multisw.data.DeviceCnt + "\" order=\"1\" floor=\"" + ho + "\"/>\r\n";
                             }
                         }
                     } catch (RuntimeException re) {
                         LogUtil.errorLogInfo("", TAG, re);
-                        strResult += "         <devinfo name=\"light\" value=\"0\" floor=\"" + ho + "\"/>\r\n";
+                        strResult += "         <devinfo name=\"light\" value=\"0\" order=\"1\" floor=\"" + ho + "\"/>\r\n";
                     } catch (Exception e) {
                         //e.printStackTrace();
                         LogUtil.errorLogInfo("", TAG, e);
-                        strResult += "         <devinfo name=\"light\" value=\"0\" floor=\"" + ho + "\"/>\r\n";
+                        strResult += "         <devinfo name=\"light\" value=\"0\" order=\"1\" floor=\"" + ho + "\"/>\r\n";
                     }
-                } else if (devlist[i].equals("livinglight")) {
+                }
+                else if (devlist[i].equals("livinglight")) {
                     try {
                         int[] lightinfo = devSet.Get_Light_info();
                         if (Version.getModelType() == Version.MODEL_TYPE.IHN_D101 || Version.getModelType() == Version.MODEL_TYPE.IHN_D101_I
@@ -5621,47 +5638,49 @@ public class iMapServer extends Service {
                                 || Version.getModelType() == MODEL_TYPE.IHN_D101_I_OCF) {
                             if (bLightCMDUseAsSmartLight) {
                                 if (mSdb_LivingRoomLightAPI != null) {
-                                    strResult += "         <devinfo name=\"livinglight\" value=\"" + mSdb_LivingRoomLightAPI.data.Info.LightCount + "\" floor=\"" + ho + "\"/>\r\n";
+                                    strResult += "         <devinfo name=\"livinglight\" value=\"" + mSdb_LivingRoomLightAPI.data.Info.LightCount + "\" order=\"1\" floor=\"" + ho + "\"/>\r\n";
                                 } else {
-                                    strResult += "         <devinfo name=\"livinglight\" value=\"0\" floor=\"" + ho + "\"/>\r\n";
+                                    strResult += "         <devinfo name=\"livinglight\" value=\"0\" order=\"1\" floor=\"" + ho + "\"/>\r\n";
                                 }
                             } else {
-                                strResult += "         <devinfo name=\"livinglight\" value=\"0\" floor=\"" + ho + "\"/>\r\n";
+                                strResult += "         <devinfo name=\"livinglight\" value=\"0\" order=\"1\" floor=\"" + ho + "\"/>\r\n";
                                 Log.w(TAG, "[iCMDProcDevList] Not supported!!");
                             }
                         } else if (Version.getModelType() == Version.MODEL_TYPE.IHN_1020GL) {
-                            strResult += "         <devinfo name=\"livinglight\" value=\"" + lightinfo[2] + "\" floor=\"" + ho + "\"/>\r\n";
+                            strResult += "         <devinfo name=\"livinglight\" value=\"" + lightinfo[2] + "\" order=\"1\" floor=\"" + ho + "\"/>\r\n";
                         } else {
                             if (lightinfo[0] == 0 || lightinfo[1] != WallpadDeviceSet.LIGHT_TYPE_LIVING) {
-                                strResult += "         <devinfo name=\"livinglight\" value=\"0\" floor=\"" + ho + "\"/>\r\n";
+                                strResult += "         <devinfo name=\"livinglight\" value=\"0\" order=\"1\" floor=\"" + ho + "\"/>\r\n";
                             } else {
-                                strResult += "         <devinfo name=\"livinglight\" value=\"" + lightinfo[2] + "\" floor=\"" + ho + "\"/>\r\n";
+                                strResult += "         <devinfo name=\"livinglight\" value=\"" + lightinfo[2] + "\" order=\"1\" floor=\"" + ho + "\"/>\r\n";
                             }
                         }
                     } catch (RuntimeException re) {
                         LogUtil.errorLogInfo("", TAG, re);
-                        strResult += "         <devinfo name=\"livinglight\" value=\"0\" floor=\"" + ho + "\"/>\r\n";
+                        strResult += "         <devinfo name=\"livinglight\" value=\"0\" order=\"1\" floor=\"" + ho + "\"/>\r\n";
                     } catch (Exception e) {
                         //e.printStackTrace();
                         LogUtil.errorLogInfo("", TAG, e);
-                        strResult += "         <devinfo name=\"livinglight\" value=\"0\" floor=\"" + ho + "\"/>\r\n";
+                        strResult += "         <devinfo name=\"livinglight\" value=\"0\" order=\"1\" floor=\"" + ho + "\"/>\r\n";
                     }
-                } else if (devlist[i].equals("ventil")) {
+                }
+                else if (devlist[i].equals("ventil")) {
                     try {
                         int[] Ventilinfo = devSet.Get_Ventil_Info();
                         if (Ventilinfo[0] == 0)
-                            strResult += "    <devinfo name=\"ventil\" value=\"0\" floor=\"" + ho + "\"/>\r\n";
+                            strResult += "    <devinfo name=\"ventil\" value=\"0\" order=\"1\" floor=\"" + ho + "\"/>\r\n";
                         else
-                            strResult += "         <devinfo name=\"ventil\" value=\"1\" floor=\"" + ho + "\"/>\r\n";
+                            strResult += "         <devinfo name=\"ventil\" value=\"1\" order=\"1\" floor=\"" + ho + "\"/>\r\n";
                     } catch (RuntimeException re) {
                         LogUtil.errorLogInfo("", TAG, re);
-                        strResult += "         <devinfo name=\"ventil\" value=\"0\" floor=\"" + ho + "\"/>\r\n";
+                        strResult += "         <devinfo name=\"ventil\" value=\"0\" order=\"1\" floor=\"" + ho + "\"/>\r\n";
                     } catch (Exception e) {
                         //e.printStackTrace();
                         LogUtil.errorLogInfo("", TAG, e);
-                        strResult += "         <devinfo name=\"ventil\" value=\"0\" floor=\"" + ho + "\"/>\r\n";
+                        strResult += "         <devinfo name=\"ventil\" value=\"0\" order=\"1\" floor=\"" + ho + "\"/>\r\n";
                     }
-                } else if (devlist[i].equals("thermostat")) {
+                }
+                else if (devlist[i].equals("thermostat")) {
                     try {
                         int Temperinfo = devSet.Get_Temper_Info();
                         int HeatingKind = mWallPadAPI.GetHeatingKind();
@@ -5682,31 +5701,32 @@ public class iMapServer extends Service {
                         }
 
                         if (Temperinfo == 0)
-                            strResult += "         <devinfo name=\"thermostat\" value=\"0\" floor=\"" + ho + "\"/>\r\n";
+                            strResult += "         <devinfo name=\"thermostat\" value=\"0\" order=\"" + strHeating + "\" floor=\"" + ho + "\"/>\r\n";
                         else
-                            strResult += "         <devinfo name=\"thermostat\" value=\"" + RoomCount + "\" floor=\"" + ho + "\"/>\r\n";
+                            strResult += "         <devinfo name=\"thermostat\" value=\"" + RoomCount + "\" order=\"" + strHeating + "\" floor=\"" + ho + "\"/>\r\n";
                     } catch (RuntimeException re) {
                         LogUtil.errorLogInfo("", TAG, re);
-                        strResult += "         <devinfo name=\"thermostat\" value=\"0\" floor=\"" + ho + "\"/>\r\n";
+                        strResult += "         <devinfo name=\"thermostat\" value=\"0\" order=\"" + strHeating + "\" floor=\"" + ho + "\"/>\r\n";
                     } catch (Exception e) {
                         //e.printStackTrace();
                         LogUtil.errorLogInfo("", TAG, e);
-                        strResult += "         <devinfo name=\"thermostat\" value=\"0\" floor=\"" + ho + "\"/>\r\n";
+                        strResult += "         <devinfo name=\"thermostat\" value=\"0\" order=\"" + strHeating + "\" floor=\"" + ho + "\"/>\r\n";
                     }
-                } else if (devlist[i].equals("curtain")) {
+                }
+                else if (devlist[i].equals("curtain")) {
                     try {
                         int[] Curtaininfo = devSet.Get_CURTAIN_Info();
                         if (Curtaininfo[0] == 0)
-                            strResult += "         <devinfo name=\"curtain\" value=\"0\" floor=\"" + ho + "\"/>\r\n";
+                            strResult += "         <devinfo name=\"curtain\" value=\"0\" order=\"1\" floor=\"" + ho + "\"/>\r\n";
                         else
-                            strResult += "         <devinfo name=\"curtain\" value=\"1\" floor=\"" + ho + "\"/>\r\n";
+                            strResult += "         <devinfo name=\"curtain\" value=\"1\" order=\"1\" floor=\"" + ho + "\"/>\r\n";
                     } catch (RuntimeException re) {
                         LogUtil.errorLogInfo("", TAG, re);
-                        strResult += "         <devinfo name=\"curtain\" value=\"0\" floor=\"" + ho + "\"/>\r\n";
+                        strResult += "         <devinfo name=\"curtain\" value=\"0\" order=\"1\" floor=\"" + ho + "\"/>\r\n";
                     } catch (Exception e) {
                         //e.printStackTrace();
                         LogUtil.errorLogInfo("", TAG, e);
-                        strResult += "         <devinfo name=\"curtain\" value=\"0\" floor=\"" + ho + "\"/>\r\n";
+                        strResult += "         <devinfo name=\"curtain\" value=\"0\" order=\"1\" floor=\"" + ho + "\"/>\r\n";
                     }
                 }
                 else if (devlist[i].equals("electric")) {
@@ -5806,11 +5826,11 @@ public class iMapServer extends Service {
                                             LivingLightCount = 1;
                                     }
                                     int AllEMcount = LivingLightCount + KnxApi.data.MasterController.Info.Bad_EnergyMeterCount; // + KnxApi.data.MasterController.Info.Liv_EnergyMeterCount;
-                                    strResult += "         <devinfo name=\"smartlight\" value=\"" + AllEMcount + "\" floor=\"" + ho + "\"/>\r\n";
+                                    strResult += "         <devinfo name=\"smartlight\" value=\"" + AllEMcount + "\" order=\"" + strLight + "\" floor=\"" + ho + "\"/>\r\n";
                                 }
                             }
                         } catch (Exception ek) {
-                            strResult += "         <devinfo name=\"smartlight\" value=\"" + 0 + "\" floor=\"" + ho + "\"/>\r\n";
+                            strResult += "         <devinfo name=\"smartlight\" value=\"" + 0 + "\" order=\"" + strLight + "\" floor=\"" + ho + "\"/>\r\n";
                         }
                     } else {
                         if (!bLightCMDUseAsSmartLight) {
@@ -5828,7 +5848,7 @@ public class iMapServer extends Service {
                                     nSmartLight = 0;
                                 }
                             }
-                            strResult += "         <devinfo name=\"smartlight\" value=\"" + nSmartLight + "\" floor=\"" + ho + "\"/>\r\n";
+                            strResult += "         <devinfo name=\"smartlight\" value=\"" + nSmartLight + "\" order=\"" + strLight + "\" floor=\"" + ho + "\"/>\r\n";
                         }
                     }
                 }
@@ -5840,12 +5860,12 @@ public class iMapServer extends Service {
                             int nCount = airconAPI.data.Device.info.InsideAirconCount;
                             Log.e(TAG, "[yskim] iCMDProcDevList() sysaircon : " + nCount);
                             // 현대건설 에어컨 처리, 포트가 다르기 때문에 구분해서 처리 필요, 에어컨 API가 동일하다면 그럴 필요는 없음
-                            strResult += "         <devinfo name=\"sysaircon\" value=\"" + nCount + "\" floor=\"" + ho + "\"/>\r\n";
+                            strResult += "         <devinfo name=\"sysaircon\" value=\"" + nCount + "\" order=\"" + strAircon + "\" floor=\"" + ho + "\"/>\r\n";
                         } else {
-                            strResult += "         <devinfo name=\"sysaircon\" value=\"" + 0 + "\" floor=\"" + ho + "\"/>\r\n";
+                            strResult += "         <devinfo name=\"sysaircon\" value=\"" + 0 + "\" order=\"" + strAircon + "\" floor=\"" + ho + "\"/>\r\n";
                         }
                     } else {
-                        strResult += "         <devinfo name=\"sysaircon\" value=\"" + 0 + "\" floor=\"" + ho + "\"/>\r\n";
+                        strResult += "         <devinfo name=\"sysaircon\" value=\"" + 0 + "\" order=\"" + strAircon + "\" floor=\"" + ho + "\"/>\r\n";
                     }
                 }
                 //방범, 센서 여부 응답(고급주택은 사용하지 않아 value 0으로 처리

+ 112 - 44
WallPadMultiControlService/src/main/java/kr/co/icontrols/wallpadmulticontrolservice/DataSenderService.java

@@ -1410,6 +1410,7 @@ public class DataSenderService extends Service {
     }
 
     private JSONObject updateLight(int kind, int position) {
+        String strLight = "0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16_17_18_19_20";
         if (mKnxData == null) {
             deviceApiLoadLight();
             return null;
@@ -1421,6 +1422,23 @@ public class DataSenderService extends Service {
             deviceApiLoadLight();
             return null;
         }
+
+        WallpadDeviceSet devSet = new WallpadDeviceSet(this.getContext());
+        String[] strValue = devSet.GetSettingData("UI순서");
+        devSet.closeDB();
+
+        // 현대건설 더 펜트하우스 서버에서 설정된 UI 순서를 이용하도록 한다.
+        if( strValue != null ) {
+            strLight = strValue[1].substring( (strValue[1].indexOf("조명(") + 3) , (strValue[1].indexOf(")난방(")));
+
+            int strLightCount = Integer.valueOf(strLight.substring(0, strLight.indexOf(":")));
+
+            if(strLightCount==(livDataCount + bedDataCount)){
+                //개수가 일치하는 경우에 적용
+                strLight = strLight.substring(strLight.indexOf(":")+1);
+            }
+        }
+
         JSONObject responseObject = new JSONObject();
         try {
             responseObject.accumulate("type", "updateResponse");
@@ -1434,7 +1452,7 @@ public class DataSenderService extends Service {
             responseObject.accumulate("master_info_switch_count", switchDataCount);
             responseObject.accumulate("liv_info_install", mKnxData.LivingRoom_EnergyMeter.Info.Install);
             responseObject.accumulate("liv_info_lightcount", livDataCount);
-            responseObject.accumulate("data_seq", "0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16_17_18_19_20");
+            responseObject.accumulate("data_seq", strLight);
             JSONArray livDataArray = new JSONArray();
             for (int i = 0; i < livDataCount; i++) {
                 // build jsonObject
@@ -1501,7 +1519,23 @@ public class DataSenderService extends Service {
     }
 
     private JSONObject updateHeating(int kind, int pos) {
+        String strHeating = "0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16_17_18_19_20";
         int roomCount = mHeatingV2API.data.Device.info.RoomCount;
+        WallpadDeviceSet devSet = new WallpadDeviceSet(this.getContext());
+        String[] strValue = devSet.GetSettingData("UI순서");
+        devSet.closeDB();
+
+        // 현대건설 더 펜트하우스 서버에서 설정된 UI 순서를 이용하도록 한다.
+        if( strValue != null ) {
+            strHeating = strValue[1].substring( (strValue[1].indexOf("난방(") + 3) , (strValue[1].indexOf(")에어컨(")));
+
+            int strHeatingCount = Integer.valueOf(strHeating.substring(0, strHeating.indexOf(":")));
+
+            if(strHeatingCount==roomCount){
+                //개수가 일치하는 경우에 적용
+                strHeating = strHeating.substring(strHeating.indexOf(":")+1);
+            }
+        }
         JSONObject jsonObject = new JSONObject();
         try {
             jsonObject.accumulate("type", "updateResponse");
@@ -1522,7 +1556,7 @@ public class DataSenderService extends Service {
                 jsonObject.accumulate("boiler_frost_protect", mHeatingV2API.data.Boiler.bFrostProtectMode);
                 jsonObject.accumulate("boiler_error_code", mHeatingV2API.data.Boiler.ErrorCode);
             }
-            jsonObject.accumulate("data_seq", "0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16_17_18_19_20");
+            jsonObject.accumulate("data_seq", strHeating);
 
             JSONArray dataArray = new JSONArray();
             if (kind == 0) {        //전체 응답
@@ -1635,7 +1669,25 @@ public class DataSenderService extends Service {
     }
 
     private JSONObject updateKnxAircon(int kind, int pos) {
+        String strAircon = "0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16_17_18_19_20";
         int roomCount = mKnxSystemAirconAPI.data.Device.info.InsideAirconCount;
+
+        WallpadDeviceSet devSet = new WallpadDeviceSet(this.getContext());
+        String[] strValue = devSet.GetSettingData("UI순서");
+        devSet.closeDB();
+
+        // 현대건설 더 펜트하우스 서버에서 설정된 UI 순서를 이용하도록 한다.
+        if( strValue != null ) {
+            strAircon = strValue[1].substring( (strValue[1].indexOf("에어컨(") + 4) , (strValue[1].indexOf("))")));
+
+            int strAirconCount = Integer.valueOf(strAircon.substring(0, strAircon.indexOf(":")));
+
+            if(strAirconCount==roomCount){
+                //개수가 일치하는 경우에 적용
+                strAircon = strAircon.substring(strAircon.indexOf(":")+1);
+            }
+        }
+
         JSONObject jsonObject = new JSONObject();
         try {
             jsonObject.accumulate("type", "updateResponse");
@@ -1643,7 +1695,7 @@ public class DataSenderService extends Service {
             jsonObject.accumulate("ip", myIP);
             jsonObject.accumulate("menu", JSON.MENU.AIRCON);
             jsonObject.accumulate("aircon_status", mKnxSystemAirconAPI.data.Device.info.AirconStatus);
-            jsonObject.accumulate("data_seq", "0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16_17_18_19_20");
+            jsonObject.accumulate("data_seq", strAircon);
             JSONArray dataArray = new JSONArray();
             if (kind == 0) {        //전체 응답
                 for (int i = 0; i < roomCount; i++) {
@@ -1879,6 +1931,16 @@ public class DataSenderService extends Service {
         String strResult = "";
         try {
             WallpadDeviceSet devSet = new WallpadDeviceSet(getApplicationContext());
+            int nResultPanelType = devSet.Get_DistributionPannelType_Info();
+            String[] strDeviceSeqValue = devSet.GetSettingData("UI순서");
+
+            String strLight = strDeviceSeqValue[1].substring( (strDeviceSeqValue[1].indexOf("조명(") + 3) , (strDeviceSeqValue[1].indexOf(")난방(")));
+            String strHeating = strDeviceSeqValue[1].substring( (strDeviceSeqValue[1].indexOf("난방(") + 3) , (strDeviceSeqValue[1].indexOf(")에어컨(")));
+            String strAircon = strDeviceSeqValue[1].substring( (strDeviceSeqValue[1].indexOf("에어컨(") + 4) , (strDeviceSeqValue[1].indexOf("))")));
+
+            strLight = (strLight.substring(strLight.indexOf(":")+1)).replaceAll("_","/");
+            strHeating = (strHeating.substring(strHeating.indexOf(":")+1)).replaceAll("_","/");
+            strAircon = (strAircon.substring(strAircon.indexOf(":")+1)).replaceAll("_","/");
             String[] devlist = {"gas", "livinglight", "doorlock", "light", "ventil", "thermostat", "electric", "smartlight", "cooktop", "sysaircon"};
 
             for (int i = 0; i < devlist.length; i++) {
@@ -1889,16 +1951,16 @@ public class DataSenderService extends Service {
                         if (Gasinfo == 1) {
                             // 사용함
                             if (bGasAsCooktopOutlet) {
-                                strResult += "         <devinfo name=\"gas\" value=\"0\" floor=\"" + index + "\"/>\r\n";
-                                strResult += "         <devinfo name=\"cooktop\" value=\"1\" floor=\"" + index + "\"/>\r\n";
+                                strResult += "         <devinfo name=\"gas\" value=\"0\" order=\"1\" floor=\"" + index + "\"/>\r\n";
+                                strResult += "         <devinfo name=\"cooktop\" value=\"1\" order=\"1\" floor=\"" + index + "\"/>\r\n";
                             } else {
-                                strResult += "         <devinfo name=\"gas\" value=\"1\" floor=\"" + index + "\"/>\r\n";
-                                strResult += "         <devinfo name=\"cooktop\" value=\"0\" floor=\"" + index + "\"/>\r\n";
+                                strResult += "         <devinfo name=\"gas\" value=\"1\" order=\"1\" floor=\"" + index + "\"/>\r\n";
+                                strResult += "         <devinfo name=\"cooktop\" value=\"0\" order=\"1\" floor=\"" + index + "\"/>\r\n";
                             }
                         } else {
                             // 사용안함
-                            strResult += "         <devinfo name=\"gas\" value=\"0\" floor=\"" + index + "\"/>\r\n";
-                            strResult += "         <devinfo name=\"cooktop\" value=\"0\" floor=\"" + index + "\"/>\r\n";
+                            strResult += "         <devinfo name=\"gas\" value=\"0\" order=\"1\" floor=\"" + index + "\"/>\r\n";
+                            strResult += "         <devinfo name=\"cooktop\" value=\"0\" order=\"1\" floor=\"" + index + "\"/>\r\n";
                         }
                     } else if (mWallPadAPI.GetGasKind() == 2) {
                         // 하이브리드 쿡탑
@@ -1913,78 +1975,83 @@ public class DataSenderService extends Service {
                                         nOutlet++;
                                 }
                             }
-                            strResult += "         <devinfo name=\"gas\" value=\"" + nGas + "\" floor=\"" + index + "\"/>\r\n";
-                            strResult += "         <devinfo name=\"cooktop\" value=\"" + nOutlet + "\" floor=\"" + index + "\"/>\r\n";
+                            strResult += "         <devinfo name=\"gas\" value=\"" + nGas + "\" order=\"1\" floor=\"" + index + "\"/>\r\n";
+                            strResult += "         <devinfo name=\"cooktop\" value=\"" + nOutlet + "\" order=\"1\" floor=\"" + index + "\"/>\r\n";
                         }
                     } else {
-                        strResult += "         <devinfo name=\"gas\" value=\"0\" floor=\"" + index + "\"/>\r\n";
-                        strResult += "         <devinfo name=\"cooktop\" value=\"0\" floor=\"" + index + "\"/>\r\n";
+                        strResult += "         <devinfo name=\"gas\" value=\"0\" order=\"1\" floor=\"" + index + "\"/>\r\n";
+                        strResult += "         <devinfo name=\"cooktop\" value=\"0\" order=\"1\" floor=\"" + index + "\"/>\r\n";
                     }
-                } else if (devlist[i].equals("doorlock")) {
+                }
+                else if (devlist[i].equals("doorlock")) {
                     try {
                         int[] DoorLockInfo = devSet.Get_DoorLock_Info();
                         if ((DoorLockInfo[0] == 1) && (DoorLockInfo[1] == WallpadDeviceSet.DOORLOCK_TYPE_NORMAL)) {
-                            strResult += "         <devinfo name=\"doorlock\" value=\"1\" floor=\"" + index + "\"/>\r\n";
+                            strResult += "         <devinfo name=\"doorlock\" value=\"1\" order=\"1\" floor=\"" + index + "\"/>\r\n";
                         } else {
-                            strResult += "         <devinfo name=\"doorlock\" value=\"0\" floor=\"" + index + "\"/>\r\n";
+                            strResult += "         <devinfo name=\"doorlock\" value=\"0\" order=\"1\" floor=\"" + index + "\"/>\r\n";
                         }
                     } catch (RuntimeException re) {
                         LogUtil.errorLogInfo("", TAG, re);
-                        strResult += "         <devinfo name=\"doorlock\" value=\"0\" floor=\"" + index + "\"/>\r\n";
+                        strResult += "         <devinfo name=\"doorlock\" value=\"0\" order=\"1\" floor=\"" + index + "\"/>\r\n";
                     } catch (Exception e) {
                         //e.printStackTrace();
                         LogUtil.errorLogInfo("", TAG, e);
-                        strResult += "         <devinfo name=\"doorlock\" value=\"0\" floor=\"" + index + "\"/>\r\n";
+                        strResult += "         <devinfo name=\"doorlock\" value=\"0\" order=\"1\" floor=\"" + index + "\"/>\r\n";
                     }
-                } else if (devlist[i].equals("light")) {
+                }
+                else if (devlist[i].equals("light")) {
                     try {
                         if (Version.getModelType() == Version.MODEL_TYPE.IHN_D101 || Version.getModelType() == Version.MODEL_TYPE.IHN_D101_I
                                 || Version.getModelType() == Version.MODEL_TYPE.IHN_D101K || Version.getModelType() == Version.MODEL_TYPE.IHN_D101K_I
                                 || Version.getModelType() == Version.MODEL_TYPE.IHN_D101_I_OCF) {
-                            strResult += "         <devinfo name=\"light\" value=\"0\" floor=\"" + index + "\"/>\r\n";
+                            strResult += "         <devinfo name=\"light\" value=\"0\" order=\"1\" floor=\"" + index + "\"/>\r\n";
                             Log.w(TAG, "[iCMDProcDevList] Not supported!!");
                         }
                     } catch (RuntimeException re) {
                         LogUtil.errorLogInfo("", TAG, re);
-                        strResult += "         <devinfo name=\"light\" value=\"0\" floor=\"" + index + "\"/>\r\n";
+                        strResult += "         <devinfo name=\"light\" value=\"0\" order=\"1\" floor=\"" + index + "\"/>\r\n";
                     } catch (Exception e) {
                         //e.printStackTrace();
                         LogUtil.errorLogInfo("", TAG, e);
-                        strResult += "         <devinfo name=\"light\" value=\"0\" floor=\"" + index + "\"/>\r\n";
+                        strResult += "         <devinfo name=\"light\" value=\"0\" order=\"1\" floor=\"" + index + "\"/>\r\n";
                     }
-                } else if (devlist[i].equals("livinglight")) {
+                }
+                else if (devlist[i].equals("livinglight")) {
                     try {
                         int[] lightinfo = devSet.Get_Light_info();
                         if (Version.getModelType() == Version.MODEL_TYPE.IHN_D101 || Version.getModelType() == Version.MODEL_TYPE.IHN_D101_I
                                 || Version.getModelType() == Version.MODEL_TYPE.IHN_D101K || Version.getModelType() == Version.MODEL_TYPE.IHN_D101K_I
                                 || Version.getModelType() == Version.MODEL_TYPE.IHN_D101_I_OCF) {
-                            strResult += "         <devinfo name=\"livinglight\" value=\"0\" floor=\"" + index + "\"/>\r\n";
+                            strResult += "         <devinfo name=\"livinglight\" value=\"0\" order=\"1\" floor=\"" + index + "\"/>\r\n";
                             Log.w(TAG, "[iCMDProcDevList] Not supported!!");
                         }
                     } catch (RuntimeException re) {
                         LogUtil.errorLogInfo("", TAG, re);
-                        strResult += "         <devinfo name=\"livinglight\" value=\"0\" floor=\"" + index + "\"/>\r\n";
+                        strResult += "         <devinfo name=\"livinglight\" value=\"0\" order=\"1\" floor=\"" + index + "\"/>\r\n";
                     } catch (Exception e) {
                         //e.printStackTrace();
                         LogUtil.errorLogInfo("", TAG, e);
-                        strResult += "         <devinfo name=\"livinglight\" value=\"0\" floor=\"" + index + "\"/>\r\n";
+                        strResult += "         <devinfo name=\"livinglight\" value=\"0\" order=\"1\" floor=\"" + index + "\"/>\r\n";
                     }
-                } else if (devlist[i].equals("ventil")) {
+                }
+                else if (devlist[i].equals("ventil")) {
                     try {
                         int[] Ventilinfo = devSet.Get_Ventil_Info();
                         if (Ventilinfo[0] == 0)
-                            strResult += "    <devinfo name=\"ventil\" value=\"0\" floor=\"" + index + "\"/>\r\n";
+                            strResult += "    <devinfo name=\"ventil\" value=\"0\" order=\"1\" floor=\"" + index + "\"/>\r\n";
                         else
-                            strResult += "         <devinfo name=\"ventil\" value=\"1\" floor=\"" + index + "\"/>\r\n";
+                            strResult += "         <devinfo name=\"ventil\" value=\"1\" order=\"1\" floor=\"" + index + "\"/>\r\n";
                     } catch (RuntimeException re) {
                         LogUtil.errorLogInfo("", TAG, re);
-                        strResult += "         <devinfo name=\"ventil\" value=\"0\" floor=\"" + index + "\"/>\r\n";
+                        strResult += "         <devinfo name=\"ventil\" value=\"0\" order=\"1\" floor=\"" + index + "\"/>\r\n";
                     } catch (Exception e) {
                         //e.printStackTrace();
                         LogUtil.errorLogInfo("", TAG, e);
-                        strResult += "         <devinfo name=\"ventil\" value=\"0\" floor=\"" + index + "\"/>\r\n";
+                        strResult += "         <devinfo name=\"ventil\" value=\"0\" order=\"1\" floor=\"" + index + "\"/>\r\n";
                     }
-                } else if (devlist[i].equals("thermostat")) {
+                }
+                else if (devlist[i].equals("thermostat")) {
                     try {
                         int Temperinfo = devSet.Get_Temper_Info();
                         byte RoomCount = 0;
@@ -1992,32 +2059,33 @@ public class DataSenderService extends Service {
                             RoomCount = mHeatingV2API.data.Device.info.RoomCount;
                         }
                         if (Temperinfo == 0)
-                            strResult += "         <devinfo name=\"thermostat\" value=\"0\" floor=\"" + index + "\"/>\r\n";
+                            strResult += "         <devinfo name=\"thermostat\" value=\"0\" order=\"" + strHeating + "\" floor=\"" + index + "\"/>\r\n";
                         else
-                            strResult += "         <devinfo name=\"thermostat\" value=\"" + RoomCount + "\" floor=\"" + index + "\"/>\r\n";
+                            strResult += "         <devinfo name=\"thermostat\" value=\"" + RoomCount + "\" order=\"" + strHeating + "\" floor=\"" + index + "\"/>\r\n";
+
                     } catch (RuntimeException re) {
                         LogUtil.errorLogInfo("", TAG, re);
-                        strResult += "         <devinfo name=\"thermostat\" value=\"0\" floor=\"" + index + "\"/>\r\n";
+                        strResult += "         <devinfo name=\"thermostat\" value=\"0\" order=\"" + strHeating + "\" floor=\"" + index + "\"/>\r\n";
                     } catch (Exception e) {
                         //e.printStackTrace();
                         LogUtil.errorLogInfo("", TAG, e);
-                        strResult += "         <devinfo name=\"thermostat\" value=\"0\" floor=\"" + index + "\"/>\r\n";
+                        strResult += "         <devinfo name=\"thermostat\" value=\"0\" order=\"" + strHeating + "\" floor=\"" + index + "\"/>\r\n";
                     }
                 }
                 else if (devlist[i].equals("curtain")) {
                     try {
                         int[] Curtaininfo = devSet.Get_CURTAIN_Info();
                         if (Curtaininfo[0] == 0)
-                            strResult += "         <devinfo name=\"curtain\" value=\"0\" floor=\"" + index + "\"/>\r\n";
+                            strResult += "         <devinfo name=\"curtain\" value=\"0\" order=\"1\" floor=\"" + index + "\"/>\r\n";
                         else
-                            strResult += "         <devinfo name=\"curtain\" value=\"1\" floor=\"" + index + "\"/>\r\n";
+                            strResult += "         <devinfo name=\"curtain\" value=\"1\" order=\"1\" floor=\"" + index + "\"/>\r\n";
                     } catch (RuntimeException re) {
                         LogUtil.errorLogInfo("", TAG, re);
-                        strResult += "         <devinfo name=\"curtain\" value=\"0\" floor=\"" + index + "\"/>\r\n";
+                        strResult += "         <devinfo name=\"curtain\" value=\"0\" order=\"1\" floor=\"" + index + "\"/>\r\n";
                     } catch (Exception e) {
                         //e.printStackTrace();
                         LogUtil.errorLogInfo("", TAG, e);
-                        strResult += "         <devinfo name=\"curtain\" value=\"0\" floor=\"" + index + "\"/>\r\n";
+                        strResult += "         <devinfo name=\"curtain\" value=\"0\" order=\"1\" floor=\"" + index + "\"/>\r\n";
                     }
                 }
                 else if (devlist[i].equals("electric")) {
@@ -2063,10 +2131,10 @@ public class DataSenderService extends Service {
                                     LivingLightCount = 1;
                             }
                             int AllEMcount = LivingLightCount + mKnxAPI.data.MasterController.Info.Bad_EnergyMeterCount; // + KnxApi.data.MasterController.Info.Liv_EnergyMeterCount;
-                            strResult += "         <devinfo name=\"smartlight\" value=\"" + AllEMcount + "\" floor=\"" + index + "\"/>\r\n";
+                            strResult += "         <devinfo name=\"smartlight\" value=\"" + AllEMcount + "\" order=\"" + strLight + "\" floor=\"" + index + "\"/>\r\n";
                         }
                     } catch (Exception ek) {
-                        strResult += "         <devinfo name=\"smartlight\" value=\"" + AllEMcount + "\" floor=\"" + index + "\"/>\r\n";
+                        strResult += "         <devinfo name=\"smartlight\" value=\"" + 0 + "\" order=\"" + strLight + "\" floor=\"" + index + "\"/>\r\n";
                     }
                 }
                 else if (devlist[i].equals("sysaircon")) {
@@ -2076,9 +2144,9 @@ public class DataSenderService extends Service {
                         int nCount = airconAPI.data.Device.info.InsideAirconCount;
                         Log.e(TAG, "[yskim] iCMDProcDevList() sysaircon : " + nCount);
                         // 현대건설 에어컨 처리, 포트가 다르기 때문에 구분해서 처리 필요, 에어컨 API가 동일하다면 그럴 필요는 없음
-                        strResult += "         <devinfo name=\"sysaircon\" value=\"" + nCount + "\" floor=\"" + index + "\"/>\r\n";
+                        strResult += "         <devinfo name=\"sysaircon\" value=\"" + nCount + "\" order=\"" + strAircon + "\" floor=\"" + index + "\"/>\r\n";
                     } else {
-                        strResult += "         <devinfo name=\"sysaircon\" value=\"" + 0 + "\" floor=\"" + index + "\"/>\r\n";
+                        strResult += "         <devinfo name=\"sysaircon\" value=\"" + 0 + "\" order=\"" + strAircon + "\" floor=\"" + index + "\"/>\r\n";
                     }
                 }
                 //방범, 센서 여부 응답(고급주택은 사용하지 않아 value 0으로 처리