⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 funcontrol.cpp

📁 wince中工程模式用来测试硬件的驱动是否好用
💻 CPP
📖 第 1 页 / 共 3 页
字号:
	//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 + -