1
0
Fork 0
mirror of https://github.com/iNavFlight/inav-configurator.git synced 2025-07-16 12:55:13 +03:00

MSP layer

This commit is contained in:
Pawel Spychalski (DzikuVx) 2018-10-06 19:43:14 +02:00
parent 0173efd8ba
commit 4f86dfa946
5 changed files with 1435 additions and 1365 deletions

View file

@ -55,7 +55,8 @@ var CONFIG,
MIXER_CONFIG, MIXER_CONFIG,
BATTERY_CONFIG, BATTERY_CONFIG,
OUTPUT_MAPPING, OUTPUT_MAPPING,
SETTINGS; SETTINGS,
BRAKING_CONFIG;
var FC = { var FC = {
MAX_SERVO_RATE: 125, MAX_SERVO_RATE: 125,
@ -506,6 +507,17 @@ var FC = {
loiterRadius: null loiterRadius: null
}; };
BRAKING_CONFIG = {
speedThreshold: null,
disengageSpeed: null,
timeout: null,
boostFactor: null,
boostTimeout: null,
boostSpeedThreshold: null,
boostDisengageSpeed: null,
bankAngle: null
}
RXFAIL_CONFIG = []; RXFAIL_CONFIG = [];
OUTPUT_MAPPING = new OutputMappingCollection(); OUTPUT_MAPPING = new OutputMappingCollection();

View file

@ -186,5 +186,8 @@ var MSPCodes = {
MSP2_INAV_OSD_PREFERENCES: 0x2016, MSP2_INAV_OSD_PREFERENCES: 0x2016,
MSP2_INAV_OSD_SET_PREFERENCES: 0x2017, MSP2_INAV_OSD_SET_PREFERENCES: 0x2017,
MSP2_INAV_MC_BRAKING: 0x200B,
MSP2_INAV_SET_MC_BRAKING: 0x200C,
MSP2_INAV_SELECT_BATTERY_PROFILE: 0x2018 MSP2_INAV_SELECT_BATTERY_PROFILE: 0x2018
}; };

View file

@ -1401,6 +1401,22 @@ var mspHelper = (function (gui) {
for (i = 0; i < data.byteLength; ++i) for (i = 0; i < data.byteLength; ++i)
OUTPUT_MAPPING.put(data.getUint8(i)); OUTPUT_MAPPING.put(data.getUint8(i));
break; break;
case MSPCodes.MSP2_INAV_MC_BRAKING:
BRAKING_CONFIG.speedThreshold = data.getUint16(0, true);
BRAKING_CONFIG.disengageSpeed = data.getUint16(2, true);
BRAKING_CONFIG.timeout = data.getUint16(4, true);
BRAKING_CONFIG.boostFactor = data.getInt8(6);
BRAKING_CONFIG.boostTimeout = data.getUint16(7, true);
BRAKING_CONFIG.boostSpeedThreshold = data.getUint16(9, true);
BRAKING_CONFIG.boostDisengageSpeed = data.getUint16(11, true);
BRAKING_CONFIG.bankAngle = data.getInt8(13);
break;
case MSPCodes.MSP2_INAV_SET_MC_BRAKING:
console.log('Braking config saved');
break;
default: default:
console.log('Unknown code detected: ' + dataHandler.code); console.log('Unknown code detected: ' + dataHandler.code);
} else { } else {
@ -2038,6 +2054,26 @@ var mspHelper = (function (gui) {
buffer.push(highByte(MIXER_CONFIG.appliedMixerPreset)); buffer.push(highByte(MIXER_CONFIG.appliedMixerPreset));
break; break;
case MSPCodes.MSP2_INAV_SET_MC_BRAKING:
buffer.push(lowByte(BRAKING_CONFIG.speedThreshold));
buffer.push(highByte(BRAKING_CONFIG.speedThreshold));
buffer.push(lowByte(BRAKING_CONFIG.disengageSpeed));
buffer.push(highByte(BRAKING_CONFIG.disengageSpeed));
buffer.push(lowByte(BRAKING_CONFIG.timeout));
buffer.push(highByte(BRAKING_CONFIG.timeout));
buffer.push(BRAKING_CONFIG.boostFactor);
buffer.push(lowByte(BRAKING_CONFIG.boostTimeout));
buffer.push(highByte(BRAKING_CONFIG.boostTimeout));
buffer.push(lowByte(BRAKING_CONFIG.boostSpeedThreshold));
buffer.push(highByte(BRAKING_CONFIG.boostSpeedThreshold));
buffer.push(lowByte(BRAKING_CONFIG.boostDisengageSpeed));
buffer.push(highByte(BRAKING_CONFIG.boostDisengageSpeed));
buffer.push(BRAKING_CONFIG.bankAngle);
break;
default: default:
return false; return false;
} }
@ -3146,6 +3182,22 @@ var mspHelper = (function (gui) {
} }
}; };
self.loadBrakingConfig = function(callback) {
if (semver.gte(CONFIG.flightControllerVersion, "2.1.0")) {
MSP.send_message(MSPCodes.MSP2_INAV_MC_BRAKING, false, false, callback);
} else {
callback();
}
}
self.saveBrakingConfig = function(callback) {
if (semver.gte(CONFIG.flightControllerVersion, "2.1.0")) {
MSP.send_message(MSPCodes.MSP2_INAV_SET_MC_BRAKING, mspHelper.crunch(MSPCodes.MSP2_INAV_SET_MC_BRAKING), false, callback);
} else {
callback();
}
};
self.loadParameterGroups = function(callback) { self.loadParameterGroups = function(callback) {
if (semver.gte(CONFIG.flightControllerVersion, "2.0.0")) { if (semver.gte(CONFIG.flightControllerVersion, "2.0.0")) {
MSP.send_message(MSPCodes.MSP2_COMMON_PG_LIST, false, false, function (resp) { MSP.send_message(MSPCodes.MSP2_COMMON_PG_LIST, false, false, function (resp) {

2727
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -16,7 +16,8 @@ TABS.advanced_tuning.initialize = function (callback) {
mspHelper.loadNavPosholdConfig, mspHelper.loadNavPosholdConfig,
mspHelper.loadPositionEstimationConfig, mspHelper.loadPositionEstimationConfig,
mspHelper.loadRthAndLandConfig, mspHelper.loadRthAndLandConfig,
mspHelper.loadFwConfig mspHelper.loadFwConfig,
mspHelper.loadBrakingConfig
]); ]);
loadChainer.setExitPoint(loadHtml); loadChainer.setExitPoint(loadHtml);
loadChainer.execute(); loadChainer.execute();
@ -26,6 +27,7 @@ TABS.advanced_tuning.initialize = function (callback) {
mspHelper.savePositionEstimationConfig, mspHelper.savePositionEstimationConfig,
mspHelper.saveRthAndLandConfig, mspHelper.saveRthAndLandConfig,
mspHelper.saveFwConfig, mspHelper.saveFwConfig,
mspHelper.saveBrakingConfig,
mspHelper.saveToEeprom mspHelper.saveToEeprom
]); ]);
saveChainer.setExitPoint(reboot); saveChainer.setExitPoint(reboot);