<< mdaqAOTask Data acquisition mdaqAOWrite >>

MicroDAQ toolbox >> MicroDAQ toolbox > Data acquisition > mdaqAOScanTrigger

mdaqAOScanTrigger

Sets AO scan trigger

Calling Sequence

mdaqAOScanTrigger(triggerType, p1,...,pn);
mdaqAOScanTrigger(linkID, triggerType, p1,...,pn);

Description

This function configures and sets a trigger for analog output scan session. If a trigger is used, after starting analog output scan with mdaqAOScanStart() scan operation is blocked until certain condition defined by trigger occurs. In this state, signal is not generated on analog outputs. Blocked scan session can be interrupted by calling mdaqAOScanStop(). The mdaqAOScanTrigger() function can be called only after scan initialization function mdaqAOScanInit() call and before scan start function mdaqAOScanStart() call. When scan session uses a trigger, function mdaqAOScanIsDone() or mdaqAOScanWait() can be use to check if signal generation is done or wait until signal generation operation is done. When trigger is used it is recommended to use mdaqAOScanWait() with timeout different than -1 (infinity) this will prevent from freezing Scilab in the case when the trigger will not occur. Only one trigger type can be used for analog outputs scan session. When a function is called more then one time it will overwrite previous trigger configuration. Function mdaqAOScanInit() disables trigger.

The function allows configuring different trigger types which are defined by trigger type string.

Supported triggers types:

Input arguments

Examples

dio trigger type - start to generate signal on AO1 analog output when DIO7 state is high

mdaqAOScanInit(1, [1 2 3 4 5]', [0, 5], %F, 10, 1)
mdaqAOScanTrigger("dio", 7, 1);
mdaqAOScanStart();

dioPattern trigger type - start to generate signal on AO1 analog output when DIO7 state is high

mdaqAOScanInit(1, [1 2 3 4 5]', [0, 5], %F, 10, 1)
mdaqAOScanTrigger("dioPattern", "xxxxxx1x");
mdaqAOScanStart();

dioPattern trigger type - start to generate signal on AO1 analog output when DIO7 state is high and DIO6 is low

mdaqAOScanInit(1, [1 2 3 4 5]', [0, 5], %F, 10, 1)
mdaqAOScanTrigger("dioPattern", "xxxxx01x");
mdaqAOScanStart();

encoder trigger type - start to generate signal on AO1 analog output when encoder value is greater then 1000

mdaqEncoderInit(1, 0, "quadrature");
mdaqAOScanInit(1, [1 2 3 4 5]', [0, 5], %F, 10, 1)
mdaqAOScanTrigger("encoder", 1, 1000, 1);
mdaqAOScanStart();
disp("Waiting until signal generation is finished")
isTimeout = %f; 
try
    mdaqAOScanWait(10);
catch
    isTimeout = %T;
end

if isTimeout then
    disp("Timeout")
else
    disp("Success")
end

dspStart trigger type - synchronize AO scan start with DSP application start

mdaqAOScanInit(1, [1 2 3 4 5]', [0, 5], %F, 10, 1)
mdaqAOScanTrigger("dsp");
mdaqAOScanStart();

aoStart trigger type - synchronize AO scan start with AI scan start

mdaqAOScanInit(1, [1 2 3 4 5]', [0, 5], %F, 10, 1)
mdaqAOScanTrigger("ai");
mdaqAOScan();

See Also


Report an issue
<< mdaqAOTask Data acquisition mdaqAOWrite >>