mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-14 11:59:58 +03:00
Removed issue with sparse 'defaultAdjustmentConfigs' in adjustment ranges.
This commit is contained in:
parent
b58e8f827f
commit
bc09e929b5
4 changed files with 10 additions and 10 deletions
|
@ -697,7 +697,7 @@ static void updateAdjustmentStates(void)
|
|||
// Only use slots if center value has not been specified, otherwise apply values directly (scaled) from aux channel
|
||||
if (isRangeActive(adjustmentRange->auxChannelIndex, &adjustmentRange->range) &&
|
||||
(adjustmentRange->adjustmentCenter == 0)) {
|
||||
const adjustmentConfig_t *adjustmentConfig = &defaultAdjustmentConfigs[adjustmentRange->adjustmentFunction - ADJUSTMENT_FUNCTION_CONFIG_INDEX_OFFSET];
|
||||
const adjustmentConfig_t *adjustmentConfig = &defaultAdjustmentConfigs[adjustmentRange->adjustmentConfig - ADJUSTMENT_FUNCTION_CONFIG_INDEX_OFFSET];
|
||||
configureAdjustment(adjustmentRange->adjustmentIndex, adjustmentRange->auxSwitchChannelIndex, adjustmentConfig);
|
||||
}
|
||||
}
|
||||
|
@ -792,7 +792,7 @@ void processRcAdjustments(controlRateConfig_t *controlRateConfig)
|
|||
int index = activeAbsoluteAdjustmentArray[i];
|
||||
const adjustmentRange_t * const adjustmentRange = adjustmentRanges(index);
|
||||
const uint8_t channelIndex = NON_AUX_CHANNEL_COUNT + adjustmentRange->auxSwitchChannelIndex;
|
||||
const adjustmentConfig_t *adjustmentConfig = &defaultAdjustmentConfigs[adjustmentRange->adjustmentFunction - ADJUSTMENT_FUNCTION_CONFIG_INDEX_OFFSET];
|
||||
const adjustmentConfig_t *adjustmentConfig = &defaultAdjustmentConfigs[adjustmentRange->adjustmentConfig - ADJUSTMENT_FUNCTION_CONFIG_INDEX_OFFSET];
|
||||
|
||||
// If setting is defined for step adjustment and center value has been specified, apply values directly (scaled) from aux channel
|
||||
if ((rcData[channelIndex] != lastRcData[index]) &&
|
||||
|
@ -802,7 +802,7 @@ void processRcAdjustments(controlRateConfig_t *controlRateConfig)
|
|||
int value = (((rcData[channelIndex] - PWM_RANGE_MIDDLE) * adjustmentRange->adjustmentScale) / (PWM_RANGE_MIDDLE - PWM_RANGE_MIN)) + adjustmentRange->adjustmentCenter;
|
||||
|
||||
lastRcData[index] = rcData[channelIndex];
|
||||
applyAbsoluteAdjustment(controlRateConfig, adjustmentRange->adjustmentFunction, value);
|
||||
applyAbsoluteAdjustment(controlRateConfig, adjustmentConfig->adjustmentFunction, value);
|
||||
pidInitConfig(pidProfile);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -85,7 +85,7 @@ typedef struct adjustmentRange_s {
|
|||
channelRange_t range;
|
||||
|
||||
// ..then apply the adjustment function to the auxSwitchChannel ...
|
||||
uint8_t adjustmentFunction;
|
||||
uint8_t adjustmentConfig;
|
||||
uint8_t auxSwitchChannelIndex;
|
||||
|
||||
// ... via slot
|
||||
|
|
|
@ -1257,7 +1257,7 @@ static void printAdjustmentRange(uint8_t dumpMask, const adjustmentRange_t *adju
|
|||
arDefault->auxChannelIndex,
|
||||
MODE_STEP_TO_CHANNEL_VALUE(arDefault->range.startStep),
|
||||
MODE_STEP_TO_CHANNEL_VALUE(arDefault->range.endStep),
|
||||
arDefault->adjustmentFunction,
|
||||
arDefault->adjustmentConfig,
|
||||
arDefault->auxSwitchChannelIndex,
|
||||
arDefault->adjustmentCenter,
|
||||
arDefault->adjustmentScale
|
||||
|
@ -1269,7 +1269,7 @@ static void printAdjustmentRange(uint8_t dumpMask, const adjustmentRange_t *adju
|
|||
ar->auxChannelIndex,
|
||||
MODE_STEP_TO_CHANNEL_VALUE(ar->range.startStep),
|
||||
MODE_STEP_TO_CHANNEL_VALUE(ar->range.endStep),
|
||||
ar->adjustmentFunction,
|
||||
ar->adjustmentConfig,
|
||||
ar->auxSwitchChannelIndex,
|
||||
ar->adjustmentCenter,
|
||||
ar->adjustmentScale
|
||||
|
@ -1315,7 +1315,7 @@ static void cliAdjustmentRange(char *cmdline)
|
|||
if (ptr) {
|
||||
val = atoi(ptr);
|
||||
if (val >= 0 && val < ADJUSTMENT_FUNCTION_COUNT) {
|
||||
ar->adjustmentFunction = val;
|
||||
ar->adjustmentConfig = val;
|
||||
validArgumentCount++;
|
||||
}
|
||||
}
|
||||
|
@ -1359,7 +1359,7 @@ static void cliAdjustmentRange(char *cmdline)
|
|||
ar->auxChannelIndex,
|
||||
MODE_STEP_TO_CHANNEL_VALUE(ar->range.startStep),
|
||||
MODE_STEP_TO_CHANNEL_VALUE(ar->range.endStep),
|
||||
ar->adjustmentFunction,
|
||||
ar->adjustmentConfig,
|
||||
ar->auxSwitchChannelIndex,
|
||||
ar->adjustmentCenter,
|
||||
ar->adjustmentScale
|
||||
|
|
|
@ -974,7 +974,7 @@ static bool mspProcessOutCommand(uint8_t cmdMSP, sbuf_t *dst)
|
|||
sbufWriteU8(dst, adjRange->auxChannelIndex);
|
||||
sbufWriteU8(dst, adjRange->range.startStep);
|
||||
sbufWriteU8(dst, adjRange->range.endStep);
|
||||
sbufWriteU8(dst, adjRange->adjustmentFunction);
|
||||
sbufWriteU8(dst, adjRange->adjustmentConfig);
|
||||
sbufWriteU8(dst, adjRange->auxSwitchChannelIndex);
|
||||
}
|
||||
break;
|
||||
|
@ -1623,7 +1623,7 @@ static mspResult_e mspProcessInCommand(uint8_t cmdMSP, sbuf_t *src)
|
|||
adjRange->auxChannelIndex = sbufReadU8(src);
|
||||
adjRange->range.startStep = sbufReadU8(src);
|
||||
adjRange->range.endStep = sbufReadU8(src);
|
||||
adjRange->adjustmentFunction = sbufReadU8(src);
|
||||
adjRange->adjustmentConfig = sbufReadU8(src);
|
||||
adjRange->auxSwitchChannelIndex = sbufReadU8(src);
|
||||
} else {
|
||||
return MSP_RESULT_ERROR;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue