使int32 CVICALLBACK DoneCallback()可供类访问

时间:2016-07-19 08:44:49

标签: c++ c nidaqmx

这是在c环境中实施c++功能的问题。

NI开发了NIDAQmx.h头文件,其中包含c中的函数。我已经成功地在c++类中使用它们的函数来控制采集设备(cDAQ-9174)。但它们提供的功能之一是由设备上的事件触发的回调函数。

以下是我要在c

中实施的c++中的功能
int32 CVICALLBACK DoneCallback(TaskHandle taskHandle, int32 status, void *callbackData){
    int32   error=0;
    char    errBuff[2048]={'\0'};

    // Check to see if an error stopped the task.
    DAQmxErrChk (status);

Error:
    if( DAQmxFailed(error) ) {
        DAQmxGetExtendedErrorInfo(errBuff,2048);
        DAQmxClearTask(taskHandle);
        printf("DAQmx Error: %s\n",errBuff);
    }
    return 0;
}

事件处理程序通过以下函数注册到设备:

DAQmxRegisterDoneEvent(taskHandle,0,DoneCallback,NULL);

我的问题是:如何实现能够被此事件触发的类成员函数?我想象一个函数强制转换或类似的方式,但我不知道cc++来解决这个问题。

实现此功能非常重要,以便我的类知道采集任务何时结束,并释放设备以供其他实例使用。

0 个答案:

没有答案