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

📄 pci8361b.h

📁 多功能数据采集卡上位机完整代码
💻 H
📖 第 1 页 / 共 3 页
字号:
                                             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 + -