Temperature atom: Use int instead of float.

Changes the temperature atom to use an int instead of a float because
metrics and anomaly detection assume the data will be an int or a long.

Bug: b/74011562
Test: statsd temperature CTS test
Change-Id: I6e5845a40c28aefd30c2be9709c6f9de1783cf02
This commit is contained in:
Tej Singh
2018-03-26 14:51:40 -07:00
parent 27fd8bd327
commit d89137ed24
2 changed files with 7 additions and 4 deletions

View File

@@ -1903,7 +1903,8 @@ message FullBatteryCapacity {
}
/**
* Pulls the temperature of various parts of the device, in Celsius.
* Pulls the temperature of various parts of the device.
* The units are tenths of a degree Celsius. Eg: 30.3C is reported as 303.
*
* Pulled from:
* frameworks/base/cmds/statsd/src/external/ResourceThermalManagerPuller.cpp
@@ -1915,6 +1916,6 @@ message Temperature {
// The name of the temperature source. Eg. CPU0
optional string sensor_name = 2;
// Temperature in degrees C.
optional float temperature_C = 3;
// Temperature in tenths of a degree C.
optional int32 temperature_dC = 3;
}

View File

@@ -120,7 +120,9 @@ bool ResourceThermalManagerPuller::PullInternal(vector<shared_ptr<LogEvent>>* da
wallClockTimestampNs, elapsedTimestampNs);
ptr->write((static_cast<int>(temps[i].type)));
ptr->write(temps[i].name);
ptr->write(temps[i].currentValue);
// Convert the temperature to an int.
int32_t temp = static_cast<int>(temps[i].currentValue * 10);
ptr->write(temp);
ptr->init();
data->push_back(ptr);
}