Merge "Add subsystem name field to Channel" into sc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
b87b87cf75
@@ -220,6 +220,9 @@ message ChannelProto {
|
|||||||
|
|
||||||
/** Name of the energy meter channel */
|
/** Name of the energy meter channel */
|
||||||
optional string name = 2;
|
optional string name = 2;
|
||||||
|
|
||||||
|
/** Name of the subsystem associated with this Channel. Opaque to framework */
|
||||||
|
optional string subsystem = 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -266,6 +266,7 @@ public class ProtoStreamUtils {
|
|||||||
long token = pos.start(PowerStatsServiceMeterProto.CHANNEL);
|
long token = pos.start(PowerStatsServiceMeterProto.CHANNEL);
|
||||||
pos.write(ChannelProto.ID, channel[i].id);
|
pos.write(ChannelProto.ID, channel[i].id);
|
||||||
pos.write(ChannelProto.NAME, channel[i].name);
|
pos.write(ChannelProto.NAME, channel[i].name);
|
||||||
|
pos.write(ChannelProto.SUBSYSTEM, channel[i].subsystem);
|
||||||
pos.end(token);
|
pos.end(token);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -275,7 +276,8 @@ public class ProtoStreamUtils {
|
|||||||
|
|
||||||
for (int i = 0; i < channel.length; i++) {
|
for (int i = 0; i < channel.length; i++) {
|
||||||
Slog.d(TAG, "ChannelId: " + channel[i].id
|
Slog.d(TAG, "ChannelId: " + channel[i].id
|
||||||
+ ", ChannelName: " + channel[i].name);
|
+ ", ChannelName: " + channel[i].name
|
||||||
|
+ ", ChannelSubsystem: " + channel[i].subsystem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -284,7 +286,8 @@ public class ProtoStreamUtils {
|
|||||||
|
|
||||||
for (int i = 0; i < channel.length; i++) {
|
for (int i = 0; i < channel.length; i++) {
|
||||||
pw.println("ChannelId: " + channel[i].id
|
pw.println("ChannelId: " + channel[i].id
|
||||||
+ ", ChannelName: " + channel[i].name);
|
+ ", ChannelName: " + channel[i].name
|
||||||
|
+ ", ChannelSubsystem: " + channel[i].subsystem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ static jclass class_C;
|
|||||||
static jmethodID method_C_init;
|
static jmethodID method_C_init;
|
||||||
static jfieldID field_C_id;
|
static jfieldID field_C_id;
|
||||||
static jfieldID field_C_name;
|
static jfieldID field_C_name;
|
||||||
|
static jfieldID field_C_subsystem;
|
||||||
|
|
||||||
// EnergyMeasurement
|
// EnergyMeasurement
|
||||||
static jclass class_EM;
|
static jclass class_EM;
|
||||||
@@ -277,11 +278,14 @@ static jobjectArray nativeGetEnergyMeterInfo(JNIEnv *env, jclass clazz) {
|
|||||||
channelArray = env->NewObjectArray(railInfo.size(), class_C, nullptr);
|
channelArray = env->NewObjectArray(railInfo.size(), class_C, nullptr);
|
||||||
for (int i = 0; i < railInfo.size(); i++) {
|
for (int i = 0; i < railInfo.size(); i++) {
|
||||||
jstring name = env->NewStringUTF(railInfo[i].railName.c_str());
|
jstring name = env->NewStringUTF(railInfo[i].railName.c_str());
|
||||||
|
jstring subsystem = env->NewStringUTF(railInfo[i].subsysName.c_str());
|
||||||
jobject channel = env->NewObject(class_C, method_C_init);
|
jobject channel = env->NewObject(class_C, method_C_init);
|
||||||
env->SetIntField(channel, field_C_id, railInfo[i].index);
|
env->SetIntField(channel, field_C_id, railInfo[i].index);
|
||||||
env->SetObjectField(channel, field_C_name, name);
|
env->SetObjectField(channel, field_C_name, name);
|
||||||
|
env->SetObjectField(channel, field_C_subsystem, subsystem);
|
||||||
env->SetObjectArrayElement(channelArray, i, channel);
|
env->SetObjectArrayElement(channelArray, i, channel);
|
||||||
env->DeleteLocalRef(name);
|
env->DeleteLocalRef(name);
|
||||||
|
env->DeleteLocalRef(subsystem);
|
||||||
env->DeleteLocalRef(channel);
|
env->DeleteLocalRef(channel);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -359,6 +363,7 @@ static jboolean nativeInit(JNIEnv *env, jclass clazz) {
|
|||||||
method_C_init = env->GetMethodID(class_C, "<init>", "()V");
|
method_C_init = env->GetMethodID(class_C, "<init>", "()V");
|
||||||
field_C_id = env->GetFieldID(class_C, "id", "I");
|
field_C_id = env->GetFieldID(class_C, "id", "I");
|
||||||
field_C_name = env->GetFieldID(class_C, "name", "Ljava/lang/String;");
|
field_C_name = env->GetFieldID(class_C, "name", "Ljava/lang/String;");
|
||||||
|
field_C_subsystem = env->GetFieldID(class_C, "subsystem", "Ljava/lang/String;");
|
||||||
|
|
||||||
// EnergyMeasurement
|
// EnergyMeasurement
|
||||||
temp = env->FindClass("android/hardware/power/stats/EnergyMeasurement");
|
temp = env->FindClass("android/hardware/power/stats/EnergyMeasurement");
|
||||||
|
|||||||
@@ -67,6 +67,7 @@ public class PowerStatsServiceTest {
|
|||||||
private static final String RESIDENCY_FILENAME = "residencytest";
|
private static final String RESIDENCY_FILENAME = "residencytest";
|
||||||
private static final String PROTO_OUTPUT_FILENAME = "powerstats.proto";
|
private static final String PROTO_OUTPUT_FILENAME = "powerstats.proto";
|
||||||
private static final String CHANNEL_NAME = "channelname";
|
private static final String CHANNEL_NAME = "channelname";
|
||||||
|
private static final String CHANNEL_SUBSYSTEM = "channelsubsystem";
|
||||||
private static final String POWER_ENTITY_NAME = "powerentityinfo";
|
private static final String POWER_ENTITY_NAME = "powerentityinfo";
|
||||||
private static final String STATE_NAME = "stateinfo";
|
private static final String STATE_NAME = "stateinfo";
|
||||||
private static final String ENERGY_CONSUMER_NAME = "energyconsumer";
|
private static final String ENERGY_CONSUMER_NAME = "energyconsumer";
|
||||||
@@ -214,6 +215,7 @@ public class PowerStatsServiceTest {
|
|||||||
energyMeterList[i] = new Channel();
|
energyMeterList[i] = new Channel();
|
||||||
energyMeterList[i].id = i;
|
energyMeterList[i].id = i;
|
||||||
energyMeterList[i].name = new String(CHANNEL_NAME + i);
|
energyMeterList[i].name = new String(CHANNEL_NAME + i);
|
||||||
|
energyMeterList[i].subsystem = new String(CHANNEL_SUBSYSTEM + i);
|
||||||
}
|
}
|
||||||
return energyMeterList;
|
return energyMeterList;
|
||||||
}
|
}
|
||||||
@@ -272,6 +274,7 @@ public class PowerStatsServiceTest {
|
|||||||
for (int i = 0; i < pssProto.channel.length; i++) {
|
for (int i = 0; i < pssProto.channel.length; i++) {
|
||||||
assertTrue(pssProto.channel[i].id == i);
|
assertTrue(pssProto.channel[i].id == i);
|
||||||
assertTrue(pssProto.channel[i].name.equals(CHANNEL_NAME + i));
|
assertTrue(pssProto.channel[i].name.equals(CHANNEL_NAME + i));
|
||||||
|
assertTrue(pssProto.channel[i].subsystem.equals(CHANNEL_SUBSYSTEM + i));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Validate the energyMeasurement array matches what was written to on-device storage.
|
// Validate the energyMeasurement array matches what was written to on-device storage.
|
||||||
@@ -414,6 +417,7 @@ public class PowerStatsServiceTest {
|
|||||||
for (int i = 0; i < pssProto.channel.length; i++) {
|
for (int i = 0; i < pssProto.channel.length; i++) {
|
||||||
assertTrue(pssProto.channel[i].id == i);
|
assertTrue(pssProto.channel[i].id == i);
|
||||||
assertTrue(pssProto.channel[i].name.equals(CHANNEL_NAME + i));
|
assertTrue(pssProto.channel[i].name.equals(CHANNEL_NAME + i));
|
||||||
|
assertTrue(pssProto.channel[i].subsystem.equals(CHANNEL_SUBSYSTEM + i));
|
||||||
}
|
}
|
||||||
|
|
||||||
// No energyMeasurements should be written to the incident report since it
|
// No energyMeasurements should be written to the incident report since it
|
||||||
@@ -547,6 +551,7 @@ public class PowerStatsServiceTest {
|
|||||||
for (int i = 0; i < pssProto.channel.length; i++) {
|
for (int i = 0; i < pssProto.channel.length; i++) {
|
||||||
assertTrue(pssProto.channel[i].id == i);
|
assertTrue(pssProto.channel[i].id == i);
|
||||||
assertTrue(pssProto.channel[i].name.equals(CHANNEL_NAME + i));
|
assertTrue(pssProto.channel[i].name.equals(CHANNEL_NAME + i));
|
||||||
|
assertTrue(pssProto.channel[i].subsystem.equals(CHANNEL_SUBSYSTEM + i));
|
||||||
}
|
}
|
||||||
|
|
||||||
// No energyMeasurements should be written to the incident report since the
|
// No energyMeasurements should be written to the incident report since the
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ public class PowerStatsServiceProtoParser {
|
|||||||
for (int i = 0; i < proto.getChannelCount(); i++) {
|
for (int i = 0; i < proto.getChannelCount(); i++) {
|
||||||
ChannelProto energyMeterInfo = proto.getChannel(i);
|
ChannelProto energyMeterInfo = proto.getChannel(i);
|
||||||
csvHeader += "Index,Timestamp,Duration," + energyMeterInfo.getId()
|
csvHeader += "Index,Timestamp,Duration," + energyMeterInfo.getId()
|
||||||
+ "/" + energyMeterInfo.getName() + ",";
|
+ "/" + energyMeterInfo.getName() + "/" + energyMeterInfo.getSubsystem() + ",";
|
||||||
}
|
}
|
||||||
System.out.println(csvHeader);
|
System.out.println(csvHeader);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user