rtIOStreamRecv - Receive data through communication channel - MATLAB (original) (raw)
Main Content
Receive data through communication channel
Syntax
Description
[errFlg](#d126e42182) = rtIOStreamRecv([streamID](#d126e42101), [dest](#d126e42121), [size](#d126e42138), [receivedDataSize](#d126e42158))
receives data through a communication channel.
Examples
Send and Receive Data from Processor
This code from [rtiostreamtest.c](https://mdsite.deno.dev/matlab:edit%28fullfile%28matlabroot,'/toolbox/coder/rtiostream/src/rtiostreamtest/rtiostreamtest.c'%29%29)
shows how to send and receive data from a target processor.
static void blockingIO(int send, unsigned long numMemUnits) { size_t sizeToTransfer = (size_t) numMemUnits; size_t sizeTransferred; IOUnit_T * ioPtr = (IOUnit_T *) &buff[0]; int status;
if (numMemUnits > BUFFER_SIZE)
{
AckCode = stat_notEnoughSpace;
AckArg0 = BUFFER_SIZE;
return;
}
#ifdef HOST_WORD_ADDRESSABLE_TESTING
/* map to bytes */
sizeToTransfer *= MEM_UNIT_BYTES;
#endif
while (sizeToTransfer > 0) { sizeTransferred = 0; /* Do the low level call */ status = send ? rtIOStreamSend(streamID, ioPtr, sizeToTransfer, &sizeTransferred) : rtIOStreamRecv(streamID, ioPtr, sizeToTransfer, &sizeTransferred);
if (status != RTIOSTREAM_NO_ERROR) {
if (AckCode == stat_OK) {
AckCode = stat_RTIOSTREAM_ERROR;
AckArg0 = data_counter;
}
return;
}
else {
sizeToTransfer -= sizeTransferred;
ioPtr += sizeTransferred;
}
} }
Input Arguments
Handle to the stream returned by a previous call tortIOStreamOpen
.
Pointer to the start of the buffer for received data.
Size of data to copy into the destination buffer. For byte-addressable architectures, size is measured in bytes. Some DSP architectures are not byte-addressable. In these cases, size is measured in number of WORDs, wheresizeof(WORD) == 1
.
Number of units of data received and copied into the bufferdest. If no data is copied, value is zero.
Output Arguments
If the function runs without errors, it returns zero. Otherwise, it returns -1.
The rtiostream.h
file defines these macros:
#define RTIOSTREAM_ERROR (-1) #define RTIOSTREAM_NO_ERROR (0)
Version History
Introduced in R2009a