rocon_interaction_msgs

Summary

rocon_interaction_msgs
Version:

0.7.12

Description:

Messages used by rocon interactions.

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

Types

Message types

rocon_interaction_msgs/Pair
Field:
  • rapp (string) –
  • remocon (string) –

Indicates what pairs (rapp, remocon) are running at any point in time. If none, these values drop back to empty strings.

# Indicates what pairs (rapp, remocon) are running at any point in time.
# If none, these values drop back to empty strings.

string rapp
string remocon
rocon_interaction_msgs/InteractiveClient
Field:

Describes an interactive concert client.

Unique names - human consumable rocon name as well as globally unique name provided by the remocon client.

# 
# Describes an interactive concert client.
#
# Unique names - human consumable rocon name as well as globally unique name
# provided by the remocon client.

string name
uuid_msgs/UniqueID id

rocon_std_msgs/PlatformInfo platform_info

# easy to read display names of interactions running on this remocon
string[] running_interactions
rocon_interaction_msgs/InteractiveClients
Field:

Two lists are included here to distinguish between idle clients and those that are currently running an app.

# 
# Two lists are included here to distinguish between idle clients and those that
# are currently running an app.
#
InteractiveClient[] idle_clients
InteractiveClient[] running_clients
rocon_interaction_msgs/Pairing
Field:

Properties of a paired app that is destined to work with a rocon interaction.

ros resource name of the rapp, e.g. rocon_apps/talker

# Properties of a paired app that is destined to work with a rocon interaction.

# ros resource name of the rapp, e.g. rocon_apps/talker
string rapp

rocon_std_msgs/Remapping[] remappings

# Key value pairs representing rapp parameters
rocon_std_msgs/KeyValue[] parameters
rocon_interaction_msgs/Strings
Constant:
  • REMOCONS_NAMESPACE (string):/remocons

Strings that are constant with respect to the entire concert. Listing them here allows every user to automatically update if there are any refactorings. Avoid hardcoding these here if possible (see concert_msgs.Strings for a good rant).

Namespaces

# Strings that are constant with respect to the entire concert. Listing them here
# allows every user to automatically update if there are any refactorings. Avoid
# hardcoding these here if possible (see concert_msgs.Strings for a good rant).

# Namespaces

string REMOCONS_NAMESPACE = /remocons
rocon_interaction_msgs/ErrorCodes
Constant:
  • SUCCESS (int8):0
  • INTERACTION_UNAVAILABLE (int8):20
  • INTERACTION_QUOTA_REACHED (int8):21
  • START_PAIRED_RAPP_FAILED (int8):31
  • ALREADY_PAIRING (int8):32
  • MSG_INTERACTION_UNAVAILABLE (string):"This role-app pair is not available for use."
  • MSG_INTERACTION_QUOTA_REACHED (string):"More connections of this type not permitted."
  • MSG_START_PAIRED_RAPP_FAILED (string):"Failed to start the paired rapp."
  • MSG_ALREADY_PAIRING (string):"Already pairing, cannot start another pairing."

Error types for interactions

# Error types for interactions

int8 SUCCESS = 0

# Interaction errors
int8 INTERACTION_UNAVAILABLE = 20    # The requested role-app pair is not available
int8 INTERACTION_QUOTA_REACHED = 21  # Maximum number or role-app connections already reached 

# Pairing errors
int8 START_PAIRED_RAPP_FAILED = 31   # If a paired rapp fails to start.
int8 ALREADY_PAIRING          = 32   # If trying to start a pairing, but already pairing

string MSG_INTERACTION_UNAVAILABLE   = "This role-app pair is not available for use."
string MSG_INTERACTION_QUOTA_REACHED = "More connections of this type not permitted."
string MSG_START_PAIRED_RAPP_FAILED  = "Failed to start the paired rapp."
string MSG_ALREADY_PAIRING           = "Already pairing, cannot start another pairing."
rocon_interaction_msgs/RemoconStatus
Field:

Used by the remocons to inform the concert of it’s current status. They should publish this as a latched publisher.

# Used by the remocons to inform the concert of it's current status. They should
# publish this as a latched publisher.

rocon_std_msgs/PlatformInfo platform_info
# The remocon id
# This should be a '32 character Type 4 uuid hex string'
string uuid


# We should be using this, but java can't handle the type, reintegrate when we bugfix.
# uuid_msgs/UniqueID[] running_interactions

# This is a crc32 hash code we use because of the above.
int32[] running_interactions

# rocon version compatibility identifier (used when connecting to concerts)
string version
rocon_interaction_msgs/Interaction
Field:
Constant:
  • UNLIMITED_INTERACTIONS (int32):-1
Non-modifiable Specifications

These should be stored in a meta-repository somewhere.

Name of the interaction. This should be the string required to install and execute the application on the remocon’s end. e.g. for android app this will be an intent action name such as com.github.rosjava.android_apps.listener.Listener, while for a web app it will be its URL.

###############################################################
# Non-modifiable Specifications
###############################################################
# These should be stored in a meta-repository somewhere.
#
# Name of the interaction. This should be the string
# required to install and execute the application on the remocon's
# end. e.g. for android app this will be an intent action name such as
# com.github.rosjava.android_apps.listener.Listener, while for
# a web app it will be its URL.
string name

# A rocon uri string denoting the platforms this interaction
# is compatible with
string compatibility

###############################################################
# Variable Specifications
###############################################################

# User friendly version of the name. Useful to be customised
# differently from the name for either 1) branding, or 2) because
# some names are complicated visually (e.g. android names).
string display_name
 
# Should be a default for the interaction, but sometimes useful to
# override it to provide more human friendly information.
string description

# The namespace that this interaction will be associated
# with. Interfaces from the interaction will be automatically pushed
# into this namespace (for concerts it will be typically
# used by the services to push interfaces into /services/_service_name_).
# It is up to the user to make sure this is unique to avoid
# potential conflicts.
string namespace

# Again, should exist a default, but may want to override it.
rocon_std_msgs/Icon icon

# Any remappings that need to be applied
rocon_std_msgs/Remapping[] remappings

# Yaml string representing parameters for the interaction
string parameters

# Maximum number of permitted connections (-1 = any)
int32 UNLIMITED_INTERACTIONS = -1
int32 max

# The configuration for a pairing if this interaction is to be paired
# with a rapp. If not, it should be left unfilled.
Pairing pairing

###############################################################
# Parameters finalised by the interactions manager
###############################################################

# This is a crc32 hash code for the service-role-name
# unique string that identifies this interaction.
# crc32 gets a few collisions, so we should be careful of that.
# It is used by the nfc android auto-launching program so we can
# compactify the request in the url sent by the nfc to the autolauncher.
int32 hash

# The role this solution has configured the interaction for. This is in
# some use cases redundant, and in other use cases essential (e.g.
# headless launcher)
string role

Service types

rocon_interaction_msgs/RequestInteraction
Field (Request):
 
  • remocon (string) –
  • hash (int32) –
Field (Response):
 
  • result (bool) –
  • error_code (int8) –
  • message (string) –

This is used between remocons and the interactions manager to request the launch of a remote application to interact with the concert.

Name of the remocon doing the requesting

# This is used between remocons and the interactions manager to request
# the launch of a remote application to interact with the concert.

# Name of the remocon doing the requesting
string remocon

# Hash id of the interaction being requested
int32 hash

---

bool result

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

# human friendly string for debugging (usually upon error)
string message
rocon_interaction_msgs/GetInteraction
Field (Request):
 
  • hash (int32) –
Field (Response):
 

For the auto app launcher (used with nfc tag) to get the information about a single interaction.

We had to trim down the request data given to us by the nfc tag so we use crc32 hashes for uniqueness purposes.

# For the auto app launcher (used with nfc tag) to get the information
# about a single interaction.

# We had to trim down the request data given to us by the nfc tag
# so we use crc32 hashes for uniqueness purposes.
int32 hash

# The rocon uri of the requester. This is used as a check to
# ensure the platform is compatible. Disabling for now until we have
# a real need for this.

---

bool result
Interaction interaction
rocon_interaction_msgs/GetInteractions
Field (Request):
 
  • roles[] (string) –
  • uri (string) –
Field (Response):
 

For remocons who need to retrieve a filtered list of interactions appropriate to the role and platform they will run for/on.

Filter according to roles. If not specified it will return interactions for all roles.

# For remocons who need to retrieve a filtered list of interactions
# appropriate to the role and platform they will run for/on. 

# Filter according to roles. If not specified it will return 
# interactions for all roles.
string[] roles

# Filter according to the rocon uri of the requesting device. T
# If not specified, the manager will assume 'rocon://' (wildcards)
string uri
---
Interaction[] interactions
rocon_interaction_msgs/GetRoles
Field (Request):
 
  • uri (string) –
Field (Response):
 
  • roles[] (string) –

For remocons who need to retrieve a filtered list of roles appropriate to the role and platform they will run for/on.

Filter according to the rocon uri of the requesting device. T If not specified, the manager will assume ‘rocon://’ (wildcards)

# For remocons who need to retrieve a filtered list of roles
# appropriate to the role and platform they will run for/on. 

# Filter according to the rocon uri of the requesting device. T
# If not specified, the manager will assume 'rocon://' (wildcards)
string uri
---
string[] roles
rocon_interaction_msgs/SetInteractions
Field (Request):
 
Field (Response):
 
  • result (bool) –

Extend or delete the rocon interactions database with this list.

# Extend or delete the rocon interactions database with this list. 

Interaction[] interactions

# If true, load, else attempt to unload them.
bool load

---

bool result

# Could use better error handling here - provide a list of what got
# got manipulated and what did not.