diff --git a/examples/digital_out/cont_gen_dig_port_int_clk.py b/examples/digital_out/cont_gen_dig_port_int_clk.py index 45c55225..5b4efb6f 100644 --- a/examples/digital_out/cont_gen_dig_port_int_clk.py +++ b/examples/digital_out/cont_gen_dig_port_int_clk.py @@ -8,10 +8,16 @@ from nidaqmx.constants import AcquisitionType, LineGrouping with nidaqmx.Task() as task: - data = [1, 2, 4, 8, 16, 32, 64, 128] - - task.do_channels.add_do_chan("Dev1/port0", line_grouping=LineGrouping.CHAN_FOR_ALL_LINES) + chan = task.do_channels.add_do_chan("Dev1/port0", line_grouping=LineGrouping.CHAN_FOR_ALL_LINES) task.timing.cfg_samp_clk_timing(10.0, sample_mode=AcquisitionType.CONTINUOUS) + + # Generate a walking 1's pattern. + data = [1 << i for i in range(chan.do_num_lines)] + + print("Writing data:") + for i, value in enumerate(data): + print("sample {:2}: 0x{:0{width}X}".format(i, value, width=chan.do_num_lines // 4)) + task.write(data) task.start() diff --git a/examples/digital_out/cont_gen_dig_port_int_clk_wfm.py b/examples/digital_out/cont_gen_dig_port_int_clk_wfm.py index 7c18bc11..e92d6da5 100644 --- a/examples/digital_out/cont_gen_dig_port_int_clk_wfm.py +++ b/examples/digital_out/cont_gen_dig_port_int_clk_wfm.py @@ -10,19 +10,18 @@ import nidaqmx from nidaqmx.constants import AcquisitionType, LineGrouping -np.set_printoptions(linewidth=220) # ensure signal.data prints on a single line +np.set_printoptions(linewidth=120) # ensure signal.data prints on a single line with nidaqmx.Task() as task: - task.do_channels.add_do_chan("Dev1/port0", line_grouping=LineGrouping.CHAN_FOR_ALL_LINES) + chan = task.do_channels.add_do_chan("Dev1/port0", line_grouping=LineGrouping.CHAN_FOR_ALL_LINES) task.timing.cfg_samp_clk_timing(10.0, sample_mode=AcquisitionType.CONTINUOUS) - sample_count = 50 - signal_count = task.do_channels[0].do_num_lines - waveform = DigitalWaveform(sample_count, signal_count) - for i in range(sample_count): - for j in range(signal_count): - waveform.signals[j].name = f"line {j:2}" - waveform.signals[j].data[i] = (i >> (j % 8)) & 1 + # Generate a walking 1's pattern. + waveform = DigitalWaveform.from_port( + [1 << i for i in range(chan.do_num_lines)], mask=(1 << chan.do_num_lines) - 1 + ) + for signal in waveform.signals: + signal.name = f"line {signal.signal_index:2}" print("Writing data:") for signal in waveform.signals: