Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Shared or common functionality for the communication via DDS is bundled in the cpm library (cpm_lib). This library is written in C++ and is used by the vehicle, the LCC and the Middleware. The HLC, on the other hand, is supposed to be more or less independent from the implementation language of the library. Programmers of the HLC programs should also not be troubled with its implementation details. Thus, it was decided to create a Middleware which performs most of the communication tasks that otherwise would have to be implemented in some form in the HLC, which might not be able to use a C++ library.

The Middleware coordinates the communication with the DDS domain of the vehicle, LCC and further participants with the HLC. It is responsible for sending timed pre-aggregated vehicle information to the HLC which . These can be interpreted as a start signal for starting the computation using this data, and it . It sends the commands generated by the HLC as a reaction to this start signal to the vehicles. Any timing task is performed by the Middleware, so period and offset for the interaction with the HLC are set here (and can be set when starting the application using command line parameters).  The HLC is informed about the current time, in case that is necessary for its own computations.


Middleware to HLC communication - imageImage AddedHLC to Middleware communication - imageImage Added



The application also manages further internal timing according to the current simulated and real time, propagating propagates the LLC's start and stop signals and waiting waits for the HLC to finish its computation in the simulated case. It is also responsible for logging communication or timing errors regarding the HLC.

The HLC only needs to integrate and configure a reader and a writer to listen to the vehicle Middleware and send commands. Thus, as long as the programming language is supported by RTI DDS, the programmer does not need to know the implementation details of the communication.

...