DDS-XTypes 1.4b1 RTF Avatar
  1. OMG Issue

DDSXTY14 — Clarify behavior of @range and @unit with respect to type compatibility

  • Key: DDSXTY14-80
  • Status: closed  
  • Source: Real-Time Innovations ( Dr. Gerardo Pardo-Castellote, Ph.D.)
  • Summary:

    The specification does not state clearly if a writer and and reader that have types with incompatible values of @unit or @range should match?

    Also it is not clear as if both a complete TypeObject and a minimal TypeObject should be sent or just one and how it is decided.

    It would seem like.a good idea to allow application (DataReaders) to opt in or out of matching writers that have types with incompatible @range and/or @unit. If so mechanisms should be provided to configure this and make sure the complete TypeIdentifier is propagated in those cases as the corresponding TypeObject is the only one that has the information of @range and @unit.

  • Reported: DDS-XTypes 1.3b1 — Wed, 11 Sep 2024 15:37 GMT
  • Disposition: Resolved — DDS-XTypes 1.4b1
  • Disposition Summary:

    Consider units and ranges as part of type assignability

    Include them in TypeObjectMinimal (and TypeObjectComplete)
    Take them into account for type assignability.

    Ranges
    If the range of T1 and T2 writer have a non-empty intersection, then the types are assignable. Specific data samples outside the range will be handled per the @try_construct rules
    Otherwise the types are not assignable

    The TypeObjectMinimal and TypeObjectComplete will are extended so optionally include the limits. If the limits are not present they are understood to be no limits.

    Units
    Add them to the TypeObjectComplete and the TypeObjectMinimal.

    Consider them as part of the type Assignability. The value of the units is string. The value is trimmed removing the spaces. The string can contain one or more unit-name substrings separated by ";" (e.g. @unit("m / s; meter/s"). Unit names are compared pairwise. If there are any matches then the units are 'assignable'.

    The comparison is case-sensitive.

    Wildcards are not allowed.

    If one side specifies units and the other side doesn't then assignability depends on the setting of the (new) TypeConsistencyEnforcementQosPolicy attribute ignore_units.

  • Updated: Wed, 12 Aug 2026 16:40 GMT