Code snippets#

Use theese code snippets to lightning-fast start your experimental work.

National Instruments#

Snippets to use with the National Instruments DAQmx driver.

Acquisition only#

Only the acquisition is used. The data is saved to a file. The visualization is not included.

import LDAQ

# Define the task name, specified in NI MAX
input_task_name = 'TaskName'

# Create the acquisition object
acq = LDAQ.national_instruments.NIAcquisition(input_task_name, acquisition_name=input_task_name)

# Create the Core object
ldaq = LDAQ.Core(acq)

# Set the trigger on the input task
ldaq.set_trigger(
    source=input_task_name,
    level=100,
    channel=0,
    duration=11,
    presamples=10
)

# Run the acquisition
ldaq.run()

# Save the measurment (uncomment when needed)
# ldaq.save_measurement('filename')

Acquisition with visualization#

A single acquisition source is used. The data is visualized in real time. The data is not saved to a file.

Adjust the layout and subplot_options to your needs. See visualization for details.

import LDAQ

# Define the task name, specified in NI MAX
input_task_name = 'TaskName'

# Create the acquisition object
acq = LDAQ.national_instruments.NIAcquisition(input_task_name, acquisition_name=input_task_name)

# Live visualization

# Create the Visualization object
vis = LDAQ.Visualization()

# Add lines
vis.add_lines((0, 0), source=input_task_name, channels=0)
vis.add_lines((1, 0), source=input_task_name, channels=1)

# Edit subplot options
vis.config_subplot((0, 0), xlim=(0, 1), ylim=(-5, 5), axis_style='linear')
vis.config_subplot((1, 0), xlim=(0, 1), ylim=(-5, 5), axis_style='linear')


# Create the Core object
ldaq = LDAQ.Core(acq, visualization=vis)

# Set the trigger on the input task
ldaq.set_trigger(
    source=input_task_name,
    level=100,
    channel=0,
    duration=11,
    presamples=10
)

# Run the acquisition
ldaq.run()

# Save the measurment (uncomment when needed)
# ldaq.save_measurement('filename')

Acquisition, generation and visualization#

A single acquisition source and a single generation source are used. The data is visualized in real time. The data is not saved to a file.

To use multiple acquisition and generation sources, define them separately and pass them to the LDAQ.Core in a list (see the multiple sources section).

import LDAQ
import pyExSi

# Define the task name, specified in NI MAX
input_task_name = 'TaskName'
output_task_name = 'OutputTaskName'

# Create the acquisition object
acq = LDAQ.national_instruments.NIAcquisition(input_task_name, acquisition_name=input_task_name)

# Create the generation object
# The excitation signal
time_array = np.arange(100000) / 10000
signal = np.sin(time_array*2*np.pi*10)

# The generation object
gen = LDAQ.national_instruments.NIGeneration(output_task_name, signal)

# Live visualization

# Create the Visualization object
vis = LDAQ.Visualization()

# Add lines
vis.add_lines((0, 0), source=input_task_name, channels=0)
vis.add_lines((1, 0), source=input_task_name, channels=1)

# Edit subplot options
vis.config_subplot((0, 0), xlim=(0, 1), ylim=(-5, 5), axis_style='linear')
vis.config_subplot((1, 0), xlim=(0, 1), ylim=(-5, 5), axis_style='linear')


# Create the Core object
ldaq = LDAQ.Core(acq, gen, visualization=vis)

# Set the trigger on the input task
ldaq.set_trigger(
    source=input_task_name,
    level=100,
    channel=0,
    duration=11,
    presamples=10
)

# Run the acquisition
ldaq.run()

# Save the measurment (uncomment when needed)
# ldaq.save_measurement('filename')