C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[73197] (수정)Re:배터리 도와주세요 ㅜㅜ!!
정성훈.해미 [sage5nor] 3904 읽음    2015-12-03 19:03
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;
:
: 을 사용해서 배터리 퍼센트 값과 충전 중이 아닐 때 배터리 소모 예상 시간까지는 출력했는데
: 그 후로 모르겠네요ㅠㅠ

+ -

관련 글 리스트
73196 배터리 도와주세요 ㅜㅜ!! kyu6by 3951 2015/12/03
73197     (수정)Re:배터리 도와주세요 ㅜㅜ!! 정성훈.해미 3904 2015/12/03
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.