Table of Contents
stream_receive_single_array
Receives an array of 32-bit floating-point numbers as an atomic unit from a stream.
[data, would_block] = stream_receive_single_array(stream, num_singles)
This function receives an array of 32-bit real numbers over a client stream. It differs from the stream_receive_singles function in that it treats the entire array as an atomic unit. It either receives all of the array or none of it.
If stream_listen or stream_connect was called with the non-blocking flag set to false (0), then this function blocks until all the data is read. If the connection has been closed gracefully then it returns an empty array only once there is no more data to receive. Otherwise it returns the array of 32-bit real numbers read before the connection closed. Once there is not enough data in the stream buffer to fill the requested array then it will return an empty array to indicate the connection has been closed. Use stream_receive_singles to receive any remaining 32-bit real numbers if required. If an error occurs, then it issues an error message.
If stream_listen or stream_connect was called with the non-blocking flag set to true (1), then this function does not block. If fewer 32-bit real numbers are available than the size of the entire requested array then it sets would_block equal to true. In this case, the stream_poll function may be used with the 'receive' flag to determine when data becomes available. Otherwise it returns the array of 32-bit real numbers received.
The BSD socket API has no equivalent to this function.
This operation is not valid on listening streams created using stream_listen.
stream
Stream handle returned by stream_connect or stream_accept.
num_singles
The number of singles to receive.
data
An array of single's containing the 32-bit real numbers received. For blocking streams, if this array is empty then the connection has been closed gracefully. For non-blocking streams, the array is empty if not enough data was available in the stream buffer to satisfy the request. In this case, would_block is set to true if the connection is still open and false if the connection has been closed. The array is always empty or num_singles elements. Unlike the stream_receive_singles function it will never contain between 0 and num_singles elements exclusive.
would_block
Whether the function would have blocked. Always false for blocking streams.
data = stream_receive_single_array(stream, 1000); % Receive 1000 32-bit real numbers
See Also
Copyright ©2024 Quanser Inc. This page was generated 2024-10-17. Submit feedback to Quanser about this page.
Link to this page.