Use memcmp for CLI defaults comparisons where appropriate

Saves 196 bytes on F3
This commit is contained in:
Bruce Luckcuck 2018-07-22 12:45:29 -04:00
parent bc22934185
commit 9745547175
1 changed files with 9 additions and 44 deletions

View File

@ -736,8 +736,7 @@ static void printRxFailsafe(uint8_t dumpMask, const rxFailsafeChannelConfig_t *r
for (uint32_t channel = 0; channel < MAX_SUPPORTED_RC_CHANNEL_COUNT; channel++) { for (uint32_t channel = 0; channel < MAX_SUPPORTED_RC_CHANNEL_COUNT; channel++) {
const rxFailsafeChannelConfig_t *channelFailsafeConfig = &rxFailsafeChannelConfigs[channel]; const rxFailsafeChannelConfig_t *channelFailsafeConfig = &rxFailsafeChannelConfigs[channel];
const rxFailsafeChannelConfig_t *defaultChannelFailsafeConfig = &defaultRxFailsafeChannelConfigs[channel]; const rxFailsafeChannelConfig_t *defaultChannelFailsafeConfig = &defaultRxFailsafeChannelConfigs[channel];
const bool equalsDefault = channelFailsafeConfig->mode == defaultChannelFailsafeConfig->mode const bool equalsDefault = !memcmp(channelFailsafeConfig, defaultChannelFailsafeConfig, sizeof(rxFailsafeChannelConfig_t));
&& channelFailsafeConfig->step == defaultChannelFailsafeConfig->step;
const bool requireValue = channelFailsafeConfig->mode == RX_FAILSAFE_MODE_SET; const bool requireValue = channelFailsafeConfig->mode == RX_FAILSAFE_MODE_SET;
if (requireValue) { if (requireValue) {
const char *format = "rxfail %u %c %d"; const char *format = "rxfail %u %c %d";
@ -856,12 +855,7 @@ static void printAux(uint8_t dumpMask, const modeActivationCondition_t *modeActi
bool equalsDefault = false; bool equalsDefault = false;
if (defaultModeActivationConditions) { if (defaultModeActivationConditions) {
const modeActivationCondition_t *macDefault = &defaultModeActivationConditions[i]; const modeActivationCondition_t *macDefault = &defaultModeActivationConditions[i];
equalsDefault = mac->modeId == macDefault->modeId equalsDefault = !memcmp(mac, macDefault, sizeof(modeActivationCondition_t));
&& mac->auxChannelIndex == macDefault->auxChannelIndex
&& mac->range.startStep == macDefault->range.startStep
&& mac->range.endStep == macDefault->range.endStep
&& mac->modeLogic == macDefault->modeLogic
&& mac->linkedTo == macDefault->linkedTo;
const box_t *box = findBoxByBoxId(macDefault->modeId); const box_t *box = findBoxByBoxId(macDefault->modeId);
const box_t *linkedTo = findBoxByBoxId(macDefault->linkedTo); const box_t *linkedTo = findBoxByBoxId(macDefault->linkedTo);
if (box) { if (box) {
@ -971,12 +965,7 @@ static void printSerial(uint8_t dumpMask, const serialConfig_t *serialConfig, co
}; };
bool equalsDefault = false; bool equalsDefault = false;
if (serialConfigDefault) { if (serialConfigDefault) {
equalsDefault = serialConfig->portConfigs[i].identifier == serialConfigDefault->portConfigs[i].identifier equalsDefault = !memcmp(&serialConfig->portConfigs[i], &serialConfigDefault->portConfigs[i], sizeof(serialPortConfig_t));
&& serialConfig->portConfigs[i].functionMask == serialConfigDefault->portConfigs[i].functionMask
&& serialConfig->portConfigs[i].msp_baudrateIndex == serialConfigDefault->portConfigs[i].msp_baudrateIndex
&& serialConfig->portConfigs[i].gps_baudrateIndex == serialConfigDefault->portConfigs[i].gps_baudrateIndex
&& serialConfig->portConfigs[i].telemetry_baudrateIndex == serialConfigDefault->portConfigs[i].telemetry_baudrateIndex
&& serialConfig->portConfigs[i].blackbox_baudrateIndex == serialConfigDefault->portConfigs[i].blackbox_baudrateIndex;
cliDefaultPrintLinef(dumpMask, equalsDefault, format, cliDefaultPrintLinef(dumpMask, equalsDefault, format,
serialConfigDefault->portConfigs[i].identifier, serialConfigDefault->portConfigs[i].identifier,
serialConfigDefault->portConfigs[i].functionMask, serialConfigDefault->portConfigs[i].functionMask,
@ -1225,14 +1214,7 @@ static void printAdjustmentRange(uint8_t dumpMask, const adjustmentRange_t *adju
bool equalsDefault = false; bool equalsDefault = false;
if (defaultAdjustmentRanges) { if (defaultAdjustmentRanges) {
const adjustmentRange_t *arDefault = &defaultAdjustmentRanges[i]; const adjustmentRange_t *arDefault = &defaultAdjustmentRanges[i];
equalsDefault = ar->auxChannelIndex == arDefault->auxChannelIndex equalsDefault = !memcmp(ar, arDefault, sizeof(adjustmentRange_t));
&& ar->range.startStep == arDefault->range.startStep
&& ar->range.endStep == arDefault->range.endStep
&& ar->adjustmentFunction == arDefault->adjustmentFunction
&& ar->auxSwitchChannelIndex == arDefault->auxSwitchChannelIndex
&& ar->adjustmentIndex == arDefault->adjustmentIndex
&& ar->adjustmentCenter == arDefault->adjustmentCenter
&& ar->adjustmentScale == arDefault->adjustmentScale;
cliDefaultPrintLinef(dumpMask, equalsDefault, format, cliDefaultPrintLinef(dumpMask, equalsDefault, format,
i, i,
arDefault->adjustmentIndex, arDefault->adjustmentIndex,
@ -1465,8 +1447,7 @@ static void printRxRange(uint8_t dumpMask, const rxChannelRangeConfig_t *channel
for (uint32_t i = 0; i < NON_AUX_CHANNEL_COUNT; i++) { for (uint32_t i = 0; i < NON_AUX_CHANNEL_COUNT; i++) {
bool equalsDefault = false; bool equalsDefault = false;
if (defaultChannelRangeConfigs) { if (defaultChannelRangeConfigs) {
equalsDefault = channelRangeConfigs[i].min == defaultChannelRangeConfigs[i].min equalsDefault = !memcmp(&channelRangeConfigs[i], &defaultChannelRangeConfigs[i], sizeof(rxChannelRangeConfig_t));
&& channelRangeConfigs[i].max == defaultChannelRangeConfigs[i].max;
cliDefaultPrintLinef(dumpMask, equalsDefault, format, cliDefaultPrintLinef(dumpMask, equalsDefault, format,
i, i,
defaultChannelRangeConfigs[i].min, defaultChannelRangeConfigs[i].min,
@ -1584,9 +1565,7 @@ static void printColor(uint8_t dumpMask, const hsvColor_t *colors, const hsvColo
bool equalsDefault = false; bool equalsDefault = false;
if (defaultColors) { if (defaultColors) {
const hsvColor_t *colorDefault = &defaultColors[i]; const hsvColor_t *colorDefault = &defaultColors[i];
equalsDefault = color->h == colorDefault->h equalsDefault = !memcmp(color, colorDefault, sizeof(hsvColor_t));
&& color->s == colorDefault->s
&& color->v == colorDefault->v;
cliDefaultPrintLinef(dumpMask, equalsDefault, format, i,colorDefault->h, colorDefault->s, colorDefault->v); cliDefaultPrintLinef(dumpMask, equalsDefault, format, i,colorDefault->h, colorDefault->s, colorDefault->v);
} }
cliDumpPrintLinef(dumpMask, equalsDefault, format, i, color->h, color->s, color->v); cliDumpPrintLinef(dumpMask, equalsDefault, format, i, color->h, color->s, color->v);
@ -1695,11 +1674,7 @@ static void printServo(uint8_t dumpMask, const servoParam_t *servoParams, const
bool equalsDefault = false; bool equalsDefault = false;
if (defaultServoParams) { if (defaultServoParams) {
const servoParam_t *defaultServoConf = &defaultServoParams[i]; const servoParam_t *defaultServoConf = &defaultServoParams[i];
equalsDefault = servoConf->min == defaultServoConf->min equalsDefault = !memcmp(servoConf, defaultServoConf, sizeof(servoParam_t));
&& servoConf->max == defaultServoConf->max
&& servoConf->middle == defaultServoConf->middle
&& servoConf->rate == defaultServoConf->rate
&& servoConf->forwardFromChannel == defaultServoConf->forwardFromChannel;
cliDefaultPrintLinef(dumpMask, equalsDefault, format, cliDefaultPrintLinef(dumpMask, equalsDefault, format,
i, i,
defaultServoConf->min, defaultServoConf->min,
@ -1841,13 +1816,7 @@ static void printServoMix(uint8_t dumpMask, const servoMixer_t *customServoMixer
bool equalsDefault = false; bool equalsDefault = false;
if (defaultCustomServoMixers) { if (defaultCustomServoMixers) {
servoMixer_t customServoMixerDefault = defaultCustomServoMixers[i]; servoMixer_t customServoMixerDefault = defaultCustomServoMixers[i];
equalsDefault = customServoMixer.targetChannel == customServoMixerDefault.targetChannel equalsDefault = !memcmp(&customServoMixer, &customServoMixerDefault, sizeof(servoMixer_t));
&& customServoMixer.inputSource == customServoMixerDefault.inputSource
&& customServoMixer.rate == customServoMixerDefault.rate
&& customServoMixer.speed == customServoMixerDefault.speed
&& customServoMixer.min == customServoMixerDefault.min
&& customServoMixer.max == customServoMixerDefault.max
&& customServoMixer.box == customServoMixerDefault.box;
cliDefaultPrintLinef(dumpMask, equalsDefault, format, cliDefaultPrintLinef(dumpMask, equalsDefault, format,
i, i,
@ -2173,11 +2142,7 @@ static void printVtx(uint8_t dumpMask, const vtxConfig_t *vtxConfig, const vtxCo
const vtxChannelActivationCondition_t *cac = &vtxConfig->vtxChannelActivationConditions[i]; const vtxChannelActivationCondition_t *cac = &vtxConfig->vtxChannelActivationConditions[i];
if (vtxConfigDefault) { if (vtxConfigDefault) {
const vtxChannelActivationCondition_t *cacDefault = &vtxConfigDefault->vtxChannelActivationConditions[i]; const vtxChannelActivationCondition_t *cacDefault = &vtxConfigDefault->vtxChannelActivationConditions[i];
equalsDefault = cac->auxChannelIndex == cacDefault->auxChannelIndex equalsDefault = !memcmp(cac, cacDefault, sizeof(vtxChannelActivationCondition_t));
&& cac->band == cacDefault->band
&& cac->channel == cacDefault->channel
&& cac->range.startStep == cacDefault->range.startStep
&& cac->range.endStep == cacDefault->range.endStep;
cliDefaultPrintLinef(dumpMask, equalsDefault, format, cliDefaultPrintLinef(dumpMask, equalsDefault, format,
i, i,
cacDefault->auxChannelIndex, cacDefault->auxChannelIndex,