XTCE 1.2 RTF Avatar
  1. OMG Issue

XTCE12 — Command Container Changes Split In Two Resolutions

  • Key: XTCE12-495
  • Status: closed  
  • Source: Boeing ( Mr. David Overeem)
  • Summary:

    Due to size and readability issues, the fix for XTCE12-478 should be split into multiple resolutions. This issue has the second resolution attached.

  • Reported: XTCE 1.1 — Sat, 11 Nov 2017 15:35 GMT
  • Disposition: Resolved — XTCE 1.2
  • Disposition Summary:

    Propose to better align the telemetry container annotation post-commanding improvements

    With the improvements on the commanding side for the CommandContainer EntryList element, the annotations can be factored back to the telemetry side to make the two of them consistent.

    Replace the existing EntryListType (shown first) with a replacement (shown second):

    <complexType name="EntryListType" mixed="false">
    <annotation>
    <documentation xml:lang="en">Contains an ordered list of Entries. Used in Sequence Container</documentation>
    </annotation>
    <choice minOccurs="0" maxOccurs="unbounded">
    <element name="ParameterRefEntry" type="xtce:ParameterRefEntryType"/>
    <element name="ParameterSegmentRefEntry" type="xtce:ParameterSegmentRefEntryType"/>
    <element name="ContainerRefEntry" type="xtce:ContainerRefEntryType"/>
    <element name="ContainerSegmentRefEntry" type="xtce:ContainerSegmentRefEntryType"/>
    <element name="StreamSegmentEntry" type="xtce:StreamSegmentEntryType"/>
    <element name="IndirectParameterRefEntry" type="xtce:IndirectParameterRefEntryType"/>
    <element name="ArrayParameterRefEntry" type="xtce:ArrayParameterRefEntryType"/>
    </choice>
    </complexType>

    <complexType name="EntryListType" mixed="false">
    <annotation>
    <documentation xml:lang="en">Contains an ordered list of Entries. Used in Sequence Container</documentation>
    </annotation>
    <choice minOccurs="0" maxOccurs="unbounded">
    <element name="ParameterRefEntry" type="xtce:ParameterRefEntryType">
    <annotation>
    <documentation xml:lang="en">Specify a Parameter to be a part of this container layout definition.</documentation>
    </annotation>
    </element>
    <element name="ParameterSegmentRefEntry" type="xtce:ParameterSegmentRefEntryType">
    <annotation>
    <documentation xml:lang="en">Specify a portion of a Parameter to be a part of this container layout definition. This is used when the Parameter is reported in fractional parts in the container before being fully updated.</documentation>
    </annotation>
    </element>
    <element name="ContainerRefEntry" type="xtce:ContainerRefEntryType">
    <annotation>
    <documentation xml:lang="en">Specify the content of another Container to be a part of this container layout definition.</documentation>
    </annotation>
    </element>
    <element name="ContainerSegmentRefEntry" type="xtce:ContainerSegmentRefEntryType">
    <annotation>
    <documentation xml:lang="en">Specify a portion of another Container to be a part of this container layout definition.</documentation>
    </annotation>
    </element>
    <element name="StreamSegmentEntry" type="xtce:StreamSegmentEntryType">
    <annotation>
    <documentation xml:lang="en">Specify a portion of a Stream to be a part of this container layout definition.</documentation>
    </annotation>
    </element>
    <element name="IndirectParameterRefEntry" type="xtce:IndirectParameterRefEntryType">
    <annotation>
    <documentation xml:lang="en">Specify a previous (not last reported) value of a Parmeter to be a part of this container layout definition.</documentation>
    </annotation>
    </element>
    <element name="ArrayParameterRefEntry" type="xtce:ArrayParameterRefEntryType">
    <annotation>
    <documentation xml:lang="en">Specify an Array Type Parameter to be a part of this container layout definition when the Container does not populate the entire space of the Array contents. If the entire space of the Array is populated, a tolerant implementation will accept ParameterRefEntry also.</documentation>
    </annotation>
    </element>
    </choice>
    </complexType>

    Replace the existing DynamicValueType (shown first) with a replacement (shown second):

    <complexType name="DynamicValueType">
    <annotation>
    <documentation xml:lang="en">Uses a parameter instance to obtain the value. The parameter value may be optionally adjusted by a Linear function or use a series of boolean expressions to lookup the value. Anything more complex and a DynamicValue with a CustomAlgorithm may be used </documentation>
    </annotation>
    <sequence>
    <element name="ParameterInstanceRef" type="xtce:ParameterInstanceRefType"/>
    <element name="LinearAdjustment" type="xtce:LinearAdjustmentType" minOccurs="0"/>
    </sequence>
    </complexType>

    <complexType name="DynamicValueType">
    <annotation>
    <documentation xml:lang="en">Uses a parameter instance to obtain the value. The parameter value may be optionally adjusted by a Linear function or use a series of boolean expressions to lookup the value. Anything more complex and a DynamicValue with a CustomAlgorithm may be used </documentation>
    </annotation>
    <sequence>
    <element name="ParameterInstanceRef" type="xtce:ParameterInstanceRefType">
    <annotation>
    <documentation xml:lang="en">Retrieve the value by referencing the value of a Parameter.</documentation>
    </annotation>
    </element>
    <element name="LinearAdjustment" type="xtce:LinearAdjustmentType" minOccurs="0">
    <annotation>
    <documentation xml:lang="en">A slope and intercept may be applied to scale or shift the value selected from the argument or parameter.</documentation>
    </annotation>
    </element>
    </sequence>
    </complexType>

    Replace the existing ComparisonListType (shown first) with a replacement (shown second):

    <complexType name="ComparisonListType">
    <annotation>
    <documentation xml:lang="en">All comparisons must be true</documentation>
    </annotation>
    <sequence>
    <element name="Comparison" type="xtce:ComparisonType" maxOccurs="unbounded"/>
    </sequence>
    </complexType>

    <complexType name="ComparisonListType">
    <annotation>
    <documentation xml:lang="en">All comparisons must be true</documentation>
    </annotation>
    <sequence>
    <element name="Comparison" type="xtce:ComparisonType" maxOccurs="unbounded">
    <annotation>
    <documentation xml:lang="en">List of Comparison elements must all be true for the comparison to evaluate to true.</documentation>
    </annotation>
    </element>
    </sequence>
    </complexType>

    Replace the existing ComparisonType (shown first) with a replacement (shown second):

    <complexType name="ComparisonType">
    <annotation>
    <documentation xml:lang="en">A simple ParameterInstanceRef to value comparison. The string supplied in the value attribute needs to be converted to a type matching the Parameter being compared to. Numerical values are assumed to be base 10 unless proceeded by 0x (hexadecimal), 0o (octal), or 0b (binary). The value is truncated to use the least significant bits that match the bit size of the Parameter being compared to.</documentation>
    </annotation>
    <complexContent>
    <extension base="xtce:ParameterInstanceRefType">
    <attribute name="comparisonOperator" type="xtce:ComparisonOperatorsType" default="=="/>
    <attribute name="value" type="string" use="required">
    <annotation>
    <documentation xml:lang="en">Specify value as a string compliant with the XML
    schema (xs) type specified for each XTCE type:
    integer=xs:integer; float=xs:double; string=xs:string; boolean=xs:boolean;
    binary=xs:hexBinary; enum=xs:string from EnumerationList;
    relative time= xs:duration; absolute time=xs:dateTime;
    array/aggregate=comma separated list of values inside curly braces {}.
    Supplied value must be within the ValidRange specified for the type and
    is a calibrated value.
    </documentation>
    </annotation>
    </attribute>
    </extension>
    </complexContent>
    </complexType>

    <complexType name="ComparisonType">
    <annotation>
    <documentation xml:lang="en">A simple ParameterInstanceRef to value comparison. The string supplied in the value attribute needs to be converted to a type matching the Parameter being compared to. Numerical values are assumed to be base 10 unless proceeded by 0x (hexadecimal), 0o (octal), or 0b (binary). The value is truncated to use the least significant bits that match the bit size of the Parameter being compared to.</documentation>
    </annotation>
    <complexContent>
    <extension base="xtce:ParameterInstanceRefType">
    <attribute name="comparisonOperator" type="xtce:ComparisonOperatorsType" default="==">
    <annotation>
    <documentation xml:lang="en">Operator to use for the comparison with the common equality operator as the default.</documentation>
    </annotation>
    </attribute>
    <attribute name="value" type="string" use="required">
    <annotation>
    <documentation xml:lang="en">Specify value as a string compliant with the XML schema (xs) type specified for each XTCE type: integer=xs:integer; float=xs:double; string=xs:string; boolean=xs:boolean; binary=xs:hexBinary; enum=xs:string from EnumerationList; relative time= xs:duration; absolute time=xs:dateTime. Supplied value must be within the ValidRange specified for the type.</documentation>
    </annotation>
    </attribute>
    </extension>
    </complexContent>
    </complexType>

    Replace the existing BooleanExpressionType (shown first) with a replacement (shown second):

    <complexType name="BooleanExpressionType">
    <annotation>
    <documentation xml:lang="en">Holds an arbitrarily complex boolean expression</documentation>
    </annotation>
    <choice>
    <element name="Condition" type="xtce:ComparisonCheckType"/>
    <element name="ANDedConditions" type="xtce:ANDedConditionsType"/>
    <element name="ORedConditions" type="xtce:ORedConditionsType"/>
    </choice>
    </complexType>

    <complexType name="BooleanExpressionType">
    <annotation>
    <documentation xml:lang="en">Holds an arbitrarily complex boolean expression</documentation>
    </annotation>
    <choice>
    <element name="Condition" type="xtce:ComparisonCheckType">
    <annotation>
    <documentation xml:lang="en">Condition elements describe a test similar to the Comparison element except that the parameters used have additional flexibility.</documentation>
    </annotation>
    </element>
    <element name="ANDedConditions" type="xtce:ANDedConditionsType">
    <annotation>
    <documentation xml:lang="en">This element describes tests similar to the ComparisonList element except that the parameters used are more flexible.</documentation>
    </annotation>
    </element>
    <element name="ORedConditions" type="xtce:ORedConditionsType">
    <annotation>
    <documentation xml:lang="en">This element describes tests similar to the ComparisonList element except that the parameters used are more flexible.</documentation>
    </annotation>
    </element>
    </choice>
    </complexType>

    Replace the existing ANDedConditionsType (shown first) with a replacement (shown second):

    <complexType name="ANDedConditionsType">
    <annotation>
    <documentation xml:lang="en">Describe two or more conditions that are logically anded together. Conditions may be a mix of Condition and ORedCondition. See ORedConditionType and BooleanExpressionType.</documentation>
    </annotation>
    <complexContent>
    <extension base="xtce:BaseConditionsType">
    <choice minOccurs="2" maxOccurs="unbounded">
    <element name="Condition" type="xtce:ComparisonCheckType">
    <annotation>
    <documentation xml:lang="en">Single conditional check.</documentation>
    </annotation>
    </element>
    <element name="ORedConditions" type="xtce:ORedConditionsType">
    <annotation>
    <documentation xml:lang="en">Multiple conditional checks with a logical OR.</documentation>
    </annotation>
    </element>
    </choice>
    </extension>
    </complexContent>
    </complexType>

    <complexType name="ANDedConditionsType">
    <annotation>
    <documentation xml:lang="en">Describe two or more conditions that are logically anded together. Conditions may be a mix of Condition and ORedCondition. See ORedConditionType and BooleanExpressionType.</documentation>
    </annotation>
    <complexContent>
    <extension base="xtce:BaseConditionsType">
    <choice minOccurs="2" maxOccurs="unbounded">
    <element name="Condition" type="xtce:ComparisonCheckType">
    <annotation>
    <documentation xml:lang="en">Condition elements describe a test similar to the Comparison element except that the parameters used have additional flexibility for the compare.</documentation>
    </annotation>
    </element>
    <element name="ORedConditions" type="xtce:ORedConditionsType">
    <annotation>
    <documentation xml:lang="en">This element describes tests similar to the ComparisonList element except that the parameters used are more flexible and the and/or for multiple checks can be specified.</documentation>
    </annotation>
    </element>
    </choice>
    </extension>
    </complexContent>
    </complexType>

    Replace the existing ORedConditionsType (shown first) with a replacement (shown second):

    <complexType name="ORedConditionsType">
    <annotation>
    <documentation xml:lang="en">Describe two or more conditions that are logically ored together. Conditions may be a mix of Condition and ANDedCondition. See ORedConditionType and BooleanExpressionType.</documentation>
    </annotation>
    <complexContent>
    <extension base="xtce:BaseConditionsType">
    <choice minOccurs="2" maxOccurs="unbounded">
    <element name="Condition" type="xtce:ComparisonCheckType">
    <annotation>
    <documentation xml:lang="en">Single conditional check.</documentation>
    </annotation>
    </element>
    <element name="ANDedConditions" type="xtce:ANDedConditionsType">
    <annotation>
    <documentation xml:lang="en">Multiple conditional checks with a logical AND.</documentation>
    </annotation>
    </element>
    </choice>
    </extension>
    </complexContent>
    </complexType>

    <complexType name="ORedConditionsType">
    <annotation>
    <documentation xml:lang="en">Describe two or more conditions that are logically ored together. Conditions may be a mix of Condition and ANDedCondition. See ORedConditionType and BooleanExpressionType.</documentation>
    </annotation>
    <complexContent>
    <extension base="xtce:BaseConditionsType">
    <choice minOccurs="2" maxOccurs="unbounded">
    <element name="Condition" type="xtce:ComparisonCheckType">
    <annotation>
    <documentation xml:lang="en">Condition elements describe a test similar to the Comparison element except that the parameters used have additional flexibility for the compare.</documentation>
    </annotation>
    </element>
    <element name="ANDedConditions" type="xtce:ANDedConditionsType">
    <annotation>
    <documentation xml:lang="en">This element describes tests similar to the ComparisonList element except that the parameters used are more flexible and the and/or for multiple checks can be specified.</documentation>
    </annotation>
    </element>
    </choice>
    </extension>
    </complexContent>
    </complexType>

    Replace the existing InputAlgorithmType (shown first) with a replacement (shown second):

    <complexType name="InputAlgorithmType">
    <annotation>
    <documentation xml:lang="en">A set of labeled inputs is added to the SimpleAlgorithmType</documentation>
    </annotation>
    <complexContent>
    <extension base="xtce:SimpleAlgorithmType">
    <sequence>
    <element name="InputSet" type="xtce:InputSetType" minOccurs="0"/>
    </sequence>
    </extension>
    </complexContent>
    </complexType>

    <complexType name="InputAlgorithmType">
    <annotation>
    <documentation xml:lang="en">A set of labeled inputs is added to the SimpleAlgorithmType</documentation>
    </annotation>
    <complexContent>
    <extension base="xtce:SimpleAlgorithmType">
    <sequence>
    <element name="InputSet" type="xtce:InputSetType" minOccurs="0">
    <annotation>
    <documentation xml:lang="en">The InputSet describes the list of parameters that should be made available as input arguments to the algorithm.</documentation>
    </annotation>
    </element>
    </sequence>
    </extension>
    </complexContent>
    </complexType>

    Replace the existing DiscreteLookupListType (shown first) with a replacement (shown second):

    <complexType name="DiscreteLookupListType">
    <annotation>
    <documentation xml:lang="en">Lookup a value using the lookup list supplied. Use the first match found.</documentation>
    </annotation>
    <sequence>
    <element name="DiscreteLookup" type="xtce:DiscreteLookupType" maxOccurs="unbounded"/>
    </sequence>
    </complexType>

    <complexType name="DiscreteLookupListType">
    <annotation>
    <documentation xml:lang="en">Lookup a value using the lookup list supplied. Use the first match found.</documentation>
    </annotation>
    <sequence>
    <element name="DiscreteLookup" type="xtce:DiscreteLookupType" maxOccurs="unbounded">
    <annotation>
    <documentation xml:lang="en">Describe a lookup condition set using discrete values from parameters.</documentation>
    </annotation>
    </element>
    </sequence>
    </complexType>

    Replace the existing DiscreteLookupType (shown first) with a replacement (shown second):

    <complexType name="DiscreteLookupType">
    <complexContent>
    <extension base="xtce:MatchCriteriaType">
    <attribute name="value" type="long" use="required"/>
    </extension>
    </complexContent>
    </complexType>

    <complexType name="DiscreteLookupType">
    <annotation>
    <documentation xml:lang="en">Describe a discrete value lookup and the value associated when the lookup evaluates to true.</documentation>
    </annotation>
    <complexContent>
    <extension base="xtce:MatchCriteriaType">
    <attribute name="value" type="long" use="required">
    <annotation>
    <documentation xml:lang="en">Value to use when the lookup conditions are true.</documentation>
    </annotation>
    </attribute>
    </extension>
    </complexContent>
    </complexType>

    Replace the existing MatchCriteriaType (shown first) with a replacement (shown second):

    <complexType name="MatchCriteriaType">
    <annotation>
    <documentation xml:lang="en">Contains either a simple Comparison, a ComparisonList, an arbitrarily complex BooleanExpression or an escape to an externally defined algorithm</documentation>
    </annotation>
    <choice>
    <element name="Comparison" type="xtce:ComparisonType">
    <annotation>
    <documentation xml:lang="en">A simple comparison check</documentation>
    </annotation>
    </element>
    <element name="ComparisonList" type="xtce:ComparisonListType"/>
    <element name="BooleanExpression" type="xtce:BooleanExpressionType">
    <annotation>
    <documentation xml:lang="en">An arbitrarily complex boolean expression</documentation>
    </annotation>
    </element>
    <element name="CustomAlgorithm" type="xtce:InputAlgorithmType">
    <annotation>
    <documentation xml:lang="en">An escape to an externally defined algorithm</documentation>
    </annotation>
    </element>
    </choice>
    </complexType>

    <complexType name="MatchCriteriaType">
    <annotation>
    <documentation xml:lang="en">Contains either a simple Comparison, a ComparisonList, an arbitrarily complex BooleanExpression or an escape to an externally defined algorithm</documentation>
    </annotation>
    <choice>
    <element name="Comparison" type="xtce:ComparisonType">
    <annotation>
    <documentation xml:lang="en">A simple comparison check involving a single test of a parameter value.</documentation>
    </annotation>
    </element>
    <element name="ComparisonList" type="xtce:ComparisonListType">
    <annotation>
    <documentation xml:lang="en">A series of simple comparison checks with an implicit 'and' in that they all must be true for the overall condition to be true.</documentation>
    </annotation>
    </element>
    <element name="BooleanExpression" type="xtce:BooleanExpressionType">
    <annotation>
    <documentation xml:lang="en">An arbitrarily complex boolean expression that has additional flexibility on the terms beyond the Comparison and ComparisonList elements.</documentation>
    </annotation>
    </element>
    <element name="CustomAlgorithm" type="xtce:InputAlgorithmType">
    <annotation>
    <documentation xml:lang="en">An escape to an externally defined algorithm.</documentation>
    </annotation>
    </element>
    </choice>
    </complexType>

    Replace the existing IntegerValueType (shown first) with a replacement (shown second):

    <complexType name="IntegerValueType">
    <annotation>
    <documentation xml:lang="en">Contains an Integer value; value may be provided directly or via the value in a parameter.</documentation>
    </annotation>
    <choice>
    <element name="FixedValue" type="long"/>
    <element name="DynamicValue" type="xtce:DynamicValueType"/>
    <element name="DiscreteLookupList" type="xtce:DiscreteLookupListType"/>
    </choice>
    </complexType>

    <complexType name="IntegerValueType">
    <annotation>
    <documentation xml:lang="en">Contains an Integer value; value may be provided directly or via the value in a parameter.</documentation>
    </annotation>
    <choice>
    <element name="FixedValue" type="long">
    <annotation>
    <documentation xml:lang="en">Use a fixed integer value.</documentation>
    </annotation>
    </element>
    <element name="DynamicValue" type="xtce:DynamicValueType">
    <annotation>
    <documentation xml:lang="en">Determine the value by interrogating an instance of a parameter.</documentation>
    </annotation>
    </element>
    <element name="DiscreteLookupList" type="xtce:DiscreteLookupListType">
    <annotation>
    <documentation xml:lang="en">Determine the value by interrogating an instance of a parameter and selecting a specified value based on tests of the value of that parameter.</documentation>
    </annotation>
    </element>
    </choice>
    </complexType>

  • Updated: Tue, 10 Jul 2018 14:23 GMT