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

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

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

Описание

Блок 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™.

Введенный в R2018b