1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-23 16:25:31 +03:00
Commit graph

52 commits

Author SHA1 Message Date
Bruce Luckcuck
4a13c48adf Fix OSD active elements init logic to handle delayed items with delayed activation
Track the state of `sensors(SENSOR_GPS)` and rebuild the active OSD element list when it changes. The GPS sensor can have delayed activation or even deactivate if communication is lost with the module.

Also move the `BOXBLACKBOX` check from the initialization to the runtime element drawing as it can also change in flight.
2019-02-23 18:21:59 -05:00
Bruce Luckcuck
30672a37c5 Refactor OSD element display code
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.
2019-02-21 14:03:25 -05:00