mirror of
https://github.com/betaflight/betaflight-configurator.git
synced 2025-07-16 04:45:20 +03:00
Simplified Tuning update
This commit is contained in:
parent
ae2ef20ce2
commit
92a0c915db
7 changed files with 653 additions and 701 deletions
|
@ -52,6 +52,82 @@ function MspHelper() {
|
|||
self.mspMultipleCache = [];
|
||||
}
|
||||
|
||||
|
||||
MspHelper.readPidSliderSettings = function(data) {
|
||||
FC.TUNING_SLIDERS.slider_pids_mode = data.readU8();
|
||||
FC.TUNING_SLIDERS.slider_master_multiplier = data.readU8();
|
||||
FC.TUNING_SLIDERS.slider_roll_pitch_ratio = data.readU8();
|
||||
FC.TUNING_SLIDERS.slider_i_gain = data.readU8();
|
||||
FC.TUNING_SLIDERS.slider_d_gain = data.readU8();
|
||||
FC.TUNING_SLIDERS.slider_pi_gain = data.readU8();
|
||||
FC.TUNING_SLIDERS.slider_dmax_gain = data.readU8();
|
||||
FC.TUNING_SLIDERS.slider_feedforward_gain = data.readU8();
|
||||
FC.TUNING_SLIDERS.slider_pitch_pi_gain = data.readU8();
|
||||
data.readU32(); // reserved for future use
|
||||
data.readU32(); // reserved for future use
|
||||
};
|
||||
|
||||
MspHelper.writePidSliderSettings = function(buffer) {
|
||||
buffer
|
||||
.push8(FC.TUNING_SLIDERS.slider_pids_mode)
|
||||
.push8(FC.TUNING_SLIDERS.slider_master_multiplier)
|
||||
.push8(FC.TUNING_SLIDERS.slider_roll_pitch_ratio)
|
||||
.push8(FC.TUNING_SLIDERS.slider_i_gain)
|
||||
.push8(FC.TUNING_SLIDERS.slider_d_gain)
|
||||
.push8(FC.TUNING_SLIDERS.slider_pi_gain)
|
||||
.push8(FC.TUNING_SLIDERS.slider_dmax_gain)
|
||||
.push8(FC.TUNING_SLIDERS.slider_feedforward_gain)
|
||||
.push8(FC.TUNING_SLIDERS.slider_pitch_pi_gain)
|
||||
.push32(0) // reserved for future use
|
||||
.push32(0); // reserved for future use
|
||||
};
|
||||
|
||||
MspHelper.readDtermFilterSliderSettings = function(data) {
|
||||
FC.TUNING_SLIDERS.slider_dterm_filter = data.readU8();
|
||||
FC.TUNING_SLIDERS.slider_dterm_filter_multiplier = data.readU8();
|
||||
FC.FILTER_CONFIG.dterm_lowpass_hz = data.readU16();
|
||||
FC.FILTER_CONFIG.dterm_lowpass2_hz = data.readU16();
|
||||
FC.FILTER_CONFIG.dterm_lowpass_dyn_min_hz = data.readU16();
|
||||
FC.FILTER_CONFIG.dterm_lowpass_dyn_max_hz = data.readU16();
|
||||
data.readU32(); // reserved for future use
|
||||
data.readU32(); // reserved for future use
|
||||
};
|
||||
|
||||
MspHelper.writeDtermFilterSliderSettings = function(buffer) {
|
||||
buffer
|
||||
.push8(FC.TUNING_SLIDERS.slider_dterm_filter)
|
||||
.push8(FC.TUNING_SLIDERS.slider_dterm_filter_multiplier)
|
||||
.push16(FC.FILTER_CONFIG.dterm_lowpass_hz)
|
||||
.push16(FC.FILTER_CONFIG.dterm_lowpass2_hz)
|
||||
.push16(FC.FILTER_CONFIG.dterm_lowpass_dyn_min_hz)
|
||||
.push16(FC.FILTER_CONFIG.dterm_lowpass_dyn_max_hz)
|
||||
.push32(0) // reserved for future use
|
||||
.push32(0); // reserved for future use
|
||||
};
|
||||
|
||||
MspHelper.readGyroFilterSliderSettings = function(data) {
|
||||
FC.TUNING_SLIDERS.slider_gyro_filter = data.readU8();
|
||||
FC.TUNING_SLIDERS.slider_gyro_filter_multiplier = data.readU8();
|
||||
FC.FILTER_CONFIG.gyro_lowpass_hz = data.readU16();
|
||||
FC.FILTER_CONFIG.gyro_lowpass2_hz = data.readU16();
|
||||
FC.FILTER_CONFIG.gyro_lowpass_dyn_min_hz = data.readU16();
|
||||
FC.FILTER_CONFIG.gyro_lowpass_dyn_max_hz = data.readU16();
|
||||
data.readU32(); // reserved for future use
|
||||
data.readU32(); // reserved for future use
|
||||
};
|
||||
|
||||
MspHelper.writeGyroFilterSliderSettings = function(buffer) {
|
||||
buffer
|
||||
.push8(FC.TUNING_SLIDERS.slider_gyro_filter)
|
||||
.push8(FC.TUNING_SLIDERS.slider_gyro_filter_multiplier)
|
||||
.push16(FC.FILTER_CONFIG.gyro_lowpass_hz)
|
||||
.push16(FC.FILTER_CONFIG.gyro_lowpass2_hz)
|
||||
.push16(FC.FILTER_CONFIG.gyro_lowpass_dyn_min_hz)
|
||||
.push16(FC.FILTER_CONFIG.gyro_lowpass_dyn_max_hz)
|
||||
.push32(0) // reserved for future use
|
||||
.push32(0); // reserved for future use
|
||||
};
|
||||
|
||||
MspHelper.prototype.process_data = function(dataHandler) {
|
||||
const self = this;
|
||||
const data = dataHandler.dataView; // DataView (allowing us to view arrayBuffer as struct/union)
|
||||
|
@ -1485,30 +1561,58 @@ MspHelper.prototype.process_data = function(dataHandler) {
|
|||
|
||||
break;
|
||||
|
||||
case MSPCodes.MSP_SET_TUNING_SLIDERS:
|
||||
// This is done in a loop whenever the sliders are moved. Avoid logging to optimise the performance.
|
||||
case MSPCodes.MSP_SET_SIMPLIFIED_TUNING:
|
||||
console.log('Tuning Sliders sent');
|
||||
break;
|
||||
|
||||
case MSPCodes.MSP_TUNING_SLIDERS:
|
||||
FC.TUNING_SLIDERS.slider_pids_mode = data.readU8();
|
||||
FC.TUNING_SLIDERS.slider_master_multiplier = data.readU8();
|
||||
FC.TUNING_SLIDERS.slider_roll_pitch_ratio = data.readU8();
|
||||
FC.TUNING_SLIDERS.slider_i_gain = data.readU8();
|
||||
FC.TUNING_SLIDERS.slider_d_gain = data.readU8();
|
||||
FC.TUNING_SLIDERS.slider_pi_gain = data.readU8();
|
||||
FC.TUNING_SLIDERS.slider_dmax_gain = data.readU8();
|
||||
FC.TUNING_SLIDERS.slider_feedforward_gain = data.readU8();
|
||||
FC.TUNING_SLIDERS.slider_pitch_pi_gain = data.readU8();
|
||||
FC.TUNING_SLIDERS.slider_dterm_filter = data.readU8();
|
||||
FC.TUNING_SLIDERS.slider_dterm_filter_multiplier = data.readU8();
|
||||
FC.TUNING_SLIDERS.slider_gyro_filter = data.readU8();
|
||||
FC.TUNING_SLIDERS.slider_gyro_filter_multiplier = data.readU8();
|
||||
break;
|
||||
case MSPCodes.MSP_SIMPLIFIED_TUNING:
|
||||
MspHelper.readPidSliderSettings(data);
|
||||
MspHelper.readDtermFilterSliderSettings(data);
|
||||
MspHelper.readGyroFilterSliderSettings(data);
|
||||
|
||||
break;
|
||||
case MSPCodes.MSP_CALCULATE_SIMPLIFIED_PID:
|
||||
|
||||
if (FC.TUNING_SLIDERS.slider_pids_mode > 0) {
|
||||
FC.PIDS[0][0] = data.readU8();
|
||||
FC.PIDS[0][1] = data.readU8();
|
||||
FC.PIDS[0][2] = data.readU8();
|
||||
FC.ADVANCED_TUNING.dMinRoll = data.readU8();
|
||||
FC.ADVANCED_TUNING.feedforwardRoll = data.readU16();
|
||||
|
||||
FC.PIDS[1][0] = data.readU8();
|
||||
FC.PIDS[1][1] = data.readU8();
|
||||
FC.PIDS[1][2] = data.readU8();
|
||||
FC.ADVANCED_TUNING.dMinPitch = data.readU8();
|
||||
FC.ADVANCED_TUNING.feedforwardPitch = data.readU16();
|
||||
}
|
||||
|
||||
if (FC.TUNING_SLIDERS.slider_pids_mode > 1) {
|
||||
FC.PIDS[2][0] = data.readU8();
|
||||
FC.PIDS[2][1] = data.readU8();
|
||||
FC.PIDS[2][2] = data.readU8();
|
||||
FC.ADVANCED_TUNING.dMinYaw = data.readU8();
|
||||
FC.ADVANCED_TUNING.feedforwardYaw = data.readU16();
|
||||
}
|
||||
|
||||
break;
|
||||
case MSPCodes.MSP_CALCULATE_SIMPLIFIED_GYRO:
|
||||
MspHelper.readGyroFilterSliderSettings(data);
|
||||
|
||||
break;
|
||||
case MSPCodes.MSP_CALCULATE_SIMPLIFIED_DTERM:
|
||||
MspHelper.readDtermFilterSliderSettings(data);
|
||||
|
||||
break;
|
||||
case MSPCodes.MSP_VALIDATE_SIMPLIFIED_TUNING:
|
||||
FC.TUNING_SLIDERS.slider_pids_valid = data.readU8();
|
||||
FC.TUNING_SLIDERS.slider_gyro_valid = data.readU8();
|
||||
FC.TUNING_SLIDERS.slider_dterm_valid = data.readU8();
|
||||
|
||||
break;
|
||||
case MSPCodes.MSP_SET_VTXTABLE_POWERLEVEL:
|
||||
console.log("VTX powerlevel sent");
|
||||
break;
|
||||
|
||||
case MSPCodes.MSP_SET_MODE_RANGE:
|
||||
console.log('Mode range saved');
|
||||
break;
|
||||
|
@ -2313,21 +2417,24 @@ MspHelper.prototype.crunch = function(code) {
|
|||
buffer.push8(1);
|
||||
break;
|
||||
|
||||
case MSPCodes.MSP_SET_TUNING_SLIDERS:
|
||||
buffer
|
||||
.push8(FC.TUNING_SLIDERS.slider_pids_mode)
|
||||
.push8(FC.TUNING_SLIDERS.slider_master_multiplier)
|
||||
.push8(FC.TUNING_SLIDERS.slider_roll_pitch_ratio)
|
||||
.push8(FC.TUNING_SLIDERS.slider_i_gain)
|
||||
.push8(FC.TUNING_SLIDERS.slider_d_gain)
|
||||
.push8(FC.TUNING_SLIDERS.slider_pi_gain)
|
||||
.push8(FC.TUNING_SLIDERS.slider_dmax_gain)
|
||||
.push8(FC.TUNING_SLIDERS.slider_feedforward_gain)
|
||||
.push8(FC.TUNING_SLIDERS.slider_pitch_pi_gain)
|
||||
.push8(FC.TUNING_SLIDERS.slider_dterm_filter)
|
||||
.push8(FC.TUNING_SLIDERS.slider_dterm_filter_multiplier)
|
||||
.push8(FC.TUNING_SLIDERS.slider_gyro_filter)
|
||||
.push8(FC.TUNING_SLIDERS.slider_gyro_filter_multiplier);
|
||||
case MSPCodes.MSP_SET_SIMPLIFIED_TUNING:
|
||||
MspHelper.writePidSliderSettings(buffer);
|
||||
MspHelper.writeDtermFilterSliderSettings(buffer);
|
||||
MspHelper.writeGyroFilterSliderSettings(buffer);
|
||||
|
||||
break;
|
||||
case MSPCodes.MSP_CALCULATE_SIMPLIFIED_PID:
|
||||
MspHelper.writePidSliderSettings(buffer);
|
||||
|
||||
break;
|
||||
|
||||
case MSPCodes.MSP_CALCULATE_SIMPLIFIED_GYRO:
|
||||
MspHelper.writeGyroFilterSliderSettings(buffer);
|
||||
|
||||
break;
|
||||
case MSPCodes.MSP_CALCULATE_SIMPLIFIED_DTERM:
|
||||
MspHelper.writeDtermFilterSliderSettings(buffer);
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue