summaryrefslogtreecommitdiff
path: root/tools/powerstats/PowerStatsServiceProtoParser.java
diff options
context:
space:
mode:
Diffstat (limited to 'tools/powerstats/PowerStatsServiceProtoParser.java')
-rw-r--r--tools/powerstats/PowerStatsServiceProtoParser.java95
1 files changed, 70 insertions, 25 deletions
diff --git a/tools/powerstats/PowerStatsServiceProtoParser.java b/tools/powerstats/PowerStatsServiceProtoParser.java
index 8ab302a50662..76edd6341b55 100644
--- a/tools/powerstats/PowerStatsServiceProtoParser.java
+++ b/tools/powerstats/PowerStatsServiceProtoParser.java
@@ -25,50 +25,95 @@ import java.io.IOException;
* is output to STDOUT in csv format.
*/
public class PowerStatsServiceProtoParser {
- private static void printRailInfo(PowerStatsServiceProto proto) {
+ private static void printEnergyMeterInfo(PowerStatsServiceMeterProto proto) {
String csvHeader = new String();
- for (int i = 0; i < proto.getRailInfoCount(); i++) {
- RailInfoProto railInfo = proto.getRailInfo(i);
- csvHeader += "Index" + ","
- + "Timestamp" + ","
- + railInfo.getRailName() + "/" + railInfo.getSubsysName() + ",";
+ for (int i = 0; i < proto.getChannelInfoCount(); i++) {
+ ChannelInfoProto energyMeterInfo = proto.getChannelInfo(i);
+ csvHeader += "Index,Timestamp," + energyMeterInfo.getChannelId()
+ + "/" + energyMeterInfo.getChannelName() + ",";
}
System.out.println(csvHeader);
}
- private static void printEnergyData(PowerStatsServiceProto proto) {
- int railInfoCount = proto.getRailInfoCount();
+ private static void printEnergyMeasurements(PowerStatsServiceMeterProto proto) {
+ int energyMeterInfoCount = proto.getChannelInfoCount();
- if (railInfoCount > 0) {
- int energyDataCount = proto.getEnergyDataCount();
- int energyDataSetCount = energyDataCount / railInfoCount;
+ if (energyMeterInfoCount > 0) {
+ int energyMeasurementCount = proto.getEnergyMeasurementCount();
+ int energyMeasurementSetCount = energyMeasurementCount / energyMeterInfoCount;
- for (int i = 0; i < energyDataSetCount; i++) {
+ for (int i = 0; i < energyMeasurementSetCount; i++) {
String csvRow = new String();
- for (int j = 0; j < railInfoCount; j++) {
- EnergyDataProto energyData = proto.getEnergyData(i * railInfoCount + j);
- csvRow += energyData.getIndex() + ","
- + energyData.getTimestampMs() + ","
- + energyData.getEnergyUws() + ",";
+ for (int j = 0; j < energyMeterInfoCount; j++) {
+ EnergyMeasurementProto energyMeasurement =
+ proto.getEnergyMeasurement(i * energyMeterInfoCount + j);
+ csvRow += energyMeasurement.getChannelId() + ","
+ + energyMeasurement.getTimestampMs() + ","
+ + energyMeasurement.getEnergyUws() + ",";
}
System.out.println(csvRow);
}
} else {
- System.out.println("Error: railInfoCount is zero");
+ System.out.println("Error: energyMeterInfoCount is zero");
+ }
+ }
+
+ private static void printEnergyConsumerId(PowerStatsServiceModelProto proto) {
+ String csvHeader = new String();
+ for (int i = 0; i < proto.getEnergyConsumerIdCount(); i++) {
+ EnergyConsumerIdProto energyConsumerId = proto.getEnergyConsumerId(i);
+ csvHeader += "Index,Timestamp," + energyConsumerId.getEnergyConsumerId() + ",";
+ }
+ System.out.println(csvHeader);
+ }
+
+ private static void printEnergyConsumerResults(PowerStatsServiceModelProto proto) {
+ int energyConsumerIdCount = proto.getEnergyConsumerIdCount();
+
+ if (energyConsumerIdCount > 0) {
+ int energyConsumerResultCount = proto.getEnergyConsumerResultCount();
+ int energyConsumerResultSetCount = energyConsumerResultCount / energyConsumerIdCount;
+
+ for (int i = 0; i < energyConsumerResultSetCount; i++) {
+ String csvRow = new String();
+ for (int j = 0; j < energyConsumerIdCount; j++) {
+ EnergyConsumerResultProto energyConsumerResult =
+ proto.getEnergyConsumerResult(i * energyConsumerIdCount + j);
+ csvRow += energyConsumerResult.getEnergyConsumerId() + ","
+ + energyConsumerResult.getTimestampMs() + ","
+ + energyConsumerResult.getEnergyUws() + ",";
+ }
+ System.out.println(csvRow);
+ }
+ } else {
+ System.out.println("Error: energyConsumerIdCount is zero");
}
}
private static void generateCsvFile(String pathToIncidentReport) {
try {
- IncidentReportProto irProto =
- IncidentReportProto.parseFrom(new FileInputStream(pathToIncidentReport));
+ // Print power meter data.
+ IncidentReportMeterProto irMeterProto =
+ IncidentReportMeterProto.parseFrom(new FileInputStream(pathToIncidentReport));
+
+ if (irMeterProto.hasIncidentReport()) {
+ PowerStatsServiceMeterProto pssMeterProto = irMeterProto.getIncidentReport();
+ printEnergyMeterInfo(pssMeterProto);
+ printEnergyMeasurements(pssMeterProto);
+ } else {
+ System.out.println("Meter incident report not found. Exiting.");
+ }
+
+ // Print power model data.
+ IncidentReportModelProto irModelProto =
+ IncidentReportModelProto.parseFrom(new FileInputStream(pathToIncidentReport));
- if (irProto.hasIncidentReport()) {
- PowerStatsServiceProto pssProto = irProto.getIncidentReport();
- printRailInfo(pssProto);
- printEnergyData(pssProto);
+ if (irModelProto.hasIncidentReport()) {
+ PowerStatsServiceModelProto pssModelProto = irModelProto.getIncidentReport();
+ printEnergyConsumerId(pssModelProto);
+ printEnergyConsumerResults(pssModelProto);
} else {
- System.out.println("Incident report not found. Exiting.");
+ System.out.println("Model incident report not found. Exiting.");
}
} catch (IOException e) {
System.out.println("Unable to open incident report file: " + pathToIncidentReport);