функции обратного вызова nidaqmx с многопроцессорной очередью - PullRequest
0 голосов
/ 30 января 2019

В многопроцессорном процессе 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`

Очередь - это многопроцессорная очередь, которая создается между основным процессом и этим.Однако с этим определением обратного вызова процесс никогда не включается.Если я не использую очередь, это работает.Так что, если это не так, как я могу определить обратный вызов, который помещает только что прочитанные данные в многопроцессорную очередь?

...