Details about the implementation of the OD viewer PLcounter
As you have seen from the configuration of the plugin, we use two counter channels to perform the measurement: a first one which is counting and a second one to handle the measurement timing. These are 2 separate tasks, although the channels will be connected together. As a result, we cannot use a single DAQmx
object as hardware controller.
The controller here is a dict containing two DAQmx
, one of them is the “clock” and the other the “counter”. Each of them contains a single task.
The clock channel is set up as a
ClockCounter
object (see the filedaqmx.py
for its definition).The counter channel is a
Counter
, and its timing source is the clock channel.
Continous grab or snap
By default, the grab_data
function resets both the clock and the counting tasks. For a single snap, this is not an issue, but for continuous acquisition, this does not make sense, so we use the "live"
parameter sent to grab_data
to decide if we update the tasks or not.