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

📄 test2dlg.cpp

📁 FM RDS Receiver control Test Program. Under WinCE.
💻 CPP
字号:
// Test2Dlg.cpp : implementation file
//

#include "stdafx.h"
#include "Test2.h"
#include "Test2Dlg.h"
#include "SDK_Defs.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CTest2Dlg dialog

CTest2Dlg::CTest2Dlg(CWnd* pParent /*=NULL*/)
	: CDialog(CTest2Dlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CTest2Dlg)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CTest2Dlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CTest2Dlg)
		// NOTE: the ClassWizard will add DDX and DDV calls here
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CTest2Dlg, CDialog)
	//{{AFX_MSG_MAP(CTest2Dlg)
	ON_BN_CLICKED(IDC_BUT_GetInfo, OnBUTGetInfo)
	ON_BN_CLICKED(IDC_BUT_PowerUp, OnBUTPowerUp)
	ON_BN_CLICKED(IDC_BUT_PowerDown, OnBUTPowerDown)
	ON_BN_CLICKED(IDC_BUT_SeekUp, OnBUTSeekUp)
	ON_BN_CLICKED(IDC_BUT_SeekDown, OnBUTSeekDown)
	ON_BN_CLICKED(IDC_BUT_GetFreq, OnBUTGetFreq)
	ON_BN_CLICKED(IDC_BUT_SetFreq, OnBUTSetFreq)
	ON_BN_CLICKED(IDC_BUT_ReadRDS, OnBUTReadRDS)
	ON_WM_TIMER()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTest2Dlg message handlers

BOOL CTest2Dlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon
	
	CenterWindow(GetDesktopWindow());	// center to the hpc screen

	// TODO: Add extra initialization here
	g_hRadioDev = CreateFile( TEXT("RAD1:"), GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);

	SetTimer(1,1000, 0);

	if(g_hRadioDev != INVALID_HANDLE_VALUE)
	{
		return	FALSE;
	}
	else
	{
		return	TRUE;
	}
	
//	return TRUE;  // return TRUE  unless you set the focus to a control
}

BOOL CTest2Dlg::DestroyWindow() 
{
	// TODO: Add your specialized code here and/or call the base class
	CloseHandle(g_hRadioDev);
	return CDialog::DestroyWindow();
}

///////////////////////////////////////////////////////////////////////////////////////////////////////
//	操作函数接口测试示例	
//	来自示例文件
void CTest2Dlg::OnBUTGetInfo() 
{
	// TODO: Add your control notification handler code here
	unsigned short Info[16];
	for ( int i=0;i<16;i++)
		Info[i]=0;
	DWORD BytesReturned;
	if(g_hRadioDev != INVALID_HANDLE_VALUE)
	{

		DeviceIoControl( g_hRadioDev, IOCTL_RADIO_GET_INFO, NULL,0,Info,sizeof(Info),&BytesReturned,(LPOVERLAPPED)NULL	);
		for(int i=0;i<16;i++)
		{
			TRACE(_T("RADIO : reg %d : %04X \n"),i,Info[i]);
		}
	}
}

void CTest2Dlg::OnBUTPowerUp() 
{
	// TODO: Add your control notification handler code here
	if(g_hRadioDev != INVALID_HANDLE_VALUE)
	{
		DWORD	BytesReturned;
		DeviceIoControl( g_hRadioDev, IOCTL_RADIO_POWER_UP, NULL,0,NULL,0,&BytesReturned,(LPOVERLAPPED)NULL);
	}
	else
	{
//		return(0);
//		RETAILMSG(RADIODBG,(L"RADIO : Open Driver NG\r\n"));
	}
	
}

void CTest2Dlg::OnBUTPowerDown() 
{
	// TODO: Add your control notification handler code here
	if(g_hRadioDev != INVALID_HANDLE_VALUE)
	{
		DWORD	BytesReturned;
		DeviceIoControl( g_hRadioDev, IOCTL_RADIO_POWER_DOWN, NULL,0,NULL,0,&BytesReturned,(LPOVERLAPPED)NULL );
	}
	else
	{
//		return(0);
//		RETAILMSG(RADIODBG,(L"RADIO : Open Driver NG\r\n"));
	}
	
}

void CTest2Dlg::OnBUTSeekUp() 
{
	// TODO: Add your control notification handler code here
	if(g_hRadioDev != INVALID_HANDLE_VALUE)
	{
		DWORD	BytesReturned;
		DeviceIoControl( g_hRadioDev, IOCTL_RADIO_SEEK_UP, NULL,0,NULL,0,&BytesReturned,(LPOVERLAPPED)NULL);	
	}
	OnBUTGetFreq();
}

void CTest2Dlg::OnBUTSeekDown() 
{
	if(g_hRadioDev != INVALID_HANDLE_VALUE)
	{
		DWORD	BytesReturned;
		DeviceIoControl( g_hRadioDev, IOCTL_RADIO_SEEK_DOWN, NULL,0,NULL,0,&BytesReturned,(LPOVERLAPPED)NULL);
	}
	OnBUTGetFreq();
}



void CTest2Dlg::OnBUTGetFreq() 
{
	// TODO: Add your control notification handler code here
	CString	aa=_T("Non");
	if(g_hRadioDev != INVALID_HANDLE_VALUE)
	{
		DWORD	BytesReturned;
		unsigned short Freq;
		DeviceIoControl( g_hRadioDev, IOCTL_RADIO_GET_FREQ, NULL,0,&Freq,sizeof(Freq),&BytesReturned,(LPOVERLAPPED)NULL);
		aa.Format(_T("%d"), Freq);
		TRACE(_T("Current Freq =%d\n"), Freq);
	}
	GetDlgItem(IDC_ED_Freq)->SetWindowText(aa);
}

void CTest2Dlg::OnBUTSetFreq() 
{
	// TODO: Add your control notification handler code here
	if(g_hRadioDev != INVALID_HANDLE_VALUE)
	{
		DWORD	BytesReturned;
//		DeviceIoControl( g_hRadioDev, IOCTL_RADIO_SEEK_DOWN, NULL,0,NULL,0,&BytesReturned,(LPOVERLAPPED)NULL);
	}
	else
	{
//		return(0);
//		RETAILMSG(RADIODBG,(L"RADIO : Open Driver NG\r\n"));
	}
}

void CTest2Dlg::OnBUTReadRDS() 
{
	// TODO: Add your control notification handler code here
	int i;
	char buf[1024]={0,};
	DWORD BytesRead;
	CString	aa=_T("Non");
	if(ReadFile(g_hRadioDev, buf, 1024, &BytesRead, NULL))
	{
		GetDlgItem(IDC_ED_RDSRead)->SetWindowText(_T("AAAAAAA"));
		aa.Format(_T("Rd=%d"), BytesRead);
		TRACE(_T("\tRead RDS [%d]"), BytesRead);
		for(i=0;i<1024;i++)
		{
			TRACE(_T(" %02X"),buf[i]);
		}
		TRACE(_T("\n"));
	}
	GetDlgItem(IDC_ED_RDSRead)->SetWindowText(aa);
}

void CTest2Dlg::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	if 	( nIDEvent == 1 )
	{
		static	int icount=0;
		TRACE(_T("Timer [%d] !\n"), icount++);
		if ( icount>100 )
			icount=0;
		OnBUTReadRDS();
	}
	CDialog::OnTimer(nIDEvent);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -