rtiostream_wrapper

Протестируйте совместно использованные библиотечные функции rtiostream в MATLAB

Синтаксис

streamID = rtiostream_wrapper(sharedLib, 'open')
[errFlag,transmittedDataSize] = rtiostream_wrapper(sharedLib,'send',streamID,data,dataSize)
[errFlag,receivedData,receivedDataSize] = rtiostream_wrapper(sharedLib,'recv',streamID,dataSize)
streamID = rtiostream_wrapper(___,Name,Value)
errFlag = rtiostream_wrapper(sharedLib,'close',streamID)
rtiostream_wrapper(sharedLib,'unloadlibrary')

Описание

streamID = rtiostream_wrapper(sharedLib, 'open') открывает канал связи rtiostream или поток через разделяемую библиотеку.

[errFlag,transmittedDataSize] = rtiostream_wrapper(sharedLib,'send',streamID,data,dataSize)данные о передачах от переменной рабочей области до канала открытого общения или потока.

[errFlag,receivedData,receivedDataSize] = rtiostream_wrapper(sharedLib,'recv',streamID,dataSize) получает данные о переменной рабочей области из канала открытого общения или потока.

streamID = rtiostream_wrapper(___,Name,Value) задает дополнительные опции с помощью одного или нескольких аргументов пары "имя-значение". Эти аргументы являются зависящими от реализации, то есть, они характерны для разделяемой библиотеки, которой вы пользуетесь.

errFlag = rtiostream_wrapper(sharedLib,'close',streamID) закрывает канал связи rtiostream или поток.

пример

rtiostream_wrapper(sharedLib,'unloadlibrary') разгружает разделяемую библиотеку, очищая персистентные данные.

Примеры

Каналы открытого общения

Эти примеры используют предоставленный TCP/IP и драйверы последовательной передачи к каналам открытого общения.

Откройте rtiostream stationA как сервер TCP/IP:

stationA = rtiostream_wrapper('libmwrtiostreamtcpip.dll','open',...
                              '-client', '0',...
                              '-blocking', '0',...
                              '-port', port_number);

Открывает rtiostream StationB как клиент TCP/IP:

stationB = rtiostream_wrapper('libmwrtiostreamtcpip.dll','open',...
                              '-client','1',...
                              '-blocking', '0',...
                              '-port', port_number,...
                              '-hostname','localhost');

Если вы используете предоставленный драйвер компьютера разработчика для последовательной передачи данных (как альтернатива драйверам для TCP/IP), задаете битрейт, когда вы открываете канал с определенным портом. Например, откройте канал stationA с портом COM1 и битрейтом 9 600:

stationA = rtiostream_wrapper('libmwrtiostreamserial.dll','open',...
                              '-port','COM1',...
                              '-baud','9600');

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

свернуть все

Разделяемая библиотека, которая реализует необходимые функции rtIOStream, rtIOStreamOpen, rtIOStreamSend, rtIOStreamRecv и rtIOStreamClose. Должен быть на системном пути. Задайте одно из этих значений:

  • libTCPIP — Для коммуникации TCP/IP. Значение зависит от вашей операционной системы, например, 'libmwrtiostreamtcpip.dll'

  • libSerial — Для последовательной передачи, например, 'libmwrtiostreamserial.dll'.

Обработайте к коммуникационному потоку rtiostream.

Массив, который содержит данные для передачи.

Размер данных о переменной рабочей области, чтобы передать или получить, в байтах.

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: '-имя-узла', 'localhost'

Коммуникация TCP/IP

свернуть все

Откройте rtiostream как сервер TCP/IP или клиент:

  • 0 — Сервер TCP/IP

  • 1 — клиент TCP/IP

Порт для коммуникации TCP/IP.

Идентификатор для вашего компьютера разработчика, например, 'localhost'.

Вызовите поведение при получении данных:

  • 0 — Режим Polling. Если данные доступны, вызов возвращается с данными. Если данные не доступны, вызов возвращается без ожидания.

  • 1 — режим Blocking. Если данные доступны, вызов возвращается с данными. Если данные не доступны, вызов ожидает данных. Используйте recv_timeout_secs, чтобы задать время ожидания.

Значение по умолчанию 0, если макрос препроцессора define VXWORKS не существует. В этом случае значение по умолчанию равняется 1.

Время ожидания вызова, который получает данные:

  • X, положительное целое число — Ожидает в течение секунд X.

  • 0 — Никакое время ожидания.

  • - 1 — Ожидают неопределенно.

  • - 2 — Ожидают периода по умолчанию.

  • - 3 — Ожидают 10 мс.

Значение по умолчанию для клиентских связей должно ожидать 1 секунда. Значение по умолчанию для связей сервера должно ожидать неопределенно.

Последовательная передача

свернуть все

COM-порт для последовательной передачи.

Битрейт для последовательного порта.

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

свернуть все

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

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

Размер данных передается через коммуникационный поток. Могут быть меньше, чем dataSize, количество байтов, заданных для передачи.

Массив, который содержит полученные данные.

Количество байтов получено от коммуникационного потока. Могут быть меньше, чем dataSize, количество байтов, заданных для передачи.

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