<< mdaqAIRead Data acquisition mdaqAIScanInit >>

MicroDAQ toolbox >> MicroDAQ toolbox > Data acquisition > mdaqAIScan

mdaqAIScan

Starts scanning operation and reads acquired data

Calling Sequence

[data, result] = mdaqAIScan(scanCount, isBlocking)
[data, result] = mdaqAIScan(linkID, scanCount, isBlocking)

Description

This function starts analog input scanning session and reads acquired data. A function call has to be preceded with mdaqAIScanInit() which initiates scanning session parameters. Blocking or non-blocking operation is defined by isBlocking argument. When blocking(isBlocking=%T) mode is used, function will block Scilab command line until required number of scan is acquired. The function has fixed 2-second time-out, a user has to provide scanCout argument which will not cause mdaqAIScan() function time-out. When non-blocking (isBlocking=%F) mode is used, function acquired scan data which is currently available in analog input data queue. The number of acquired scans is returned by result output argument. The scanCount argument in non-blocking mode determines maximum number of scans which can be acquired by function call. Values of acquired data, returned as an m-by-n array, where m is the number of acquired scans, and n is the number of used input channels (defined during initialization with mdaqAIScanInit() function call).

Limitation: ADC1-DAC01 MicroDAQ configuration doesn't support running simultaneously AI and AO scanning sessions.

Input arguments

Output arguments

Examples

Perform blocking data acquisition from 8 single-ended analog input channels, one analog input range, scan frequency of 10kHz and 1 second duration.

mdaqAIScanInit(1:8, [-10,10], %F, 10000, 1)
plot(mdaqAIScan(10000, %T));

Perform blocking data acquisition from 8 single-ended analog input channels, one analog input range, scan frequency of 10kHz and 1 second duration.

aiData = [];
dataCount = 0;
mdaqAIScanInit(1:8, [-10,10], %F, 10000, 1)
for i=1:10
    [data result] = mdaqAIScan(1000, %T);
    aiData = [aiData; data];
    dataCount = dataCount + result;
    mprintf('Acquired %d scans (total: %d scans)\n', result, dataCount);
end
mdaqAIScanStop();
plot(aiData);

Perform non-blocking data acquisition from 8 single-ended analog input channels, one analog input range, scan frequency of 10kHz and 1 second duration.

aiData = [];
dataCount = 0;
mdaqAIScanInit(1:8, [-10,10], %F, 10000, 1)
while(dataCount < 10000)
    [data result] = mdaqAIScan(1000, %F);
    aiData = [aiData; data];
    dataCount = dataCount + result;
    if result > 0 then
        mprintf('Acquired %d scans (total: %d scans)\n', result, dataCount);
    end
end
mdaqAIScanStop();
plot(aiData);

See Also


Report an issue
<< mdaqAIRead Data acquisition mdaqAIScanInit >>