CF/BF - Reduce flash usage by cleaning up serializeBoxNamesReply.

This commit is contained in:
Hydra 2017-04-08 22:37:52 +01:00 committed by Dominic Clifton
parent 297f362257
commit 18454ad705
1 changed files with 34 additions and 51 deletions

View File

@ -113,40 +113,39 @@ extern uint16_t cycleTime; // FIXME dependency on mw.c
static const char * const flightControllerIdentifier = BETAFLIGHT_IDENTIFIER; // 4 UPPER CASE alpha numeric characters that identify the flight controller. static const char * const flightControllerIdentifier = BETAFLIGHT_IDENTIFIER; // 4 UPPER CASE alpha numeric characters that identify the flight controller.
static const char * const boardIdentifier = TARGET_BOARD_IDENTIFIER; static const char * const boardIdentifier = TARGET_BOARD_IDENTIFIER;
// FIXME remove ;'s
static const box_t boxes[CHECKBOX_ITEM_COUNT + 1] = { static const box_t boxes[CHECKBOX_ITEM_COUNT + 1] = {
{ BOXARM, "ARM;", 0 }, { BOXARM, "ARM", 0 },
{ BOXANGLE, "ANGLE;", 1 }, { BOXANGLE, "ANGLE", 1 },
{ BOXHORIZON, "HORIZON;", 2 }, { BOXHORIZON, "HORIZON", 2 },
{ BOXBARO, "BARO;", 3 }, { BOXBARO, "BARO", 3 },
{ BOXANTIGRAVITY, "ANTI GRAVITY;", 4 }, { BOXANTIGRAVITY, "ANTI GRAVITY", 4 },
{ BOXMAG, "MAG;", 5 }, { BOXMAG, "MAG", 5 },
{ BOXHEADFREE, "HEADFREE;", 6 }, { BOXHEADFREE, "HEADFREE", 6 },
{ BOXHEADADJ, "HEADADJ;", 7 }, { BOXHEADADJ, "HEADADJ", 7 },
{ BOXCAMSTAB, "CAMSTAB;", 8 }, { BOXCAMSTAB, "CAMSTAB", 8 },
{ BOXCAMTRIG, "CAMTRIG;", 9 }, { BOXCAMTRIG, "CAMTRIG", 9 },
{ BOXGPSHOME, "GPS HOME;", 10 }, { BOXGPSHOME, "GPS HOME", 10 },
{ BOXGPSHOLD, "GPS HOLD;", 11 }, { BOXGPSHOLD, "GPS HOLD", 11 },
{ BOXPASSTHRU, "PASSTHRU;", 12 }, { BOXPASSTHRU, "PASSTHRU", 12 },
{ BOXBEEPERON, "BEEPER;", 13 }, { BOXBEEPERON, "BEEPER", 13 },
{ BOXLEDMAX, "LEDMAX;", 14 }, { BOXLEDMAX, "LEDMAX", 14 },
{ BOXLEDLOW, "LEDLOW;", 15 }, { BOXLEDLOW, "LEDLOW", 15 },
{ BOXLLIGHTS, "LLIGHTS;", 16 }, { BOXLLIGHTS, "LLIGHTS", 16 },
{ BOXCALIB, "CALIB;", 17 }, { BOXCALIB, "CALIB", 17 },
{ BOXGOV, "GOVERNOR;", 18 }, { BOXGOV, "GOVERNOR", 18 },
{ BOXOSD, "OSD SW;", 19 }, { BOXOSD, "OSD SW", 19 },
{ BOXTELEMETRY, "TELEMETRY;", 20 }, { BOXTELEMETRY, "TELEMETRY", 20 },
{ BOXGTUNE, "GTUNE;", 21 }, { BOXGTUNE, "GTUNE", 21 },
{ BOXSONAR, "SONAR;", 22 }, { BOXSONAR, "SONAR", 22 },
{ BOXSERVO1, "SERVO1;", 23 }, { BOXSERVO1, "SERVO1", 23 },
{ BOXSERVO2, "SERVO2;", 24 }, { BOXSERVO2, "SERVO2", 24 },
{ BOXSERVO3, "SERVO3;", 25 }, { BOXSERVO3, "SERVO3", 25 },
{ BOXBLACKBOX, "BLACKBOX;", 26 }, { BOXBLACKBOX, "BLACKBOX", 26 },
{ BOXFAILSAFE, "FAILSAFE;", 27 }, { BOXFAILSAFE, "FAILSAFE", 27 },
{ BOXAIRMODE, "AIR MODE;", 28 }, { BOXAIRMODE, "AIR MODE", 28 },
{ BOX3DDISABLESWITCH, "DISABLE 3D SWITCH;", 29}, { BOX3DDISABLESWITCH, "DISABLE 3D SWITCH", 29},
{ BOXFPVANGLEMIX, "FPV ANGLE MIX;", 30}, { BOXFPVANGLEMIX, "FPV ANGLE MIX", 30},
{ BOXBLACKBOXERASE, "BLACKBOX ERASE (>30s);", 31 }, { BOXBLACKBOXERASE, "BLACKBOX ERASE (>30s)", 31 },
{ CHECKBOX_ITEM_COUNT, NULL, 0xFF } { CHECKBOX_ITEM_COUNT, NULL, 0xFF }
}; };
@ -275,11 +274,6 @@ const box_t *findBoxByPermanentId(uint8_t permenantId)
static void serializeBoxNamesReply(sbuf_t *dst) static void serializeBoxNamesReply(sbuf_t *dst)
{ {
int flag = 1, count = 0;
reset:
// in first run of the loop, we grab total size of junk to be sent
// then come back and actually send it
for (int i = 0; i < activeBoxIdCount; i++) { for (int i = 0; i < activeBoxIdCount; i++) {
const int activeBoxId = activeBoxIds[i]; const int activeBoxId = activeBoxIds[i];
const box_t *box = findBoxByBoxId(activeBoxId); const box_t *box = findBoxByBoxId(activeBoxId);
@ -287,19 +281,8 @@ reset:
continue; continue;
} }
const int len = strlen(box->boxName); sbufWriteData(dst, box->boxName, strlen(box->boxName));
if (flag) { sbufWriteU8(dst, ';');
count += len;
} else {
for (int j = 0; j < len; j++) {
sbufWriteU8(dst, box->boxName[j]);
}
}
}
if (flag) {
flag = 0;
goto reset;
} }
} }