1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-23 08:15:30 +03:00

Change enabled OSD stats storage to bitmap

Previously the flags controlling the enabled OSD stats were stored as an array of boolean. This change reduces config storage by storing the flags as bits inside a single uint32.
This commit is contained in:
Bruce Luckcuck 2018-05-07 08:40:16 -04:00
parent 7b831f94ee
commit 905f14d86c
5 changed files with 79 additions and 71 deletions

View file

@ -142,12 +142,7 @@ void doTestArm(bool testEmpty = true)
* Auxiliary function. Test is there're stats that must be shown
*/
bool isSomeStatEnabled(void) {
for (int i = 0; i < OSD_STAT_COUNT; i++) {
if (osdConfigMutable()->enabled_stats[i]) {
return true;
}
}
return false;
return (osdConfigMutable()->enabled_stats != 0);
}
/*
@ -288,19 +283,19 @@ TEST(OsdTest, TestStatsImperial)
{
// given
// this set of enabled post flight statistics
osdConfigMutable()->enabled_stats[OSD_STAT_MAX_SPEED] = true;
osdConfigMutable()->enabled_stats[OSD_STAT_MIN_BATTERY] = true;
osdConfigMutable()->enabled_stats[OSD_STAT_MIN_RSSI] = true;
osdConfigMutable()->enabled_stats[OSD_STAT_MAX_CURRENT] = false;
osdConfigMutable()->enabled_stats[OSD_STAT_USED_MAH] = false;
osdConfigMutable()->enabled_stats[OSD_STAT_MAX_ALTITUDE] = true;
osdConfigMutable()->enabled_stats[OSD_STAT_BLACKBOX] = false;
osdConfigMutable()->enabled_stats[OSD_STAT_END_BATTERY] = true;
osdConfigMutable()->enabled_stats[OSD_STAT_TIMER_1] = true;
osdConfigMutable()->enabled_stats[OSD_STAT_TIMER_2] = true;
osdConfigMutable()->enabled_stats[OSD_STAT_RTC_DATE_TIME] = true;
osdConfigMutable()->enabled_stats[OSD_STAT_MAX_DISTANCE] = true;
osdConfigMutable()->enabled_stats[OSD_STAT_BLACKBOX_NUMBER] = false;
osdStatSetState(OSD_STAT_MAX_SPEED, true);
osdStatSetState(OSD_STAT_MIN_BATTERY, true);
osdStatSetState(OSD_STAT_MIN_RSSI, true);
osdStatSetState(OSD_STAT_MAX_CURRENT, false);
osdStatSetState(OSD_STAT_USED_MAH, false);
osdStatSetState(OSD_STAT_MAX_ALTITUDE, true);
osdStatSetState(OSD_STAT_BLACKBOX, false);
osdStatSetState(OSD_STAT_END_BATTERY, true);
osdStatSetState(OSD_STAT_TIMER_1, true);
osdStatSetState(OSD_STAT_TIMER_2, true);
osdStatSetState(OSD_STAT_RTC_DATE_TIME, true);
osdStatSetState(OSD_STAT_MAX_DISTANCE, true);
osdStatSetState(OSD_STAT_BLACKBOX_NUMBER, false);
// and
// using imperial unit system