hil_read_analog_codes
Reads from other inputs and writes to other outputs immediately.
Description
The hil_read_analog_codes function reads from the specified other input channels and writes to the specified other output channels in a single function call. The write operation occurs immediately following the read operation. Since the read-write operation occurs at the lowest level the read and write occur virtually concurrently. The function does not return until the data has been read and written.
Prototype
t_error hil_read_other_write_other(t_card card, const t_uint32 other_input_channels[], t_uint32 num_other_input_channels, const t_uint32 other_output_channels[], t_uint32 num_other_output_channels, t_double other_input_buffer[], const t_double other_output_buffer[]);
Parameters
t_card card
A handle to the board, as returned by hil_open
const t_uint32 [] other_input_channels
An array containing the channel numbers of the other inputs to be read.
Select a board type from the list for board-specific details: .
t_uint32 num_other_input_channels
The number of channels specified in the other_input_channels array.
const t_uint32 [] other_output_channels
An array containing the channel numbers of the other outputs to be written.
Select a board type from the list for board-specific details: .
t_uint32 num_other_output_channels
The number of channels specified in the other_output_channels array.
t_double [] other_input_buffer
An array for receiving the values read from the other inputs. The array must contain num_other_input_channels elements. Each element in the returned other_input_buffer array will correspond to the same element in the other_input_channels array.
const t_double [] other_output_buffer
An array of values to write to the other outputs. The array must contain num_other_output_channels elements. Each element in the other_output_buffer array corresponds to the same element in the other_output_channels array.
Return value
The return value is 0 if the I/O operation is performed successfully. Otherwise
a negative error code is returned. Error codes
are defined in quanser_errors.h
. A suitable error
message may be retrieved using
msg_get_error_message.
Error codes
QERR_HIL_READ_OTHER_WRITE_OTHER_NOT_SUPPORTED
This function is not supported by the board-specific HIL driver for this board type.
QERR_INVALID_CARD_HANDLE
An invalid card handle was passed as an argument. Once a card has been closed using hil_close the card handle is invalid.
QERR_TOO_MANY_OTHER_INPUT_CHANNELS
Too many other input channels were specified.
QERR_INVALID_OTHER_INPUT_CHANNEL
One of the other input channels that was specified is not a valid channel number. Channel numbers range from 0 to one less than the number of channels.
QERR_TOO_MANY_OTHER_OUTPUT_CHANNELS
Too many other output channels were specified.
QERR_INVALID_OTHER_OUTPUT_CHANNEL
One of the other output channels that was specified is not a valid channel number. Channel numbers range from 0 to one less than the number of channels.
QERR_DRIVER_INCOMPATIBLE_WITH_BOARD_DLL
The board-specific HIL driver passed an invalid parameter to the operating system specific kernel-level driver for the board. The board-specific HIL driver is likely not compatible with the operating system specific kernel-level driver for the board. Make sure both are up-to-date and compatible versions.
QERR_INTERNAL_BUFFER_TOO_SMALL
The board-specific HIL driver used an internal buffer that was too small for the operating system specific kernel-level driver for the board. The board-specific HIL driver is likely not compatible with the operating system specific kernel-level driver for the board. Make sure both are up-to-date and compatible versions.
QERR_OUT_OF_REQUIRED_SYSTEM_RESOURCES
There are not enough system resources to perform the requested operation. Try rebooting, requesting fewer samples, or adding more memory to your machine.
Requirements
Include Files |
Libraries |
---|---|
hil.h |
hil.lib;quanser_runtime.lib;quanser_common.lib |
Examples
/*
* Read the first four other input channels and writes
* to the first two other output channels.
*/
t_uint32 input_channels[] = { 0, 1, 2, 3 };
t_double input_buffer[4];
t_uint32 output_channels[] = { 0, 1 };
t_double output_buffer[] = { 0.5, 1.5 };
t_error result = hil_read_other_write_other(board
, input_channels, ARRAY_LENGTH(input_channels)
, output_channels, ARRAY_LENGTH(output_channels)
, input_buffer
, output_buffer
);
Copyright ©2024 Quanser Inc. This page was generated 2024-10-17. Submit feedback to Quanser about this page.