Menu

#2801 navselector prop rule causes [ALRT]:autopilot DigitalFilter: unknown config node:

2020.4
Fixed
Medium
2023-04-28
2023-04-04
No

On 'next' using a model with KAP140, e.g.c172p, lancair235 the console logs these errors:

8.76 [ALRT]:autopilot  DigitalFilter: unknown config node: absolute
    8.82 [ALRT]:autopilot  DigitalFilter: unknown config node: value
    8.82 [ALRT]:autopilot  DigitalFilter: unknown config node: value
    8.82 [ALRT]:autopilot  DigitalFilter: unknown config node: value
    8.82 [ALRT]:autopilot  DigitalFilter: unknown config node: value
    8.82 [ALRT]:autopilot  DigitalFilter: unknown config node: value
    8.82 [ALRT]:autopilot  DigitalFilter: unknown config node: value
    8.82 [ALRT]:autopilot  DigitalFilter: unknown config node: value
    8.82 [ALRT]:autopilot  DigitalFilter: unknown config node: value
    8.82 [ALRT]:autopilot  DigitalFilter: unknown config node: value
    8.82 [ALRT]:autopilot  DigitalFilter: unknown config node: value
    8.82 [ALRT]:autopilot  DigitalFilter: unknown config node: value
    8.82 [ALRT]:autopilot  DigitalFilter: unknown config node: value
    8.82 [ALRT]:autopilot  DigitalFilter: unknown config node: value
    8.82 [ALRT]:autopilot  DigitalFilter: unknown config node: value

which are traced to the property rule file navselector.xml . The first filter in this file:

  <filter>
    <name>in-range</name>
    <type>gain</type>
    <debug>false</debug>
    <input>
      <condition>
        <equals>
          <property>instrumentation/nav-source/selector</property>
          <value>0</value>
        </equals>
      </condition>
      <property alias="../../../params/source1-in-range"/>
    </input>
    <input>
      <condition>
        <equals>
          <property>instrumentation/nav-source/selector</property>
          <value>1</value>
        </equals>
      </condition>
      <property alias="../../../params/source2-in-range"/>
    </input>
    <input>
      <condition>
        <equals>
          <property>instrumentation/nav-source/selector</property>
          <value>2</value>
        </equals>
      </condition>
      <property alias="../../../params/source3-in-range"/>
    </input>
    <value>0</value>
    <output>instrumentation/nav-source/in-range</output>
  </filter>

is traced through digitalfilter.cxx:903 :

  for( int i = 0; i < cfg.nChildren(); ++i )
  {
    SGPropertyNode_ptr child = cfg.getChild(i);
    std::string cname(child->getNameString());
    bool ok = false;
    if (!ok) ok = _implementation->configure(*child, cname, prop_root);
    if (!ok) ok = configure(*child, cname, prop_root);
    if (!ok) ok = (cname == "type");
    if (!ok) ok = (cname == "params");   // 'params' is usually used to specify parameters in PropertList files.
    if (!ok) {
      SG_LOG
      (
        SG_AUTOPILOT,
        SG_ALERT,
        "DigitalFilter: unknown config node: " << cname
      );
    }
  }

for the iteration i == 6 the cname is 'value' but the line: "configure(*child, cname, prop_root);" does not return true, resulting in the SG LOG error message.

It seems the 'value' tag is handled as a child of the 'enable' but as a child inside the 'input' tag it is not handled.

The g-forces.xml props rule, called from defaults.xml will throw a similar error on 'absolute value' tag.

These highest level console ALRT messages don't appear in 2020-3 build.

Related

Tickets: #2680

Discussion

  • xDraconian

    xDraconian - 2023-04-04

    On 4/4/23 12:13 PM, Huntley Palmer wrote:

    |<value>0</value> <output>instrumentation/nav-source/in-range</output>
    |

    |I believe that final <value>0</value> is invalid for a filter node.
    I'll speculate that the intent is to treat this as the default value
    when none of the input conditions are true.  Try changing it to
    <input>0 to see if it resolves the issue (and without breaking
    the autopilot).|

     
  • xDraconian

    xDraconian - 2023-04-04
    • labels: --> Reproducible, Autopilot, Aircraft
     
  • Sascha

    Sascha - 2023-04-14

    Ooops, sorry, thats my fault.
    xDraconian is correct. This 0 values are default inputs if no other input condition is meet.
    So they should defined as <input>0</input>.
    I updated my git-repo. Please test and merge into FG if all is fine.

     
  • xDraconian

    xDraconian - 2023-04-28
    • status: New --> Started
    • assigned_to: xDraconian
     
  • xDraconian

    xDraconian - 2023-04-28
    • status: Started --> Fixed
     

Log in to post a comment.