rtIOStreamRecv

Получите данные через канал связи

Описание

пример

errFlg = rtIOStreamRecv(streamID, dest, size, receivedDataSize) получает данные через канал связи.

Примеры

Отправьте и получите данные из процессора

Этот код от rtiostreamtest.c показывает, как отправить и получить данные из целевого процессора.

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;
      }
   }
}

Входные параметры

свернуть все

Обработайте к потоку, возвращенному предыдущим вызовом rtIOStreamOpen.

Указатель на запуск буфера для полученных данных.

Размер данных, чтобы скопировать в целевой буфер. Для архитектуры с байтовой адресацией размер измеряется в байтах. Некоторые архитектуры DSP не с байтовой адресацией. В этих случаях размер измеряется в количестве СЛОВ, где sizeof(WORD) == 1.

Количество единиц информации получено и скопировано в буферный dest. Если никакие данные не копируются, значение является нулем.

Выходные аргументы

свернуть все

Если функция запускается без ошибок, она возвращает нуль. В противном случае это возвращается-1.

rtiostream.h файл задает их макросы:

#define RTIOSTREAM_ERROR (-1)
#define RTIOSTREAM_NO_ERROR (0)

Представленный в R2009a