1
0
Fork 0
mirror of https://github.com/iNavFlight/inav-configurator.git synced 2025-07-15 04:15:28 +03:00

MSP_FW_CONFIG frame support

This commit is contained in:
Pawel Spychalski (DzikuVx) 2017-05-26 14:22:49 +02:00
parent a86c3138d5
commit 0777ef391c
8 changed files with 234 additions and 5 deletions

View file

@ -7426,6 +7426,8 @@ var MSPCodes = {
MSP_RTH_AND_LAND_CONFIG: 21,
MSP_SET_RTH_AND_LAND_CONFIG: 22,
MSP_FW_CONFIG: 23,
MSP_SET_FW_CONFIG: 24,
// MSP commands for Cleanflight original features
MSP_CHANNEL_FORWARDING: 32,
@ -8509,6 +8511,21 @@ var mspHelper = (function (gui) {
console.log('RTH_AND_LAND_CONFIG saved');
break;
case MSPCodes.MSP_FW_CONFIG:
FW_CONFIG.cruiseThrottle = data.getUint16(0, true);
FW_CONFIG.minThrottle = data.getUint16(2, true);
FW_CONFIG.maxThrottle = data.getUint16(4, true);
FW_CONFIG.maxBankAngle = data.getUint8(6);
FW_CONFIG.maxClimbAngle = data.getUint8(7);
FW_CONFIG.maxDiveAngle = data.getUint8(8);
FW_CONFIG.pitchToThrottle = data.getUint8(9);
FW_CONFIG.loiterRadius = data.getUint16(10, true);
break;
case MSPCodes.MSP_SET_FW_CONFIG:
console.log('FW_CONFIG saved');
break;
case MSPCodes.MSP_SET_MODE_RANGE:
console.log('Mode range saved');
break;
@ -8890,6 +8907,27 @@ var mspHelper = (function (gui) {
buffer.push(highByte(RTH_AND_LAND_CONFIG.emergencyDescentRate));
break;
case MSPCodes.MSP_SET_FW_CONFIG:
buffer.push(lowByte(FW_CONFIG.cruiseThrottle));
buffer.push(highByte(FW_CONFIG.cruiseThrottle));
buffer.push(lowByte(FW_CONFIG.minThrottle));
buffer.push(highByte(FW_CONFIG.minThrottle));
buffer.push(lowByte(FW_CONFIG.maxThrottle));
buffer.push(highByte(FW_CONFIG.maxThrottle));
buffer.push(FW_CONFIG.maxBankAngle);
buffer.push(FW_CONFIG.maxClimbAngle);
buffer.push(FW_CONFIG.maxDiveAngle);
buffer.push(FW_CONFIG.pitchToThrottle);
buffer.push(lowByte(FW_CONFIG.loiterRadius));
buffer.push(highByte(FW_CONFIG.loiterRadius));
break;
case MSPCodes.MSP_SET_FILTER_CONFIG:
buffer.push(FILTER_CONFIG.gyroSoftLpfHz);
@ -9656,6 +9694,22 @@ var mspHelper = (function (gui) {
}
};
self.loadFwConfig = function (callback) {
if (semver.gte(CONFIG.flightControllerVersion, "1.7.1")) {
MSP.send_message(MSPCodes.MSP_FW_CONFIG, false, false, callback);
} else {
callback();
}
};
self.saveFwConfig = function (callback) {
if (semver.gte(CONFIG.flightControllerVersion, "1.7.1")) {
MSP.send_message(MSPCodes.MSP_SET_FW_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_FW_CONFIG), false, callback);
} else {
callback();
}
};
return self;
})(GUI);
@ -10928,7 +10982,8 @@ var CONFIG,
SENSOR_CONFIG,
NAV_POSHOLD,
POSITION_ESTIMATOR,
RTH_AND_LAND_CONFIG;
RTH_AND_LAND_CONFIG,
FW_CONFIG;
var FC = {
isRatesInDps: function () {
@ -11257,6 +11312,17 @@ var FC = {
failsafe_procedure: 0
};
FW_CONFIG = {
cruiseThrottle: null,
minThrottle: null,
maxThrottle: null,
maxBankAngle: null,
maxClimbAngle: null,
maxDiveAngle: null,
pitchToThrottle: null,
loiterRadius: null
};
RXFAIL_CONFIG = [];
},
getFeatures: function () {
@ -14368,7 +14434,8 @@ TABS.advanced_tuning.initialize = function (callback) {
loadChainer.setChain([
mspHelper.loadNavPosholdConfig,
mspHelper.loadPositionEstimationConfig,
mspHelper.loadRthAndLandConfig
mspHelper.loadRthAndLandConfig,
mspHelper.loadFwConfig
]);
loadChainer.setExitPoint(loadHtml);
loadChainer.execute();
@ -14377,6 +14444,7 @@ TABS.advanced_tuning.initialize = function (callback) {
mspHelper.saveNavPosholdConfig,
mspHelper.savePositionEstimationConfig,
mspHelper.saveRthAndLandConfig,
mspHelper.saveFwConfig,
mspHelper.saveToEeprom
]);
saveChainer.setExitPoint(reboot);