Skip to content

Addressing

The SAE JAUS standard does not define a mechanism for assigning the Subsystem, Node, and Components IDs that constitute a JAUS Address1. As such, the most common approach is to statically assign these IDs in code or using configuration files.

IOP has attempted to address this shortcoming by defining a set of additional optional services that can be used to dynamically assign these IDs. The relevant IOP attributes are:

  • Centralized Subsystem Assignment
  • Subsystem ID Propagation
  • Dynamic Node ID Assignment

The OpenJAUS SDK provides support for these IOP mechanisms as part of the org.openjaus.iop-*.cpp packages. When support is enabled in a Component, functionality is configured via the OpenJAUS configuration file.

To enable support, instantiate a std::shared_ptr to an instance of a openjaus::iop_v7::AddressProvider and register it with the Component using the Component::registerAddressProvider method.

Unsure how to create a Component? See the Tutorial.

Example

// .cpp file
#include <openjaus/iop_v7/AddressProvider.h>

MyComponent::MyComponent() :
    m_addressProvider(this)
{
    Component::registerAddressProvider(std::make_shared<openjaus::iop_v7::AddressProvider>(this));

    // ...
}