From 2b54af7c11b37b24c9d728412538527c61b976fb Mon Sep 17 00:00:00 2001 From: kamuru Date: Wed, 27 Nov 2013 21:14:34 +0900 Subject: [PATCH] [Title] Modify device chart's log parsing [Desc.] Add state label for device chart [Issue] --- .../dynamic-analyzer/config/config | 2 +- .../ui/timeline/chart/DeviceChart.java | 73 ++++++++++--------- .../ui/timeline/chart/DeviceChartRenderer.java | 8 +-- .../ui/timeline/chart/EnergyChart.java | 83 ++++++++++++++++++++++ .../ui/timeline/common/TimelineChartManager.java | 2 + 5 files changed, 129 insertions(+), 39 deletions(-) create mode 100644 org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/chart/EnergyChart.java diff --git a/org.tizen.dynamicanalyzer.workbench/dynamic-analyzer/config/config b/org.tizen.dynamicanalyzer.workbench/dynamic-analyzer/config/config index a60790a..ecb231c 100644 --- a/org.tizen.dynamicanalyzer.workbench/dynamic-analyzer/config/config +++ b/org.tizen.dynamicanalyzer.workbench/dynamic-analyzer/config/config @@ -3,4 +3,4 @@ Platform=tizen2.2 Build time=09/05/2012 10:30 AM (GMT) Snapshot=0 Selected chart list=CPU,Heap allocation,Process Size,UI event -Available chart list=CPU,CPU core,CPU frequency,Heap allocation,Process Size,Memory,File,Screenshot,UI event,Disk IO,Network IO, Device \ No newline at end of file +Available chart list=CPU,CPU core,CPU frequency,Heap allocation,Process Size,Memory,File,Screenshot,UI event,Disk IO,Network IO,Device,Energy \ No newline at end of file diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/chart/DeviceChart.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/chart/DeviceChart.java index 96b61de..3bef6ae 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/chart/DeviceChart.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/chart/DeviceChart.java @@ -18,6 +18,22 @@ import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoard; import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoardItem; public class DeviceChart extends TimelineChart { + private static final String OFF = "Off"; //$NON-NLS-1$ + private static final String ON = "On"; //$NON-NLS-1$ + private static final String CONNECTED = "Connected"; //$NON-NLS-1$ + private static final String UNCONNECTED = "Unconnected"; //$NON-NLS-1$ + private static final String TRANSFER = "Transfer"; //$NON-NLS-1$ + private static final String VISIBLE = "Visible"; //$NON-NLS-1$ + private static final String SEARCHING = "Searching"; //$NON-NLS-1$ + private static final String NORMAL_CONNECTED = "Normal connected"; //$NON-NLS-1$ + private static final String SECURE_CONNECTED = "Secure connected"; //$NON-NLS-1$ + private static final String PREVIEW = "Preview"; //$NON-NLS-1$ + private static final String PREVIEW_LOCK = "Preview lock"; //$NON-NLS-1$ + private static final String CAPTURING = "Capturing"; //$NON-NLS-1$ + private static final String RECORDING = "Recording"; //$NON-NLS-1$ + private static final String RECORDING_LOCK = "Recording lock"; //$NON-NLS-1$ + private static final String REVIEW = "Review"; //$NON-NLS-1$ + private static DeviceChart instance = null; private DAChartSeries wifiSeries; @@ -25,7 +41,17 @@ public class DeviceChart extends TimelineChart { private DAChartSeries gpsSeries; private DAChartSeries dnetSeries; private DAChartSeries cameraSeries; - + + private final String[] wifiStates = new String[] { OFF, UNCONNECTED, + CONNECTED, TRANSFER }; + private final String[] bluetoothStates = new String[] { OFF, ON, VISIBLE, + TRANSFER }; + private final String[] gpsStates = new String[] { OFF, SEARCHING, CONNECTED }; + private final String[] dnetStates = new String[] { OFF, NORMAL_CONNECTED, + SECURE_CONNECTED, TRANSFER }; + private final String[] cameraStates = new String[] { OFF, ON, PREVIEW, + PREVIEW_LOCK, CAPTURING, RECORDING, RECORDING_LOCK, REVIEW }; + public static DeviceChart getInstance() { if(instance == null) { instance = new DeviceChart(); @@ -56,36 +82,10 @@ public class DeviceChart extends TimelineChart { cameraSeries = new DAChartSeries( TimelineChartLabels.DEVICE_CHART_SERIES_CAMERA, DAChartSeries.SERIES_STYLE_NONE, ColorResources.BLACK); - - int i = 0; - int v = 0; - wifiSeries.addSeriesItem(new DAChartSeriesItem(++i, v, v + "")); - wifiSeries.addSeriesItem(new DAChartSeriesItem(++i, v, v + "")); - wifiSeries.addSeriesItem(new DAChartSeriesItem(++i, v, v + "")); - wifiSeries.addSeriesItem(new DAChartSeriesItem(++i, ++v, v + "")); - wifiSeries.addSeriesItem(new DAChartSeriesItem(++i, v, v + "")); - wifiSeries.addSeriesItem(new DAChartSeriesItem(++i, v, v + "")); - wifiSeries.addSeriesItem(new DAChartSeriesItem(++i, ++v, v + "")); - wifiSeries.addSeriesItem(new DAChartSeriesItem(++i, v, v + "")); - wifiSeries.addSeriesItem(new DAChartSeriesItem(++i, v, v + "")); - - i = 0; - v = 0; - bluetoothSeries.addSeriesItem(new DAChartSeriesItem(++i, v, v + "")); - bluetoothSeries.addSeriesItem(new DAChartSeriesItem(++i, v, v + "")); - bluetoothSeries.addSeriesItem(new DAChartSeriesItem(++i, v, v + "")); - bluetoothSeries.addSeriesItem(new DAChartSeriesItem(++i, ++v, v + "")); - bluetoothSeries.addSeriesItem(new DAChartSeriesItem(++i, v, v + "")); - bluetoothSeries.addSeriesItem(new DAChartSeriesItem(++i, v, v + "")); - bluetoothSeries.addSeriesItem(new DAChartSeriesItem(++i, ++v, v + "")); - bluetoothSeries.addSeriesItem(new DAChartSeriesItem(++i, v, v + "")); - bluetoothSeries.addSeriesItem(new DAChartSeriesItem(++i, v, v + "")); - bluetoothSeries.addSeriesItem(new DAChartSeriesItem(++i, ++v, v + "")); - bluetoothSeries.addSeriesItem(new DAChartSeriesItem(++i, v, v + "")); - bluetoothSeries.addSeriesItem(new DAChartSeriesItem(++i, v, v + "")); } - @Override public DAChartBoardItem createBoardItem(DAChartBoard board) { + @Override + public DAChartBoardItem createBoardItem(DAChartBoard board) { DAChartBoardItem item = super.createBoardItem(board); chart.addSeries(wifiSeries); @@ -123,11 +123,16 @@ public class DeviceChart extends TimelineChart { int dnet = logData.getDnet(); int camera = logData.getCamera(); - wifiSeries.addSeriesItem(new DAChartSeriesItem(time, wifi)); - bluetoothSeries.addSeriesItem(new DAChartSeriesItem(time, bluetooth)); - gpsSeries.addSeriesItem(new DAChartSeriesItem(time, gps)); - dnetSeries.addSeriesItem(new DAChartSeriesItem(time, dnet)); - cameraSeries.addSeriesItem(new DAChartSeriesItem(time, camera)); + wifiSeries.addSeriesItem(new DAChartSeriesItem(time, wifi, + wifiStates[wifi])); + bluetoothSeries.addSeriesItem(new DAChartSeriesItem(time, + bluetooth, bluetoothStates[bluetooth])); + gpsSeries.addSeriesItem(new DAChartSeriesItem(time, gps, + gpsStates[gps])); + dnetSeries.addSeriesItem(new DAChartSeriesItem(time, dnet, + dnetStates[dnet])); + cameraSeries.addSeriesItem(new DAChartSeriesItem(time, camera, + cameraStates[camera])); } catch (NumberFormatException ne) { ne.printStackTrace(); } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/chart/DeviceChartRenderer.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/chart/DeviceChartRenderer.java index 01f501f..8809c13 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/chart/DeviceChartRenderer.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/chart/DeviceChartRenderer.java @@ -12,11 +12,11 @@ import org.tizen.dynamicanalyzer.widgets.chart.DAChartSeriesItem; import org.tizen.dynamicanalyzer.widgets.helper.ColorResources; public class DeviceChartRenderer extends DAChartRenderer { - private static final int WIFI_STATE = 3; - private static final int BLUETOOTH_STATE = 3; + private static final int WIFI_STATE = 4; + private static final int BLUETOOTH_STATE = 4; private static final int GPS_STATE = 3; - private static final int DNET_STATE = 3; - private static final int CAMERA_STATE = 3; + private static final int DNET_STATE = 4; + private static final int CAMERA_STATE = 8; private static final int[] states = new int[] { WIFI_STATE, BLUETOOTH_STATE, GPS_STATE, DNET_STATE, CAMERA_STATE }; diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/chart/EnergyChart.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/chart/EnergyChart.java new file mode 100644 index 0000000..03bb2fb --- /dev/null +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/chart/EnergyChart.java @@ -0,0 +1,83 @@ +package org.tizen.dynamicanalyzer.ui.timeline.chart; + +import java.util.List; + +import org.tizen.dynamicanalyzer.nl.TimelineChartLabels; +import org.tizen.dynamicanalyzer.resources.ColorResources; +import org.tizen.dynamicanalyzer.resources.ImageResources; +import org.tizen.dynamicanalyzer.swap.channel.data.DataChannelConstants; +import org.tizen.dynamicanalyzer.swap.logparser.LogPackage; +import org.tizen.dynamicanalyzer.swap.logparser.Logs; +import org.tizen.dynamicanalyzer.swap.model.data.LogData; +import org.tizen.dynamicanalyzer.swap.model.data.SystemData; +import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineConstants; +import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlot.AutoRangeType; +import org.tizen.dynamicanalyzer.widgets.chart.DAChartSeries; +import org.tizen.dynamicanalyzer.widgets.chart.DAChartSeriesItem; +import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoard; +import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoardItem; + +public class EnergyChart extends TimelineChart { + private static EnergyChart instance = null; + + private DAChartSeries energyUsageSeries; + + public static EnergyChart getInstance() { + if (instance == null) { + instance = new EnergyChart(); + } + + return instance; + } + + private EnergyChart() { + chartType = TimelineConstants.CHART_TYPE_ENERGY; + probeType = DataChannelConstants.MSG_DATA_SYSTEM; + chartName = TimelineChartLabels.ENERGY_CHART_TITLE; + chartIcon = ImageResources.CHART_ENERGY; + addIcon = ImageResources.ADD_CHART_ENERGY; + + // FIXME + energyUsageSeries = new DAChartSeries("Energy usage", + DAChartSeries.SERIES_STYLE_LINE, ColorResources.RED); + } + + @Override + public DAChartBoardItem createBoardItem(DAChartBoard board) { + DAChartBoardItem item = super.createBoardItem(board); + + chart.addSeries(energyUsageSeries); + + chart.getPlot().setAutoHeightRange(AutoRangeType.MANUAL); + chart.getPlot().setShowAxis(false); + + return item; + } + + @Override + public void parseLogPackage(LogPackage logPack) { + Logs logs = logPack.getLogs(probeType); + if (logs == null) { + return; + } + + List logList = logs.getLogs(); + for (LogData logData : logList) { + parseLog((SystemData) logData); + } + } + + private void parseLog(SystemData logData) { + try { + double time = logData.getTime() / TimelineConstants.MEGA_DOUBLE; + int energyUsage = logData.getEnergyUsage(); + String deviceEnergyUsage = logData.getDeviceEnergyUsage(); + + System.out.println(energyUsage + " : " + deviceEnergyUsage); + energyUsageSeries.addSeriesItem(new DAChartSeriesItem(time, + energyUsage, energyUsage + "")); + } catch (NumberFormatException ne) { + ne.printStackTrace(); + } + } +} diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/common/TimelineChartManager.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/common/TimelineChartManager.java index 1691eb7..95096c7 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/common/TimelineChartManager.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/common/TimelineChartManager.java @@ -38,6 +38,7 @@ import org.tizen.dynamicanalyzer.ui.timeline.chart.CPUCoreChart; import org.tizen.dynamicanalyzer.ui.timeline.chart.CPUFrequencyChart; import org.tizen.dynamicanalyzer.ui.timeline.chart.DeviceChart; import org.tizen.dynamicanalyzer.ui.timeline.chart.DiskIOChart; +import org.tizen.dynamicanalyzer.ui.timeline.chart.EnergyChart; import org.tizen.dynamicanalyzer.ui.timeline.chart.FileChart; import org.tizen.dynamicanalyzer.ui.timeline.chart.HeapChart; import org.tizen.dynamicanalyzer.ui.timeline.chart.NetworkIOChart; @@ -93,6 +94,7 @@ public class TimelineChartManager { initChartMap(DiskIOChart.getInstance()); initChartMap(NetworkIOChart.getInstance()); initChartMap(DeviceChart.getInstance()); + initChartMap(EnergyChart.getInstance()); loadSavedChartList(); loadSelectedChartList(); -- 2.7.4