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