亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? funcontrol.cpp

?? wince中工程模式用來測試硬件的驅動是否好用
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
#include "storemgr.h"
#include "funlist.h"
#include "ReportDlg.h"
#include "nled.h"
#include "Winuser.h"
#include "Mmsystem.h"


#include "winceKBhook.h"
 extern BOOL ActivateKBHook(HINSTANCE hInstance, HOOKPROC LLKeyboardHookCallbackFunction);
 extern BOOL DeactivateKBHook();


#include "winioctl.h"

 static volatile BULVERDE_GPIO_REG   *g_pGPIORegs  = NULL;
///*Keypad Backlight On*/
//#define IOCTL_NKPDBKL_ON \
//	CTL_CODE(FILE_DEVICE_KEYBOARD, 0x888, METHOD_BUFFERED, FILE_ANY_ACCESS)
//
///*Keypad Backlight Off*/
//#define IOCTL_NKPDBKL_OFF \
//	CTL_CODE(FILE_DEVICE_KEYBOARD, 0x666, METHOD_BUFFERED, FILE_ANY_ACCESS)



static HRIL hRil ;
static HMODULE s_hRILLib ;
static PFRIL_Initialize s_pfRIL_Initialize;
static PFRIL_Deinitialize s_pfRIL_Deinitialize;
static PFRIL_DevSpecific s_pfRIL_DevSpecific;

int  index=0;
#define  MAX_TIT   30
#define  MAX_ERR   100
const TCHAR g_szSearchCardFlag[] = L"SDMemory";
const TCHAR g_szDefaultPartName[] = L"Part00";
const int MAX_PART_NUM = 4;
HWAVEOUT g_phwo;

typedef struct _PARTINFO_LIST
{
	PARTINFO aPartInfo[MAX_PART_NUM];
	int nNumPart;
}PARTINFO_LIST, *PPARTINFO_LIST;




enum tagLED
{
	
#if 0
	GREENOFF,
	REDON,
	REDOFF,
	GREENON,
#endif
	LEDTEST,
	VIBERATERON,
	VIBERATEROFF
};

#ifdef ZTE_P550A#define FILE_DEVICE_BACKLIGHT            0x300#define IOCTL_BKL_BRIGHTSET      CTL_CODE(FILE_DEVICE_BACKLIGHT, 5, METHOD_BUFFERED, FILE_ANY_ACCESS)#endif

struct BKL_LightSet{	BOOL fDirection;	UINT8 steps;};


HANDLE g_hEvent ;
void CALLBACK ResultCallback(DWORD dwCode, HRESULT hrCmdID, const void* lpData, DWORD cbData, DWORD dwParam);
void CALLBACK NotifyCallback(DWORD dwCode, const void* lpData, DWORD cbData, DWORD dwParam);
DWORD dwDevSpecificCommand = 0;
BOOL rilSucess = FALSE;
TCHAR strReturnData[256];
typedef enum
{ 
	ALLWHITE = 0,
	ALLBLACK,
	ALLBLUE,
	ALLGREEN,
	ALLRED,
	
} PALETTE_COLOR_PAGE;


void CALLBACK ResultCallback(DWORD dwCode, HRESULT hrCmdID, const void* lpData, DWORD cbData, DWORD dwParam)
{
	//調用擴展接口的結果
	//TCHAR strInfo[256];
	char *tmpChar = NULL;

	DWORD index =0;
	DWORD size = 0;
	switch (dwCode)
	{
	case RIL_RESULT_OK:
		rilSucess =TRUE;
		switch(dwDevSpecificCommand)
		{
		case RIL_DEVSPECIFICPARAM_GET_VERSION:
			//MessageBox(NULL,_T("版本號"),_T(""),MB_OK);
			SetCursor(LoadCursor(NULL,IDC_NO));
			tmpChar = (char*)lpData;	
			MultiByteToWideChar(CP_ACP,MB_ERR_INVALID_CHARS,tmpChar,strlen(tmpChar)*sizeof(char),strReturnData,sizeof(strReturnData));
			//MessageBox(NULL,rilReturnData,_T("無線版本號"),MB_OK);
			break;
		case RIL_DEVSPECIFICPARAM_CBAND:

			break;
		default:
			break;
		}
		break;
	case RIL_RESULT_NOCARRIER:
	case RIL_RESULT_NODIALTONE:
	case RIL_RESULT_ERROR:
	case RIL_RESULT_BUSY:
		break;
	}
	(void)SetEvent(g_hEvent);
	//SetCursor(LoadCursor(AfxGetInstanceHandle(),IDC_NO));
	SetCursor(LoadCursor(NULL,IDC_NO));

}


void CALLBACK NotifyCallback(DWORD dwCode, const void* lpData, DWORD cbData, DWORD dwParam)
{
	//主動上報的消息
	WCHAR wszMessage[MAX_PATH] = L"";

	switch (dwCode)
	{
	case RIL_NOTIFY_CONNECT:
	case RIL_NOTIFY_DISCONNECT:
	case RIL_NOTIFY_RING:
		//TRACE3("RIL NotifyCallback = %d .........file:%s,line:%d\r\n", dwCode,__FILE__,__LINE__);
		break;
	}
}


BOOL LoadRILLib()
{
	HRESULT hr;

	g_hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
	if (!g_hEvent) 
	{
		goto Error;
	}

	if (s_hRILLib != NULL) return TRUE;

	s_hRILLib = LoadLibrary(TEXT("\\Windows\\ril.dll"));
	if (s_hRILLib == NULL) goto Error;

	s_pfRIL_Initialize = (PFRIL_Initialize)GetProcAddress(s_hRILLib, L"RIL_Initialize");
	if (s_pfRIL_Initialize == NULL)
		goto Error;

	s_pfRIL_Deinitialize = (PFRIL_Deinitialize)GetProcAddress(s_hRILLib, L"RIL_Deinitialize");
	if (s_pfRIL_Deinitialize == NULL)
		goto Error;

	s_pfRIL_DevSpecific = (PFRIL_DevSpecific)GetProcAddress(s_hRILLib, L"RIL_DevSpecific");
	if (s_pfRIL_DevSpecific == NULL)
		goto Error;

	// Initialize RIL
	//TRACE3(">>>>> Calling RIL_Initialize().........file:%s,line:%d\r\n",0,__FILE__,__LINE__);
	hr = (*s_pfRIL_Initialize)(1, ResultCallback, NotifyCallback, RIL_NCLASS_ALL, NULL, &hRil);//RIL_NCLASS_ALL 那些類型的上報消息
	if (FAILED(hr)) 
	{
		//		MessageBox(0, TEXT(">>>>> Calling RIL_Initialize() Fail\r\n"), TEXT("Caption"), MB_OK);
		//TRACE3("RIL call failed immediately, code = %x.........file:%s,line:%d\r\n", hr,__FILE__,__LINE__);

		goto Error;

	}
	return TRUE;
Error:
	if (hRil) 
	{
		(*s_pfRIL_Deinitialize)(hRil);
		printf("zjh***************RIL s_pfRIL_Deinitialize ..........\r\n");
	}

	if (g_hEvent) 
	{
		(void)CloseHandle(g_hEvent);
	}
	return FALSE;
}
BOOL unLoadRILLib()
{
	if (hRil) 
	{
		(*s_pfRIL_Deinitialize)(hRil);
		hRil = NULL;
		printf("zjh***************RIL s_pfRIL_Deinitialize ..........\r\n");
	}

	if (g_hEvent) 
	{
		(void)CloseHandle(g_hEvent);
		g_hEvent = NULL;
	}
	if (s_hRILLib != NULL)
	{
		FreeLibrary(s_hRILLib);
		s_hRILLib = NULL;
	}

	return TRUE;

}
//設置GPIO輸入輸出,功能
void GPIOSet(volatile BULVERDE_GPIO_REG   *g_pGPIORegs,unsigned char num,unsigned char direct,unsigned char fn)
{  
	if (g_pGPIORegs == NULL)
	{
		return;

	}

	if ( num<32)
	{
		if(direct==1) g_pGPIORegs->GPDR0 |=( 0x1<<num ); 
		else g_pGPIORegs->GPDR0 &=~( 0x1<<num );
	}
	else if (num>=32 && num<64)
	{
		if(direct==1) g_pGPIORegs->GPDR1 |=( 0x1<<(num-32) ); 
		else g_pGPIORegs->GPDR1 &=~( 0x1<<(num-32) );
	} 
	else if (num>=64 && num<96)
	{
		if(direct==1) g_pGPIORegs->GPDR2 |=( 0x1<<(num-64) ); 
		else g_pGPIORegs->GPDR2 &=~( 0x1<<(num-64) ); 
	}
	else if (num>=96 && num<121)
	{
		if (direct==1) g_pGPIORegs->GPDR3 |=( 0x1<<(num-96) ); 
		else g_pGPIORegs->GPDR3 &=~( 0x1<<(num-96) ); 
	}

	if ( num<16)
	{
		g_pGPIORegs->GAFR0_L &=~( 0x3<< (2*num) ); 
		g_pGPIORegs->GAFR0_L |=( fn<< (2*num) ); 
	}
	else if (num>=16 && num<32)
	{
		g_pGPIORegs->GAFR0_U &=~( 0x3<< (2*(num-16)) ); 
		g_pGPIORegs->GAFR0_U |=( fn<< (2*(num-16)) ); 
	}
	else if (num>=32 && num<48)
	{
		g_pGPIORegs->GAFR1_L &=~( 0x3<< (2*(num-32)) ); 
		g_pGPIORegs->GAFR1_L |=( fn<< (2*(num-32)) ); 
	}
	else if (num>=48 && num<64)
	{
		g_pGPIORegs->GAFR1_U &=~( 0x3<< (2*(num-48)) ); 
		g_pGPIORegs->GAFR1_U |=( fn<< (2*(num-48)) ); 
	}
	else if (num>=64 && num<80)
	{
		g_pGPIORegs->GAFR2_L &=~( 0x3<< (2*(num-64)) ); 
		g_pGPIORegs->GAFR2_L |=( fn<< (2*(num-64)) ); 
	}
	else if (num>=80 && num<96)
	{
		g_pGPIORegs->GAFR2_U &=~( 0x3<< (2*(num-80)) ); 
		g_pGPIORegs->GAFR2_U |=( fn<< (2*(num-80)) ); 
	}
	else if (num>=96 && num<112)
	{
		g_pGPIORegs->GAFR3_L &=~( 0x3<< (2*(num-96)) ); 
		g_pGPIORegs->GAFR3_L |=( fn<< (2*(num-96)) ); 
	}
	else if (num>=112 && num<121)
	{
		g_pGPIORegs->GAFR3_U &=~( 0x3<< (2*(num-112)) ); 
		g_pGPIORegs->GAFR3_U |=( fn<< (2*(num-112)) ); 
	}


}

//設置GPIO高低位
void GPIOWrite(volatile BULVERDE_GPIO_REG   *g_pGPIORegs,unsigned char num,unsigned char c)
{  

	if (g_pGPIORegs == NULL)
	{
		return;

	}
	if (c==0)
	{
		if ( num<32)
			g_pGPIORegs->GPCR0 |= ( 0x1<<num ); 
		else if (num>=32 && num<64)
			g_pGPIORegs->GPCR1 |= ( 0x1<<(num-32) ); 
		else if (num>=64 && num<96)
			g_pGPIORegs->GPCR2 |= ( 0x1<<(num-64) ); 
		else if (num>=96 && num<121)
			g_pGPIORegs->GPCR3 |= ( 0x1<<(num-96) ); 
	}
	else 
	{
		if ( num<32)
			g_pGPIORegs->GPSR0 |= ( 0x1<<num ); 
		else if (num>=32 && num<64)
			g_pGPIORegs->GPSR1 |= ( 0x1<<(num-32) ); 
		else if (num>=64 && num<96)
			g_pGPIORegs->GPSR2 |= ( 0x1<<(num-64) ); 
		else if (num>=96 && num<121)
			g_pGPIORegs->GPSR3 |= ( 0x1<<(num-96) );  
	}



}



FUNCTIONDESC(getRadioVer)//TCHAR* getRadioVer(void)
{
	memset(strReturnData,0,sizeof(strReturnData));
	dwDevSpecificCommand = RIL_DEVSPECIFICPARAM_GET_VERSION;//
	rilSucess = FALSE;

	HRESULT hr =  (*s_pfRIL_DevSpecific)(hRil, (BYTE*)(&dwDevSpecificCommand), sizeof(DWORD));
	WAITFORAPICOMPLETION(hr);//
	return TRUE;
Error:
	if (hRil) 
	{
		(*s_pfRIL_Deinitialize)(hRil);
		printf("zjh***************RIL s_pfRIL_Deinitialize ..........\r\n");
	}

	if (g_hEvent) 
	{
		(void)CloseHandle(g_hEvent);
	}
	return FALSE;

}
FUNCTIONDESC(getMemoryInfo)//TCHAR* getMemoryInfo(void)
{
//	if(buf == NULL || len <1)
//	{
//		return FALSE;
//	}
//	TCHAR tmp[128];
	MEMORYSTATUS MemStatus;
	STORE_INFORMATION StoreInfo;
	GlobalMemoryStatus(&MemStatus);
	GetStoreInformation(&StoreInfo);

	memset(strReturnData,0,sizeof(strReturnData));
	swprintf(strReturnData,_T("%d %"),MemStatus.dwMemoryLoad);
//	StringCchCopy(buf,len,tmp);

	//MessageBox(NULL,tmp,_T("內存"),MB_OK);

	return TRUE;


}
FUNCTIONDESC(GPIOControl)
{
	//顯示窗口
	CReportDlg dlg(GPIO_DLG);
	dlg.DoModal();
	memset(strReturnData,0,sizeof(strReturnData));
	return TRUE;

}
FUNCTIONDESC(WakeSleepInfo)
{
	memset(strReturnData,0,sizeof(strReturnData));
	CReportDlg dlg(WAKESLEEP_DLG);
	dlg.DoModal();
	return TRUE;

}
FUNCTIONDESC(OpenCloseWireless)
{
	memset(strReturnData,0,sizeof(strReturnData));

	volatile BULVERDE_GPIO_REG   *g_pGPIORegs =NULL;
	PHYSICAL_ADDRESS RegPA;

	if (g_pGPIORegs == NULL)
	{
		RegPA.QuadPart = BULVERDE_BASE_REG_PA_GPIO;
		g_pGPIORegs = (volatile BULVERDE_GPIO_REG *) MmMapIoSpace(RegPA, 0x400, FALSE);
	}

	BOOL isClosed = FALSE;
	isClosed = g_pGPIORegs->GPLR0&(0x01<<12);


	if (isClosed)
	{

		if(IDOK == MessageBox(NULL,TEXT("無線模塊本來是關閉的,要開啟嗎?"),_T("驅動調試"), MB_ICONQUESTION|MB_OKCANCEL|MB_APPLMODAL|MB_SETFOREGROUND|MB_TOPMOST))
		{

			g_pGPIORegs->GPSR2 |=(0x01<<29);
			Sleep(500);
			g_pGPIORegs->GPCR2 |=(0x01<<29);

			StringCchCopy(strReturnData,sizeof(strReturnData),_T("已開啟"));

		}
	}
	else
	{

		if(IDOK == MessageBox(NULL, TEXT("無線模塊本來是開啟的,要關閉嗎?"),_T("驅動調試"),MB_ICONQUESTION|MB_OKCANCEL|MB_APPLMODAL|MB_SETFOREGROUND|MB_TOPMOST))
		{

			g_pGPIORegs->GPSR2 |=(0x01<<29);
			Sleep(500);
			g_pGPIORegs->GPCR2 |=(0x01<<29);

			StringCchCopy(strReturnData,sizeof(strReturnData),_T("已關閉"));

		}
	}

	if(g_pGPIORegs!=NULL)
		MmUnmapIoSpace ((PVOID)g_pGPIORegs,0x400);	 

	return TRUE;

}
FUNCTIONDESC(DispBattery)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99精品国产热久久91蜜凸| 欧美图区在线视频| 亚洲午夜影视影院在线观看| 精品国内二区三区| 久久久久久99精品| 久久久精品黄色| 国产亚洲精品免费| 国产精品女上位| 一区二区三区91| 男人的天堂久久精品| 国产精品一区二区久久不卡| 欧美人与禽zozo性伦| 欧美日韩黄视频| 久久久影院官网| 亚洲自拍另类综合| 精品一区二区三区欧美| 99久久99久久精品免费看蜜桃| 在线免费观看视频一区| 久久蜜臀中文字幕| 亚洲午夜电影在线观看| 国产乱码精品一区二区三| 色综合久久88色综合天天6| 91精品国产综合久久久久久| 欧美国产精品一区| 午夜天堂影视香蕉久久| 91丝袜高跟美女视频| 精品国产网站在线观看| 日韩国产欧美在线视频| www.视频一区| 久久久99免费| 久久国产福利国产秒拍| 在线一区二区三区四区五区 | 国产无一区二区| 麻豆91在线播放免费| 91国产视频在线观看| 亚洲精品国产a| av电影在线不卡| 亚洲欧美二区三区| 99精品在线观看视频| 国产亚洲1区2区3区| 国产在线精品一区二区| 欧美成va人片在线观看| 日韩激情中文字幕| 日韩一级黄色大片| 美女任你摸久久 | 亚洲1区2区3区视频| 在线精品亚洲一区二区不卡| 国产欧美精品一区| 色妞www精品视频| 亚洲九九爱视频| 欧美综合在线视频| 丝袜美腿高跟呻吟高潮一区| 欧美日韩国产综合草草| 美女网站色91| 国产精品国产三级国产普通话蜜臀 | 日韩福利视频网| 久久久青草青青国产亚洲免观| 高清在线观看日韩| 亚洲最大成人网4388xx| 4438x成人网最大色成网站| 精品一区二区三区香蕉蜜桃| 国产精品美女久久久久高潮| 欧美性猛片aaaaaaa做受| 蜜乳av一区二区| 亚洲日本在线观看| 国产老女人精品毛片久久| 欧美性感一类影片在线播放| 国产精品一区二区在线播放| 不卡的电影网站| 亚洲电影在线免费观看| 综合欧美一区二区三区| 久久久国产午夜精品| 日韩视频免费观看高清完整版在线观看 | 在线观看亚洲精品视频| 成人午夜电影久久影院| 国产不卡一区视频| 国产九九视频一区二区三区| 韩国欧美一区二区| 另类专区欧美蜜桃臀第一页| 视频一区视频二区中文| 亚洲成av人在线观看| 婷婷成人综合网| 舔着乳尖日韩一区| 人人爽香蕉精品| 日韩1区2区日韩1区2区| 日本aⅴ免费视频一区二区三区| 亚洲一级二级三级| 秋霞av亚洲一区二区三| 精品伊人久久久久7777人| 久久成人羞羞网站| 国产不卡在线一区| 99re在线精品| 6080国产精品一区二区| 精品欧美一区二区在线观看| 国产色产综合产在线视频| 中文字幕不卡在线播放| 亚洲精品国产精品乱码不99| 亚洲成人免费电影| 国产一二三精品| 日本韩国一区二区三区| 久久综合久久综合久久综合| 国产精品的网站| 午夜不卡av在线| 99精品在线观看视频| 欧美精品xxxxbbbb| 一区二区三区中文字幕| 极品少妇xxxx偷拍精品少妇| 色综合婷婷久久| 久久久99久久精品欧美| 日日欢夜夜爽一区| 99精品1区2区| 亚洲国产高清在线| 激情综合网av| 欧美一区二区网站| 亚洲一线二线三线久久久| 国产精品夜夜嗨| 欧美成人高清电影在线| 午夜视频一区在线观看| 欧美三片在线视频观看| 亚洲天堂免费在线观看视频| 国产精品18久久久久久久久| 欧美久久高跟鞋激| 日韩av一区二| 宅男噜噜噜66一区二区66| 亚洲激情图片一区| 在线一区二区三区做爰视频网站| 亚洲欧洲日产国码二区| 99re这里都是精品| 成人欧美一区二区三区在线播放| 丁香婷婷综合五月| 国产精品久久久久国产精品日日| 国产麻豆欧美日韩一区| 国产欧美综合在线观看第十页| 国产资源精品在线观看| 久久影音资源网| 99视频在线精品| 舔着乳尖日韩一区| 日韩欧美一区二区视频| 韩国v欧美v日本v亚洲v| 中文一区二区完整视频在线观看| 国产白丝精品91爽爽久久| 国产精品少妇自拍| 在线观看一区不卡| 欧美绝品在线观看成人午夜影视| 国产丝袜欧美中文另类| 国产精品成人免费| 欧美日韩视频在线一区二区| 麻豆精品新av中文字幕| 久久精品亚洲国产奇米99 | 91精品国产一区二区三区蜜臀 | 欧美一区二区三区免费在线看| 麻豆精品在线观看| 一区二区三区中文在线观看| 欧美成人一区二区三区| 欧美性一二三区| 成人ar影院免费观看视频| 青青草精品视频| 亚洲精品免费一二三区| 中文子幕无线码一区tr| 日韩丝袜美女视频| 欧美这里有精品| 91麻豆国产福利精品| 国产91露脸合集magnet| 美国一区二区三区在线播放| 亚洲午夜精品一区二区三区他趣| 中文字幕免费观看一区| 国产日韩欧美激情| 久久综合九色综合97婷婷| 欧美第一区第二区| 日韩一级成人av| 欧美白人最猛性xxxxx69交| 欧美日韩国产综合草草| 在线播放中文字幕一区| 欧美日韩国产片| 91精品国产91热久久久做人人| 欧美日韩卡一卡二| 91精品综合久久久久久| 日韩精品影音先锋| 久久九九影视网| 久久精品免视看| 亚洲欧美在线aaa| 一区二区免费看| 青青国产91久久久久久| 国产福利精品一区| 成人高清免费在线播放| 欧美在线观看视频在线| 欧美二区乱c少妇| 久久久久久一级片| 亚洲精品成人少妇| 日韩av一区二| 99久久综合精品| 欧美一三区三区四区免费在线看 | 国产一区二区三区美女| 91在线精品一区二区三区| 欧美色图一区二区三区| 26uuu成人网一区二区三区| 亚洲免费观看高清完整版在线观看| 亚洲小少妇裸体bbw| 国产大陆a不卡| 日韩欧美成人激情|