XTCE 1.2 RTF Avatar
  1. OMG Issue

XTCE12 — Yet more documentation updates from BitBucket subcommittee effort

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

    Several issues have noted that the XTCE 1.0 and 1.1 annotations have been lacking. Many of the updates were performed in conjunction with other issues that were more topic oriented to a particular area. In this, many elements/attributes/types did not require attention and as a result, did not get an opportunity to get annotation updates. In addition, some areas that were touched were done prior to reconciling the annotation updates.

  • Reported: XTCE 1.1 — Tue, 30 Jan 2018 22:25 GMT
  • Disposition: Resolved — XTCE 1.2
  • Disposition Summary:

    Propose another set of annotation updates (part 3)

    This resolution includes the third set of annotation updates that covers most of the elements/attributes in the next few levels of depth in the XML. It is not proposed as a comprehensive and complete set, but appears to be ready for use/evaluation/voting.

    The list below is the typical method of showing the before and after of the XSD by type definition in the XSD. Each type is separated by a textual divider to make it easier to review.

    ================================================================================
    ArgumentAssignmentListType contents
    ================================================================================

    <complexType name="ArgumentAssignmentListType">
    <sequence>
    <element name="ArgumentAssignment" type="xtce:ArgumentAssignmentType" maxOccurs="unbounded"/>
    </sequence>
    </complexType>

    <complexType name="ArgumentAssignmentListType">
    <annotation>
    <documentation xml:lang="en">Argument Assignments specialize a MetaCommand or BlockMetaCommand when inheriting from another MetaCommand. General argument values can be restricted to specific values to further specialize the MetaCommand. Use it to ‘narrow’ a MetaCommand from its base MetaCommand by specifying values of arguments for example, a power command may be narrowed to a power on’ command by assigning the value of an argument to ‘on’. See ArgumentAssignmentType and MetaCommandType.</documentation>
    </annotation>
    <sequence>
    <element name="ArgumentAssignment" type="xtce:ArgumentAssignmentType" maxOccurs="unbounded">
    <annotation>
    <documentation xml:lang="en">Specialize this command definition when inheriting from a more general MetaCommand by restricting the specific values of otherwise general arguments.</documentation>
    </annotation>
    </element>
    </sequence>
    </complexType>

    ================================================================================
    ArgumentAssignmentType contents
    ================================================================================

    <complexType name="ArgumentAssignmentType">
    <attribute name="argumentName" type="xtce:NameReferenceType" use="required"/>
    <attribute name="argumentValue" 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>
    </complexType>

    <complexType name="ArgumentAssignmentType">
    <annotation>
    <documentation xml:lang="en">Describe an assignment of an argument with a calibrated/engineering value. See ArgumentAssignmentListType.</documentation>
    </annotation>
    <attribute name="argumentName" type="xtce:NameReferenceType" use="required">
    <annotation>
    <documentation xml:lang="en">The named argument from the base MetaCommand to assign/restrict with a value.</documentation>
    </annotation>
    </attribute>
    <attribute name="argumentValue" 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>
    </complexType>

    ================================================================================
    ArgumentListType contents (choice changed to sequence as it is more appropriate)
    ================================================================================

    <complexType name="ArgumentListType">
    <choice maxOccurs="unbounded">
    <element name="Argument" type="xtce:ArgumentType" maxOccurs="unbounded">
    <annotation>
    <appinfo>Need to ensure that the named types actually exist</appinfo>
    </annotation>
    </element>
    </choice>
    </complexType>

    <complexType name="ArgumentListType">
    <annotation>
    <documentation xml:lang="en">Defines a list of Arguments for a command definition.</documentation>
    </annotation>
    <sequence>
    <element name="Argument" type="xtce:ArgumentType" maxOccurs="unbounded">
    <annotation>
    <documentation xml:lang="en">Defines an Argument for a command definition. Arguments are local to the MetaCommand, BlockMetaCommand, and those that inherit from the definition.</documentation>
    <appinfo>Need to ensure that the named types actually exist</appinfo>
    </annotation>
    </element>
    </sequence>
    </complexType>

    ================================================================================
    ArgumentFloatDataType contents
    ================================================================================

    Change limited to the initialValue attribute with copy/paste error in text from integer side. Existing is:

    <attribute name="initialValue" type="double">
    <annotation>
    <documentation xml:lang="en">Default/Initial value is always given in calibrated form. Default is base 10 form; binary, octal, or hexadecimal values may be given by preceding value with 0[b|B], 0[o|O|, 0[x|X] respectively.</documentation>
    </annotation>
    </attribute>

    Replace to:

    <attribute name="initialValue" type="double">
    <annotation>
    <documentation xml:lang="en">Default/Initial value is always given in calibrated form.</documentation>
    </annotation>
    </attribute>

    ================================================================================
    IntegerRangeType contents
    ================================================================================

    <complexType name="IntegerRangeType">
    <annotation>
    <documentation xml:lang="en">An integral range of numbers. "min", and "max".</documentation>
    </annotation>
    <attribute name="minInclusive" type="long"/>
    <attribute name="maxInclusive" type="long"/>
    </complexType>

    <complexType name="IntegerRangeType">
    <annotation>
    <documentation xml:lang="en">Describe an integral based range: minInclusive and maxInclusive. Used in a number of locations related to ranges: ValidIntegerRangeSetType for example.</documentation>
    </annotation>
    <attribute name="minInclusive" type="long">
    <annotation>
    <documentation xml:lang="en">Minimum integer value including itself.</documentation>
    </annotation>
    </attribute>
    <attribute name="maxInclusive" type="long">
    <annotation>
    <documentation xml:lang="en">Maximum integer value including itself.</documentation>
    </annotation>
    </attribute>
    </complexType>

    ================================================================================
    FloatRangeType contents
    ================================================================================

    <complexType name="FloatRangeType">
    <annotation>
    <documentation xml:lang="en">A range of numbers. "minInclusive", "minExclusive", "maxInclusive" and "maxExclusive" attributes are borrowed from the W3C schema language.</documentation>
    </annotation>
    <attribute name="minInclusive" type="double"/>
    <attribute name="minExclusive" type="double"/>
    <attribute name="maxInclusive" type="double"/>
    <attribute name="maxExclusive" type="double"/>
    </complexType>

    <complexType name="FloatRangeType">
    <annotation>
    <documentation xml:lang="en">Describe a floating point based range, several types of ranges are supported – one sided and two sided, inclusive or exclusive. It would not make sense to set two mins or maxes. Used in a number of locations related to ranges: ValidFloatRangeSetType or AlarmRangeType for example.</documentation>
    <appinfo>Verify that the combination provided is usable.</appinfo>
    </annotation>
    <attribute name="minInclusive" type="double">
    <annotation>
    <documentation xml:lang="en">Minimum decimal/real number value including itself.</documentation>
    </annotation>
    </attribute>
    <attribute name="minExclusive" type="double">
    <annotation>
    <documentation xml:lang="en">Minimum decimal/real number value excluding itself.</documentation>
    </annotation>
    </attribute>
    <attribute name="maxInclusive" type="double">
    <annotation>
    <documentation xml:lang="en">Maximum decimal/real number value including itself.</documentation>
    </annotation>
    </attribute>
    <attribute name="maxExclusive" type="double">
    <annotation>
    <documentation xml:lang="en">Maximum decimal/real number value excluding itself.</documentation>
    </annotation>
    </attribute>
    </complexType>

    ================================================================================
    AlarmConditionsType contents
    ================================================================================

    <complexType name="AlarmConditionsType">
    <annotation>
    <documentation xml:lang="en">When the alarm is determined by boolean logic</documentation>
    </annotation>
    <sequence>
    <element name="WatchAlarm" type="xtce:MatchCriteriaType" minOccurs="0"/>
    <element name="WarningAlarm" type="xtce:MatchCriteriaType" minOccurs="0"/>
    <element name="DistressAlarm" type="xtce:MatchCriteriaType" minOccurs="0"/>
    <element name="CriticalAlarm" type="xtce:MatchCriteriaType" minOccurs="0"/>
    <element name="SevereAlarm" type="xtce:MatchCriteriaType" minOccurs="0"/>
    </sequence>
    </complexType>

    <complexType name="AlarmConditionsType">
    <annotation>
    <documentation xml:lang="en">Describe up to six levels: Normal, Watch, Warning, Distress, Critical, and Severe of conditions the alarm will trigger when true. The types are conditions available are a single comparison, a comparison list, a discrete lookup list, and custom algorithm. See MatchCriteriaType.</documentation>
    </annotation>
    <sequence>
    <element name="WatchAlarm" type="xtce:MatchCriteriaType" minOccurs="0">
    <annotation>
    <documentation xml:lang="en">An alarm state of least concern. Considered to be below the most commonly used Warning level.</documentation>
    </annotation>
    </element>
    <element name="WarningAlarm" type="xtce:MatchCriteriaType" minOccurs="0">
    <annotation>
    <documentation xml:lang="en">An alarm state of concern that represents the most commonly used minimum concern level for many software applications.</documentation>
    </annotation>
    </element>
    <element name="DistressAlarm" type="xtce:MatchCriteriaType" minOccurs="0">
    <annotation>
    <documentation xml:lang="en">An alarm state of concern in between the most commonly used Warning and Critical levels.</documentation>
    </annotation>
    </element>
    <element name="CriticalAlarm" type="xtce:MatchCriteriaType" minOccurs="0">
    <annotation>
    <documentation xml:lang="en">An alarm state of concern that represents the most commonly used maximum concern level for many software applications.</documentation>
    </annotation>
    </element>
    <element name="SevereAlarm" type="xtce:MatchCriteriaType" minOccurs="0">
    <annotation>
    <documentation xml:lang="en">An alarm state of highest concern. Considered to be above the most commonly used Critical level.</documentation>
    </annotation>
    </element>
    </sequence>
    </complexType>

    ================================================================================
    BinaryContextAlarmListType contents
    ================================================================================

    <complexType name="BinaryContextAlarmListType">
    <sequence>
    <element name="ContextAlarm" type="xtce:BinaryContextAlarmType" maxOccurs="unbounded"/>
    </sequence>
    </complexType>

    <complexType name="BinaryContextAlarmListType">
    <annotation>
    <documentation xml:lang="en">Describe an ordered collection of context binary alarms, duplicates are valid. Process the contexts in list order. See BinaryContextAlarmType.</documentation>
    </annotation>
    <sequence>
    <element name="ContextAlarm" type="xtce:BinaryContextAlarmType" maxOccurs="unbounded"/>
    </sequence>
    </complexType>

    ================================================================================
    ChangeValueType contents
    ================================================================================

    <complexType name="ChangeValueType">
    <attribute name="value" type="double" use="required"/>
    </complexType>

    <complexType name="ChangeValueType">
    <annotation>
    <documentation xml:lang="en">Describe a change value used to test verification status. See CommandVerifierType.</documentation>
    </annotation>
    <attribute name="value" type="double" use="required">
    <annotation>
    <documentation xml:lang="en">Value as a floating point number.</documentation>
    </annotation>
    </attribute>
    </complexType>

    ================================================================================
    CheckWindowAlgorithmsType contents
    ================================================================================

    <complexType name="CheckWindowAlgorithmsType">
    <annotation>
    <documentation xml:lang="en">Used when times must be calculated</documentation>
    </annotation>
    <sequence>
    <element name="StartCheck" type="xtce:InputAlgorithmType"/>
    <element name="StopTime" type="xtce:InputAlgorithmType"/>
    </sequence>
    </complexType>

    <complexType name="CheckWindowAlgorithmsType">
    <annotation>
    <documentation xml:lang="en">Used by CommandVerifiers to limit the time allocated to check for the verification. See CommandVerifierType.</documentation>
    </annotation>
    <sequence>
    <element name="StartCheck" type="xtce:InputAlgorithmType"/>
    <element name="StopTime" type="xtce:InputAlgorithmType"/>
    </sequence>
    </complexType>

    ================================================================================
    CheckWindowType contents
    ================================================================================

    <complexType name="CheckWindowType">
    <attribute name="timeToStartChecking" type="xtce:RelativeTimeType"/>
    <attribute name="timeToStopChecking" type="xtce:RelativeTimeType" use="required"/>
    <attribute name="timeWindowIsRelativeTo" type="xtce:TimeWindowIsRelativeToType" default="timeLastVerifierPassed"/>
    </complexType>

    <complexType name="CheckWindowType">
    <annotation>
    <documentation xml:lang="en">Used by CommandVerifiers to limit the time allocated to check for the verification. See CheckWindowAlgorithmsType.</documentation>
    </annotation>
    <attribute name="timeToStartChecking" type="xtce:RelativeTimeType"/>
    <attribute name="timeToStopChecking" type="xtce:RelativeTimeType" use="required"/>
    <attribute name="timeWindowIsRelativeTo" type="xtce:TimeWindowIsRelativeToType" default="timeLastVerifierPassed"/>
    </complexType>

    ================================================================================
    ContextCalibratorListType contents
    ================================================================================

    <complexType name="ContextCalibratorListType">
    <annotation>
    <documentation xml:lang="en">Use when different calibrations must be used on the Parameter in different contexts. Use the first one that tests true</documentation>
    </annotation>
    <sequence>
    <element name="ContextCalibrator" type="xtce:ContextCalibratorType" maxOccurs="unbounded"/>
    </sequence>
    </complexType>

    <complexType name="ContextCalibratorListType">
    <annotation>
    <documentation xml:lang="en">Describe an ordered list of calibrators with a context match. Useful when different calibrations must be used depending on a matching value. The first context that matches determines which calibrator to use. See IntegerDataEncodingType and FloatDataEncodingType.</documentation>
    </annotation>
    <sequence>
    <element name="ContextCalibrator" type="xtce:ContextCalibratorType" maxOccurs="unbounded">
    <annotation>
    <documentation xml:lang="en">Describe a calibrator that depends on a matching value using a ContextMatch. When the context matches for the calibrator, the default calibrator is overridden, if it exists.</documentation>
    </annotation>
    </element>
    </sequence>
    </complexType>

    ================================================================================
    ContextSignificanceType contents
    ================================================================================

    <complexType name="ContextSignificanceType">
    <sequence>
    <element name="ContextMatch" type="xtce:ContextMatchType"/>
    <element name="Significance" type="xtce:SignificanceType"/>
    </sequence>
    </complexType>

    <complexType name="ContextSignificanceType">
    <annotation>
    <documentation xml:lang="en">Describe a significance level for a MetaCommand definition where the significance level depends on matching a context value. See ContextMatchType and SignificanceType.</documentation>
    </annotation>
    <sequence>
    <element name="ContextMatch" type="xtce:ContextMatchType">
    <annotation>
    <documentation xml:lang="en">Describe the context matching value and source that will enable the Significance listed in the Significance element.</documentation>
    </annotation>
    </element>
    <element name="Significance" type="xtce:SignificanceType">
    <annotation>
    <documentation xml:lang="en">Describe the signficance of this MetaCommand definition. See SignificanceType.</documentation>
    </annotation>
    </element>
    </sequence>
    </complexType>

    ================================================================================
    ContextSignificanceListType contents
    ================================================================================

    <complexType name="ContextSignificanceListType">
    <annotation>
    <documentation xml:lang="en">Used when the significance (possible consequence) of a command varies by the operating context</documentation>
    </annotation>
    <sequence>
    <element name="ContextSignificance" type="xtce:ContextSignificanceType" maxOccurs="unbounded"/>
    </sequence>
    </complexType>

    <complexType name="ContextSignificanceListType">
    <annotation>
    <documentation xml:lang="en">Describe an ordered list of ContextSignificance elements where the significance on the first context match to test true is used as the significance of the MetaCommand. If there is a DefaultSignificance, it is overrideen by the matching context. See ContextSignificantType and MetaCommandType.</documentation>
    </annotation>
    <sequence>
    <element name="ContextSignificance" type="xtce:ContextSignificanceType" maxOccurs="unbounded">
    <annotation>
    <documentation xml:lang="en">Describe a significance level for a MetaCommand definition where the significance level depends on matching a context value. See ContextMatchType and SignificanceType.</documentation>
    </annotation>
    </element>
    </sequence>
    </complexType>

    ================================================================================
    DerivationType contents
    ================================================================================

    Discard definition:

    <complexType name="DerivationType">
    <annotation>
    <documentation>Result of the MathOperation will be the new Parameter value</documentation>
    </annotation>
    <complexContent>
    <extension base="xtce:MathOperationType"/>
    </complexContent>
    </complexType>

    Repair definition from:

    <complexType name="ParameterToSetType">
    <annotation>
    <documentation xml:lang="en">Sets a Parameter to a new value (either from a derivation or explicitly) after the command has been verified (all verifications have passed)</documentation>
    <appinfo>Value type must match Parameter type</appinfo>
    </annotation>
    <complexContent>
    <extension base="xtce:ParameterRefType">
    <choice>
    <element name="Derivation" type="xtce:DerivationType"/>
    <element name="NewValue" type="string">
    <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>
    </element>
    </choice>
    <attribute name="setOnVerification" type="xtce:VerifierEnumerationType" default="complete"/>
    </extension>
    </complexContent>
    </complexType>

    To:

    <complexType name="ParameterToSetType">
    <annotation>
    <documentation xml:lang="en">Sets a Parameter to a new value (either from a derivation or explicitly) after the command has been verified (all verifications have passed).</documentation>
    <appinfo>Value type must match Parameter type.</appinfo>
    </annotation>
    <complexContent>
    <extension base="xtce:ParameterRefType">
    <choice>
    <element name="Derivation" type="xtce:MathOperationType">
    <annotation>
    <documentation xml:lang="en">Specify a MathOperation to use to set the Parameter value. See MathOperationType.</documentation>
    </annotation>
    </element>
    <element name="NewValue" type="string">
    <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 Parameter and appropriate for the type.</documentation>
    </annotation>
    </element>
    </choice>
    <attribute name="setOnVerification" type="xtce:VerifierEnumerationType" default="complete">
    <annotation>
    <documentation xml:lang="en">This attribute provides more specific control over when the Parameter value is set. By default, it is when the command have all verifications complete. See VerifierEnumerationType.</documentation>
    </annotation>
    </attribute>
    </extension>
    </complexContent>
    </complexType>

    ================================================================================
    DiscreteLookupListType contents
    ================================================================================

    <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>

    <complexType name="DiscreteLookupListType">
    <annotation>
    <documentation xml:lang="en">Describe an ordered table of integer values and associated conditions, forming a lookup table. The list may have duplicates. The table is evaluated from first to last, the first condition to be true returns the value associated with it. See DiscreteLookupType.</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>

    ================================================================================
    EncodingType contents (only for absolute time)
    ================================================================================

    <complexType name="EncodingType">
    <annotation>
    <documentation xml:lang="en">Scale and offset are used in a y =mx +b type relationship (m is the scale and b is the offset) to make adjustments to the encoded value to that it matches the time units. Binary Encoded time is typically used with a user supplied transform algorithm to convert time data formats that are too difficult to describe in XTCE.</documentation>
    </annotation>
    <choice>
    <element name="BinaryDataEncoding" type="xtce:BinaryDataEncodingType"/>
    <element name="FloatDataEncoding" type="xtce:FloatDataEncodingType"/>
    <element name="IntegerDataEncoding" type="xtce:IntegerDataEncodingType"/>
    <element name="StringDataEncoding" type="xtce:StringDataEncodingType"/>
    </choice>
    <attribute name="units" type="xtce:TimeUnitsType" default="seconds"/>
    <attribute name="scale" type="double" default="1"/>
    <attribute name="offset" type="double" default="0"/>
    </complexType>

    Why do we have scale and offset when we have calibrators??? To revisit at a future RFP.

    <complexType name="EncodingType">
    <annotation>
    <documentation xml:lang="en">Describe the data encoding for a time data type. It includes the units and other attributes scale and offset. Use scale and offset to describe a y=mx+b relationship (where m is the slope/scale and b is the intercept/offset) to make adjustments to the encoded time value so that it matches the time units. For binary encoded time use transform algorithms to convert time data formats that are too difficult to describe in XTCE. See AbsoluteTimeDataType and RelativeTimeDataType.</documentation>
    </annotation>
    <choice>
    <element name="BinaryDataEncoding" type="xtce:BinaryDataEncodingType">
    <annotation>
    <documentation xml:lang="en">Binary encoding is typically a "pass through" raw encoding form where one of the more common encodings is not required for the parameter. A custom transformation capability is available if needed.</documentation>
    </annotation>
    </element>
    <element name="FloatDataEncoding" type="xtce:FloatDataEncodingType">
    <annotation>
    <documentation xml:lang="en">Float encoding is a common encoding where the raw binary is in a form that gets interpreted as a decimal numeric value.</documentation>
    </annotation>
    </element>
    <element name="IntegerDataEncoding" type="xtce:IntegerDataEncodingType">
    <annotation>
    <documentation xml:lang="en">Integer encoding is a common encoding where the raw binary is in a form that gets interpreted as an integral value, either signed or unsigned.</documentation>
    </annotation>
    </element>
    <element name="StringDataEncoding" type="xtce:StringDataEncodingType">
    <annotation>
    <documentation xml:lang="en">String encoding is a common encoding where the raw binary is in a form that gets interpreted as a character sequence.</documentation>
    </annotation>
    </element>
    </choice>
    <attribute name="units" type="xtce:TimeUnitsType" default="seconds">
    <annotation>
    <documentation xml:lang="en">Time units, with the default being in seconds.</documentation>
    </annotation>
    </attribute>
    <attribute name="scale" type="double" default="1">
    <annotation>
    <documentation xml:lang="en">Linear slope used as a shorter form of specifying a calibrator to convert between the raw value and the engineering units.</documentation>
    </annotation>
    </attribute>
    <attribute name="offset" type="double" default="0">
    <annotation>
    <documentation xml:lang="en">Linear intercept used as a shorter form of specifying a calibrator to convert between the raw value and the engineering units.</documentation>
    </annotation>
    </attribute>
    </complexType>

    ================================================================================
    FixedFrameSyncStrategyType contents
    ================================================================================

    <complexType name="FixedFrameSyncStrategyType">
    <complexContent>
    <extension base="xtce:SyncStrategyType">
    <sequence>
    <element name="SyncPattern" type="xtce:SyncPatternType"/>
    </sequence>
    </extension>
    </complexContent>
    </complexType>

    <complexType name="FixedFrameSyncStrategyType">
    <annotation>
    <documentation xml:lang="en">Describe a sync pattern and an optional reference to an algorithm used to invert the stream if the frame sync pattern is not found. See FixedFrameStreamType.</documentation>
    </annotation>
    <complexContent>
    <extension base="xtce:SyncStrategyType">
    <sequence>
    <element name="SyncPattern" type="xtce:SyncPatternType">
    <annotation>
    <documentation xml:lang="en">The pattern of bits used to look for frame synchronization. See SyncPatternType.</documentation>
    </annotation>
    </element>
    </sequence>
    </extension>
    </complexContent>
    </complexType>

    ================================================================================
    VariableFrameSyncStrategyType contents
    ================================================================================

    <complexType name="VariableFrameSyncStrategyType">
    <complexContent>
    <extension base="xtce:SyncStrategyType">
    <sequence>
    <element name="Flag" type="xtce:FlagType"/>
    </sequence>
    </extension>
    </complexContent>
    </complexType>

    <complexType name="VariableFrameSyncStrategyType">
    <annotation>
    <documentation xml:lang="en">Describe the flag type (either all ones or all zeros), the flag length in bits and an optional reference to an algorithm used to invert the stream if the frame sync pattern is not found. See VariableFrameStreamType.</documentation>
    </annotation>
    <complexContent>
    <extension base="xtce:SyncStrategyType">
    <sequence>
    <element name="Flag" type="xtce:FlagType"/>
    </sequence>
    </extension>
    </complexContent>
    </complexType>

    FLAG ELEMENT NEEDS SOMETHING - revisit at a later time.

    ================================================================================
    InterlockType contents
    ================================================================================

    <complexType name="InterlockType">
    <attribute name="scopeToSpaceSystem" type="xtce:NameReferenceType">
    <annotation>
    <documentation xml:lang="en">The name of a SpaceSystem this Interlock applies to. By default, it only applies to the SpaceSystem that contains this MetaCommand.</documentation>
    </annotation>
    </attribute>
    <attribute name="verificationToWaitFor" type="xtce:VerifierEnumerationType" default="complete"/>
    <attribute name="verificationProgressPercentage" type="double">
    <annotation>
    <documentation xml:lang="en">Only applies when the verificationToWaitFor attribute is 'queued' or 'executing'.</documentation>
    </annotation>
    </attribute>
    <attribute name="suspendable" type="boolean" default="false">
    <annotation>
    <documentation xml:lang="en">A flag that indicates that under special circumstances, this Interlock can be suspended.</documentation>
    </annotation>
    </attribute>
    </complexType>

    <complexType name="InterlockType">
    <annotation>
    <documentation xml:lang="en">Describe a type of constraint on the next command, rather than this command. Interlocks apply only to the next command. An interlock will block successive commands until this command has reached a certain stage of verifier. Interlocks are scoped to a SpaceSystem basis: they by default apply to the SpaceSystem the MetaCommand is defined in but this may be overridden. See MetaCommandType and VerifierSetType.</documentation>
    </annotation>
    <attribute name="scopeToSpaceSystem" type="xtce:NameReferenceType">
    <annotation>
    <documentation xml:lang="en">The name of a SpaceSystem this Interlock applies to. By default, it only applies to the SpaceSystem that contains this MetaCommand.</documentation>
    </annotation>
    </attribute>
    <attribute name="verificationToWaitFor" type="xtce:VerifierEnumerationType" default="complete">
    <annotation>
    <documentation xml:lang="en">The verification stage of the command that releases the interlock, with the default being complete.</documentation>
    </annotation>
    </attribute>
    <attribute name="verificationProgressPercentage" type="double">
    <annotation>
    <documentation xml:lang="en">Only applies when the verificationToWaitFor attribute is 'queued' or 'executing'.</documentation>
    </annotation>
    </attribute>
    <attribute name="suspendable" type="boolean" default="false">
    <annotation>
    <documentation xml:lang="en">A flag that indicates that under special circumstances, this Interlock can be suspended.</documentation>
    </annotation>
    </attribute>
    </complexType>

    ================================================================================
    MathAlgorithmType contents
    ================================================================================

    <complexType name="MathAlgorithmType">
    <annotation>
    <documentation xml:lang="en">A simple mathematical operation</documentation>
    </annotation>
    <complexContent>
    <extension base="xtce:NameDescriptionType">
    <sequence>
    <element name="MathOperation" type="xtce:TriggeredMathOperationType"/>
    </sequence>
    </extension>
    </complexContent>
    </complexType>

    <complexType name="MathAlgorithmType">
    <annotation>
    <documentation xml:lang="en">Describe a postfix (Reverse Polish Notation (RPN)) notation based mathmatical equations. See MathOperationType.</documentation>
    </annotation>
    <complexContent>
    <extension base="xtce:NameDescriptionType">
    <sequence>
    <element name="MathOperation" type="xtce:TriggeredMathOperationType">
    <annotation>
    <documentation xml:lang="en">The contents of the Math Operation as an algorithm definition in RPN. See TriggeredMathOperationType.</documentation>
    </annotation>
    </element>
    </sequence>
    </extension>
    </complexContent>
    </complexType>

    ================================================================================
    PhysicalAddressType contents
    ================================================================================

    <complexType name="PhysicalAddressType" mixed="false">
    <annotation>
    <documentation xml:lang="en">When it's important to know the physical address(s) on the spacecraft that this parameter may be collected from, use this. </documentation>
    </annotation>
    <sequence>
    <element name="SubAddress" type="xtce:PhysicalAddressType" minOccurs="0"/>
    </sequence>
    <attribute name="sourceName" type="string"/>
    <attribute name="sourceAddress" type="string"/>
    </complexType>

    <complexType name="PhysicalAddressType" mixed="false">
    <annotation>
    <documentation xml:lang="en">Describe the physical address(s) that this parameter is collected from. Examples of physical addresses include a memory location on the spacecraft or a location on a data collection bus, with the source identified with a descriptive name for the region of memory, such as RAM, Flash, EEPROM, and other possibilities that can be adapted for program specific usage.</documentation>
    </annotation>
    <sequence>
    <element name="SubAddress" type="xtce:PhysicalAddressType" minOccurs="0">
    <annotation>
    <documentation xml:lang="en">A sub-address may be used to further specify the location if it fractionally occupies the address. Additional possibilities exist for separating partitions of memory or other address based storage mechanisms. This specification does not specify spacecraft specific hardware properties, so usage of addressing information is largely program and platform specific.</documentation>
    </annotation>
    </element>
    </sequence>
    <attribute name="sourceName" type="string">
    <annotation>
    <documentation xml:lang="en">A descriptive name for the location, such as a memory type, where this address is located.</documentation>
    </annotation>
    </attribute>
    <attribute name="sourceAddress" type="string">
    <annotation>
    <documentation xml:lang="en">The address within the memory location. This specification does not specify program and hardware specific attributes, such as address size and address region starting location. These are part of the spacecraft hardware properties.</documentation>
    </annotation>
    </attribute>
    </complexType>

    ================================================================================
    RateInStreamType contents
    ================================================================================

    <complexType name="RateInStreamType">
    <annotation>
    <documentation xml:lang="en">Used in packaging to define the expected rate that any individual container will be in a Stream</documentation>
    </annotation>
    <attribute name="basis" type="xtce:BasisType" default="perSecond"/>
    <attribute name="minimumValue" type="double"/>
    <attribute name="maximumValue" type="double"/>
    </complexType>

    <complexType name="RateInStreamType">
    <annotation>
    <documentation xml:lang="en">Define the expected appearance (rate) of a container in a stream where the rate is defined on either a perSecond or perContainer update basis. Many programs and platforms have variable reporting rates for containers and these can be commanded. As a result, this element is only useful to some users and generally does not affect the processing of the received containers themselves. See ContainerType.</documentation>
    </annotation>
    <attribute name="basis" type="xtce:BasisType" default="perSecond">
    <annotation>
    <documentation xml:lang="en">The measurement unit basis for the minimum and maximum appearance count values.</documentation>
    </annotation>
    </attribute>
    <attribute name="minimumValue" type="double">
    <annotation>
    <documentation xml:lang="en">The minimum rate for the specified basis for which this container should appear in the stream.</documentation>
    </annotation>
    </attribute>
    <attribute name="maximumValue" type="double">
    <annotation>
    <documentation xml:lang="en">The maximum rate for the specified basis for which this container should appear in the stream.</documentation>
    </annotation>
    </attribute>
    </complexType>

    ================================================================================
    RateInStreamWithStreamNameType contents
    ================================================================================

    <complexType name="RateInStreamWithStreamNameType">
    <complexContent>
    <extension base="xtce:RateInStreamType">
    <attribute name="streamRef" type="xtce:NameReferenceType" use="required"/>
    </extension>
    </complexContent>
    </complexType>

    <complexType name="RateInStreamWithStreamNameType">
    <annotation>
    <documentation xml:lang="en">Define the expected appearance (rate) of a container in a named stream where the rate is defined on either a perSecond or perContainer update basis. Many programs and platforms have variable reporting rates for containers and these can be commanded. As a result, this element is only useful to some users and generally does not affect the processing of the received containers themselves. See ContainerType and RateInStreamType.</documentation>
    </annotation>
    <complexContent>
    <extension base="xtce:RateInStreamType">
    <attribute name="streamRef" type="xtce:NameReferenceType" use="required">
    <annotation>
    <documentation xml:lang="en">Reference to a named stream for which this rate specification applies.</documentation>
    </annotation>
    </attribute>
    </extension>
    </complexContent>
    </complexType>

    ================================================================================
    RestrictionCriteriaType contents
    ================================================================================

    <complexType name="RestrictionCriteriaType">
    <annotation>
    <documentation xml:lang="en">Given that this Container is the Base container type, RestrictionCriteria lists conditions that must be true for this Container to be 'this' subContainer type. May be a simple Comparison List, a Boolean Expression, and/or in a Graph of containers established by the NextContainer</documentation>
    </annotation>
    <complexContent>
    <extension base="xtce:MatchCriteriaType">
    <choice>
    <element name="NextContainer" type="xtce:ContainerRefType" minOccurs="0"/>
    </choice>
    </extension>
    </complexContent>
    </complexType>

    <complexType name="RestrictionCriteriaType">
    <annotation>
    <documentation xml:lang="en">Define one or more conditions (constraints) for container inheritance. A container is instantiable if its constraints are true. Constraint conditions may be a comparison, a list of comparisons, a boolean expression, or a graph of containers that are instantiable (if all containers are instantiable the condition is true). See BaseContainerType, ComparisonType, ComparisonListType, BooleanExpressionType and NextContainerType.</documentation>
    </annotation>
    <complexContent>
    <extension base="xtce:MatchCriteriaType">
    <choice>
    <element name="NextContainer" type="xtce:ContainerRefType" minOccurs="0">
    <annotation>
    <documentation xml:lang="en">Reference to the named container that must follow this container in the stream sequence.</documentation>
    </annotation>
    </element>
    </choice>
    </extension>
    </complexContent>
    </complexType>

    ================================================================================
    BasisType contents
    ================================================================================

    <simpleType name="BasisType">
    <restriction base="string">
    <enumeration value="perSecond"/>
    <enumeration value="perContainerUpdate"/>
    </restriction>
    </simpleType>

    <simpleType name="BasisType">
    <annotation>
    <documentation xml:lang="en">Defines to type of update rates: perSecond and perContainerUpdate. See RateInStreamType.</documentation>
    </annotation>
    <restriction base="string">
    <enumeration value="perSecond"/>
    <enumeration value="perContainerUpdate"/>
    </restriction>
    </simpleType>

    ================================================================================
    ChangeBasisType contents
    ================================================================================

    <simpleType name="ChangeBasisType">
    <restriction base="string">
    <enumeration value="absoluteChange"/>
    <enumeration value="percentageChange"/>
    </restriction>
    </simpleType>

    <simpleType name="ChangeBasisType">
    <annotation>
    <documentation xml:lang="en">Defines absoluteChange and percentageChange for use in rate of change alarms. Used by ChangeAlarmRangesType.</documentation>
    </annotation>
    <restriction base="string">
    <enumeration value="absoluteChange"/>
    <enumeration value="percentageChange"/>
    </restriction>
    </simpleType>

    ================================================================================
    ChangeSpanType contents
    ================================================================================

    <simpleType name="ChangeSpanType">
    <restriction base="string">
    <enumeration value="changePerSecond"/>
    <enumeration value="changePerSample"/>
    </restriction>
    </simpleType>

    <simpleType name="ChangeSpanType">
    <annotation>
    <documentation xml:lang="en">Defines a changePerSecond and changePerSample for use in rate of change alarms. Used by ChangeAlarmRangesType.</documentation>
    </annotation>
    <restriction base="string">
    <enumeration value="changePerSecond"/>
    <enumeration value="changePerSample"/>
    </restriction>
    </simpleType>

    ================================================================================
    BitOrderType contents
    ================================================================================

    <simpleType name="BitOrderType">
    <restriction base="string">
    <enumeration value="leastSignificantBitFirst"/>
    <enumeration value="mostSignificantBitFirst"/>
    </restriction>
    </simpleType>

    <simpleType name="BitOrderType">
    <annotation>
    <documentation xml:lang="en">Defines two bit-order types: most significant bit first and least significant bit first. See DataEncodingType.</documentation>
    </annotation>
    <restriction base="string">
    <enumeration value="leastSignificantBitFirst"/>
    <enumeration value="mostSignificantBitFirst"/>
    </restriction>
    </simpleType>

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