Reads the specified number of samples from the other channels at the indicated sampling rate.

Namespace:  Quanser.Hardware
Assembly:  Quanser.Hardware.Hil (in Quanser.Hardware.Hil.dll)

Syntax

Visual Basic (Declaration)
Public Sub ReadOtherBuffer ( _
	clock As Hil..::.Clock, _
	frequency As Double, _
	numSamples As Integer, _
	channels As Integer(), _
	buffer As Double() _
)
C#
public void ReadOtherBuffer(
	Hil..::.Clock clock,
	double frequency,
	int numSamples,
	int[] channels,
	double[] buffer
)
Visual C++
public:
void ReadOtherBuffer(
	Hil..::.Clock clock, 
	double frequency, 
	int numSamples, 
	array<int>^ channels, 
	array<double>^ buffer
)
JavaScript
function readOtherBuffer(clock, frequency, numSamples, channels, buffer);

Parameters

clock
Type: Quanser.Hardware..::.Hil..::.Clock

The clock used to time the operation. Note that some clocks allow faster sampling rates than others. See the Hil..::.Clock enumeration for more information on clocks.

Select a board type from the list for board-specific details: .

frequency
Type: System..::.Double

The frequency in Hertz at which to sample the other input channels. For example, if frequency is set to 1000, then the ReadOtherBuffer method will read all the selected channels every millisecond.

numSamples
Type: System..::.Int32

The number of samples to collect. Each "sample" consists of all the other input channels specified. For example, if frequency is set to 1000 and numSamples is set to 5000, then the ReadOtherBuffer method will return after 5 seconds with 5000 samples. If 3 channels have been selected, then the output buffer will contain 15,000 elements.

channels
Type: array< System..::.Int32 >[]()[]

An array containing the numbers of the other input channels to be read. Channel numbers are zero-based. Thus, channel 0 is the first channel, channel 1 the second channel, etc.

Select a board type from the list for board-specific details: .

buffer
Type: array< System..::.Double >[]()[]

An array for receiving the values read from the other inputs. The array must contain channels.Length * numSamples elements. The array is organized as a linear array of samples, with each sample consisting of a group of channels. For example, if other input channels 0, 1 and 3 are being read, than the data appears in the array as follows, where the numbers correspond to channel numbers:

0 1 3 0 1 3 ...

Remarks

The ReadOtherBuffer method reads the specified number of samples from the other channels at the given sampling frequency. This method does not return until all the data has been read.

Examples

This example illustrates how to read other inputs at a specified rate. It reads 5000 samples of other channels 0-3 at 1 kHz. The call to ReadOtherBuffer does not return until all the samples have been read, 5 seconds later. Exceptions are ignored for simplicity.
C# Copy Code
int []    channels  = { 0, 1, 2, 3 };
double    frequency = 1000;
int       samples   = 5000;
double [] buffer    = new double [samples * channels.Length];

card.ReadOtherBuffer(Hil.Clock.Hardware0, frequency, samples, channels, buffer);
Visual Basic Copy Code
Dim channels() As Integer = {0, 1, 2, 3}
Dim frequency As Double = 1000
Dim samples As Integer = 5000
Dim buffer(samples * channels.Length - 1) As Double

card.ReadOtherBuffer(Hil.Clock.Hardware0, frequency, samples, channels, buffer)
Visual C++ Copy Code
array<int>^    channels  = { 0, 1, 2, 3 };
double         frequency = 1000;
int            samples   = 5000;
array<double>^ buffer    = gcnew array<double>(samples * channels->Length);

card->ReadOtherBuffer(Hil::Clock::Hardware0, frequency, samples, channels, buffer);

Exceptions

ExceptionCondition
Quanser.Hardware..::.HilException If the read cannot be performed then an exception is thrown. This situtation typically arises if the board does not support other inputs or the hardware resources required are in use by a task.

See Also