PDA용 어플리케이션을 작성할때 배터리량을 체크하는 표시하는 것은 매우 중요하다.PDA자체 전원으로 RF리더기나 바코드리더기등을 구동할 경우, 배터리가 10%이하이면 오작동할 소지가 있기 때문이다.그러나 C#.NET이나 VB.NET은 WinCe나 PocketPC용 배터리상세 API를 지원하지 않기 때문에 C++용 함수를 불러와서 써야 한다.

C#에서 PDA배터리를 체크할려면 아래와 같이 하면된다.

//GetSystemPowerStatusEx을 불러옵니다. (자매품 GetSystemPowerStatusEx2도 있어요)
[DllImport("coredll")]
public static extern uint GetSystemPowerStatusEx(SYSTEM_POWER_STATUS_EX lpSystemPowerStatus, bool fUpdate);

//인자로 쓰일 구조체(클래스) 선언. 아래와 같이 반드시 C++의 구조체와 동일한 형식으로 선언
public class SYSTEM_POWER_STATUS_EX
{
    public byte ACLineStatus;
    public byte BatteryFlag;
    public byte BatteryLifePercent;
    public byte Reserved1;
    public uint BatteryLifeTime;
    public uint BatteryFullLifeTime;
    public byte Reserved2;
    public byte BackupBatteryFlag;
    public byte BackupBatteryLifePercent;
    public byte Reserved3;
    public uint BackupBatteryLifeTime;
    public uint BackupBatteryFullLifeTime;
}

SYSTEM_POWER_STATUS_EX powerStatus = new SYSTEM_POWER_STATUS_EX();

//배터리 잔여 백분율을 얻기
if (GetSystemPowerStatusEx(powerStatus, false) == 1)
{
    MessageBox.Show("배터리 잔여량 : " + powerStatus.BatteryLifePercent + "%");
}

아, PDA에서도 간단히 배터리상태를 체크할 수 있는 기능은 제공된다고 한다.
SystemState(네인스페이스 Microsoft.WindowsMobile.Status)가 그것인데, PowerBattery라는 이름으로 시작하는 4가지 속성이 있다하니, 아래의 MSDN링크를 통해 확인해보길~

(나는 안해봤다능~)
http://msdn2.microsoft.com/en-us/library/microsoft.windowsmobile.status.systemstate_properties.aspx

Google AdSense

'끄적끄적 > Programming' 카테고리의 다른 글

[XNA] XNA 흐름  (0) 2010.05.17
[Oracle] 순위함수 Rank()  (2) 2009.12.21
[.NET] LC.EXE 오류와 해결책  (11) 2009.06.08
[XNA] Game개발과 XNA - XNA란??  (2) 2008.03.03
[.NET] .NET으로 PDA개발시 필수사항들~!!  (5) 2007.10.23

.NET Prepare to Develop, PDA 개발을 쉽게하자.

매번 개발을 할때마다 새로운 환경을 위해 번거럽게 반복하는 것들...
하지만, 꼭 있어야 하는 Tools~
매번 반복하는 일이니...

MS의 OS를 쓰는 모바일 개발환경 구축이라면 이글 하나로~

MS의 모바일 OS라면 Pocket PC,  WinCE가 있다.
Pocket PC야 기본적인 환경자체가 표준화되어있지만,

WinCE라면... 좀 골치가 아프다.

어쨋든 Pocket PC든 WinCE 4.x든 5.x든

그냥 이 설정은 꼭 해야 한다는 것만 남겨본다.


모바일과 PC간 환경구축의 기본 -   ActiveSync

MS의 OS를 사용하는 PDA를 사용한다면 MS에서 배포하는  ActiveSync는 기본적으로 PC에 설치해둬야 한다.

이 프로그램은 PC와 PDA간 동기화를 시켜주는 프로그램으로, PC에 설치한후 PDA업체에서 제공한는 USB케이블로 PDA와 PC를 연결하기만 하면 자동으로 동기화를 시켜준다.
물론, PDA용 프로그램을 개발한다면 이늠을 설치해야함은 당연지사

MS주소링크 : http://www.microsoft.com/korea/windowsmobile/activesync/activesync45.mspx



PC에서 모바일장비 디버깅하기 - MS .NET Compact Framework

당연한 말이지만, PDA용으로 작성되는 프로그램도 실시간으로 디버깅을 해봐야한다.

PDA환경에서 직접 디버깅을 할려면 반드시 CF(Compact Framework)를 설치해야 한다.

아래의 링크는 Visual Studio 2005용이다. 2003을 사용할때는 다른 버젼을 설치해야 한다.

MS주소링크 : http://www.microsoft.com/downloads/details.aspx?FamilyID=7befd787-9b5e-40c6-8d10-d3a43e5856b2&displaylang=en



ActiveSync없이 무선랜으로 모바일장비와 동기화하기

PDA환경에서 개발을 하다보면 ActiveSync케이블을 사용할 수 없는 경우가 종종있는데...

기본적으로 Visual Studio 이늠이 ActiveSync없이는 디버깅환경을 지원해주지 않는다.

PDA를 다른 장비에 연결을 하게되면 PC와 연결을 할 수가 없는데, 이런경우 디버깅의 방법을 몰라 끙끙앓는 사람이 있다.

실제로 내가 그랬다 ^^

PDA장비를 RF리더기와 RS232C로 연결을 한채로는 디버깅의 방도가 없어... 혼자 속앓이를 했다 ㅡㅜ

아래의 링크로 가보면 무선랜환경의 PDA를 디버깅할 수 있는 방법이 간략하지만 자세히 나와있다.

MSDN링크(영) : http://blogs.msdn.com/vsdteam/archive/2005/04/28/413304.aspx



모바일화면을 PC에서 보면서 제어하기 - Remote Display Control

PDA시스템을 개발하면서 중간보고를 해야 했을 때다.
'일일이 한사람 한사람에게 PDA를 들고다니면서 화면을 보여줘야만 하는가?'

'그냥 PC에서 PDA화면을 빔프로젝터로 쏴줄순 없을까?'

찾아보니 이를 도와주는 프로그램이 있었다.

이글에 첨부한 파일이 그 프로그램인데, 압축을 풀면 프로그램과 사용방법이 담긴 텍스트파일이 있다. 사용이 워낙간단해서 별 도움글은 필요없을 것 같다. ^^
PocketPC 및 Win CE 4.x/5.x에서는 정상적으로 자~알 돌아간다는 것을 직접확인하였다.

Google AdSense

'끄적끄적 > Programming' 카테고리의 다른 글

[XNA] XNA 흐름  (0) 2010.05.17
[Oracle] 순위함수 Rank()  (2) 2009.12.21
[.NET] LC.EXE 오류와 해결책  (11) 2009.06.08
[XNA] Game개발과 XNA - XNA란??  (2) 2008.03.03
[.NET] PDA에서 남은 배터리 백분율 표시하기  (0) 2007.11.05

+ Recent posts