Call Service

Вызовите сервис в сети ROS

  • Библиотека:
  • ROS Toolbox / ROS

  • Call Service block

Описание

Блок Call Service берет сообщение запроса на обслуживание ROS, отправляет его в сервисный сервер ROS и ожидает ответа. Соединитесь с использованием сети ROS rosinit. Сервер ROS должен быть настроен где-нибудь в сети перед использованием этого блока. Проверяйте доступные сервисы на использование сети ROS rosserviceИспользование rossvcserver настраивать сервисный сервер в MATLAB®.

Задайте имя для своего сервиса ROS и сервисного типа в маске блока. Если соединено с сетью ROS, можно выбрать из списка доступных сервисов. Можно создать пустое сообщение запроса на обслуживание или ответа, чтобы заполнить с данными с помощью блока Blank Message.

Порты

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

развернуть все

Запросите сообщение в виде невиртуальной шины. Тип сообщения запроса соответствует вашему сервисному типу. Чтобы сгенерировать пустую шину сообщения запроса, чтобы заполнить с данными, используйте блок Blank Message.

Типы данных: bus

Вывод

развернуть все

Сообщение ответа, возвращенное как невиртуальная шина. Ответ основан на сообщении входа Req. Тип сообщения ответа соответствует вашему сервисному типу. Чтобы сгенерировать пустую шину сообщения ответа, чтобы заполнить с данными, используйте блок Blank Message.

Типы данных: bus

Состояние ошибки для сервиса вызывает в виде целого числа. Каждое целое число соответствует различному состоянию ошибки для сервисной связи или состояния сервисного вызова. Если состояние ошибки происходит, Resp выходные параметры последнее сообщение ответа или пустое сообщение, если ответ не был ранее получен.

Код ошибкиУсловие
0Сервисный ответ был успешно получен и доступен в Resp вывод .
1Связь не была установлена в заданном Connection timeout.
2Ответ с сервера не был получен в заданном Call timeout
3Сервисный вызов перестал работать по неизвестным причинам.

Зависимости

Этот выход включен, когда флажком Show ErrorCode output port является on.

Типы данных: uint8

Параметры

развернуть все

Источник для определения сервисного имени:

  • Select from ROS network — Используйте Select, чтобы выбрать сервисное имя. Name и параметры Type установлены автоматически. Вы должны быть соединены с сетью ROS.

  • Specify your own — Введите сервисное имя в Name и задайте его сервисный тип в Type. Необходимо совпадать с сервисным именем точно.

Сервисное имя в виде вектора символов. Сервисное имя должно совпадать с сервисным именем, доступным на сервисном сервере ROS. Чтобы видеть список допустимых сервисов в сети ROS, смотрите rosservice.

Сервисный тип в виде вектора символов. Каждое сервисное имя имеет соответствующий тип.

Тайм-аут для сервисной связи сервера в виде положительного числового скаляра в секундах. Если связь не может быть установлена с сервисным сервером ROS в это время, то ErrorCode выходные параметры 1.

Установите этот флажок, чтобы обеспечить персистентную связь с сервисным сервером ROS. Когда off, блок создает сервисный клиент каждый раз, когда сообщение запроса вводится в Req.

Установите этот флажок, чтобы вывести ErrorCode выход. Если состояние ошибки происходит, Resp выходные параметры последнее сообщение ответа или пустое сообщение, если ответ не был ранее получен.

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью Simulink® Coder™.

Введенный в R2019b