From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Python and NI

cancel
Showing results for 
Search instead for 
Did you mean: 

Readings from stream do not update

Here is a minimal working version of the code I'm trying to run.

My aim is to run the ADC all the time to keep the samples current. When I do a read I would like 1 sample from each channel, but the latest samples.

Right now the samples remain the same all the time.

 

import nidaqmx
from nidaqmx.constants import AcquisitionType, VoltageUnits, READ_ALL_AVAILABLE, CurrentShuntResistorLocation, WAIT_INFINITELY
from nidaqmx.stream_readers import AnalogSingleChannelReader, AnalogMultiChannelReader
import numpy as np

CURR_IN_MODULE_0 = 'cDAQ1Mod2/ai0:15'
CURR_IN_MODULE_1 = 'cDAQ1Mod3/ai0:15'

sample_rate = 1000
num_of_read_channels = 32
num_of_samps_per_channel = 1

read_data = np.zeros(shape = (num_of_read_channels, num_of_samps_per_channel))

read_task = nidaqmx.Task()

read_task.ai_channels.add_ai_current_chan(physical_channel = CURR_IN_MODULE_0, shunt_resistor_loc = CurrentShuntResistorLocation.INTERNAL)
read_task.ai_channels.add_ai_current_chan(physical_channel = CURR_IN_MODULE_1, shunt_resistor_loc = CurrentShuntResistorLocation.INTERNAL)
read_task.timing.cfg_samp_clk_timing(rate = sample_rate, sample_mode = AcquisitionType.CONTINUOUS)
reader = AnalogMultiChannelReader(read_task.in_stream)
read_task.start()

while(1):
    reader.read_many_sample(data = read_data, number_of_samples_per_channel = num_of_samps_per_channel)
    print(read_data)

 

0 Kudos
Message 1 of 1
(690 Views)