exponenta event banner

rtiostream_wrapper

Тест rtiostream функции общей библиотеки в MATLAB

Описание

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 и битрейт 9600:

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 является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: '-hostname', 'localhost'
Связь TCP/IP

свернуть все

Открытый rtiostream Сервер или клиент TCP/IP:

  • 0 - сервер TCP/IP

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

Порт для связи TCP/IP.

Идентификатор компьютера разработки, например: 'localhost'.

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

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

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

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

Период ожидания вызова, принимающего данные:

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

  • 0 - Нет периода ожидания.

  • -1 - Ждать бесконечно.

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

  • -3 - Подождите 10 мс.

По умолчанию для клиентских подключений требуется ожидание в течение 1 секунды. По умолчанию для серверных подключений требуется неопределенное время ожидания.

Последовательная связь

свернуть все

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

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

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

свернуть все

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

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

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

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

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

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