From 7fe0c8f89246a1315d1d49e6054d17bd19ddc260 Mon Sep 17 00:00:00 2001 From: mikeller Date: Sun, 15 Jul 2018 16:31:36 +1200 Subject: [PATCH 1/2] Added RC smoothing parameters to MSP. --- src/main/interface/msp.c | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/src/main/interface/msp.c b/src/main/interface/msp.c index 52f903fd6..6e2003d18 100644 --- a/src/main/interface/msp.c +++ b/src/main/interface/msp.c @@ -1086,8 +1086,21 @@ static bool mspProcessOutCommand(uint8_t cmdMSP, sbuf_t *dst) sbufWriteU8(dst, 0); #endif sbufWriteU8(dst, rxConfig()->fpvCamAngleDegrees); - break; +#if defined(USE_RC_SMOOTHING_FILTER) + sbufWriteU8(dst, rxConfig()->rc_smoothing_type); + sbufWriteU8(dst, rxConfig()->rc_smoothing_input_cutoff); + sbufWriteU8(dst, rxConfig()->rc_smoothing_derivative_cutoff); + sbufWriteU8(dst, rxConfig()->rc_smoothing_input_type); + sbufWriteU8(dst, rxConfig()->rc_smoothing_derivative_type); +#else + sbufWriteU8(dst, 0); + sbufWriteU8(dst, 0); + sbufWriteU8(dst, 0); + sbufWriteU8(dst, 0); + sbufWriteU8(dst, 0); +#endif + break; case MSP_FAILSAFE_CONFIG: sbufWriteU8(dst, failsafeConfig()->failsafe_delay); sbufWriteU8(dst, failsafeConfig()->failsafe_off_delay); @@ -1952,8 +1965,24 @@ static mspResult_e mspProcessInCommand(uint8_t cmdMSP, sbuf_t *src) if (sbufBytesRemaining(src) >= 1) { rxConfigMutable()->fpvCamAngleDegrees = sbufReadU8(src); } - break; + if (sbufBytesRemaining(src) >= 5) { + // Added in MSP API 1.40 +#if defined(USE_RC_SMOOTHING_FILTER) + rxConfigMutable()->rc_smoothing_type = sbufReadU8(src); + rxConfigMutable()->rc_smoothing_input_cutoff = sbufReadU8(src); + rxConfigMutable()->rc_smoothing_derivative_cutoff = sbufReadU8(src); + rxConfigMutable()->rc_smoothing_input_type = sbufReadU8(src); + rxConfigMutable()->rc_smoothing_derivative_type = sbufReadU8(src); +#else + sbufReadU8(src); + sbufReadU8(src); + sbufReadU8(src); + sbufReadU8(src); + sbufReadU8(src); +#endif + } + break; case MSP_SET_FAILSAFE_CONFIG: failsafeConfigMutable()->failsafe_delay = sbufReadU8(src); failsafeConfigMutable()->failsafe_off_delay = sbufReadU8(src); From 334117a4f02318d9e977ab041cc6025c615b7f56 Mon Sep 17 00:00:00 2001 From: mikeller Date: Tue, 17 Jul 2018 00:22:34 +1200 Subject: [PATCH 2/2] Changes from review. --- src/main/interface/msp.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/interface/msp.c b/src/main/interface/msp.c index 6e2003d18..49dab17c8 100644 --- a/src/main/interface/msp.c +++ b/src/main/interface/msp.c @@ -1086,6 +1086,7 @@ static bool mspProcessOutCommand(uint8_t cmdMSP, sbuf_t *dst) sbufWriteU8(dst, 0); #endif sbufWriteU8(dst, rxConfig()->fpvCamAngleDegrees); + sbufWriteU8(dst, rxConfig()->rcInterpolationChannels); #if defined(USE_RC_SMOOTHING_FILTER) sbufWriteU8(dst, rxConfig()->rc_smoothing_type); sbufWriteU8(dst, rxConfig()->rc_smoothing_input_cutoff); @@ -1965,8 +1966,9 @@ static mspResult_e mspProcessInCommand(uint8_t cmdMSP, sbuf_t *src) if (sbufBytesRemaining(src) >= 1) { rxConfigMutable()->fpvCamAngleDegrees = sbufReadU8(src); } - if (sbufBytesRemaining(src) >= 5) { + if (sbufBytesRemaining(src) >= 6) { // Added in MSP API 1.40 + rxConfigMutable()->rcInterpolationChannels = sbufReadU8(src); #if defined(USE_RC_SMOOTHING_FILTER) rxConfigMutable()->rc_smoothing_type = sbufReadU8(src); rxConfigMutable()->rc_smoothing_input_cutoff = sbufReadU8(src);