|
@@ -148,7 +148,7 @@ public class VIPIcEnergyMgrScreen extends WpadScreen {
|
|
|
WpadImageView RealTimeData_bg2;
|
|
|
WpadTextView RealTimeData; //실시간 사용량 데이터
|
|
|
double RealTimeData_Double = 0;
|
|
|
- double EnergyMax_Double = 18;
|
|
|
+ double EnergyMax_Double = 100;
|
|
|
WpadTextView CalorieUnit1, CalorieUnit2; //난방 단위
|
|
|
// WpadTextView RealtimeMeter_Marking1, RealtimeMeter_Marking2, RealtimeMeter_Marking3,
|
|
|
// RealtimeMeter_Marking4, RealtimeMeter_Marking5, RealtimeMeter_Marking6, RealtimeMeter_Marking7;
|
|
@@ -186,6 +186,8 @@ public class VIPIcEnergyMgrScreen extends WpadScreen {
|
|
|
|
|
|
ArrayList<DayEnergyDataClass> arrayListDayEnergyData = new ArrayList<DayEnergyDataClass>();
|
|
|
|
|
|
+ DayEnergyDataClass realTimeEnergyData;
|
|
|
+
|
|
|
class DayEnergyDataClass {
|
|
|
private int Year;
|
|
|
private int Month;
|
|
@@ -381,7 +383,6 @@ public class VIPIcEnergyMgrScreen extends WpadScreen {
|
|
|
ViewRegistration(layout, RealTimeData, getPos.Get(ID.IcEnergyMgrID.text.REALTIMEMETER_DATA).x, getPos.Get(ID.IcEnergyMgrID.text.REALTIMEMETER_DATA).y);
|
|
|
|
|
|
|
|
|
-
|
|
|
// 4. Draw_Update
|
|
|
DebugLogOutput("[Create] - Step4 : Draw_Update");
|
|
|
|
|
@@ -461,8 +462,7 @@ public class VIPIcEnergyMgrScreen extends WpadScreen {
|
|
|
UsedData_Unit = new WpadTextView(getContext(), false, getPos.Get(ID.IcEnergyMgrID.UsedData_MaxData_textView.UsedData_Unit).width, getPos.Get(ID.IcEnergyMgrID.UsedData_MaxData_textView.UsedData_Unit).height, Gravity.RIGHT, Color.parseColor("#969696"), ContentsFontSize, false, ID.IcEnergyMgrID.text.REALTIMEMETER_DATA);
|
|
|
ViewRegistration(getLayout(), UsedData_Unit, getPos.Get(ID.IcEnergyMgrID.UsedData_MaxData_textView.UsedData_Unit).x, getPos.Get(ID.IcEnergyMgrID.UsedData_MaxData_textView.UsedData_Unit).y);
|
|
|
|
|
|
- }
|
|
|
- else {
|
|
|
+ } else {
|
|
|
if (RealtimeMeterCountFromDB == 3) {
|
|
|
// 실시간 검침 DB값 3종일 경우
|
|
|
|
|
@@ -496,8 +496,7 @@ public class VIPIcEnergyMgrScreen extends WpadScreen {
|
|
|
|
|
|
if (OPERATION_MODE == Common.MODE_BUSINESS_SAMPLE) {
|
|
|
SampleDatainsert_MonthTableData();
|
|
|
- }
|
|
|
- else {
|
|
|
+ } else {
|
|
|
ShowMonthGraph();
|
|
|
if (RealtimeMeterUse == true) {
|
|
|
RemoveUsedData();
|
|
@@ -510,6 +509,13 @@ public class VIPIcEnergyMgrScreen extends WpadScreen {
|
|
|
}
|
|
|
}, 300);
|
|
|
|
|
|
+ new Handler().postDelayed(new Runnable() {
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ ShowRealTimeDataGraph_DayVersion();
|
|
|
+ }
|
|
|
+ }, 1000);
|
|
|
+
|
|
|
ShowDayGraph();
|
|
|
}
|
|
|
}
|
|
@@ -517,6 +523,31 @@ public class VIPIcEnergyMgrScreen extends WpadScreen {
|
|
|
Log.d(TAG, "[End - Screen] -------------------------------------------- ");
|
|
|
}
|
|
|
|
|
|
+ private void ShowRealTimeDataGraph_DayVersion() {
|
|
|
+ // 사용량추이
|
|
|
+ nowCal = Calendar.getInstance();
|
|
|
+
|
|
|
+ CalendarYear = nowCal.get(Calendar.YEAR);
|
|
|
+ CalendarMonth = nowCal.get(Calendar.MONTH);
|
|
|
+
|
|
|
+ if (OPERATION_MODE == Common.MODE_BUSINESS_SAMPLE) {
|
|
|
+ if (arrayListDayEnergyData.size() == 0) {
|
|
|
+ arrayListDayEnergyData.add(new DayEnergyDataClass(2015, 3, 2, 3, 22, 34));
|
|
|
+ //arrayListDayEnergyData.add(new DayEnergyDataClass(2015, 3, 1, 4, 23, 35));
|
|
|
+ //arrayListDayEnergyData.add(new DayEnergyDataClass(2015, 2, 28, 5, 24, 36));
|
|
|
+ //arrayListDayEnergyData.add(new DayEnergyDataClass(2015, 2, 27, 6, 25, 37));
|
|
|
+ //arrayListDayEnergyData.add(new DayEnergyDataClass(2015, 2, 26, 7, 26, 38));
|
|
|
+ //arrayListDayEnergyData.add(new DayEnergyDataClass(2015, 2, 25, 8, 27, 39));
|
|
|
+ //arrayListDayEnergyData.add(new DayEnergyDataClass(2015, 2, 24, 9, 28, 40));
|
|
|
+ //arrayListDayEnergyData.add(new DayEnergyDataClass(2015, 2, 23, 9, 29, 41));
|
|
|
+ //arrayListDayEnergyData.add(new DayEnergyDataClass(2015, 2, 22, 6, 30, 42));
|
|
|
+ }
|
|
|
+ ShowDayGraph();
|
|
|
+ } else {
|
|
|
+ LoadRemotemeterDataFromServer(2, CalendarYear, CalendarMonth, ShowNowEnergyIndex);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
private void ShowUsedDataGraph_DayVersion() {
|
|
|
// 사용량추이
|
|
|
nowCal = Calendar.getInstance();
|
|
@@ -641,7 +672,7 @@ public class VIPIcEnergyMgrScreen extends WpadScreen {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- int size = arrayListDayEnergyData.size()>9?9:arrayListDayEnergyData.size();
|
|
|
+ int size = arrayListDayEnergyData.size() > 9 ? 9 : arrayListDayEnergyData.size();
|
|
|
|
|
|
//그리기
|
|
|
float[] tempFloatArray = new float[size];
|
|
@@ -651,22 +682,22 @@ public class VIPIcEnergyMgrScreen extends WpadScreen {
|
|
|
|
|
|
switch (NowShowEnergyKind) {
|
|
|
case ID.IcEnergyMgrID.DataKind.KEPCO:
|
|
|
- for (int i = (size-1) ; i >= 0; i--) {
|
|
|
- tempFloatArray[i] = arrayListDayEnergyData.get(arrayListDayEnergyData.size()- j).getKepco_used();
|
|
|
+ for (int i = (size - 1); i >= 0; i--) {
|
|
|
+ tempFloatArray[i] = arrayListDayEnergyData.get(arrayListDayEnergyData.size() - j).getKepco_used();
|
|
|
j++;
|
|
|
}
|
|
|
break;
|
|
|
|
|
|
case ID.IcEnergyMgrID.DataKind.SOLAR:
|
|
|
- for (int i = (size-1) ; i >= 0; i--) {
|
|
|
- tempFloatArray[i] = arrayListDayEnergyData.get(arrayListDayEnergyData.size()- j).getSolar_used();
|
|
|
+ for (int i = (size - 1); i >= 0; i--) {
|
|
|
+ tempFloatArray[i] = arrayListDayEnergyData.get(arrayListDayEnergyData.size() - j).getSolar_used();
|
|
|
j++;
|
|
|
}
|
|
|
break;
|
|
|
|
|
|
case ID.IcEnergyMgrID.DataKind.FUEL:
|
|
|
- for (int i = (size-1) ; i >= 0; i--) {
|
|
|
- tempFloatArray[i] = arrayListDayEnergyData.get(arrayListDayEnergyData.size()- j).getFuel_used();
|
|
|
+ for (int i = (size - 1); i >= 0; i--) {
|
|
|
+ tempFloatArray[i] = arrayListDayEnergyData.get(arrayListDayEnergyData.size() - j).getFuel_used();
|
|
|
j++;
|
|
|
}
|
|
|
break;
|
|
@@ -712,13 +743,13 @@ public class VIPIcEnergyMgrScreen extends WpadScreen {
|
|
|
//하단 날짜 출력, 에너지 데이터 삽입
|
|
|
for (int i = 0; i < size; i++) {
|
|
|
//if(i>=arrayListDayEnergyData.size()-1) break;
|
|
|
- tempintArray[i] = arrayListDayEnergyData.get(arrayListDayEnergyData.size()-size+i).getDay();
|
|
|
+ tempintArray[i] = arrayListDayEnergyData.get(arrayListDayEnergyData.size() - size + i).getDay();
|
|
|
}
|
|
|
|
|
|
//int배열을 역순으로
|
|
|
//tempintArray = reverseArrayint(tempintArray);
|
|
|
|
|
|
- for (int i = size-1; i >= 0; i--) {
|
|
|
+ for (int i = size - 1; i >= 0; i--) {
|
|
|
DayMarking[i].setText(String.valueOf(tempintArray[i]) + "일");
|
|
|
}
|
|
|
|
|
@@ -727,7 +758,7 @@ public class VIPIcEnergyMgrScreen extends WpadScreen {
|
|
|
UsedData_Yesterday_AfterCalc = tempFloatArray;
|
|
|
|
|
|
//Yesterday 그래프그리기
|
|
|
- for (int i = 0; i <size ; i++) {
|
|
|
+ for (int i = 0; i < size; i++) {
|
|
|
if (i < 2) {
|
|
|
ArrayDot_Yesterday[0][i] = getPos.Get(ID.IcEnergyMgrID.Graph.x_1, i).x; // x좌표
|
|
|
} else if (i == 2) {
|
|
@@ -736,7 +767,7 @@ public class VIPIcEnergyMgrScreen extends WpadScreen {
|
|
|
ArrayDot_Yesterday[0][i] = getPos.Get(ID.IcEnergyMgrID.Graph.x_3, i).x; // x좌표
|
|
|
}
|
|
|
|
|
|
- int index = UsedData_Yesterday_AfterCalc.length - size + i ;
|
|
|
+ int index = UsedData_Yesterday_AfterCalc.length - size + i;
|
|
|
|
|
|
if (Float.isNaN((getPos.Get(ID.IcEnergyMgrID.Graph.y_MAX, i).y - (getPos.Get(ID.IcEnergyMgrID.Graph.y_1, i).y * (UsedData_Yesterday_AfterCalc[index]) / UsedData_MaxData[3])))) {
|
|
|
ArrayDot_Yesterday[1][i] = getPos.Get(ID.IcEnergyMgrID.Graph.y_MAX, i).y;
|
|
@@ -750,7 +781,7 @@ public class VIPIcEnergyMgrScreen extends WpadScreen {
|
|
|
// DebugLogOutput("ArrayDot_Yesterday["+i+"] = "+ArrayDot_Yesterday[0][i]+", "+ArrayDot_Yesterday[1][i]);
|
|
|
}
|
|
|
|
|
|
- drawLines[0] = new DrawLine(getContext(), ArrayDot_Yesterday, size-1, 0);
|
|
|
+ drawLines[0] = new DrawLine(getContext(), ArrayDot_Yesterday, size - 1, 0);
|
|
|
if (getLayout() != null) getLayout().addView(drawLines[0]);
|
|
|
|
|
|
for (int i = 0; i < size; i++) {
|
|
@@ -765,7 +796,7 @@ public class VIPIcEnergyMgrScreen extends WpadScreen {
|
|
|
ViewRegistration(getLayout(), DayEnergyMarking[i], ArrayDot_Yesterday[0][i] - (38 / 2) + 4, ArrayDot_Yesterday[1][i] - 19);
|
|
|
}
|
|
|
|
|
|
- int index = UsedData_Yesterday_AfterCalc.length - size + i ;
|
|
|
+ int index = UsedData_Yesterday_AfterCalc.length - size + i;
|
|
|
|
|
|
DayEnergyMarking[i].setText(Convter2_DoubleTOStr_CutPoint2((double) UsedData_Yesterday_AfterCalc[index]));
|
|
|
}
|
|
@@ -1254,7 +1285,7 @@ public class VIPIcEnergyMgrScreen extends WpadScreen {
|
|
|
NowShowEnergyKind = ID.IcEnergyMgrID.DataKind.KEPCO;
|
|
|
if (RealtimeMeterUse == false) {
|
|
|
// 실시간 검침 사용하지 않음
|
|
|
- EnergyMax_Double = 18;
|
|
|
+ EnergyMax_Double = 100;
|
|
|
if (RealTimeData != null) RealTimeData.setText("0 kWh");
|
|
|
} else {
|
|
|
EnergyMax_Double = 3000;
|
|
@@ -1274,7 +1305,7 @@ public class VIPIcEnergyMgrScreen extends WpadScreen {
|
|
|
|
|
|
if (RealtimeMeterUse == false) {
|
|
|
// 실시간 검침 사용하지 않음
|
|
|
- EnergyMax_Double = 18;
|
|
|
+ EnergyMax_Double = 100;
|
|
|
if (RealTimeData != null) RealTimeData.setText("0 kWh");
|
|
|
} else {
|
|
|
EnergyMax_Double = 3000;
|
|
@@ -1293,7 +1324,7 @@ public class VIPIcEnergyMgrScreen extends WpadScreen {
|
|
|
|
|
|
if (RealtimeMeterUse == false) {
|
|
|
// 실시간 검침 사용하지 않음
|
|
|
- EnergyMax_Double = 18;
|
|
|
+ EnergyMax_Double = 100;
|
|
|
if (RealTimeData != null) RealTimeData.setText("0 kWh");
|
|
|
} else {
|
|
|
EnergyMax_Double = 3000;
|
|
@@ -1477,16 +1508,19 @@ public class VIPIcEnergyMgrScreen extends WpadScreen {
|
|
|
if ((arrayListDayEnergyData.size() != 0) && (arrayListDayEnergyData.isEmpty() != true)) {
|
|
|
switch (NowShowEnergyKind) {
|
|
|
case ID.IcEnergyMgrID.DataKind.KEPCO:
|
|
|
- Draw_TextValueWrite(ID.IcEnergyMgrID.DataKind.KEPCO, arrayListDayEnergyData.get(arrayListDayEnergyData.size()-1).getKepco_used());
|
|
|
+ //Draw_TextValueWrite(ID.IcEnergyMgrID.DataKind.KEPCO, arrayListDayEnergyData.get(arrayListDayEnergyData.size() - 1).getKepco_used());
|
|
|
+ Draw_TextValueWrite(ID.IcEnergyMgrID.DataKind.KEPCO, realTimeEnergyData.getKepco_used());
|
|
|
break;
|
|
|
|
|
|
case ID.IcEnergyMgrID.DataKind.SOLAR:
|
|
|
- Draw_TextValueWrite(ID.IcEnergyMgrID.DataKind.SOLAR, arrayListDayEnergyData.get(arrayListDayEnergyData.size()-1).getSolar_used());
|
|
|
+ //Draw_TextValueWrite(ID.IcEnergyMgrID.DataKind.SOLAR, arrayListDayEnergyData.get(arrayListDayEnergyData.size() - 1).getSolar_used());
|
|
|
+ Draw_TextValueWrite(ID.IcEnergyMgrID.DataKind.KEPCO, realTimeEnergyData.getSolar_used());
|
|
|
CircleGraph.setImageResource(CircleGraph_bg[0]);
|
|
|
break;
|
|
|
|
|
|
case ID.IcEnergyMgrID.DataKind.FUEL:
|
|
|
- Draw_TextValueWrite(ID.IcEnergyMgrID.DataKind.FUEL, arrayListDayEnergyData.get(arrayListDayEnergyData.size()-1).getFuel_used());
|
|
|
+ //Draw_TextValueWrite(ID.IcEnergyMgrID.DataKind.FUEL, arrayListDayEnergyData.get(arrayListDayEnergyData.size() - 1).getFuel_used());
|
|
|
+ Draw_TextValueWrite(ID.IcEnergyMgrID.DataKind.KEPCO, realTimeEnergyData.getFuel_used());
|
|
|
break;
|
|
|
|
|
|
default:
|
|
@@ -2991,7 +3025,7 @@ public class VIPIcEnergyMgrScreen extends WpadScreen {
|
|
|
DebugLogOutput("Draw Month Graph");
|
|
|
//Kepco_HomeUse.setText(monthTableClass[0].Use);
|
|
|
//목표량이 없으므로, Goal 값은 USE 값을 이용해서 구한다.
|
|
|
- double goal = (double) (Double.valueOf(monthTableClass[1].Use))+(Double.valueOf(monthTableClass[2].Use)) ;
|
|
|
+ double goal = (double) (Double.valueOf(monthTableClass[1].Use)) + (Double.valueOf(monthTableClass[2].Use));
|
|
|
//drawRect[1].ReDraw(CalcGraphWidth(monthTableClass[0].Use, goal + ""), mNumberOfEnergy);
|
|
|
|
|
|
Photovoltaics_HomeUse.setText(monthTableClass[1].Use);
|
|
@@ -3003,8 +3037,8 @@ public class VIPIcEnergyMgrScreen extends WpadScreen {
|
|
|
drawRect[7].ReDraw(CalcGraphWidth(monthTableClass[2].Use, goal + ""), mNumberOfEnergy);
|
|
|
|
|
|
//if (RealtimeMeterUse == false) {
|
|
|
- // 실시간 검침 사용하지 않음
|
|
|
- //ShowUsedDataGraph_DayVersion();
|
|
|
+ // 실시간 검침 사용하지 않음
|
|
|
+ //ShowUsedDataGraph_DayVersion();
|
|
|
//}
|
|
|
|
|
|
} catch (RuntimeException re) {
|
|
@@ -3040,7 +3074,12 @@ public class VIPIcEnergyMgrScreen extends WpadScreen {
|
|
|
|
|
|
case 1: //일별
|
|
|
//imapRemotemeter.DoWork(false, true, true, true, true, true, false, false, year, month);
|
|
|
- imapRemotemeter.DoWorkVIP(false, false, false, true, true, year, month);
|
|
|
+ imapRemotemeter.DoWorkVIP(false, true, true, true, true, year, month);
|
|
|
+ break;
|
|
|
+
|
|
|
+ case 2: //Real Time
|
|
|
+ //imapRemotemeter.DoWork(false, true, true, true, true, true, false, false, year, month);
|
|
|
+ imapRemotemeter.DoWDoWorkVIP_RealTime(false, false, true, true);
|
|
|
break;
|
|
|
|
|
|
default:
|
|
@@ -3149,7 +3188,6 @@ public class VIPIcEnergyMgrScreen extends WpadScreen {
|
|
|
case 1: // 일별
|
|
|
|
|
|
int NumberOfValuelist1 = imapRemotemeter.SetItem("valuelist");
|
|
|
-
|
|
|
if (NumberOfValuelist1 != 0) {
|
|
|
DebugLogOutput("nowCal.get(Calendar.DATE):" + nowCal.get(Calendar.DATE));
|
|
|
if ((NumberOfValuelist1 + 1) == nowCal.get(Calendar.DATE)) {
|
|
@@ -3234,6 +3272,57 @@ public class VIPIcEnergyMgrScreen extends WpadScreen {
|
|
|
|
|
|
break;
|
|
|
|
|
|
+ case 2: // realtime
|
|
|
+ float TempKepco = 0;
|
|
|
+ float TempSolar = 0;
|
|
|
+ float TempFuel = 0;
|
|
|
+ int photovoltaicsValue = imapRemotemeter.SetItem("photovoltaics");
|
|
|
+ if (photovoltaicsValue != 0) {
|
|
|
+ try {
|
|
|
+ // 한전
|
|
|
+ //TempString = imapRemotemeter.GetAttributeVal(i, "kepco_used");
|
|
|
+ //DebugLogOutput("TempString elect " + TempString);
|
|
|
+ //if (TempString!=null&&TempString.equals("1000000") == false) {
|
|
|
+ // TempKepco = Float.parseFloat(TempString);
|
|
|
+ //}
|
|
|
+ //DebugLogOutput("TempElect " + TempElect);
|
|
|
+
|
|
|
+ // 태양광
|
|
|
+ TempString = imapRemotemeter.GetItemVal(0);
|
|
|
+ TempSolar = Float.parseFloat(TempString);
|
|
|
+ } catch (RuntimeException re) {
|
|
|
+ Log.e(TAG, "exception : " + re);
|
|
|
+ } catch (Exception e) {
|
|
|
+ //e.printStackTrace();
|
|
|
+ LogUtil.errorLogInfo("", TAG, e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ int fuelcellValue = imapRemotemeter.SetItem("fuelcell");
|
|
|
+ if (fuelcellValue != 0) {
|
|
|
+ try {
|
|
|
+ // 한전
|
|
|
+ //TempString = imapRemotemeter.GetAttributeVal(i, "kepco_used");
|
|
|
+ //DebugLogOutput("TempString elect " + TempString);
|
|
|
+ //if (TempString!=null&&TempString.equals("1000000") == false) {
|
|
|
+ // TempKepco = Float.parseFloat(TempString);
|
|
|
+ //}
|
|
|
+ //DebugLogOutput("TempElect " + TempElect);
|
|
|
+
|
|
|
+ // 태양광
|
|
|
+ TempString = imapRemotemeter.GetItemVal(0);
|
|
|
+ TempFuel = Float.parseFloat(TempString);
|
|
|
+ } catch (RuntimeException re) {
|
|
|
+ Log.e(TAG, "exception : " + re);
|
|
|
+ } catch (Exception e) {
|
|
|
+ //e.printStackTrace();
|
|
|
+ LogUtil.errorLogInfo("", TAG, e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ realTimeEnergyData = new DayEnergyDataClass(0, 0, 0, 0, TempSolar, TempFuel);
|
|
|
+ Draw_Update();
|
|
|
+
|
|
|
+ break;
|
|
|
default:
|
|
|
break;
|
|
|
}
|