具有多处理队列的nidaqmx回调函数

时间:2019-01-30 12:50:11

标签: python nidaqmx

在python多处理过程中,我定义并分配了以下回调:

    def callbackToBuffer(taskHandle,eventType,nSamples,callbackData):
         readerUnscaled.read_int16(dataContainer,number_of_samples_per_channel=nSmpTrig)
         #samples=taskAI.read(number_of_samples_per_channel=nSmpTrig)
      queue.put(dataContainer.copy())
    return 0

      taskAI.register_every_n_samples_acquired_into_buffer_event(nSmpTrig, callbackToBuffer)
`   taskAO.start()
    taskAI.start()
    taskAI.wait_until_done(WAIT_INFINITELY)
    print("INFO: audio recording stopped")
    evtStopped.set()
    taskAO.close()
    taskAI.close()
    del taskAO
    del taskAI
    del callbackToBuffer`

queue是一个在主进程和该主进程之间创建的多处理队列。但是,使用此回调定义,过程永远不会加入。如果我不使用队列,这行得通。因此,如果不是这样,我如何定义一个将新读取的数据放入多处理队列的回调?

0 个答案:

没有答案