|
|
|
@ -1248,32 +1248,45 @@ float CPhoneDevice::QueryBattaryVoltage(int timesForAvg, bool* isCharging)
|
|
|
|
|
int val = 0;
|
|
|
|
|
int totalVals = 0;
|
|
|
|
|
float chargingBusVoltage = 0.0f;
|
|
|
|
|
for (int idx = 0; idx < timesForAvg; idx++)
|
|
|
|
|
int idx = 0;
|
|
|
|
|
int t1 = time(NULL);
|
|
|
|
|
for (idx = 0; idx < timesForAvg; idx++)
|
|
|
|
|
{
|
|
|
|
|
auto now = std::chrono::system_clock::now();
|
|
|
|
|
val = GpioControl::getChargingBusVoltage();
|
|
|
|
|
auto now2 = std::chrono::system_clock::now();
|
|
|
|
|
auto duration = std::chrono::duration_cast<std::chrono::milliseconds>(now2 - now).count();
|
|
|
|
|
XYLOG(XYLOG_SEVERITY_INFO,"WorkStatus BusVoltage val=%d, time=%lld", val, static_cast<long long>(duration));
|
|
|
|
|
if (val > 1000)
|
|
|
|
|
{
|
|
|
|
|
chargingBusVoltage = (float)val / 1000.0;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
int t2 = time(NULL) - t1;
|
|
|
|
|
XYLOG(XYLOG_SEVERITY_INFO,"WorkStatus BusVoltage end, time=%d", t2);
|
|
|
|
|
|
|
|
|
|
if (isCharging != NULL)
|
|
|
|
|
{
|
|
|
|
|
*isCharging = chargingBusVoltage > DEFAULT_WARNING_CHARGING_BUS_VOL;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int t3 = time(NULL);
|
|
|
|
|
int matched = 0;
|
|
|
|
|
for (int idx = 0; idx < timesForAvg; idx++)
|
|
|
|
|
{
|
|
|
|
|
auto now3 = std::chrono::system_clock::now();
|
|
|
|
|
val = GpioControl::getBatteryVoltage(); // // BatVol
|
|
|
|
|
auto now4 = std::chrono::system_clock::now();
|
|
|
|
|
auto duration = std::chrono::duration_cast<std::chrono::milliseconds>(now4 - now3).count();
|
|
|
|
|
XYLOG(XYLOG_SEVERITY_INFO,"WorkStatus BatteryVoltage val=%d, time=%lld", val, static_cast<long long>(duration));
|
|
|
|
|
if (val > 0)
|
|
|
|
|
{
|
|
|
|
|
totalVals += val > BATTARY_VOLTAGE_MAX ? BATTARY_VOLTAGE_MAX : val;
|
|
|
|
|
matched++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int t4 = time(NULL) - t3;
|
|
|
|
|
XYLOG(XYLOG_SEVERITY_INFO,"WorkStatus BatteryVoltage end, time=%d", t4);
|
|
|
|
|
return (matched > 0) ? ((float)totalVals / 1000.0 / matched) : 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|