XTCE 1.2 RTF Avatar
  1. OMG Issue

XTCE12 — element ParameterInstanceRefOperand in the MathOperationType

  • Key: XTCE12-60
  • Legacy Issue Number: 17422
  • Status: closed  
  • Source: NASA ( Mr. James Kevin Rice)
  • Summary:

    element ParameterInstanceRefOperand in the MathOperationType has the flag but the "this" parameter doesn't say what the intent is in annotation or give the option of specifying whether it would be the raw or cooked (engineering converted) value.

    So the XTCE 1.2 annotation could say "Use the calibrated value of this parameter in the calculation. If the raw value for this parameter is desired, use the ParameterInstanceRefOperand to spell it out."

    Which I think covers it... although it would be nice to have the attribute.

  • Reported: XTCE 1.1 — Mon, 11 Jun 2012 04:00 GMT
  • Disposition: Resolved — XTCE 1.2
  • Disposition Summary:

    Propose to accept the recommendation for @useCalibratedValue and annotation improvements

    Still working from the Ballot 7 updated draft.

    The issue recommendation is reasonable. The following is an updated version of the MathOperationType complexType.

    The changes are exclusively in the annotations for the internal element content and the addition of the @useCalibratedValue attribute on the ThisParameterOperand element. The default is backwards compatible with XTCE 1.1 intent. Replace the existing definition of MathOperationType with:

    <complexType name="MathOperationType" abstract="true">
    <annotation>
    <documentation xml:lang="en">Postfix (aka Reverse Polish Notation (RPN)) notation is used to describe mathmatical equations. It uses a stack where operands (either fixed values or ParameterInstances) are pushed onto the stack from first to last in the XML. As the operators are specified, each pops off operands as it evaluates them, and pushes the result back onto the stack. In this case postfix is used to avoid having to specify parenthesis. To convert from infix to postfix, use Dijkstra's "shunting yard" algorithm.</documentation>
    </annotation>
    <choice maxOccurs="unbounded">
    <element name="ValueOperand" type="double">
    <annotation>
    <documentation xml:lang="en">The element is used to represent a constant numeric value in the math operation.</documentation>
    </annotation>
    </element>
    <element name="ThisParameterOperand">
    <annotation>
    <documentation xml:lang="en">This element is a shortcut to represent the current parameter for which this math operation applies. It is shorter than using the ParameterInstanceRefOperatand, which can also specify this current parameter, but in a longer form syntax.</documentation>
    </annotation>
    <complexType>
    <attribute name="useCalibratedValue" type="boolean" default="true"/>
    </complexType>
    </element>
    <element name="ParameterInstanceRefOperand" type="xtce:ParameterInstanceRefType">
    <annotation>
    <documentation xml:lang="en">This element is used to reference the last received/assigned value of any Parameter in this math operation.</documentation>
    </annotation>
    </element>
    <element name="Operator" type="xtce:MathOperatorsType">
    <annotation>
    <documentation xml:lang="en">Binary operators: +, -, *, /, %, ^ operate on the top two values in the stack, leaving the result on the top of the stack. Unary operators: 1/x, x!, e^x, ln, log, and trigonometric operators operate on the top member of the stack also leaving the result on the top of the stack. 'ln' is a natural log where 'log' is a base 10 logarithm. Trigonometric operators use degrees. 'swap' swaps the top two members of the stack.</documentation>
    </annotation>
    </element>
    </choice>
    </complexType>

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