TSystemPowerStatus에 있는
완충되었을때 배터리 사용 가능 시간(BatteryFullLifeTime)과
현재 배터리 사용 가능 시간(BatteryLifeTime)을 이용하면
완충까지 예상 시간을 구할 수 있을 것 같습니다.
1. 배터리 사용 시간 변화량 측정
1분마다 BatteryLifeTime을 측정하여
BatteryLifeTime 변화량을 측정합니다.
// PreBatteryLifeTime : 1분전 남은 사용 시간
// CurBatteryLifeTime : 현재 남은 사용 시간
// VarBatteryLifeTime : 1분 변화량
long VarBatteryLifeTime = CurBatteryLifeTime - PreBatteryLifeTime;
2. 완충 예상 소요시간 계산
완충 예상 소요시간(분) = (완충시 배터리 사용 가능 시간 - 현재 배터리 사용 가능 시간)/ 1분 변화량
// BatteryFullLifeTime : 배터리 완충시 사용 가능 시간
// RemainChargeTime : 완충까지 남은 시간(분)
long RemainChargeTime = (BatteryFullLifeTime - CurBatteryLifeTime) / VarBatteryLifeTime;
3. 예제 소스
// 변수 선언부
long PreBatteryLifeTime = 0;
long CurBatteryLifeTime = 0;
long VarBatteryLifeTime = 0;
long BatteryFullLifeTime = 0;
long RemainChargeTime = 0;
// 타이머 (1분) 이벤트 안에 작성합니다.
TSystemPowerStatus SystemPowerStatus;
GetSystemPowerStatus(&SystemPowerStatus);
// 현재 배터리 사용 가능 시간을 구합니다.
CurBatteryLifeTime = SystemPowerStatus.BatteryLifeTime;
// 1분전 사용 가능 시간이 기록되어 있으면
// 예상 충전 시간을 계산합니다.
if(PreBatteryLifeTime > 0) {
// 1분 변화량을 구합니다
VarBatteryLifeTime = CurBatteryLifeTime - PreBatteryLifeTime;
// 완충시 사용 가능 시간을 구합니다
BatteryFullLifeTime = SystemPowerStatus.BatteryFullLifeTime;
// 변화량이 양수 일때만 (배터리 충전이 되고 있을 때만)
// 예상 완충 시간을 구합니다.
if(VarBatteryLifeTime > 0) {
RemainChargeTime = (BatteryFullLifeTime - CurBatteryLifeTime) / VarBatteryLifeTime;
}
}
else {
RemainChargeTime = 0;
}
PreBatteryLifeTime = CurBatteryLifeTime;
도움이 되셨기를 바랍니다.
kyu6by 님이 쓰신 글 :
: 안녕하세요
:
: 배터리 충전하는 데 걸리는 충전 예상 시간과
: 충전 중일때에도 배터리 소모 예상 시간이 필요합니다ㅠㅠ
:
: TSystemPowerStatus SystemPowerStatus;
: GetSystemPowerStatus(&SystemPowerStatus);
:
: int percent = SystemPowerStatus.BatteryLifePercent;
: batterylifetime = SystemPowerStatus.BatteryLifeTime;
:
: 을 사용해서 배터리 퍼센트 값과 충전 중이 아닐 때 배터리 소모 예상 시간까지는 출력했는데
: 그 후로 모르겠네요ㅠㅠ