From 6dcefedde66a21f55907a98b38b858f51505dc3e Mon Sep 17 00:00:00 2001 From: borisbstyle Date: Thu, 28 Jul 2016 01:15:11 +0200 Subject: [PATCH] Add new MSP parameters --- src/main/io/msp_protocol.h | 6 ++++++ src/main/io/serial_msp.c | 28 ++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/src/main/io/msp_protocol.h b/src/main/io/msp_protocol.h index 66ab4b9c58..1244186ffe 100644 --- a/src/main/io/msp_protocol.h +++ b/src/main/io/msp_protocol.h @@ -213,6 +213,12 @@ #define MSP_SPECIAL_PARAMETERS 98 // Temporary betaflight parameters before cleanup and keep CF compatibility #define MSP_SET_SPECIAL_PARAMETERS 99 // Temporary betaflight parameters before cleanup and keep CF compatibility +#define MSP_PIDC_BETAFLIGHT 246 +#define MSP_SET_PIDC_BETAFLIGHT 247 + +#define MSP_RC_SMOOTHING 248 +#define MSP_SET_RC_SMOOTHING 249 + // // OSD specific // diff --git a/src/main/io/serial_msp.c b/src/main/io/serial_msp.c index df47e70359..3e897532e0 100644 --- a/src/main/io/serial_msp.c +++ b/src/main/io/serial_msp.c @@ -1250,6 +1250,21 @@ static bool processOutCommand(uint8_t cmdMSP) serialize8(masterConfig.rxConfig.rcSmoothInterval); serialize16(currentProfile->pidProfile.pidMaxVelocity); break; + case MSP_PIDC_BETAFLIGHT: + headSerialReply(9); + serialize8(currentProfile->pidProfile.ptermSetpointWeight); + serialize8(currentProfile->pidProfile.dtermSetpointWeight); + serialize8(currentProfile->pidProfile.toleranceBand); + serialize8(currentProfile->pidProfile.toleranceBandReduction); + serialize8(currentProfile->pidProfile.itermThrottleGain); + serialize16(currentProfile->pidProfile.pidMaxVelocity); + serialize16(currentProfile->pidProfile.pidMaxVelocityYaw); + break; + case MSP_RC_SMOOTHING: + headSerialReply(2); + serialize8(masterConfig.rxConfig.rcSmoothing); + serialize8(masterConfig.rxConfig.rcSmoothInterval); + break; case MSP_SENSOR_CONFIG: headSerialReply(3); serialize8(masterConfig.acc_hardware); @@ -1831,6 +1846,19 @@ static bool processInCommand(void) masterConfig.rxConfig.rcSmoothInterval = read8(); read16(); break; + case MSP_SET_PIDC_BETAFLIGHT: + currentProfile->pidProfile.ptermSetpointWeight = read8(); + currentProfile->pidProfile.dtermSetpointWeight = read8(); + currentProfile->pidProfile.toleranceBand = read8(); + currentProfile->pidProfile.toleranceBandReduction = read8(); + currentProfile->pidProfile.itermThrottleGain = read8(); + currentProfile->pidProfile.pidMaxVelocity = read16(); + currentProfile->pidProfile.pidMaxVelocityYaw = read16(); + break; + case MSP_SET_RC_SMOOTHING: + masterConfig.rxConfig.rcSmoothing = read8(); + masterConfig.rxConfig.rcSmoothInterval = read8(); + break; case MSP_SET_SENSOR_CONFIG: masterConfig.acc_hardware = read8(); masterConfig.baro_hardware = read8();