From 3912aeb29e02355d41867f60373696b25bfe932b Mon Sep 17 00:00:00 2001 From: kamuru Date: Fri, 10 Jan 2014 17:03:14 +0900 Subject: [PATCH] [Title] modified core charts [Desc.] Modified core charts to can respond to changes in the number of cores [Issue] --- .../dynamicanalyzer/nl/TimelineChartLabels.java | 5 +- .../nl/TimelineChartLabels.properties | 5 +- .../swap/model/data/LifeCycleLogData.java | 32 +++++++++++ .../swap/model/data/LogDataFactory.java | 4 +- .../ui/timeline/chart/CPUCoreChart.java | 65 ++++++++-------------- .../ui/timeline/chart/CPUFrequencyChart.java | 46 +++++++++++---- .../ui/timeline/chart/UIEventChart.java | 26 ++++----- .../ui/timeline/logparser/LifecycleLogParser.java | 14 ++--- 8 files changed, 113 insertions(+), 84 deletions(-) create mode 100644 org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/LifeCycleLogData.java diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/nl/TimelineChartLabels.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/nl/TimelineChartLabels.java index 3a2e694..adf9c93 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/nl/TimelineChartLabels.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/nl/TimelineChartLabels.java @@ -35,10 +35,7 @@ public class TimelineChartLabels extends NLS { public static String CPU_CHART_SERIES_NAME_TOTAL_LOAD; public static String CPU_CHART_TITLE; - public static String CPU_CORE_CHART_SERIES_NAME_CORE0; - public static String CPU_CORE_CHART_SERIES_NAME_CORE1; - public static String CPU_CORE_CHART_SERIES_NAME_CORE2; - public static String CPU_CORE_CHART_SERIES_NAME_CORE3; + public static String CPU_CORE_CHART_SERIES_NAME_CORE; public static String CPU_CORE_CHART_TITLE; public static String CPU_FREQUENCY_CHART_FREQUENCY; diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/nl/TimelineChartLabels.properties b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/nl/TimelineChartLabels.properties index cf66a18..ff26344 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/nl/TimelineChartLabels.properties +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/nl/TimelineChartLabels.properties @@ -10,10 +10,7 @@ CPU_CHART_SERIES_NAME_APP_LOAD=Application CPU_CHART_SERIES_NAME_TOTAL_LOAD=Total CPU load CPU_CHART_TITLE=CPU -CPU_CORE_CHART_SERIES_NAME_CORE0=Core 0 -CPU_CORE_CHART_SERIES_NAME_CORE1=Core 1 -CPU_CORE_CHART_SERIES_NAME_CORE2=Core 2 -CPU_CORE_CHART_SERIES_NAME_CORE3=Core 3 +CPU_CORE_CHART_SERIES_NAME_CORE=Core CPU_CORE_CHART_TITLE=CPU core CPU_FREQUENCY_CHART_FREQUENCY=CPU frequency diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/LifeCycleLogData.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/LifeCycleLogData.java new file mode 100644 index 0000000..8ac4f8b --- /dev/null +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/LifeCycleLogData.java @@ -0,0 +1,32 @@ +/* + * Dynamic Analyzer + * + * Copyright (c) 2013 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * Jooyoul Lee + * Juyoung Kim + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Contributors: + * - S-Core Co., Ltd + * + */ +package org.tizen.dynamicanalyzer.swap.model.data; + +public class LifeCycleLogData extends ProbeCommonData { + + public LifeCycleLogData() { + } +} diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/LogDataFactory.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/LogDataFactory.java index e58bb51..349c84a 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/LogDataFactory.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/LogDataFactory.java @@ -155,7 +155,7 @@ public class LogDataFactory { break; case MSG_PROBE_LIFECYCLE: // life cycle - output = new LifeCycleData(); + output = new LifeCycleLogData(); break; case MSG_PROBE_SCREENSHOT: // screenshot @@ -236,7 +236,7 @@ public class LogDataFactory { break; case MSG_PROBE_LIFECYCLE: // life cycle - output = new LifeCycleData(); + output = new LifeCycleLogData(); break; case MSG_PROBE_SCREENSHOT: // screenshot diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/chart/CPUCoreChart.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/chart/CPUCoreChart.java index b4e4491..bba3090 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/chart/CPUCoreChart.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/chart/CPUCoreChart.java @@ -29,6 +29,7 @@ package org.tizen.dynamicanalyzer.ui.timeline.chart; import java.util.ArrayList; import java.util.List; +import org.eclipse.swt.graphics.Color; import org.tizen.dynamicanalyzer.common.CommonConstants; import org.tizen.dynamicanalyzer.communicator.DACommunicator; import org.tizen.dynamicanalyzer.nl.TimelineChartLabels; @@ -49,11 +50,14 @@ import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoardItem; public class CPUCoreChart extends TimelineChart { private static CPUCoreChart instance = null; - private static int DEFAULT_CORE_SIZE = 4; - - private int coreSize = TimelineConstants.NOT_INITED; + private int coreSize = TimelineConstants.NOT_INITED; private List coreChartSeriesList = new ArrayList(); + private Color[] coreChartSeriesColors = new Color[] { + ColorResources.SERIES_COLOR_CPUCORE_CORE0, + ColorResources.SERIES_COLOR_CPUCORE_CORE1, + ColorResources.SERIES_COLOR_CPUCORE_CORE2, + ColorResources.SERIES_COLOR_CPUCORE_CORE3 }; public static CPUCoreChart getInstance() { if (null == instance) { @@ -68,63 +72,41 @@ public class CPUCoreChart extends TimelineChart { chartName = TimelineChartLabels.CPU_CORE_CHART_TITLE; chartIcon = ImageResources.CHART_CPU_CORE; addIcon = ImageResources.ADD_CHART_CPU_CORE; - - /* core 0 */ - coreChartSeriesList.add(new DAChartSeries( - TimelineChartLabels.CPU_CORE_CHART_SERIES_NAME_CORE0, - DAChartSeries.SERIES_STYLE_LINE, - ColorResources.SERIES_COLOR_CPUCORE_CORE0)); - /* core 1 */ - coreChartSeriesList.add(new DAChartSeries( - TimelineChartLabels.CPU_CORE_CHART_SERIES_NAME_CORE1, - DAChartSeries.SERIES_STYLE_LINE, - ColorResources.SERIES_COLOR_CPUCORE_CORE1)); - /* core 2 */ - coreChartSeriesList.add(new DAChartSeries( - TimelineChartLabels.CPU_CORE_CHART_SERIES_NAME_CORE2, - DAChartSeries.SERIES_STYLE_LINE, - ColorResources.SERIES_COLOR_CPUCORE_CORE2)); - /* core 3 */ - coreChartSeriesList.add(new DAChartSeries( - TimelineChartLabels.CPU_CORE_CHART_SERIES_NAME_CORE3, - DAChartSeries.SERIES_STYLE_LINE, - ColorResources.SERIES_COLOR_CPUCORE_CORE3)); } @Override public DAChartBoardItem createBoardItem(DAChartBoard board) { DAChartBoardItem item = super.createBoardItem(board); - if (null == coreChartSeriesList - || coreChartSeriesList.size() != DEFAULT_CORE_SIZE) { - return null; - } - - for (int i = 0; i < DEFAULT_CORE_SIZE; i++) { - chart.addSeries(coreChartSeriesList.get(i)); - } - chart.getPlot().setAutoHeightRange(AutoRangeType.MANUAL); chart.getPlot().setAxisRangeY(0, 100); chart.getPlot().setAxisUnit("%"); chart.getPlot().setShowAxis(true); - + return item; } private void parseLog(SystemData logData) { try { - double time = logData.getTime() / TimelineConstants.MEGA_DOUBLE; - String[] cpuRates = logData.getCpuLoad().split( - CommonConstants.COMMA); - double value = 0; if (coreSize == TimelineConstants.NOT_INITED) { coreSize = DACommunicator.getSelectedDevice().getTargetInfo() .getCpuCount(); + for (int i = 0; i < coreSize; i++) { + DAChartSeries chartSeries = new DAChartSeries( + TimelineChartLabels.CPU_CORE_CHART_SERIES_NAME_CORE + + i, DAChartSeries.SERIES_STYLE_LINE, + coreChartSeriesColors[i % 4]); + chart.addSeries(chartSeries); + coreChartSeriesList.add(chartSeries); + } } + + double time = logData.getTime() / TimelineConstants.MEGA_DOUBLE; + String[] cpuRates = logData.getCpuLoad().split( + CommonConstants.COMMA); for (int i = 0; i < coreSize; i++) { - value = Double.parseDouble(cpuRates[i]); + double value = Double.parseDouble(cpuRates[i]); coreChartSeriesList.get(i).addSeriesItem( new DAChartSeriesItem(time, value, Formatter .toPercentageFormat(value))); @@ -137,10 +119,10 @@ public class CPUCoreChart extends TimelineChart { @Override public void parseLogPackage(LogPackage logPack) { Logs logs = logPack.getLogs(probeType); - if(logs == null) { + if (logs == null) { return; } - + List logDataList = logs.getRawLogs(); for (LogData logData : logDataList) { @@ -152,5 +134,6 @@ public class CPUCoreChart extends TimelineChart { public void clear() { super.clear(); coreSize = TimelineConstants.NOT_INITED; + coreChartSeriesList.clear(); } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/chart/CPUFrequencyChart.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/chart/CPUFrequencyChart.java index c66a2ef..46db1ae 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/chart/CPUFrequencyChart.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/chart/CPUFrequencyChart.java @@ -26,9 +26,12 @@ package org.tizen.dynamicanalyzer.ui.timeline.chart; +import java.util.ArrayList; import java.util.List; +import org.eclipse.swt.graphics.Color; import org.tizen.dynamicanalyzer.common.CommonConstants; +import org.tizen.dynamicanalyzer.communicator.DACommunicator; import org.tizen.dynamicanalyzer.nl.TimelineChartLabels; import org.tizen.dynamicanalyzer.resources.ColorResources; import org.tizen.dynamicanalyzer.resources.ImageResources; @@ -46,7 +49,14 @@ import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoardItem; public class CPUFrequencyChart extends TimelineChart { private static CPUFrequencyChart instance = null; - private DAChartSeries frequencySeries; + + private int coreSize = TimelineConstants.NOT_INITED; + private List coreFrequencyChartSeriesList = new ArrayList(); + private Color[] coreChartSeriesColors = new Color[] { + ColorResources.SERIES_COLOR_CPUCORE_CORE0, + ColorResources.SERIES_COLOR_CPUCORE_CORE1, + ColorResources.SERIES_COLOR_CPUCORE_CORE2, + ColorResources.SERIES_COLOR_CPUCORE_CORE3 }; public static CPUFrequencyChart getInstance() { if (instance == null) { @@ -62,19 +72,12 @@ public class CPUFrequencyChart extends TimelineChart { chartName = TimelineChartLabels.CPU_FREQUENCY_CHART_TITLE; chartIcon = ImageResources.CHART_CPU_FREQUENCY; addIcon = ImageResources.ADD_CHART_CPU_FREQUENCY; - - frequencySeries = new DAChartSeries( - TimelineChartLabels.CPU_FREQUENCY_CHART_FREQUENCY, - DAChartSeries.SERIES_STYLE_LINE, - ColorResources.SERIES_COLOR_CPU_FREQ); } @Override public DAChartBoardItem createBoardItem(DAChartBoard board) { DAChartBoardItem item = super.createBoardItem(board); - chart.addSeries(frequencySeries); - chart.getPlot().setAxisUnit("Hz"); chart.getPlot().setShowAxis(true); @@ -96,15 +99,36 @@ public class CPUFrequencyChart extends TimelineChart { private void parseLog(SystemData logData) { try { + if (coreSize == TimelineConstants.NOT_INITED) { + coreSize = DACommunicator.getSelectedDevice().getTargetInfo() + .getCpuCount(); + for (int i = 0; i < coreSize; i++) { + DAChartSeries chartSeries = new DAChartSeries( + TimelineChartLabels.CPU_CORE_CHART_SERIES_NAME_CORE + + i, DAChartSeries.SERIES_STYLE_LINE, + coreChartSeriesColors[i % 4]); + chart.addSeries(chartSeries); + coreFrequencyChartSeriesList.add(chartSeries); + } + } + double time = logData.getTime() / TimelineConstants.MEGA_DOUBLE; String[] cpuFreqs = logData.getCpuFrequency().split( CommonConstants.COMMA); - double freq0 = Double.parseDouble(cpuFreqs[0]) * 1000.0; - frequencySeries.addSeriesItem(new DAChartSeriesItem(time, freq0, - Formatter.toHzFormat(freq0))); + for (int i = 0; i < coreSize; i++) { + double freq = Double.parseDouble(cpuFreqs[i]) * 1000.0; + coreFrequencyChartSeriesList.get(i).addSeriesItem( + new DAChartSeriesItem(time, freq, Formatter + .toHzFormat(freq))); + } } catch (NumberFormatException ne) { ne.printStackTrace(); } + }@Override + public void clear() { + super.clear(); + coreSize = TimelineConstants.NOT_INITED; + coreFrequencyChartSeriesList.clear(); } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/chart/UIEventChart.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/chart/UIEventChart.java index 28ee145..800fe4c 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/chart/UIEventChart.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/chart/UIEventChart.java @@ -156,23 +156,19 @@ public class UIEventChart extends TimelineChart { private void parseLog(UIEventData logData) { try { double time = logData.getTime() / TimelineConstants.MEGA_DOUBLE; - int detailType; int eventType = logData.getEventType(); - String info; switch (eventType) { case TYPE_TOUCH: - detailType = logData.getDetailType(); - info = EnumTouchStatus.values()[detailType].getStatus() - + NEW_LINE + "X : "//$NON-NLS-1$ + String info = EnumTouchStatus.values()[logData.getDetailType()] + .getStatus() + NEW_LINE + "X : "//$NON-NLS-1$ + logData.getX() + " Y : "//$NON-NLS-1$ + logData.getY(); touchEventSeries.addSeriesItem(new DAChartSeriesItem(time, 0, info)); break; case TYPE_GESTURE: - detailType = logData.getDetailType(); gestureEventSeries.addSeriesItem(new DAChartSeriesItem(time, 0, - getGestureInfo(detailType, logData))); + getGestureInfo(logData.getDetailType(), logData))); break; case TYPE_ORIENTATION: int status = Integer.parseInt(logData.getInfo1()); @@ -192,14 +188,14 @@ public class UIEventChart extends TimelineChart { } private enum EnumTouchStatus { - PRESSED(TimelineChartLabels.UIEVENT_TOUCH_LONG_PRESSED), LONG_PRESSED( - TimelineChartLabels.UIEVENT_TOUCH_LONG_PRESSED), RELEASED( - TimelineChartLabels.UIEVENT_TOUCH_RELEASED), MOVED( - TimelineChartLabels.UIEVENT_TOUCH_MOVED), DOUBLE_PRESSED( - TimelineChartLabels.UIEVENT_TOUCH_DOUBLE_PRESSED), FOCUS_IN( - TimelineChartLabels.UIEVENT_TOUCH_FOCUS_IN), FOCUS_OUT( - TimelineChartLabels.UIEVENT_TOUCH_FOCUS_OUT), CANCELED( - TimelineChartLabels.UIEVENT_TOUCH_CANCELED); + PRESSED(TimelineChartLabels.UIEVENT_TOUCH_LONG_PRESSED), + LONG_PRESSED(TimelineChartLabels.UIEVENT_TOUCH_LONG_PRESSED), + RELEASED(TimelineChartLabels.UIEVENT_TOUCH_RELEASED), + MOVED(TimelineChartLabels.UIEVENT_TOUCH_MOVED), + DOUBLE_PRESSED(TimelineChartLabels.UIEVENT_TOUCH_DOUBLE_PRESSED), + FOCUS_IN(TimelineChartLabels.UIEVENT_TOUCH_FOCUS_IN), + FOCUS_OUT(TimelineChartLabels.UIEVENT_TOUCH_FOCUS_OUT), + CANCELED(TimelineChartLabels.UIEVENT_TOUCH_CANCELED); private String status; diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/logparser/LifecycleLogParser.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/logparser/LifecycleLogParser.java index 6274275..1bc3ff7 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/logparser/LifecycleLogParser.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/logparser/LifecycleLogParser.java @@ -34,7 +34,7 @@ import org.tizen.dynamicanalyzer.nl.TimelineChartLabels; 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.LifeCycleData; +import org.tizen.dynamicanalyzer.swap.model.data.LifeCycleLogData; import org.tizen.dynamicanalyzer.swap.model.data.LogData; import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineConstants; import org.tizen.dynamicanalyzer.widgets.helper.ColorResources; @@ -69,15 +69,15 @@ public class LifecycleLogParser { return; } - List logList = logs.getRawLogs(); + List logDataList = logs.getRawLogs(); - for (LogData log : logList) { - parseLog((LifeCycleData) log); + for (LogData logData : logDataList) { + parseLog((LifeCycleLogData) logData); } } - private void parseLog(LifeCycleData log) { - int apiId= log.getApiId(); + private void parseLog(LifeCycleLogData logData) { + int apiId= logData.getApiId(); Color colorTop; Color colorBottom; String text; @@ -103,7 +103,7 @@ public class LifecycleLogParser { return; } - double startTime = Double.parseDouble(Long.toString(log.getTime())) + double startTime = Double.parseDouble(Long.toString(logData.getTime())) / TimelineConstants.MEGA_DOUBLE; LifecycleData lifecycleData = new LifecycleData(startTime, colorTop, -- 2.7.4