e.g.
./Tools/scripts/param_check_all.py:180:40: B008 Do not perform function calls in argument defaults. The call is performed only once at function definition time. All calls to your function will reuse the result of that definition-time function call. If this is intended, assign the function call to a module-level variable and use that variable as a default value.
In AP_Periph, these parameters use exact baud values, not the kbaud map
that the flight control firmware uses. Changed the @Values to reflect
this, added @Range, and @CopyFieldsFrom to the
later parameters.
This causes waf to not delete the generated files from the configure
step during `./waf clean`. Also causes waf to throw an error and prompt
the user to reconfigure if the files are in fact missing. This means we
don't need to rerun generation if the output is missing.
This also adds all generated files as waf nodes, allowing them to be
used as implicit dependencies. This fixes an issue with ESP32 and
(presumably) Linux where changing the hwdef.dat and reconfiguring (to
regenerate the hwdef.dat) did not trigger any rebuilds.
We keep threatening to do it but haven't done it. Add one roll value
seen in CI and one pitch value seen on a local machine.
Now that we do it and the times are marked, we can track if this gets
worse or if it's the same values each time.
The EKF takes almost exactly 10 (simulated) seconds to deassert flag 16
(POS_HORIZ_ABS) after jamming starts, then 15 to reassert it after it
stops. The test timings leave basically no margin for error and recently
the flag is sometimes asserted a few hundred milliseconds late according
to the test suite.
Fix by increasing the allowed times arbitrarily by 30%, assuming there
is no need for such exact timing. Though the deassertion has not been
seen to fail yet, also give it some more margin to avoid a future
failure. Checked that the 10 second deassertion and 15 second
reassertion still hold. Confirmed also that the timings are the same in
4.6, suggesting an actual regression is unlikely.
The makefile now compile the RcAioPRUPB2.p to RcAioPRU_POCKET2_bin.h.
This code (h) fileis loaded and run in the PRU for RCInput and RCOutput
- Should have the TI's pasm utility to work
Avoid the need to go through `env.py`. Also adjust comments on the
relevant functions as this is all they could have been used for for a
long time now, as the file is overwritten each time the generator runs.
Running it during the build just wastes time as it is already checked
for and rerun if necessary during pre_build. For Linux and ESP32 the
build run was stubbed out (`rule=""`) anyway.
Also allows de-environmentification of `BOOTLOADER_OPTION` as that was
only ever used during the unnecessary and now deleted build run.
These are already loaded right after the initial generation, and waf
ensures `cfg.env` persists to `bld.env`, so loading them again just
mixes the values in again for little effect.
Avoids trying to set parameters when we're popping the context which sets PARAM_SET_ENABLE to its default value of enabled. This can cause permission problems. We need the script to be actuve when we pop the context so we can set the parameter at all, so we can't disable scripting or remove the script and restart.
During the infrastructure context pop:
2025-09-30T12:12:45.8005072Z AT-0151.7: PARAM_SET_ENABLE want=1.000000 autopilot=1.0 (attempt=4/40)
2025-09-30T12:12:45.8005691Z AT-0151.7: PARAM_SET_ENABLE is now 1.000000
2025-09-30T12:12:45.8006179Z AT-0151.7: DISARM_DELAY want=10.000000 autopilot=111.0 (attempt=4/40)
2025-09-30T12:12:45.8006714Z AT-0151.7: Sending set (DISARM_DELAY) to (10.000000) (old=111.000000)
2025-09-30T12:12:45.8007217Z AT-0151.7: Received wanted PARAM_VALUE DISARM_DELAY=111.000000
2025-09-30T12:12:45.8007737Z AT-0151.7: DISARM_DELAY want=10.000000 autopilot=111.0 (attempt=5/40)
2025-09-30T12:12:45.8008269Z AT-0151.7: Sending set (DISARM_DELAY) to (10.000000) (old=111.000000)
2025-09-30T12:12:45.8008937Z AT-0151.7: Received wanted PARAM_VALUE DISARM_DELAY=111.000000