- Source processing now happens on original source files:
- processing to line-by-line
- required overhaul of regex match patterns + processing
- pros:
- enable tracing of ambiguous parsing sites -- reports (module, file, line-number, line-contents)
- simplifies code
- reduces computational complexity
- cons:
- certain declarations are harder to parse: multiline declarations
- refactors:
- added specific subclasses for each: Publications, Subscriptions, Ambiguities
- added a "Scope" class to represent either a module ('ModuleScope') or a library ('LibraryScope')
- regexes:
- added cases for C++-style classes
- expanded C++-style regex cases to accommodate templates
- `ORB_ID::` is accepted wherever `ORB_ID(` is accepted
- adds 'orb_copy' regex to the subscription cases
- emit ambiguous-line warning for declarations with `ORB_ID` on the same line
- emit ambiguous-line warning for `ORB_ID` with a declaration on the same line
- changed 'module whitelist' to 'scope-whitelist'
- whitelist may now apply to libraries
- libraries are optionally merged with their depending modules (but not by default)
- may be merged with their depending modules with the `--merge-depends` cli flag
- eliminates some redundant 'special-case' handling code
- debug output
- raises exception and aborts if a topic is found outside of a scope
- debug output is now printed & filtered with the python 'logging' standard module
- alphabetizes topic output in debug logging
- fixes debug output if package dependencies are missing
- now warns on ambiguous matches
- prints a list of ambiguous source sites (aka warnings) on completion
- (still) emits a warning if we find ORB_ID outside of a scope
- adds warnings if any of the source paths are invalid
- do not emit debug output for modules outside of the module/scope whitelist
- Expand script's CLI parameters
- added 'none' output options: undocumented debugging option to silence file output while debugging
- added the `--merge-depends` cli flag -- merges output of modules & their dependee libraries
- the ekf2 frontend typically runs in the background for up to 30 seconds waiting for all instances to appear, but this isn't supported by the legacy posix launcher
This is to avoid race condition with the yaw emergency estimator having
the same trigger delay of 1 second. Commander will now give more time to
EKF2 to reset itself before switching to altitude mode.
px4_fmu-v4_uavcanv1 fails to build:
../../src/drivers/uavcan_v1/Uavcan.cpp: In static member function 'static int UavcanNode::start(uint32_t, uint32_t)':
../../src/drivers/uavcan_v1/Uavcan.cpp:140:29: error: 'interface' was not declared in this scope
140 | _instance = new UavcanNode(interface, node_id);
- ecl in PX4/Firmware (a730f0f5ce7a2cc909cb3d0dfab5f0106a9b3aeb): bb950a1550
- ecl current upstream: e3d1ade660
- Changes: bb950a1550...e3d1ade660e3d1ade 2021-03-12 Daniel Agar - EKF: use flow for vel test ratio if only active source of horizontal aiding
I don't think we should be broadcasting by default as we haven't done
that in the past. This suddenly spams the network with a lot of
messages, and leads to confusing situations in offices where there are
multiple PX4 SITL and QGC intances are open.