diff --git a/src/main/config/config_master.h b/src/main/config/config_master.h index 4a03ff0ec2..497f405e8f 100644 --- a/src/main/config/config_master.h +++ b/src/main/config/config_master.h @@ -99,6 +99,7 @@ #define blackboxConfig(x) (&masterConfig.blackboxConfig) #define flashConfig(x) (&masterConfig.flashConfig) #define pidConfig(x) (&masterConfig.pidConfig) +#define adjustmentProfile(x) (&masterConfig.adjustmentProfile) // System-wide @@ -216,8 +217,7 @@ typedef struct master_s { uint8_t current_profile_index; modeActivationCondition_t modeActivationConditions[MAX_MODE_ACTIVATION_CONDITION_COUNT]; - adjustmentRange_t adjustmentRanges[MAX_ADJUSTMENT_RANGE_COUNT]; - + adjustmentProfile_t adjustmentProfile; #ifdef VTX uint8_t vtx_band; //1=A, 2=B, 3=E, 4=F(Airwaves/Fatshark), 5=Raceband uint8_t vtx_channel; //1-8 diff --git a/src/main/fc/fc_msp.c b/src/main/fc/fc_msp.c index 79c01a0476..dd1a5f5992 100755 --- a/src/main/fc/fc_msp.c +++ b/src/main/fc/fc_msp.c @@ -808,7 +808,7 @@ static bool mspFcProcessOutCommand(uint8_t cmdMSP, sbuf_t *dst, mspPostProcessFn case MSP_ADJUSTMENT_RANGES: for (int i = 0; i < MAX_ADJUSTMENT_RANGE_COUNT; i++) { - adjustmentRange_t *adjRange = &masterConfig.adjustmentRanges[i]; + adjustmentRange_t *adjRange = &adjustmentProfile()->adjustmentRanges[i]; sbufWriteU8(dst, adjRange->adjustmentIndex); sbufWriteU8(dst, adjRange->auxChannelIndex); sbufWriteU8(dst, adjRange->range.startStep); @@ -1337,7 +1337,7 @@ static mspResult_e mspFcProcessInCommand(uint8_t cmdMSP, sbuf_t *src) case MSP_SET_ADJUSTMENT_RANGE: i = sbufReadU8(src); if (i < MAX_ADJUSTMENT_RANGE_COUNT) { - adjustmentRange_t *adjRange = &masterConfig.adjustmentRanges[i]; + adjustmentRange_t *adjRange = &adjustmentProfile()->adjustmentRanges[i]; i = sbufReadU8(src); if (i < MAX_SIMULTANEOUS_ADJUSTMENT_COUNT) { adjRange->adjustmentIndex = i; diff --git a/src/main/fc/mw.c b/src/main/fc/mw.c index cfcf30fd2f..32b3181de2 100644 --- a/src/main/fc/mw.c +++ b/src/main/fc/mw.c @@ -579,8 +579,8 @@ void processRx(timeUs_t currentTimeUs) updateActivatedModes(masterConfig.modeActivationConditions); if (!cliMode) { - updateAdjustmentStates(masterConfig.adjustmentRanges); - processRcAdjustments(currentControlRateProfile, &masterConfig.rxConfig); + updateAdjustmentStates(adjustmentProfile()->adjustmentRanges); + processRcAdjustments(currentControlRateProfile, rxConfig()); } bool canUseHorizonMode = true; diff --git a/src/main/fc/rc_controls.h b/src/main/fc/rc_controls.h index 13c5dc6cb0..7470011391 100644 --- a/src/main/fc/rc_controls.h +++ b/src/main/fc/rc_controls.h @@ -263,6 +263,10 @@ typedef struct adjustmentState_s { #define MAX_ADJUSTMENT_RANGE_COUNT 15 +typedef struct adjustmentProfile_s { + adjustmentRange_t adjustmentRanges[MAX_ADJUSTMENT_RANGE_COUNT]; +} adjustmentProfile_t; + bool isAirmodeActive(void); void resetAdjustmentStates(void); void updateAdjustmentStates(adjustmentRange_t *adjustmentRanges); diff --git a/src/main/io/serial_cli.c b/src/main/io/serial_cli.c index 5783a3a170..1450401be8 100755 --- a/src/main/io/serial_cli.c +++ b/src/main/io/serial_cli.c @@ -1485,8 +1485,8 @@ static void printAdjustmentRange(uint8_t dumpMask, master_t *defaultConfig) adjustmentRange_t *arDefault; bool equalsDefault; for (uint32_t i = 0; i < MAX_ADJUSTMENT_RANGE_COUNT; i++) { - ar = &masterConfig.adjustmentRanges[i]; - arDefault = &defaultConfig->adjustmentRanges[i]; + ar = &adjustmentProfile()->adjustmentRanges[i]; + arDefault = &defaultConfig->adjustmentProfile.adjustmentRanges[i]; equalsDefault = ar->auxChannelIndex == arDefault->auxChannelIndex && ar->range.startStep == arDefault->range.startStep && ar->range.endStep == arDefault->range.endStep @@ -1526,7 +1526,7 @@ static void cliAdjustmentRange(char *cmdline) ptr = cmdline; i = atoi(ptr++); if (i < MAX_ADJUSTMENT_RANGE_COUNT) { - adjustmentRange_t *ar = &masterConfig.adjustmentRanges[i]; + adjustmentRange_t *ar = &adjustmentProfile()->adjustmentRanges[i]; uint8_t validArgumentCount = 0; ptr = nextArg(ptr); diff --git a/src/main/target/COLIBRI_RACE/i2c_bst.c b/src/main/target/COLIBRI_RACE/i2c_bst.c index bb9f92918f..cf0a5a08bb 100644 --- a/src/main/target/COLIBRI_RACE/i2c_bst.c +++ b/src/main/target/COLIBRI_RACE/i2c_bst.c @@ -730,7 +730,7 @@ static bool bstSlaveProcessFeedbackCommand(uint8_t bstRequest) break; case BST_ADJUSTMENT_RANGES: for (i = 0; i < MAX_ADJUSTMENT_RANGE_COUNT; i++) { - adjustmentRange_t *adjRange = &masterConfig.adjustmentRanges[i]; + adjustmentRange_t *adjRange = &adjustmentProfile()->adjustmentRanges[i]; bstWrite8(adjRange->adjustmentIndex); bstWrite8(adjRange->auxChannelIndex); bstWrite8(adjRange->range.startStep); @@ -1076,7 +1076,7 @@ static bool bstSlaveProcessWriteCommand(uint8_t bstWriteCommand) case BST_SET_ADJUSTMENT_RANGE: i = bstRead8(); if (i < MAX_ADJUSTMENT_RANGE_COUNT) { - adjustmentRange_t *adjRange = &masterConfig.adjustmentRanges[i]; + adjustmentRange_t *adjRange = &adjustmentProfile()->adjustmentRanges[i]; i = bstRead8(); if (i < MAX_SIMULTANEOUS_ADJUSTMENT_COUNT) { adjRange->adjustmentIndex = i;