📄 pci8361b.h
字号:
unsigned long *pNeedTrans,
float *pMeasureDown,
float *pMeasureUp,
float *pEngiDown,
float *pEngiUp,
float *pReviseK,
float *pReviseB);
//函数名称:ZT8361_SetAIresultTrans
//函数功能:设置AD原码值转化参数。
// 指定当用户调用 AISFifo 函数读数时,将采集到的AD原码值如何转化为用户需要的实际工程值。
// 这个函数目的是使采集到的AD原码值能够直接转化为用户的实际工程值,一次到位,防止多次转化,节约CPU时间。
// 对于传入空指针的参数,对应的设置将不被修改。
// 提示:初级用户可不关心此函数,驱动默认按照以下的方式进行转换:
// 1. 根据用户在调用 AIinit 函数时指明的AD量程方式,把原码值转化为对应量程上的毫伏值或微安值;
// 例如:若通道1的AD量程代码为 0,不转换原码值
// 若通道1的AD量程代码为 2,则默认把原码值转化为 0 -- 10000mV 之间的值
// 若通道1的AD量程代码为 6,则默认把原码值转化为 -10000 -- +10000mV 之间的值
// 若通道1的AD量程代码为 9,则默认把原码值转化为 0 -- 10000uA 之间的值
// 若通道1的AD量程代码为 10,则默认把原码值转化为 0 -- 20000uA 之间的值
// 若通道1的AD量程代码为 11,则默认把原码值转化为 4000 -- 20000uA 之间的值
// 2. 不进行线性修正;
//
//入口参数:
// cardNO:板卡号默认从 1 开始,有关这个参数的详细说明,请参考 ZT8361_OpenDevice 函数
// pNeedTrans:用户可通过此参数指定是否需要把相应通道的AD原码值转化为用户的实际工程值。
// 是一个包含至少 8 个 unsigned long 型元素的数组的首地址。
// 数组元素的值为1,表需要对这个元素对应的通道的AD原码值进行转化;
// 数组元素的值为0,表不需要对这个元素对应的通道的AD原码值进行转化,若不进行转换将返回原码值。
// 提示:若用户对所有通道均不需要转化原码值,可不必调用此函数,而改用 ReadSFifo 读数
// pMeasureDown:由用户指定当前量程下的测量值下限。是一个包含至少 8 个 float 型元素的数组的首地址,
// 这个数组中的前8个值依次对应前8个AD通道的测量值下限。
// pMeasureUp:由用户指定当前量程下的测量值上限。是一个包含至少 8 个 float 型元素的数组的首地址,
// 这个数组中的前8个值依次对应前8个AD通道的测量值上限。
// pEngiDown:由用户指定需要的实际工程量程下限。是一个包含至少 8 个 float 型元素的数组的首地址,
// 这个数组中的前8个值依次对应前8个AD通道的实际工程量程下限。
// pEngiUp:由用户指定需要的实际工程量程上限。是一个包含至少 8 个 float 型元素的数组的首地址,
// 这个数组中的前8个值依次对应前8个AD通道的实际工程量程上限。
// 驱动程序将根据这两个数组以及在调用 AIinit 函数时指明的AD量程,把AD原码值转换到用户指定的量程上,
// 举例:
// 如果用户测量第1通道为压力信号,用户所用的量程为 0 -- 10000mV,
// 而实际传感器输出的电压与压力的线性对应关系为 1V~8V 对应 100牛~5000牛,则:
// pMeasureDown[0] 应设为 1000;
// pMeasureUp[0] 应设为 8000;
// pEngiDown[0] 应设为 100;
// pEngiUp[0] 应设为 5000;
// pReviseK:用户可通过此参数对转换结果进行线性修正。是一个包含至少 8 个 float 型元素的数组的首地址,
// 这个数组中的前8个值依次对应前8个AD通道的测量结果的修正系数。
// 注意:此数组中的元素值不能为0,若不需要修正应该全部设为1
// pReviseB:用户可通过此参数对转换结果进行线性修正。是一个包含至少 8 个 float 型元素的数组的首地址,
// 这个数组中的前8个值依次对应前8个AD通道的测量结果的修正系数。
// 注意:若用户不需要修正结果,此数组中的元素值应该全部设为0
//返回值: 0 表成功
// -1 表失败,应该进一步调用 ZT8361_GetLastErr 判断出错原因
ZT_API long _stdcall ZT8361_GetAIresultTrans(unsigned long cardNO,
unsigned long *pNeedTrans,
float *pMeasureDown,
float *pMeasureUp,
float *pEngiDown,
float *pEngiUp,
float *pReviseK,
float *pReviseB);
//函数名称:ZT8361_GetAIresultTrans
//函数功能:得到AD原码值转化参数的当前值。
//
//入口参数:
// 参数说明请参考 ZT8361_SetAIresultTrans
//返回值: 0 表成功
// -1 表失败,应该进一步调用 ZT8361_GetLastErr 判断出错原因
ZT_API long _stdcall ZT8361_EnableAD(unsigned long cardNO);
//函数名称:ZT8361_EnableAD
//函数功能:允许AD。对于定时AD方式,等效于启动AD
//入口参数:
// cardNO:板卡号默认从 1 开始,有关这个参数的详细说明,请参考 ZT8361_OpenDevice 函数
//返回值: 0 表成功
// -1 表失败,应该进一步调用 ZT8361_GetLastErr 判断出错原因
ZT_API long _stdcall ZT8361_DisableAD(unsigned long cardNO);
//函数名称:ZT8361_DisableAD
//函数功能:禁止AD。对于定时AD方式,等效于停止AD
// 注意:在清硬件缓冲区(HFIFO)之前,应该先禁止AD,才能保证HFIFO真正清空
//入口参数:
// cardNO:板卡号默认从 1 开始,有关这个参数的详细说明,请参考 ZT8361_OpenDevice 函数
//返回值: 0 表成功
// -1 表失败,应该进一步调用 ZT8361_GetLastErr 判断出错原因
///////////////////////////////////// HFIFO相关函数 /////////////////////////////////////////
ZT_API long _stdcall ZT8361_ClearHFifo(unsigned long cardNO, unsigned long unitType);
//函数名称:ZT8361_ClearHFifo
//函数功能:清硬件缓冲区(HFIFO)
// 注意:在清硬件缓冲区(HFIFO)之前,应该先禁止AD,才能保证HFIFO真正清空
//入口参数:
// cardNO:板卡号默认从 1 开始,有关这个参数的详细说明,请参考 ZT8361_OpenDevice 函数
//返回值: 0 表成功
// -1 表失败,应该进一步调用 ZT8361_GetLastErr 判断出错原因
///////////////////////////////////// SFIFO相关函数 /////////////////////////////////////////
ZT_API long _stdcall ZT8361_ClearSFifo(unsigned long cardNO, unsigned long unitType);
//函数名称:ZT8361_ClearSFifo
//函数功能:清驱动缓冲区(SFIFO)
// 注意:在清SFIFO之前,应该先清硬件缓冲区(HFIFO)
//入口参数:
// cardNO:板卡号默认从 1 开始,有关这个参数的详细说明,请参考 ZT8361_OpenDevice 函数
//返回值: 0 表成功
// -1 表失败,应该进一步调用 ZT8361_GetLastErr 判断出错原因
ZT_API long _stdcall ZT8361_SetSFifoSize(unsigned long cardNO,
unsigned long unitType,
unsigned long SFifoSize);
//函数名称:ZT8361_SetSFifoSize
//函数功能:设置驱动缓冲区(SFIFO)的大小,在AD采集过程中,不要调用这个函数
//入口参数:
// cardNO:板卡号默认从 1 开始,有关这个参数的详细说明,请参考 ZT8361_OpenDevice 函数
// SFifoSize:内部缓冲区的数量,可设为0--1000之间的数,默认为200,一般不用修改
//返回值: 大于等于0 表示修改后,当前内部缓冲区的大小
// -1 表失败,应该进一步调用 ZT8361_GetLastErr 判断出错原因
ZT_API long _stdcall ZT8361_GetSFifoSize(unsigned long cardNO, unsigned long unitType);
//函数名称:ZT8361_GetSFifoSize
//函数功能:得到驱动缓冲区(SFIFO)的大小
//入口参数:
// cardNO:板卡号默认从 1 开始,有关这个参数的详细说明,请参考 ZT8361_OpenDevice 函数
//返回值: 大于等于0 返回当前驱动缓冲区的大小
// -1 表失败,应该进一步调用 ZT8361_GetLastErr 判断出错原因
ZT_API long _stdcall ZT8361_DisableSFifo(unsigned long cardNO, unsigned long unitType);
//函数名称:ZT8361_DisableSFifo
//函数功能:使驱动缓冲区(SFIFO)无效。当SFIFO无效时,数据不会写到SFIFO中,
// 如果用户希望自己读HFIFO,就应该调用这个函数使SFIFO无效
//
//入口参数:
// cardNO:板卡号默认从 1 开始,有关这个参数的详细说明,请参考 ZT8361_OpenDevice 函数
//返回值: 0 表成功
// -1 表失败,应该进一步调用 ZT8361_GetLastErr 判断出错原因
ZT_API long _stdcall ZT8361_EnableSFifo(unsigned long cardNO, unsigned long unitType);
//函数名称:ZT8361_EnableSFifo
//函数功能:使驱动缓冲区(SFIFO)重新有效。只有调用过ZT8361_DisableSFifo,
// 才需要调用这个函数,因为SFIFO默认一直有效
//入口参数:
// cardNO:板卡号默认从 1 开始,有关这个参数的详细说明,请参考 ZT8361_OpenDevice 函数
//返回值: 0 表成功
// -1 表失败,应该进一步调用 ZT8361_GetLastErr 判断出错原因
ZT_API long _stdcall ZT8361_GetSFifoDataCount(unsigned long cardNO, unsigned long unitType);
//函数名称:ZT8361_GetSFifoDataCount
//函数功能:得到驱动缓冲区(SFIFO)中当前有效数据的个数
//入口参数:
// cardNO:板卡号默认从 1 开始,有关这个参数的详细说明,请参考 ZT8361_OpenDevice 函数
// unitType:1 = 读AD相关SFIFO;4 = 读计数器相关SFIFO
//返回值:返回大于等于 0 的数表数据个数
// 返回 -1表失败,函数调用失败时应进一步调用 ZT8361_GetLastErr 判断出错原因
ZT_API long _stdcall ZT8361_SetSFifoThreshold(unsigned long cardNO,
unsigned long unitType,
unsigned long SFifoThreshold);
//函数名称:ZT8361_SetSFifoThreshold
//函数功能:设置驱动缓冲区(SFIFO)的阀值。当驱动有机会查看SFIFO中的数据个数时,
// 如果SFIFO中的数据个数已经达到或超过阀值,就触发“SFIFO到达阀值事件”
//入口参数:
// cardNO:板卡号默认从 1 开始,有关这个参数的详细说明,请参考 ZT8361_OpenDevice 函数
// SFifoThreshold:设置驱动缓冲区(SFIFO)的阀值,要>=0,且小于等于4096*驱动缓冲区(SFIFO)的大小
//返回值: 0 表成功
// -1 表失败,应该进一步调用 ZT8361_GetLastErr 判断出错原因
ZT_API long _stdcall ZT8361_GetSFifoThreshold(unsigned long cardNO, unsigned long unitType);
//函数名称:ZT8361_GetSFifoThreshold
//函数功能:得到驱动缓冲区(SFIFO)当前的阀值
//入口参数:
// cardNO:板卡号默认从 1 开始,有关这个参数的详细说明,请参考 ZT8361_OpenDevice 函数
//返回值: 返回大于等于 0 的数,表示SFIFO当前的阀值
// -1 表失败,应该进一步调用 ZT8361_GetLastErr 判断出错原因
ZT_API long _stdcall ZT8361_ReadSFifo(unsigned long cardNO,
unsigned long unitType,
unsigned long dataType,
PVOID pResultArr,
unsigned long wantReadCount);
//函数名称:ZT8361_ReadSFifo
//函数功能:定时启动AD或外触发启动AD时,从驱动缓冲区(SFIFO)中成批读数
// 注意:如果用户需要高速AD,应该用 ZT8361_ReadSFifo 或 ZT8361_AISFifo 这两个函数读数
//
//入口参数:ZT8361_ReadSFifo
// cardNO:板卡号默认从 1 开始,有关这个参数的详细说明,请参考 ZT8361_OpenDevice 函数
// unitType:1 = 读AD相关SFIFO;4 = 读计数器相关SFIFO
// dataType:1 = UINT16;2 = UINT32
// 当 unitType = 1 时,dataType 应该设为 1
// 当 unitType = 4 时,dataType 应该设为 2
// pResultArr:用户必须申请一个至少含有 wantReadCount 个 UINT16 型或 UINT32 型元素的缓冲区,
// 用于存放采集结果,而 pResultArr 是这个缓冲区的首地址。
// 具体数据类型应该与 dataType 设置相一致。
//
// wantReadCount:用户希望读出的数据个数,必须>0,且不能超过用户缓冲区的实际大小
//
//返回值: 大于等于0 指明用户缓冲区中读到的有效数据的个数
// -1 表失败,应该进一步调用 ZT8361_GetLastErr 判断出错原因
ZT_API long _stdcall ZT8361_AISFifo(unsigned long cardNO,
unsigned long dataType,
PVOID pResultArr,
unsigned long wantReadCount);
//函数名称:ZT8361_AISFifo
//函数功能:定时启动AD或外触发启动AD时,从驱动缓冲区(SFIFO)中读一批数
// 这个函数实际调用 ZT8361_ReadSFifo 读数,然后把读到的结果转化为用户指定的量程上,
//
//入口参数:
// cardNO:板卡号默认从 1 开始,有关这个参数的详细说明,请参考 ZT8361_OpenDevice 函数
// dataType:保留,设为0即可
// pResultArr:用户必须申请(开辟)一个至少含有 wantReadCount 个 float 型元素的缓冲区,
// 用于存放采集结果,而 pResultArr 是这个缓冲区的首地址。
// 注意:驱动程序不建立缓冲区,必须由用户程序创建
// wantReadCount:用户希望读出的数据个数。
// 参数要求:1. 必须>0,且不能超过用户缓冲区的实际大小
// 2. 必须是通道数的整数倍,比如用户只需要采集3个通道,
// 应该把wantReadCount设为3的整数倍,用户需要采集的通道数,
// 在调用 AIinit 函数时指定
//返回值: 大于等于0 表缓冲区中读到的有效数据的个数
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -