rocon_app_manager_msgs

Summary

rocon_app_manager_msgs
Version:

0.7.12

Description:

Messages used by the platform app manager.

Maintainers:
  • Daniel Stonier <d DOT stonier AT gmail DOT com>
  • Jihoon Lee <jihoonlee DOT in AT gmail DOT com>
Licenses:
  • BSD
Urls:
Authors:
  • Daniel Stonier
BuildDepends:
BuildtoolDepends:
 
BuildExportDepends:
 
ExecDepends:
Exports:
  • <architecture_independent/>

Types

Message types

rocon_app_manager_msgs/Status
Field:
Constant:
  • RAPP_STOPPED (string):stopped
  • RAPP_RUNNING (string):running

Namespace under which applications will run if connected

# Namespace under which applications will run if connected
string application_namespace

# Who is controlling the app manager (i.e. who invited it to send it's
# control handles). If the empty string, it is not being controlled 
# and subsequently is available
string remote_controller

# Rapp is running or not
string RAPP_STOPPED=stopped
string RAPP_RUNNING=running
string rapp_status

# Current app details (if running), a default Rapp() (filled with empty strings and lists) otherwise
Rapp rapp

# The runtime, possibly namespaced and remapped interfaces/parameters
PublishedInterface[] published_interfaces
rocon_std_msgs/KeyValue[] published_parameters
rocon_app_manager_msgs/Rapp
Field:

This is the message that gets published in list_rapps. Do not think of it as the ‘rapp’ definition (since that is quite varied -> ancestor, virtual, child, implementation) Rather it is the published list of rapps with the required information for the concert and some introspection.

app name (ros resource name format, i.e. pkg/name, e.g. turtle_concert/teleop)

# This is the message that gets published in list_rapps. Do not think of it as the
# 'rapp' definition (since that is quite varied -> ancestor, virtual, child, implementation)
# Rather it is the published list of rapps with the required information for the concert
# and some introspection.

# app name (ros resource name format, i.e. pkg/name, e.g. turtle_concert/teleop)
string name
# user-friendly display name
string display_name
string description
# a rocon uri string indicating platform compatibility
string compatibility
string status

# a list of implementations
string[] implementations

# A preferred rapp for virtual rapp
string preferred

# icon for showing the app
rocon_std_msgs/Icon icon

# public interface and parameters
rocon_std_msgs/KeyValue[] public_interface
rocon_std_msgs/KeyValue[] public_parameters
rocon_app_manager_msgs/IncompatibleRappList
Field:
  • blacklisted_rapps[] (string) –
  • non_whitelisted_rapps[] (string) –
  • platform_incompatible_rapps[] (string) –
  • capabilities_incompatible_rapps[] (string) –

List all apps which were filtered for some reason or another

# List all apps which were filtered for some reason or another

string[] blacklisted_rapps
string[] non_whitelisted_rapps
string[] platform_incompatible_rapps
string[] capabilities_incompatible_rapps
rocon_app_manager_msgs/Constants
Constant:
  • NO_REMOTE_CONNECTION (string):none
  • NO_REMOTE_CONTROLLER (string):none

Rapp manager is not getting controlled, and is thus, available.

# Rapp manager is not getting controlled, and is thus, available.
string NO_REMOTE_CONNECTION=none
# An alias for the above
string NO_REMOTE_CONTROLLER=none
rocon_app_manager_msgs/RappList
Field:
Rapp[] available_rapps
Rapp[] running_rapps
rocon_app_manager_msgs/PublishedInterface
Field:

The runtime, possibly namespaced and remapped public interface.

# The runtime, possibly namespaced and remapped public interface.

PublicInterface interface

# Final absolute namespaced/remapped name of the topic/service/action xxx
string name
rocon_app_manager_msgs/ErrorCodes
Constant:
  • SUCCESS (int8):0
  • UNKNOWN (int8):1
  • MULTI_RAPP_NOT_SUPPORTED (int8):10
  • RAPP_IS_NOT_RUNNING (int8):20
  • RAPP_IS_NOT_AVAILABLE (int8):21
  • LOCAL_INVITATIONS_ONLY (int8):30
  • NO_LOCAL_GATEWAY (int8):31
  • ALREADY_REMOTE_CONTROLLED (int8):32
  • NOT_CURRENT_REMOTE_CONTROLLER (int8):33
  • INVITING_CONTROLLER_NOT_WHITELISTED (int8):34
  • INVITING_CONTROLLER_BLACKLISTED (int8):35
  • CLIENT_CONNECTION_DISRUPTED (int8):36

Error types for the rocon app manager

General

# Error types for the rocon app manager

# General
int8 SUCCESS = 0
int8 UNKNOWN = 1

# Start
int8 MULTI_RAPP_NOT_SUPPORTED = 10

# Stop Rapp
int8 RAPP_IS_NOT_RUNNING = 20
int8 RAPP_IS_NOT_AVAILABLE = 21

# Invitations
int8 LOCAL_INVITATIONS_ONLY = 30
int8 NO_LOCAL_GATEWAY = 31
int8 ALREADY_REMOTE_CONTROLLED = 32
int8 NOT_CURRENT_REMOTE_CONTROLLER = 33
int8 INVITING_CONTROLLER_NOT_WHITELISTED = 34
int8 INVITING_CONTROLLER_BLACKLISTED = 35
int8 CLIENT_CONNECTION_DISRUPTED = 36
rocon_app_manager_msgs/PublicInterface
Field:
  • connection_type (string) –
  • data_type (string) –
  • name (string) –

Represents a public interface of a rapp

One of rocon_std_msgs.Connection type string constants (‘publisher, ‘subscriber’, ...)

# Represents a public interface of a rapp

# One of rocon_std_msgs.Connection type string constants ('publisher, 'subscriber', ...)
string connection_type

# The data type, e.g. std_msgs/Strings
string data_type

# Name of the topic/service/action xxx.
string name

Service types

rocon_app_manager_msgs/Invite
Field (Request):
 
  • remote_target_name (string) –
  • application_namespace (string) –
  • cancel (bool) –
Field (Response):
 
  • result (bool) –
  • error_code (int32) –
  • message (string) –

Invite the application manager to send (or cancel) the app manager control handles (/start_app etc) to a remote target. That target is usually the client’s gateway name.

# Invite the application manager to send (or cancel) the app manager control handles 
# (/start_app etc) to a remote target. That target is usually the client's gateway name.

string remote_target_name

# Set up the default application namespace - there are typically three options here:
#  - an absolute namespace
#  - a relative namespace, in which case it will reside underneath the app manager namespace
#  - unset, in which case it defaults to the relative namespace 'application'
string application_namespace
bool cancel
---
bool result
# classifying start success/failure, see ErrorCodes.msg (to be implemented)
int32 error_code
# human friendly string for debugging (usually upon error)
string message
rocon_app_manager_msgs/StartRapp
Field (Request):
 
Field (Response):
 
  • started (bool) –
  • error_code (int32) –
  • message (string) –
  • application_namespace (string) –

Name of the rapp to launch

# Name of the rapp to launch
string name
rocon_std_msgs/Remapping[] remappings

# Key value pairs representing rapp parameters
rocon_std_msgs/KeyValue[] parameters
---
bool started

# classifying start success/failure, see ErrorCodes.msg
int32 error_code

# human friendly string for debugging (usually upon error)
string message

# Namespace where the rapp interface can be found
string application_namespace
rocon_app_manager_msgs/StopRapp
Field (Response):
 
  • stopped (bool) –
  • error_code (int32) –
  • message (string) –
---
# true if app stopped, false otherwise
bool stopped
# classifying start success/failure, see ErrorCodes.msg
int32 error_code
# human friendly string for debugging (usually upon error)
string message
rocon_app_manager_msgs/GetRappList
Field (Response):
 
---
Rapp[] available_rapps
Rapp[] running_rapps
rocon_app_manager_msgs/Init
Field (Request):
 
  • name (string) –
Field (Response):
 
  • result (bool) –

Reset the robot_name configured by the app manager, i.e. renamespace the app manager’s connections. This is typically not necessary as the app manager will just use whatever param is passed in as the robot_name for the namespace. It does get used by later frameworks (e.g. concert) which can pass the app manager a guaranteed unique name.

I might be in favour of dropping this necessity in favour of more ugly, but less tedious to handle anonymous names. This may in fact become necessary if we go multi-hub (DJS).

Will return False if the app manager is busy (running an app)

# Reset the robot_name configured by the app manager, i.e. 
# renamespace the app manager's connections. This is typically
# not necessary as the app manager will just use whatever param
# is passed in as the robot_name for the namespace. It does get
# used by later frameworks (e.g. concert) which can pass the 
# app manager a guaranteed unique name.
#
# I might be in favour of dropping this necessity in favour of 
# more ugly, but less tedious to handle anonymous names. This
# may in fact become necessary if we go multi-hub (DJS).
#
# Will return False if the app manager is busy (running an app)

string name
---
bool result