use of com.att.aro.core.peripheral.pojo.TemperatureEvent in project VideoOptimzer by attdevsupport.
the class CpuTemperatureReaderImpl method readData.
@Override
public List<TemperatureEvent> readData(String directory, double startTime) {
List<TemperatureEvent> temperatureEvents = new ArrayList<TemperatureEvent>();
String filePath = directory + Util.FILE_SEPARATOR + TraceDataConst.FileName.TEMPERATURE_FILE;
if (!filereader.fileExist(filePath)) {
return temperatureEvents;
}
String[] contents = null;
try {
contents = filereader.readAllLine(filePath);
} catch (IOException e) {
LOGGER.error("failed to read user event file: " + filePath);
}
if (contents != null && contents.length > 0) {
for (String contentBuf : contents) {
// Ignore empty line
if (contentBuf.trim().isEmpty()) {
continue;
}
// Parse entry
String[] splitContents = contentBuf.split(" ");
if (splitContents.length <= 1) {
LOGGER.warn("Found invalid user event entry: " + contentBuf);
continue;
}
// Get timestamp
double timeStamp = Double.parseDouble(splitContents[0]);
if (timeStamp > 1.0e9) {
timeStamp = Util.normalizeTime(timeStamp, startTime);
}
// Get event type
int temperatureC = 0;
int temperatureF = 0;
if (splitContents.length > 1 && splitContents[0].length() > 0) {
temperatureC = Integer.parseInt(splitContents[1]);
if (temperatureC != 0) {
if (splitContents[1].length() > 2) {
temperatureC = temperatureC / (int) Math.pow(10, splitContents[1].length() - 2);
}
temperatureF = (((temperatureC * 9) / 5) + 32);
temperatureEvents.add(new TemperatureEvent(timeStamp, temperatureC, temperatureF));
}
}
}
}
return temperatureEvents;
}
use of com.att.aro.core.peripheral.pojo.TemperatureEvent in project VideoOptimzer by attdevsupport.
the class TraceDataReaderImpl method readFileUtil.
/**
* some of the trace files read here
*
* Parses the user event trace
*
* @throws IOException
*
* Reads the screen rotations information contained in the
* "screen_rotations" file found inside the trace directory and adds
* them to the user events list.
* @throws IOException
* Reads the CPU trace information from the CPU file.
*
* @throws IOException
* Method to read the GPS data from the trace file and store it in
* the gpsInfos list. It also updates the active duration for GPS.
* Method to read the Bluetooth data from the trace file and store
* it in the bluetoothInfos list. It also updates the active
* duration for Bluetooth.
*
* @throws IOException
* Method to read the Camera data from the trace file and store it
* in the cameraInfos list. It also updates the active duration for
* Camera.
*
* Method to read the WIFI data from the trace file and store it in
* the wifiInfos list. It also updates the active duration for Wifi.
*
* Method to read the Screen State data from the trace file and
* store it in the ScreenStateInfos list.
*
* Method to read the Battery data from the trace file and store it
* in the batteryInfos list.
*
* Method to read the alarm event from the trace file and store it
* in the alarmInfos list.
*
* Reads the Radio data from the file and stores it in the
* RadioInfo.
* @param result
*/
public void readFileUtil(TraceDirectoryResult result) {
NetworkTypeObject obj = networktypereader.readData(result.getTraceDirectory(), result.getPcapTime0(), result.getTraceDuration());
if (obj != null) {
result.setNetworkTypeInfos(obj.getNetworkTypeInfos());
result.setNetworkTypesList(obj.getNetworkTypesList());
}
CollectOptions collectOptions = collectOptionsReader.readData(result.getTraceDirectory());
result.setCollectOptions(collectOptions);
List<UserEvent> userEvents = usereventreader.readData(result.getTraceDirectory(), result.getEventTime0(), result.getPcapTime0());
result.setUserEvents(userEvents);
List<UserEvent> list = this.screenrotationreader.readData(result.getTraceDirectory(), result.getPcapTime0());
result.setScreenRotationCounter(list.size());
result.getUserEvents().addAll(list);
List<TemperatureEvent> temperatureEvents = cputemperaturereader.readData(result.getTraceDirectory(), result.getPcapTime0());
result.setTemperatureInfos(temperatureEvents);
List<LocationEvent> locationEvents = locationreader.readData(result.getTraceDirectory(), result.getPcapTime0());
result.setLocationEventInfos(locationEvents);
CpuActivityList cpuActivityList = cpureader.readData(result.getTraceDirectory(), result.getPcapTime0());
result.setCpuActivityList(cpuActivityList);
List<GpsInfo> gpsInfos = gpsreader.readData(result.getTraceDirectory(), result.getPcapTime0(), result.getTraceDuration());
result.setGpsInfos(gpsInfos);
result.setGpsActiveDuration(gpsreader.getGpsActiveDuration());
List<BluetoothInfo> bluetoothInfos = bluetoothreader.readData(result.getTraceDirectory(), result.getPcapTime0(), result.getTraceDuration());
result.setBluetoothInfos(bluetoothInfos);
result.setBluetoothActiveDuration(bluetoothreader.getBluetoothActiveDuration());
List<WifiInfo> wifiInfos = wifireader.readData(result.getTraceDirectory(), result.getPcapTime0(), result.getTraceDuration());
result.setWifiInfos(wifiInfos);
result.setWifiActiveDuration(wifireader.getWifiActiveDuration());
List<CameraInfo> cameraInfos = camerareader.readData(result.getTraceDirectory(), result.getPcapTime0(), result.getTraceDuration());
result.setCameraInfos(cameraInfos);
result.setCameraActiveDuration(camerareader.getActiveDuration());
List<ThermalStatusInfo> thermalStatusInfos = new ThermalStatusReaderImpl(filereader).readData(result.getTraceDirectory(), result.getPcapTime0(), result.getTraceDuration());
result.setThermalstatusInfos(thermalStatusInfos);
List<ScreenStateInfo> screenStateInfos = screenstatereader.readData(result.getTraceDirectory(), result.getPcapTime0(), result.getTraceDuration());
result.setScreenStateInfos(screenStateInfos);
List<BatteryInfo> batteryInfos = batteryinforeader.readData(result.getTraceDirectory(), result.getPcapTime0());
result.setBatteryInfos(batteryInfos);
// alarm info from kernel log file
List<AlarmInfo> alarmInfos = alarminforeader.readData(result.getTraceDirectory(), result.getDumpsysEpochTimestamp(), result.getDumpsysElapsedTimestamp(), result.getTraceDateTime());
result.setAlarmInfos(alarmInfos);
List<RadioInfo> radioInfos = radioinforeader.readData(result.getTraceDirectory(), result.getPcapTime0());
result.setRadioInfos(radioInfos);
VideoStreamStartupData videoStreamStartupData = videoStartupReader.readData(result.getTraceDirectory());
result.setVideoStartupData(videoStreamStartupData);
result.setMetaData(metaDataReadWrite.readData(result.getTraceDirectory()));
}
use of com.att.aro.core.peripheral.pojo.TemperatureEvent in project VideoOptimzer by attdevsupport.
the class TemperaturePlot method populate.
@Override
public void populate(XYPlot plot, AROTraceData analysis) {
XYSeries series = new XYSeries(0);
XYIntervalSeriesCollection thermalDataSeries = new XYIntervalSeriesCollection();
if (analysis == null) {
LOGGER.info("analysis data is null");
} else {
TraceResultType resultType = analysis.getAnalyzerResult().getTraceresult().getTraceResultType();
if (resultType.equals(TraceResultType.TRACE_FILE)) {
LOGGER.info("didn't get analysis trace data!");
} else {
TraceDirectoryResult traceresult = (TraceDirectoryResult) analysis.getAnalyzerResult().getTraceresult();
AnalysisFilter filter = analysis.getAnalyzerResult().getFilter();
temperatureInfos = traceresult.getTemperatureInfos();
thermalStatusInfos = traceresult.getThermalstatusInfos();
NumberAxis axis = new NumberAxis();
axis.setAutoRange(true);
// Calculate max and min temperature
List<Integer> tempLists = new ArrayList<>();
if (CollectionUtils.isNotEmpty(temperatureInfos)) {
for (TemperatureEvent bi : temperatureInfos) {
series.add(bi.getTimeRecorded(), bi.getcelciusTemperature());
tempLists.add(bi.getcelciusTemperature());
}
TemperatureEvent last = temperatureInfos.get(temperatureInfos.size() - 1);
if (filter.getTimeRange() != null) {
series.add(filter.getTimeRange().getEndTime().doubleValue(), last.getcelciusTemperature());
} else {
series.add(traceresult.getTraceDuration(), last.getcelciusTemperature());
}
XYItemRenderer renderer = plot.getRenderer(0);
renderer.setBaseToolTipGenerator(new XYToolTipGenerator() {
@Override
public String generateToolTip(XYDataset dataset, int series, int item) {
return toolTipContent(item);
}
});
Collections.sort(tempLists);
axis.setRange(Math.round(tempLists.get(0) / 1.2), Math.round(tempLists.get(tempLists.size() - 1) * 1.2));
axis.setAutoRange(false);
plot.setRenderer(0, renderer);
}
if (CollectionUtils.isNotEmpty(thermalStatusInfos)) {
Map<ThermalStatus, XYIntervalSeries> seriesMap = new EnumMap<ThermalStatus, XYIntervalSeries>(ThermalStatus.class);
for (ThermalStatus tstatus : ThermalStatus.values()) {
XYIntervalSeries series2 = new XYIntervalSeries(tstatus);
seriesMap.put(tstatus, series2);
thermalDataSeries.addSeries(series2);
}
Iterator<ThermalStatusInfo> iter = thermalStatusInfos.iterator();
if (iter.hasNext()) {
while (iter.hasNext()) {
ThermalStatusInfo info = iter.next();
seriesMap.get(info.getThermalStatus()).add(info.getBeginTimeStamp(), info.getBeginTimeStamp(), info.getEndTimeStamp(), 0.5, 0, 100);
}
}
XYBarRenderer barRenderer = new XYBarRenderer();
barRenderer.setDrawBarOutline(false);
barRenderer.setUseYInterval(true);
barRenderer.setAutoPopulateSeriesPaint(false);
barRenderer.setShadowVisible(false);
barRenderer.setGradientPaintTransformer(null);
barRenderer.setBarPainter(new StandardXYBarPainter());
setRenderingColorForDataSeries(barRenderer, thermalDataSeries);
barRenderer.setBaseToolTipGenerator(new XYToolTipGenerator() {
@Override
public String generateToolTip(XYDataset dataset, int series, int item) {
ThermalStatus info = (ThermalStatus) thermalDataSeries.getSeries(series).getKey();
return MessageFormat.format(ResourceBundleHelper.getMessageString("network.tooltip"), dataset.getX(series, item), ResourceBundleHelper.getEnumString(info));
}
});
plot.setRenderer(1, barRenderer);
plot.setRangeAxis(axis);
}
}
plot.setDataset(0, new XYSeriesCollection(series));
plot.setDataset(1, thermalDataSeries);
}
}
use of com.att.aro.core.peripheral.pojo.TemperatureEvent in project VideoOptimzer by attdevsupport.
the class TemperaturePlot method toolTipContent.
public String toolTipContent(int item) {
TemperatureEvent bi = temperatureInfos.get(Math.min(item, temperatureInfos.size() - 1));
StringBuffer displayInfo = new StringBuffer(ResourceBundleHelper.getMessageString("temperature.tooltip.prefix"));
displayInfo.append(MessageFormat.format(ResourceBundleHelper.getMessageString("temperature.tooltip.content"), bi.getcelciusTemperature()));
displayInfo.append(ResourceBundleHelper.getMessageString("temperature.tooltip.suffix"));
return displayInfo.toString();
}
use of com.att.aro.core.peripheral.pojo.TemperatureEvent in project VideoOptimzer by attdevsupport.
the class CpuTemperatureReaderImplTest method readData_IOException.
@Test
public void readData_IOException() throws IOException {
Mockito.when(filereader.fileExist(Mockito.anyString())).thenReturn(true);
Mockito.when(filereader.readAllLine(Mockito.anyString())).thenThrow(new IOException("test exception"));
List<TemperatureEvent> listTemperatureEvent = null;
listTemperatureEvent = traceDataReader.readData(traceFolder, 0.0);
assertEquals(0, listTemperatureEvent.size(), 0);
}
Aggregations