struct mrpt::hwdrivers::CNationalInstrumentsDAQ::TaskDescription

Each of the tasks to create in CNationalInstrumentsDAQ::initialize().

Refer to the docs on config file formats of mrpt::hwdrivers::CNationalInstrumentsDAQ to learn on the meaning of each field. Also, see National Instruments’ DAQmx API docs online.

#include <mrpt/hwdrivers/CNationalInstrumentsDAQ.h>

struct TaskDescription
{
    // structs

    struct desc_ai_t;
    struct desc_ao_t;
    struct desc_ci_ang_encoder_t;
    struct desc_ci_count_edges_t;
    struct desc_ci_lin_encoder_t;
    struct desc_ci_period_t;
    struct desc_ci_pulse_width_t;
    struct desc_co_pulses_t;
    struct desc_di_t;
    struct desc_do_t;

    //
fields

    bool has_ai {false};
    bool has_ao {false};
    bool has_di {false};
    bool has_do {false};
    bool has_ci_period {false};
    bool has_ci_count_edges {false};
    bool has_ci_pulse_width {false};
    bool has_ci_lin_encoder {false};
    bool has_ci_ang_encoder {false};
    bool has_co_pulses {false};
    double samplesPerSecond {1000.0};
    std::string sampleClkSource;
    uint32_t bufferSamplesPerChannel {200000};
    uint32_t samplesPerChannelToRead {1000};
    std::string taskLabel;
    struct mrpt::hwdrivers::CNationalInstrumentsDAQ::TaskDescription::desc_ai_t ai;
    struct mrpt::hwdrivers::CNationalInstrumentsDAQ::TaskDescription::desc_ao_t ao;
    struct mrpt::hwdrivers::CNationalInstrumentsDAQ::TaskDescription::desc_di_t di;
    struct mrpt::hwdrivers::CNationalInstrumentsDAQ::TaskDescription::desc_do_t douts;
    struct mrpt::hwdrivers::CNationalInstrumentsDAQ::TaskDescription::desc_ci_period_t ci_period;
    struct mrpt::hwdrivers::CNationalInstrumentsDAQ::TaskDescription::desc_ci_count_edges_t ci_count_edges;
    struct mrpt::hwdrivers::CNationalInstrumentsDAQ::TaskDescription::desc_ci_pulse_width_t ci_pulse_width;
    struct mrpt::hwdrivers::CNationalInstrumentsDAQ::TaskDescription::desc_ci_lin_encoder_t ci_lin_encoder;
    struct mrpt::hwdrivers::CNationalInstrumentsDAQ::TaskDescription::desc_ci_ang_encoder_t ci_ang_encoder;
    struct mrpt::hwdrivers::CNationalInstrumentsDAQ::TaskDescription::desc_co_pulses_t co_pulses;
};

Fields

double samplesPerSecond {1000.0}

Sample clock config: samples per second.

Continuous (infinite) sampling is assumed.

std::string sampleClkSource

Sample clock source: may be empty (default value) for some channels.

uint32_t bufferSamplesPerChannel {200000}

(Default=0) From NI’s docs: The number of samples the buffer can hold for each channel in the task.

Zero indicates no buffer should be allocated. Use a buffer size of 0 to perform a hardware-timed operation without using a buffer.

uint32_t samplesPerChannelToRead {1000}

(Default=1000) The number of samples to grab at once from each channel.

std::string taskLabel

(Default=”task###”)

struct mrpt::hwdrivers::CNationalInstrumentsDAQ::TaskDescription::desc_ci_period_t ci_period

Counter: period of a digital signal.