📄 funcontrol.cpp
字号:
//g_ErrorLog.WriteLog(L"waveOutMessage 0x450 LoopOn has been send <receiver>!");
//send message 0x452 to open the receiver
waveOutMessage(0,0x452/*MESSAGE_RECEIVER*/,0,0);
//ERR_TRACE(L"waveOutMessage 0x452 LoopOn has been send <receiver>!");
//g_ErrorLog.WriteLog(L"waveOutMessage 0x452 LoopOn has been send <receiver>!");
DWORD dwChannels = 1; // default to mono
DWORD dwBitsPerSample = 16; // default to 16-bit samples
DWORD dwSampleRate = 11025; // default to 11.025KHz sample rate
DWORD dwDeviceId = WAVE_MAPPER; // capture from any available device
// set up the wave format structure
WAVEFORMATEX wfx;
wfx.cbSize = 0;
wfx.wFormatTag = WAVE_FORMAT_PCM;
wfx.wBitsPerSample = (WORD) dwBitsPerSample;
wfx.nSamplesPerSec = dwSampleRate;
wfx.nChannels = (WORD) dwChannels;
wfx.nBlockAlign = wfx.nChannels * wfx.wBitsPerSample / 8;
wfx.nAvgBytesPerSec = wfx.nBlockAlign * wfx.nSamplesPerSec;
MMRESULT mr = waveOutOpen(&g_phwo, dwDeviceId, &wfx, NULL , NULL, CALLBACK_NULL);
if(mr != MMSYSERR_NOERROR)
{
//ERR_TRACE(L"WaveOutOpen failed");
return mr;
}
BOOL bRet = FALSE;
bRet = PlaySound(L"\\Windows\\Lowbatt.wav", NULL, SND_ASYNC | SND_LOOP);
if (!bRet)
{
//BASE_TRACE(L" Receiver\\Windows\\Lowbatt.wav");
//g_ErrorLog.WriteLog(L"Receiver :PlaySound \\Windows\\Lowbatt.wav error");
}
else
{
//BASE_TRACE(L"Receiver :PlaySound \\Windows\\Lowbatt.wav sucessful!");
//g_ErrorLog.WriteLog(L"Receiver :PlaySound \\Windows\\Lowbatt.wav sucessful!");
}
return bRet;
}
/**
* Method call Loopback to Control the Loop Off
* @param none
* @TRUE indicates succeed. FALSE indicates failure.
*/
BOOL ReceiverOff(void)
{
//send message 0x451 to change the waveout device from to receiver to speaker
BOOL bRet = PlaySound(NULL, NULL, SND_ASYNC | SND_LOOP);
if (!bRet)
{
//ERR_TRACE(L"Receiver :PlaySound NULL error!");
//g_ErrorLog.WriteLog(L"Receiver :PlaySound NULL error!");
}
else
{
//BASE_TRACE(L"Receiver :PlaySound NULL sucessful!");
//g_ErrorLog.WriteLog(L"Receiver :PlaySound NULL sucessful!");
}
MMRESULT mr = waveOutReset(g_phwo);
if (mr != MMSYSERR_NOERROR)
{
//ERR_TRACE(L"warning: waveOutReset failed");
}
mr = waveOutClose(g_phwo);
if (mr != MMSYSERR_NOERROR)
{
//ERR_TRACE(L"warning: waveOutClose failed");
}
//close the control of waveout device
waveOutMessage(0,0x453/*MESSAGE_CLOSE*/,0,0);
//BASE_TRACE(L"waveOutMessage 0x453 LoopOff has been send <receiver>!");
//g_ErrorLog.WriteLog(L"waveOutMessage 0x453 LoopOff has been send <receiver>!");
return bRet;
}
#endif
BOOL Loopback(void)
{
//return waveInMessage(0, 10036, 0, 0);
MessageBox(NULL,L"等待驱动具体实现",L"回路测试",MB_OK);
return TRUE;
}
static BOOL KeyLight(BOOL openklt)
{
PHYSICAL_ADDRESS RegPA;
if (g_pGPIORegs == NULL)
{
RegPA.QuadPart = BULVERDE_BASE_REG_PA_GPIO;
g_pGPIORegs = (volatile BULVERDE_GPIO_REG *) MmMapIoSpace(RegPA, 0x400, FALSE);
}
//printf("setGPIO37 = %d \r\n",g_pGPIORegs->GPLR1&(0x01<<5));
if (openklt)
{
g_pGPIORegs->GPSR0 |= XLLP_BIT_19/*GPSR1 |=(0x01<<5)*/;
//MessageBox(NULL,TEXT("GPIO37 HIGH"), TEXT("完成"), MB_OK);
}
else
{
//MessageBox(NULL,TEXT("GPIO37 LOW"), TEXT("完成"), MB_OK);
g_pGPIORegs->GPCR0 |= XLLP_BIT_19/*GPCR1 |=(0x01<<5)*/;
}
return TRUE;
}
BOOL Backligth(BOOL openbkl)
{
BKL_LightSet backlight_set;
HANDLE devHandle= CreateFile(L"BKL1:",
GENERIC_WRITE | GENERIC_READ,
0,
NULL,
OPEN_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
NULL);
if(INVALID_HANDLE_VALUE == devHandle)
{
MessageBox(NULL,_T("Open Fail!!"), _T("Test"),MB_OK);
return 0;
}
if (openbkl)
{
backlight_set.fDirection=1;
backlight_set.steps=22;
DeviceIoControl(devHandle,IOCTL_BKL_BRIGHTSET,LPVOID(&backlight_set),sizeof(struct BKL_LightSet),NULL,0,NULL,NULL);
}
else
{
backlight_set.fDirection=0;
backlight_set.steps=8;
DeviceIoControl(devHandle,IOCTL_BKL_BRIGHTSET,LPVOID(&backlight_set),sizeof(struct BKL_LightSet),NULL,0,NULL,NULL);
}
return TRUE;
}
FunControl hwTestFunControl[] =
{
{_T(""),NULL},
{_T("lcd"),EMLCDTest},
{_T("key"),EMKEYTest},
{NULL,NULL }
};
INT_PTR CALLBACK HWTestDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
//TCHAR text[256] ;
TCHAR *temp = NULL;
//DWORD ret;
switch (message)
{
case WM_INITDIALOG:
{
/*STLOG_PROFILE_BLOCK*/;
#if 0
SetWindowText(hDlg, tszTitle);
SetForegroundWindow(hDlg);
SetFocus(GetDlgItem(hDlg, IDC_LIST1));
STLOG_PROFILE_CHECKPOINT;
#endif
//创建菜单
//SHMENUBARINFO mbi;
//memset(&mbi, 0, sizeof(SHMENUBARINFO));
//mbi.cbSize= sizeof(SHMENUBARINFO);
//mbi.hwndParent= hDlg;
//mbi.dwFlags= SHCMBF_HMENU /*SHCMBF_HIDESIPBUTTON */;
//mbi.nToolBarId= IDR_MENU1;
//mbi.hInstRes= g_hInst;
//mbi.nBmpId= 0;
//mbi.cBmpImages= 0;
//if (!SHCreateMenuBar(&mbi))
//{
// g_hWndMenuBar2 = NULL;
//}
//else
//{
// g_hWndMenuBar2 = mbi.hwndMB;
//}
//STLOG_PROFILE_CHECKPOINT;
//SHFullScreen(hDlg, SHFS_HIDETASKBAR | SHFS_HIDESTARTICON| SHFS_HIDESIPBUTTON );
SHINITDLGINFO shidi;
shidi.dwMask = SHIDIM_FLAGS;
shidi.dwFlags = SHFS_HIDETASKBAR | SHFS_HIDESTARTICON| SHFS_HIDESIPBUTTON|SHIDIF_DONEBUTTON | SHIDIF_SIPDOWN|SHIDIF_SIZEDLG |SHIDIF_FULLSCREENNOMENUBAR |SHIDIF_SIPDOWN/*|SHIDIF_SIZEDLGFULLSCREEN | SHIDIF_EMPTYMENU */;
shidi.hDlg = hDlg;
SHInitDialog(&shidi);
//::SetWindowPos(hDlg,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
DWORD dwState = (SHFS_HIDETASKBAR|SHFS_HIDESIPBUTTON|SHFS_HIDESTARTICON);
SHFullScreen(hDlg,dwState);
SetWindowText(GetForegroundWindow(), L"工程模式");
//UpdateWindow(hDlg);
BOOL tem= EM_LCDTest();
dwState = (SHFS_SHOWSTARTICON|SHFS_SHOWTASKBAR);
SHFullScreen(hDlg,dwState);
index=1;
//DWORD temerr=GetLastError();
//return FullScreen(GetForegroundWindow());
}
return (INT_PTR)TRUE;
case WM_WININICHANGE:
return TRUE;
//break;
case WM_COMMAND:
if (LOWORD(wParam) == IDOK)
{
//DestroyWindow(hDlg);
EndDialog(hDlg, LOWORD(wParam));
return TRUE;
}
if (LOWORD(wParam) == ID_NEXT)
{
index++;
//index=8;
//DestroyWindow(hDlg);
//EndDialog(hDlg, LOWORD(wParam));
/*MessageBox(NULL,L"进入下一项测试",L"工程模式",MB_OK);*/
if (2 == index)
{
//SetWindowText(GetForegroundWindow(), L"工程模式");
BOOL bserch = SearchCard();
if (!bserch)
{
MessageBox(NULL,L"不存在存储卡",L"存储卡测试",MB_OK);
}
//index++;
}
if (3 ==index)
{
CAMERA();
//index++;
}
if (4 == index)
{
SetWindowText(GetForegroundWindow(), L"LED测试");
LED(LEDTEST);
//index++;
}
if (5 == index)
{
SetWindowText(GetForegroundWindow(), L"振动测试");
LED(VIBERATERON);
//index++;
}
if (6 == index)
{
RingStonePlay(TRUE);
Sleep(3000);
RingStonePlay(FALSE);
// index=0;
}
if (7 == index)
{
Loopback();
}
if (8 == index)
{
KeyLight(FALSE);
Sleep(2000);
KeyLight(TRUE);
MessageBox(NULL,L"键盘灯测试结束",L"工程模式",MB_OK);
}
if (9 == index)
{
Backligth(TRUE);
Sleep(2000);
Backligth(FALSE);
MessageBox(NULL,L"背光灯测试",L"工程模式",MB_OK);
MessageBox(NULL,L"测试项结束",L"工程模式",MB_OK);
}
SetWindowText(GetForegroundWindow(), L"工程模式");
return TRUE;
}
//处理按下一项操作
/*else if(LOWORD(wParam) == )
{
index++;
}*/
break;
case WM_CLOSE:
DestroyWindow(hDlg);
//EndDialog(hDlg, message);
//lineSendUSSD(thisLine,NULL,0,LINEUSSDFLAG_ENDSESSION);
//SHNotificationRemove(&tempGuid, 1);
return TRUE;
case WM_DESTROY:
//CommandBar_Destroy(g_hWndMenuBar2);
//PostQuitMessage(0);
//STLOG_STOP;
break;
#ifdef _DEVICE_RESOLUTION_AWARE
case WM_SIZE:
{
#if 0
//STLOG_PROFILE_BLOCK;
DRA::RelayoutDialog(
g_hInst,
hDlg,
DRA::GetDisplayMode() != DRA::Portrait ? MAKEINTRESOURCE(IDD_POCKETPC_LANDSCAPE) : MAKEINTRESOURCE(IDD_POCKETPC_LANDSCAPE));
printf("resize: 0x%x width : %d height: %d\n",wParam,LOWORD (lParam),HIWORD (lParam));
if(oldWidth == LOWORD (lParam) && oldHeight == HIWORD (lParam))
{
//return TRUE;
}
else
{
oldWidth = LOWORD (lParam) ;
oldHeight = HIWORD (lParam);
}
// Get the owner window and dialog box rectangles.
//if ((hwndOwner = GetParent(hwndDlg)) == NULL)
//{
RECT rcDlg, rcEdit,rcList,rcStatic;
GetClientRect(hDlg, &rcDlg);
GetWindowRect(GetDlgItem(hDlg,IDC_EDIT1),&rcEdit);
DWORD Height = (rcEdit.bottom - rcEdit.top) ;
SetRect(&rcEdit,
rcDlg.left + 10,
rcDlg.bottom - 10 - Height,
rcDlg.right -10,
rcDlg.bottom - 10);
SetRect(&rcStatic,
rcDlg.left + 10,
rcEdit.top - 10 -20,
rcDlg.right -10,
rcEdit.top - 10);
SetRect(&rcList,
rcDlg.left + 10,
rcDlg.top+5,
rcDlg.right -10,
rcStatic.top - 10);
SetWindowPos(GetDlgItem(hDlg,IDC_EDIT1 ),
HWND_TOP,
rcEdit.left,
rcEdit.top,
rcEdit.right - rcEdit.left,
rcEdit.bottom - rcEdit.top,
0);
SetWindowPos(GetDlgItem(hDlg,IDC_STATIC11),
HWND_TOP,
rcStatic.left,
rcStatic.top,
0,
0 ,
SWP_NOSIZE);
SetWindowPos(GetDlgItem(hDlg,IDC_LIST1),
HWND_TOP,
rcList.left,
rcList.top,
rcList.right - rcList.left,
rcList.bottom - rcList.top,
0);
MoveWindow(GetDlgItem(hDlg,IDC_EDIT1 ),
rcEdit.left,
rcEdit.top,
rcEdit.right - rcEdit.left,
rcEdit.bottom - rcEdit.top,
TRUE);
MoveWindow(GetDlgItem(hDlg,IDC_STATIC11 ),
rcStatic.left,
rcStatic.top,
rcStatic.right - rcStatic.left,
rcStatic.bottom - rcStatic.top,
TRUE);
MoveWindow(GetDlgItem(hDlg,IDC_LIST1 ),
rcList.left,
rcList.top,
rcList.right - rcList.left,
rcList.bottom - rcList.top,
TRUE);
STLOG_PROFILE_CHECKPOINT;
#endif
}
break;
#endif
}
return (INT_PTR)FALSE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -