You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
2.3 KiB
C++

/*******************************************************************
*文件说明: IO以及AD类接口
*作者: logos
*日期: 2013/11/11
*修改日志: 2013/11/11 TOD2214 创建
2015/12/25 CW0793 重构
***********************************************************************/
#pragma once
#ifndef _DLL_INCLUDE_IIO_H
#define _DLL_INCLUDE_IIO_H
#include "dtype.h"
class IIO
{//IO类接口
public:
virtual int getID() = 0; //获取ID
virtual int getCID() = 0; //获取卡ID
virtual int getIndex() = 0; //获取在卡中的索引
virtual int getSence() = 0; //是否取反 0取反 1不取反
virtual int getType() = 0; //参考 EIOType 通用输入/输出 限位/原点等
virtual int read() = 0; //获取当前值 1 or 0
virtual int write(int val) = 0; //写入一个值 1 or 0
virtual const char* getName() = 0;
};
//导出接口
EXPORT_C int WINAPI IIO_getID(IIO* p);
EXPORT_C int WINAPI IIO_getCID(IIO* p);
EXPORT_C int WINAPI IIO_getIndex(IIO* p);
EXPORT_C int WINAPI IIO_getSence(IIO* p);
EXPORT_C int WINAPI IIO_getType(IIO* p);
EXPORT_C int WINAPI IIO_read(IIO* p);
EXPORT_C int WINAPI IIO_write(IIO* p, int val);
class IAD
{//AD类接口
public:
virtual int getID() = 0; //获取ID
virtual int getCID() = 0; //获取卡ID
virtual int getIndex() = 0; //获取在卡中的索引
virtual double getRatio() = 0; //比例尺
virtual double getOffset() = 0;//补偿量
virtual int read(double* pval) = 0; //获取当前值 double
virtual int write(double val) = 0; //写入一个值 double
virtual const char* getName() = 0;
};
//导出接口
EXPORT_C int WINAPI IAD_getID(IAD* p);
EXPORT_C int WINAPI IAD_getCID(IAD* p);
EXPORT_C int WINAPI IAD_getIndex(IAD* p);
EXPORT_C double WINAPI IAD_getRatio(IAD* p);
EXPORT_C double WINAPI IAD_getOffset(IAD* p);
EXPORT_C int WINAPI IAD_read(IAD* p, double* pval);
EXPORT_C int WINAPI IAD_write(IAD* p, double val);
/*********************************************
*Function: 获取IO对象
*Intput: pid IO-ID
*Output: NULL
*Return: 成功返回对象接口类,失败返回NULL
*********************************************/
EXPORT_C IIO* WINAPI get_iio(int pid);
/*********************************************
*Function: 获取AD对象
*Intput: pid AD-ID
*Output: NULL
*Return: 成功返回对象接口类,失败返回NULL
*********************************************/
EXPORT_C IAD* WINAPI get_iad(int pid);
#endif //防止重复包含