📄 mp270app.cpp
字号:
// mp270app.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <conio.h>
#include "windows.h" // 应加入的头文件
#include "winioctl.h" // 应加入的头文件
#include <conio.h>
#include <stdlib.h>
#include <winbase.h>
#include "..\include\io_nt.h"
#include "..\include\epp_io_nt_app.h" //nt驱动头文件
#include "mp270_nt.h" //nt驱动头文件
HINSTANCE hDLL; //DLL句柄
HANDLE NTportio=NULL; //NT IO驱动 句柄--->暂定为全局变量,自定义时,可以自己传递参数
unsigned short ad_data[1000000];
int cccc=0;
int k;
int main(int argc, char* argv[])
{
char *dll_name="aciont.dll";//动态连接库名
hDLL=LoadLibrary(dll_name); //调入DLL ,动态调用
if(hDLL!=NULL){
if((int)hDLL<31){
printf("%s未找到!", dll_name);
}else{
printf("%s已调入。", dll_name);
#include "..\include\io_nt_func.h"
//#include "..\include\epp_io_nt_func.h" //nt驱动头文件
#include "mp270_nt.h" //nt驱动头文件
//------------------------ NT IO Driver -----------------------------------
(FARPROC &)AC_OpenDriver=GetProcAddress(hDLL,"AC_OpenDriver");
(FARPROC &)AC_CloseDriver=GetProcAddress(hDLL,"AC_CloseDriver");
(FARPROC &)AC_Version=GetProcAddress(hDLL,"AC_Version");
(FARPROC &)AC_inp=GetProcAddress(hDLL,"AC_inp");
(FARPROC &)AC_inpw=GetProcAddress(hDLL,"AC_inpw");
(FARPROC &)AC_inps=GetProcAddress(hDLL,"AC_inps");
(FARPROC &)AC_inpws=GetProcAddress(hDLL,"AC_inpws");
(FARPROC &)AC_outp=GetProcAddress(hDLL,"AC_outp");
(FARPROC &)AC_outpw=GetProcAddress(hDLL,"AC_outpw");
(FARPROC &)AC_outps=GetProcAddress(hDLL,"AC_outps");
(FARPROC &)AC_outpws=GetProcAddress(hDLL,"AC_outpws");
//---------------- EPP PORT FUNCTION ---------------------------
(FARPROC &)EPP_init=GetProcAddress(hDLL,"EPP_init");
(FARPROC &)EPP_inp=GetProcAddress(hDLL,"EPP_inp");
(FARPROC &)EPP_inps=GetProcAddress(hDLL,"EPP_inps");
(FARPROC &)EPP_inpws=GetProcAddress(hDLL,"EPP_inpws");
(FARPROC &)EPP_outp=GetProcAddress(hDLL,"EPP_outp");
(FARPROC &)EPP_outps=GetProcAddress(hDLL,"EPP_outps");
(FARPROC &)EPP_outpws=GetProcAddress(hDLL,"EPP_outpws");
//----------------- MP270 Function -------------------------------
(FARPROC &)MP270_init=GetProcAddress(hDLL,"MP270_init");
(FARPROC &)MP270_outp=GetProcAddress(hDLL,"MP270_outp");
(FARPROC &)MP270_outpw=GetProcAddress(hDLL,"MP270_outpw");
(FARPROC &)MP270_outps=GetProcAddress(hDLL,"MP270_outps");
(FARPROC &)MP270_outpws=GetProcAddress(hDLL,"MP270_outpws");
(FARPROC &)MP270_inp=GetProcAddress(hDLL,"MP270_inp");
(FARPROC &)MP270_inps=GetProcAddress(hDLL,"MP270_inps");
(FARPROC &)MP270_inpws=GetProcAddress(hDLL,"MP270_inpws");
(FARPROC &)MP270_State=GetProcAddress(hDLL,"MP270_State");
(FARPROC &)MP270_Rew=GetProcAddress(hDLL,"MP270_Rew");
(FARPROC &)MP270_ReadData=GetProcAddress(hDLL,"MP270_ReadData");
(FARPROC &)MP270_ReadDataWord=GetProcAddress(hDLL,"MP270_ReadDataWord");
(FARPROC &)MP270_SetMode=GetProcAddress(hDLL,"MP270_SetMode");
(FARPROC &)MP270_SetChMode=GetProcAddress(hDLL,"MP270_SetChMode");
(FARPROC &)MP270_Run=GetProcAddress(hDLL,"MP270_Run");
(FARPROC &)MP270_DAout=GetProcAddress(hDLL,"MP270_DAout");
(FARPROC &)MP270_Set8254=GetProcAddress(hDLL,"MP270_Set8254");
(FARPROC &)MP270_Set8255Mode=GetProcAddress(hDLL,"MP270_Set8255Mode");
(FARPROC &)MP270_Write8255=GetProcAddress(hDLL,"MP270_Write8255");
(FARPROC &)MP270_Read8255=GetProcAddress(hDLL,"MP270_Write8255");
//-----------------------------------------------------------------
if(AC_OpenDriver==NULL){
printf("\nAC_OpenDriver函数不存在!");
}else{
printf("\nAC_OpenDriver函数存在。");
NTportio=AC_OpenDriver(); //获取IO驱动句柄
if(NTportio==NULL)
{
printf("Drivers is not exist!!!\n");//未成功加载驱动
getch();
FreeLibrary(hDLL);//清DLL句柄
exit(0);//退出
}
if(AC_Version==NULL){
printf("\nAC_Version函数不存在!");
}else{
printf("\nAC_Version函数存在。");
char Version[100];
AC_Version(NTportio, Version);//ok
printf("%s\n",Version);
}
//检查EPP系列函数
if(EPP_init==NULL
||EPP_inp==NULL || EPP_inps==NULL || EPP_inpws==NULL
|| EPP_outp==NULL || EPP_outps==NULL|| EPP_outpws==NULL
)
{
printf("\nEPP系列函数不存在!");
}else{
printf("\nEPP系列函数存在。\n\n");
}
//检查MP270系列函数
if(MP270_init==NULL
||MP270_inp==NULL || MP270_inps==NULL || MP270_inpws==NULL
|| MP270_outp==NULL || MP270_outpw==NULL || MP270_outps==NULL
||MP270_outpws==NULL||MP270_init==NULL || MP270_State==NULL
||MP270_SetChMode==NULL || MP270_Rew==NULL || MP270_ReadData==NULL
||MP270_ReadDataWord==NULL || MP270_SetMode==NULL|| MP270_Run==NULL
|| MP270_DAout==NULL || MP270_Set8254==NULL || MP270_Set8255Mode==NULL
|| MP270_Write8255==NULL || MP270_Read8255==NULL
)
{
printf("\nMP270系列函数不存在!");
}else{
printf("\nMP270系列函数存在。\n\n");
//--------- 调用 MP270 函数 ---------------
int mpstate,iii;
unsigned short data[40000];
MP270_init(NTportio);
MP270_DAout(NTportio, 330);
MP270_SetMode(NTportio, 0, 0, 0);
MP270_SetChMode(NTportio, 0x8f);
MP270_Set8254(NTportio, 5000,40);
MP270_Rew(NTportio);
MP270_Run(NTportio);
for(;;){
do{
mpstate=MP270_State(NTportio);
}while((mpstate&1)!=0);
if((mpstate&2)==0){
printf("\nFifo overflow!\n");
goto end1;
}else{
MP270_ReadDataWord(NTportio, data,2048 );
cccc++;
//if( (data[0]&8) != 0 ) printf("<3900\n") ;
for(iii=0;iii<16;iii++)printf("%d\t",data[iii]);
}
if(kbhit() && getch()==27)break;
}
}
//关闭驱动程序
if(AC_CloseDriver==NULL){
printf("AC_CloseDriver函数不存在!");
}else{
printf("\nAC_CloseDriver函数存在。");
AC_CloseDriver(NTportio);
}
}
FreeLibrary(hDLL);//清DLL
}
}
end1:
getch();
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -