Removes the custom CLI commands to update or display the PID and Rate profile names. Moves the storage into the pidProfile and controlRateProfile PG's.
Names can now be set with:
set profile_name = NAME
set rate_profile_name = NAME
Also added profile name display to the profile and rate CMS menus.
Emptry MODE_STRING paramaters would produce CLI output that would then generate errors if reapplied using a `diff` or `dump`. Fixed the output for blank values to be compatible with setting an empty string (clearing a previous value).
Also improve the length validation to report the allowed character range.
These parameters can now be configured directly with the set/get commands.
The "name" command will still function but presents a warning that it will be removed and to use "set name = " instead.
Captures packet quality statistics per motor to provide a platform for troubleshooting and in-flight alarms or warnings.
Continuously monitors and captures packet stats over the past second to be used to determine DSHOT telemetry link quality.
Update the CLI to move the DSHOT telemetry data/stats out of the `status` command and into a dedicated `dshot_telemetry_info` command. Reformatted the motor data to include the invalid packet percentages. Will aid in debugging by identifying ESC's that may be misconfigured (not supplying data), or those with problems generating high invalid packet percentages.
Data can later be used to generate OSD and beeper-based warnings if invalid packet percentages exceed thresholds.
Included a blackbox logging debug mode (`set debug_mode = DSHOT_RPM_ERRORS`) to record the per-motor invalid packet percentages in hundredths of a percent (so 123 is 1.23%).
Previously the `beacon` portion of a `dump` would display the flags associated with `beeper` rather then only the limited set for `beacon`. This would result in output that would cause errors if copy/pasted back in as commands.
Adds a new `batch` command used to delineate a group of commands as a related batch. The primary purpose is to group commands sent from the Configurator resulting from a copy/pasted config. Currently the output of the `diff all` command appends a `save` at the end of its output. So when a user pastes in their config to restore they may not see any errors because the `save` command causes the flight controller to reboot before they can review. When commands are wrapped inside of a batch, any errors will set a flag that will issue a warning when the `save` command is executed. This allows the user ro review and correct there configuration.
Previously the validation was checking for channel and band values > 0 which caused a parsing error. Unfortunately this also prevented the ability to reset the entry. This resulted in the output from the `vtx` command not being usable to paste back in as any indexes not configured would cause errors.
Converting the universal target as well.
Simplified timer management some.
Added F722 support for good measuer.
Fixed SITL, tests.
Cleanup after rebase.
Added support for all timer consumers and F7.
Fixed 'USE_DMA_SPEC' for F3, some cleanups.
Remove the giant `select` block that contained all the code to generate the elements and transition them to individual functions called only when the element is active. Simplifies the code and results in a performance improvement as it's not necessary to fall through the large `select` statement for every element that will be drawn. The individual functions and the element to function mapping are moved to a new `osd_elements.c` file.
Moved the OSD related code files to a new `osd/` directory.
Also pre-analyze the active elements and only process those that are active. This also saves processing as it's not necessary to loop through all 50 or so elements when only a couple are active.
Various other cleanup and removal of stale or unnecessary code.
In the default configuration the element drawing phase of the OSD task is reduced from ~51us to ~35us - resulting in about a 30% decrease in processing time.