?? mdt_aiptestdlg.cpp
字號:
// MDT_AIPTestDlg.cpp : implementation file
//
#include "stdafx.h"
#include "MDT_AIPTest.h"
#include "MDT_AIPTestDlg.h"
#include "aipioctl.h"
#include <winbase.h>
#include <pkfuncs.h>
#include <ceddk.h>
#include <platform.h>
#ifdef __cplusplus
extern "C" {
#endif
#include "xllp_defs.h"
#include "xllp_memctrl.h"
#include "xllp_gpio.h"
#include "xllp_clkmgr.h"
#include "bulverde_gpio.h"
#include "bulverde_base_regs.h"
#ifdef __cplusplus
};
#endif
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
volatile BULVERDE_GPIO_REG *v_pGPIOReg = NULL;
/////////////////////////////////////////////////////////////////////////////
// CMDT_AIPTestDlg dialog
CMDT_AIPTestDlg::CMDT_AIPTestDlg(CWnd* pParent /*=NULL*/)
: CDialog(CMDT_AIPTestDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CMDT_AIPTestDlg)
// 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 CMDT_AIPTestDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CMDT_AIPTestDlg)
DDX_Control(pDX, IDC_DIN_BUTTON, m_DInButton);
DDX_Control(pDX, IDC_DOUT_BUTTON, m_DOutButton);
DDX_Control(pDX, IDC_LED_BUTTON, m_LEDButton);
DDX_Control(pDX, IDC_ADC_BUTTON, m_ADCButton);
DDX_Control(pDX, IDC_LIST, m_ListBox);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CMDT_AIPTestDlg, CDialog)
//{{AFX_MSG_MAP(CMDT_AIPTestDlg)
ON_BN_CLICKED(IDC_AIP_BUTTON, OnAipButton)
ON_BN_CLICKED(IDC_VERSION_BUTTON, OnVersionButton)
ON_WM_CLOSE()
ON_WM_DESTROY()
ON_WM_TIMER()
ON_BN_CLICKED(IDC_ADC_BUTTON, OnAdcButton)
ON_BN_CLICKED(IDC_LED_BUTTON, OnLedButton)
ON_BN_CLICKED(IDC_DOUT_BUTTON, OnDoutButton)
ON_BN_CLICKED(IDC_DIN_BUTTON, OnDinButton)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CMDT_AIPTestDlg message handlers
BOOL CMDT_AIPTestDlg::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
m_LcdSize.cx=::GetSystemMetrics(SM_CXSCREEN);
m_LcdSize.cy=::GetSystemMetrics(SM_CYSCREEN);
MoveWindow(0,0,m_LcdSize.cx,m_LcdSize.cy);
this->BringWindowToTop();
m_hAIP = CreateFile(L"AIP1:", GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
return TRUE; // return TRUE unless you set the focus to a control
}
void CMDT_AIPTestDlg::OnAipButton()
{
// TODO: Add your control notification handler code here
HANDLE m_hDev=NULL;
DWORD dwCode;
BOOL bRc;
DWORD dwBytesReturned;
int i;
DWORD DIOInValue;
DWORD DIOOutValue;
DWORD ADCValue;
DWORD ADCChannel;
SYSTEMTIME st;
m_hDev = CreateFile(L"AIP1:", GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
if(m_hDev==INVALID_HANDLE_VALUE){
RETAILMSG(1,(TEXT("Can't Open [AIP] \r\n")));
return;
}
// DIO Out
DIOOutValue=0x55;
dwCode=IOCTL_AIP_SET_DIO_OUT;
bRc = DeviceIoControl(
m_hDev,
dwCode,
&DIOOutValue,
sizeof(DIOOutValue),
0, 0, &dwBytesReturned, NULL
);
if(bRc)
{
RETAILMSG(1,(TEXT(" DIO Out Value [0x%04x] ["),DIOOutValue));
for(i=0;i<8;i++)
{
if(DIOOutValue & (1 << (7 - i)))
RETAILMSG(1,(TEXT("1")));
else
RETAILMSG(1,(TEXT("0")));
}
RETAILMSG(1,(TEXT("]\r\n")));
}
// Get DIO Out
dwCode=IOCTL_AIP_GET_DIO_OUT;
bRc = DeviceIoControl(
m_hDev,
dwCode,
0,
NULL,
&DIOOutValue,
sizeof(DIOOutValue),
&dwBytesReturned, NULL
);
if(bRc)
{
RETAILMSG(1,(TEXT(" Get DIO Out Value [0x%04x] ["),DIOOutValue));
for(i=0;i<8;i++)
{
if(DIOOutValue & (1 << (7 - i)))
RETAILMSG(1,(TEXT("1")));
else
RETAILMSG(1,(TEXT("0")));
}
RETAILMSG(1,(TEXT("]\r\n")));
}
// Get DIO In
dwCode=IOCTL_AIP_GET_DIO_IN;
bRc = DeviceIoControl(
m_hDev,
dwCode,
0,
NULL,
&DIOInValue,
sizeof(DIOInValue),
&dwBytesReturned, NULL
);
if(bRc)
{
RETAILMSG(1,(TEXT(" Get DIO In Value [0x%04x] ["),DIOInValue));
for(i=0;i<8;i++)
{
if(DIOInValue & (1 << (7 - i)))
RETAILMSG(1,(TEXT("1")));
else
RETAILMSG(1,(TEXT("0")));
}
RETAILMSG(1,(TEXT("]\r\n")));
}
// LED Out
DIOOutValue=0x15;
dwCode=IOCTL_AIP_SET_LED_OUT;
bRc = DeviceIoControl(
m_hDev,
dwCode,
&DIOOutValue,
sizeof(DIOOutValue),
0, 0, &dwBytesReturned, NULL
);
if(bRc)
{
RETAILMSG(1,(TEXT(" LED Out Value [0x%04x] ["),DIOOutValue));
for(i=0;i<5;i++)
{
if(DIOOutValue & (1 << (4 - i)))
RETAILMSG(1,(TEXT("1")));
else
RETAILMSG(1,(TEXT("0")));
}
RETAILMSG(1,(TEXT("]\r\n")));
}
// Get LED Out
dwCode=IOCTL_AIP_GET_LED_OUT;
bRc = DeviceIoControl(
m_hDev,
dwCode,
0, 0,
&DIOInValue,
sizeof(DIOInValue),
&dwBytesReturned, NULL
);
if(bRc)
{
RETAILMSG(1,(TEXT(" Get LED Out Value [0x%04x] ["),DIOInValue));
for(i=0;i<5;i++)
{
if(DIOOutValue & (1 << (4 - i)))
RETAILMSG(1,(TEXT("1")));
else
RETAILMSG(1,(TEXT("0")));
}
RETAILMSG(1,(TEXT("]\r\n")));
}
// ADC Channel 1
dwCode=IOCTL_AIP_GET_ADC_VALUE;
ADCChannel=1;
bRc = DeviceIoControl(
m_hDev,
dwCode,
&ADCChannel,
sizeof(ADCChannel),
&ADCValue,
sizeof(ADCValue),
&dwBytesReturned, NULL
);
if(bRc)
RETAILMSG(1,(TEXT(" Get ADC Value [%d] [%d]\r\n"),ADCChannel,ADCValue));
// ADC Channel 2
dwCode=IOCTL_AIP_GET_ADC_VALUE;
ADCChannel=2;
bRc = DeviceIoControl(
m_hDev,
dwCode,
&ADCChannel,
sizeof(ADCChannel),
&ADCValue,
sizeof(ADCValue),
&dwBytesReturned, NULL
);
if(bRc)
RETAILMSG(1,(TEXT(" Get ADC Value [%d] [%d]\r\n"),ADCChannel,ADCValue));
// ADC Channel 3
dwCode=IOCTL_AIP_GET_ADC_VALUE;
ADCChannel=3;
bRc = DeviceIoControl(
m_hDev,
dwCode,
&ADCChannel,
sizeof(ADCChannel),
&ADCValue,
sizeof(ADCValue),
&dwBytesReturned, NULL
);
if(bRc)
RETAILMSG(1,(TEXT(" Get ADC Value [%d] [%d]\r\n"),ADCChannel,ADCValue));
// ADC Channel 4
dwCode=IOCTL_AIP_GET_ADC_VALUE;
ADCChannel=4;
bRc = DeviceIoControl(
m_hDev,
dwCode,
&ADCChannel,
sizeof(ADCChannel),
&ADCValue,
sizeof(ADCValue),
&dwBytesReturned, NULL
);
if(bRc)
RETAILMSG(1,(TEXT(" Get ADC Value [%d] [%d]\r\n"),ADCChannel,ADCValue));
// Get Boot Version
dwCode=IOCTL_AIP_GET_BOOT_VERSION;
bRc = DeviceIoControl(
m_hDev,
dwCode,
NULL,
0,
&st, sizeof(SYSTEMTIME), &dwBytesReturned, NULL
);
if(bRc)
{
RETAILMSG(1,(TEXT(" BOOT Version : %d/%d/%d %d:%d:%d:%d [%d]\r\n"),
st.wYear,st.wMonth,st.wDay,st.wHour,st.wMinute,st.wSecond,st.wMilliseconds,st.wDayOfWeek));
}
// Get OS Version
dwCode=IOCTL_AIP_GET_OS_VERSION;
bRc = DeviceIoControl(
m_hDev,
dwCode,
NULL,
0,
&st, sizeof(SYSTEMTIME), &dwBytesReturned, NULL
);
if(bRc)
{
RETAILMSG(1,(TEXT(" OS Version : %d/%d/%d %d:%d:%d:%d [%d]\r\n"),
st.wYear,st.wMonth,st.wDay,st.wHour,st.wMinute,st.wSecond,st.wMilliseconds,st.wDayOfWeek));
}
if(m_hDev){
CloseHandle(m_hDev);
m_hDev = NULL;
}
}
void CMDT_AIPTestDlg::OnVersionButton()
{
// TODO: Add your control notification handler code here
USHORT Version[100];
DWORD dwCode;
SYSTEMTIME st;
DWORD dwBytesReturned;
BOOL bRc;
memset(Version,0x00,100);
if(m_hAIP)
{
dwCode=IOCTL_AIP_GET_BOOT_VERSION;
bRc = DeviceIoControl(
m_hAIP,
dwCode,
NULL,
0,
&st, sizeof(SYSTEMTIME), &dwBytesReturned, NULL
);
m_ListBox.AddString(_T("Boot Version"));
if(bRc)
{
wsprintf(Version,_T("%d/%d/%d %d:%d:%d:%d [%d]"),
st.wYear,st.wMonth,st.wDay,st.wHour,st.wMinute,st.wSecond,st.wMilliseconds,st.wDayOfWeek);
m_ListBox.AddString(Version);
}
else
{
m_ListBox.AddString(_T("Boot AIP Call Fail"));
}
dwCode=IOCTL_AIP_GET_OS_VERSION;
bRc = DeviceIoControl(
m_hAIP,
dwCode,
NULL,
0,
&st, sizeof(SYSTEMTIME), &dwBytesReturned, NULL
);
m_ListBox.AddString(_T("OS Version"));
if(bRc)
{
wsprintf(Version,_T("%d/%d/%d %d:%d:%d:%d [%d]"),
st.wYear,st.wMonth,st.wDay,st.wHour,st.wMinute,st.wSecond,st.wMilliseconds,st.wDayOfWeek);
m_ListBox.AddString(Version);
}
else
{
m_ListBox.AddString(_T("OS AIP Call Fail"));
}
}
else
{
m_ListBox.AddString(_T("AIP Handle Fail"));
}
m_ListBox.SetCurSel(m_ListBox.GetCount() - 1);
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -