繼上回的無腦driver心得之後
這次來講講app心得
原本我是寫了四個測試用的應用程式來測試這兩個led
全亮 全暗 紅亮 藍亮 不過老實說 這樣子很麻煩!!!
每一次都要點一次程式 這樣子一點都沒有專業的感覺
所以就在想 如果能做成一個大對話視窗
我敲一個button 它就一種動作
這樣子我做四個button就好了
於是繼大鳥育成計畫之後 又一個無聊的修練正在進行...
思考完畢 就拿了書裡的範例程式來改
原本的測試程式是從網頁上參考來的 : WinCE 5.0邊做邊學(8)
除了參照範例程式之外 原本的driver要在 XXX_Write()裡加入修改GPBDAT的程式碼 DWORD dwret=min(BUFSIZE,BufferLength);
接著是直接把範例程式做大修改
wcsncpy(buffer,(LPWSTR)pBuffer,dwret);
EnterCriticalSection(&pGLD->RegCS);
pGLD->pIOPReg->GPBDAT &= ~(0x07<<1);
pGLD->pIOPReg->GPBDAT |= (*pBuffer<<2);
LeaveCriticalSection(&pGLD->RegCS);
參考範本 WINDOWS CE.NET 程式設計 第三版 Chap4-CtlView
主要是利用按鈕視窗 所以先修改CtlView.cpp將後面幾個視窗關掉
[Line 34] TCHAR *szBtnTitle[] = {TEXT ("Buttons")};
不過這只是暫時性的修改 所以其它看似用不到的檔案還是有link到的樣子
TCHAR *szCtlWnds[] = {BTNWND};
要從其它地方修改的樣子
接下來是修改BtnWnd.cpp
[Line 26] CTLWNDSTRUCT Btns [] = {
其餘Mark掉
{TEXT ("BUTTON"), IDC_PUSHBTN_ALLCLEAR, TEXT ("LED Clear"),
10, 10, 120, 23, BS_PUSHBUTTON | BS_NOTIFY},
{TEXT ("BUTTON"), IDC_PUSHBTN_ALLON, TEXT ("LED All"),
10, 40, 120, 23, BS_PUSHBUTTON | BS_NOTIFY},
{TEXT ("BUTTON"), IDC_PUSHBTN_BLUEON, TEXT ("LED Blue"),
10, 70, 120, 23, BS_PUSHBUTTON | BS_NOTIFY},
{TEXT ("BUTTON"), IDC_PUSHBTN_REDON, TEXT ("LED RED"),
10, 100, 120, 23, BS_PUSHBUTTON | BS_NOTIFY}, };
[Line 142]for (i = 0; i < dim(nlBtn); i++) {
將整個for迴圈改寫成上述樣子即可
if (HIWORD (wParam) == nlBtn[i].wNotification) {
HANDLE handle=CreateFile(_T("GLD1:"),GENERIC_READ|GENERIC_WRITE,
0,NULL,OPEN_EXISTING,0,NULL);
ASSERT(handle);
DWORD ret=0;
TCHAR pstr[1];
switch(LOWORD (wParam)){
case IDC_PUSHBTN_ALLCLEAR:
pstr[0]=0;
break;
case IDC_PUSHBTN_ALLON:
pstr[0]=3;
break;
case IDC_PUSHBTN_BLUEON:
pstr[0]=2;
break;
case IDC_PUSHBTN_REDON:
pstr[0]=1;
break;
}
WriteFile(handle,pstr,(_tcslen(pstr)+1)*sizeof(TCHAR),&ret,NULL);
CloseHandle(handle);
lstrcpy (szOut, nlBtn[i].pszLabel);
break;
}
}
最後,還要修改CtlView.h
[Line 39]#define IDC_PUSHBTN_ALLCLEAR 100
將原本的 101~106Mark起來 改用自行定義的四個button狀態
#define IDC_PUSHBTN_ALLON 101
#define IDC_PUSHBTN_BLUEON 102
#define IDC_PUSHBTN_REDON 103
這樣子修改後 應該就可以利用四個button來控制紅藍燈了 我讓紅燈亮啦 我讓藍燈亮啦 我讓他們全滅啦 我又讓他們亮起來啦
打我啊笨蛋 (冷.....-_-)
2008-04-28
wince LED (2)App篇
posted at
21:04
Type: master life
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言