Design Pattern: Tagged Data

Problem Statement

Ensure that:

Framework

In addition to the PUBLISH_n/SUBSCRIBE_n service interface types, which use communication networks for exchange of data, and the PUBL_n/SUBL_n service interface types described under the Local Multicast pattern, only the two additional functional block types shown below are required. The function of these these blocks is to translate data from a local multicast group to a remote multicast group ( TAGOUT ) or vice versa ( TAGIN ) according to the following features:

An abstract internal implementation of each of these function block types is shown below for the case when a single data element is being transferred. The actual number and types of data being transferred is determined by the TYPE input as explained above.

TAGIN

TAGOUT

Tool Support

The FBDK provides built-in support for the use of tagged data when a system configuration is being edited:

Methodology

The methodology for using this design pattern consists of the two steps listed below. It can be used as a sub-pattern to simplify and avoid errors in the Distribution phase of other methodologies, such as the layered MVC pattern.

  1. Distribute and debug the application among "local" devices such as FRAME_DEVICE, using the local multicast pattern. As an example, see the FLASHER_TESTD system configuration.
    • This may be done by re-organizing resources from a single-device configuration such as FLASHER_TESTL, using the Move To pop-up menu item on a resource in the Navigation tree.
  2. Replace the local devices with instances of their equivalent remote device types, e.g., RMT_DEV or RMT_FRAME, as appropriate.
    • Add a TAGS resource (typically an instance of EMB_RES) to each device to map from local multicast to UDP multicast using instances of TAGIN and TAGOUT as appropriate.
    • For example, see the FLASHER_TESTR system configuration.