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

📄 pm5400.h

📁 pm518采集卡驱动源码
💻 H
字号:
#ifndef PM5400_H
#define PM5400_H

#ifdef PM5002K_EXPORTS
#define ZT_API _declspec(dllexport)
#else
#define ZT_API _declspec(dllimport)
//错误号说明
#define ZT_SUCCESS 0  //无错误
#define ERR_PARAMETER1 1 //参数1错
#define ERR_PARAMETER2 2 //参数2错
#define ERR_PARAMETER3 3 //参数3错
#define ERR_PARAMETER4 4 //参数4错
#define ERR_PARAMETER5 5 //参数5错
#define ERR_PARAMETER6 6 //参数6错
#define ERR_PARAMETER7 7 //参数7错
#define ERR_PARAMETER8 8 //参数8错
#define ERR_PARAMETER9 9 //参数9错
#define ERR_PARAMETER_BASEADDR 10 //板卡基地址超出范围,应该在0x100至0x3F0之间未被系统占用的地址
#define ERR_PARAMETER_CH 11 //通道号参数错误,通道号超出范围,调用GetCountFrom检查当前通道号从0开始还是从1开始
#define ERR_PARAMETER_CHIP 12 //芯片号参数错误,芯片号超出范围,调用GetCountFrom检查当前芯片号从0开始还是从1开始
#define ERR_PARAMETER_PORT 13 //口号参数错误,口号超出范围,调用GetCountFrom检查当前口号从0开始还是从1开始
#define ERR_PARAMETER_AI_RANGE 14 //AD量程参数错,此卡不支持这种AD输入量程
#define ERR_PARAMETER_AO_RANGE 15 //DA量程参数错,此卡不支持这种DA输出量程
#define ERR_PARAMETER_NULL_POINTER 16 //空指针错,用于接收数组首地址的参数不能为空
#define ERR_AD_OVERTIME 20 //AD超时,出错原因可能是:未插卡或IO地址与板卡上设置不匹配
#define ERR_WINDRV 21  //WINDRV运行不正常,可能未安装WINDRV
#define ERR_TIMING 22 //定时未到或外触发脉冲未到,或6508闸门未关闭
#define ERR_IOADDR_DA_OVERTIME 23 //带光隔DA写过程超时
#define ERR_OPEN_IRQ 24 //打开中断出错
#define ERR_FUNC_CANNT_RUN 25 //此函数不能在这台计算机上运行
#define ERR_ASYNC_FUNC_FAILED 26 //异步函数调用失败
#define ERR_FUNC_OPERATE 27 //在当前的卡的设置状态下,不应该调用此函数
#endif

extern "C"
{
  //打开设备,必须在调用其他函数之前调用。放在程序初始化时调用比较恰当,只调用一次
  ZT_API long _stdcall OpenDevicePM();//返回 0 表示打开设备成功,非0 表示失败
  ZT_API long _stdcall CloseDevicePM();//关闭设备,在用户程序结束时调用一次
  ZT_API unsigned long _stdcall GetDll_LastErrNO();//得到错误号
  ZT_API void _stdcall ClearDll_LastErrNO();//清除错误号,一旦产生错误,为了使其他函数重新正常运行,必须清除错误号
  ZT_API void _stdcall SetCountFrom(unsigned long nCountFrom);//设置芯片号或通道号从0开始还是从1开始
  ZT_API unsigned long _stdcall GetCountFrom();//返回当前芯片号或通道号从0开始还是从1开始
  ZT_API unsigned char _stdcall ReadB(unsigned long nAddr, unsigned long nOffset);//8位读端口
  ZT_API unsigned short _stdcall ReadW(unsigned long nAddr, unsigned long nOffset);//16位读端口
  ZT_API void _stdcall WriteB(unsigned long nAddr, unsigned long nOffset, unsigned long dataByte);//8位写端口
  ZT_API void _stdcall WriteW(unsigned long nAddr, unsigned long nOffset, unsigned long dataWord);//16位写端口

  ZT_API long _stdcall ZT5400SetIOMode(unsigned long nAddr, unsigned long nGroup, unsigned long nIOMode);
  ZT_API long _stdcall ZT5400SetOCgate(unsigned long nAddr, unsigned long nBit, unsigned long nState);
  ZT_API long _stdcall ZT5400SetJDQ(unsigned long nAddr, unsigned long nBit, unsigned long nState);
  ZT_API long _stdcall ZT5400DIBit(unsigned long nAddr, unsigned long nGroup, unsigned long nBit, unsigned long IOModeCheck);
  ZT_API long _stdcall ZT5400DIAll(unsigned long nAddr, unsigned long nGroup, unsigned long IOModeCheck);
  ZT_API long _stdcall ZT5400DOBit(unsigned long nAddr, unsigned long nGroup, unsigned long nBit, unsigned long nState, unsigned long IOModeCheck);
  ZT_API long _stdcall ZT5400DOAll(unsigned long nAddr, unsigned long nGroup, unsigned long nStateAll, unsigned long IOModeCheck);

  ZT_API long _stdcall ZT_DZS05_SetIOMode(unsigned long nAddr,unsigned long nGroup,unsigned long nIOMode);
  ZT_API long _stdcall ZT_DZS05_DIAll(unsigned long nAddr,unsigned long nGroup,unsigned long IOModeCheck);
  ZT_API long _stdcall ZT_DZS05_DOAll(unsigned long nAddr,unsigned long nGroup,unsigned long nStateAll,unsigned long IOModeCheck);
  ZT_API long _stdcall ZT_DZS05_DOBit(unsigned long nAddr,unsigned long nGroup,unsigned long nBit,unsigned long nState,unsigned long IOModeCheck);
  ZT_API long _stdcall ZT_DZS05_DIBit(unsigned long nAddr,unsigned long nGroup,unsigned long nBit,unsigned long IOModeCheck);
}

#endif

⌨️ 快捷键说明

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