1
0
Fork 0
mirror of https://github.com/betaflight/betaflight-configurator.git synced 2025-07-16 21:05:30 +03:00

[MSP] Use MSP2_COMMON[_SET]_SERIAL_CONFIG for configuring ports

Configurator side of https://github.com/betaflight/betaflight/pull/9332
This commit is contained in:
Alberto García Hierro 2020-01-03 15:40:43 +00:00
parent 9278e8ed77
commit 2defc901a9
8 changed files with 306 additions and 111 deletions

View file

@ -836,8 +836,8 @@ MspHelper.prototype.process_data = function(dataHandler) {
} else {
SERIAL_CONFIG.ports = [];
var bytesPerPort = 1 + 2 + (1 * 4);
var serialPortCount = data.byteLength / bytesPerPort;
var serialPortCount = data.byteLength / bytesPerPort;
for (var i = 0; i < serialPortCount; i++) {
var serialPort = {
identifier: data.readU8(),
@ -853,10 +853,34 @@ MspHelper.prototype.process_data = function(dataHandler) {
}
break;
case MSPCodes.MSP2_COMMON_SERIAL_CONFIG:
const count = data.readU8();
const portConfigSize = data.remaining() / count;
for (let ii = 0; ii < count; ii++) {
const start = data.remaining();
const serialPort = {
identifier: data.readU8(),
functions: self.serialPortFunctionMaskToFunctions(data.readU32()),
msp_baudrate: self.BAUD_RATES[data.readU8()],
gps_baudrate: self.BAUD_RATES[data.readU8()],
telemetry_baudrate: self.BAUD_RATES[data.readU8()],
blackbox_baudrate: self.BAUD_RATES[data.readU8()],
};
SERIAL_CONFIG.ports.push(serialPort);
while(start - data.remaining() < portConfigSize && data.remaining() > 0) {
data.readU8();
}
}
break;
case MSPCodes.MSP_SET_CF_SERIAL_CONFIG:
console.log('Serial config saved');
break;
case MSPCodes.MSP2_COMMON_SET_SERIAL_CONFIG:
console.log('Serial config saved (MSPv2)');
break;
case MSPCodes.MSP_MODE_RANGES:
MODE_RANGES = []; // empty the array as new data is coming in
@ -1853,6 +1877,7 @@ MspHelper.prototype.crunch = function(code) {
var functionMask = self.serialPortFunctionsToMask(serialPort.functions);
buffer.push16(functionMask)
.push8(self.BAUD_RATES.indexOf(serialPort.msp_baudrate))
.push8(self.BAUD_RATES.indexOf(serialPort.msp_baudrate))
.push8(self.BAUD_RATES.indexOf(serialPort.gps_baudrate))
.push8(self.BAUD_RATES.indexOf(serialPort.telemetry_baudrate))
@ -1861,6 +1886,24 @@ MspHelper.prototype.crunch = function(code) {
}
break;
case MSPCodes.MSP2_COMMON_SET_SERIAL_CONFIG:
buffer.push8(SERIAL_CONFIG.ports.length);
for (let i = 0; i < SERIAL_CONFIG.ports.length; i++) {
const serialPort = SERIAL_CONFIG.ports[i];
buffer.push8(serialPort.identifier);
const functionMask = self.serialPortFunctionsToMask(serialPort.functions);
buffer.push32(functionMask)
.push8(self.BAUD_RATES.indexOf(serialPort.msp_baudrate))
.push8(self.BAUD_RATES.indexOf(serialPort.msp_baudrate))
.push8(self.BAUD_RATES.indexOf(serialPort.gps_baudrate))
.push8(self.BAUD_RATES.indexOf(serialPort.telemetry_baudrate))
.push8(self.BAUD_RATES.indexOf(serialPort.blackbox_baudrate));
}
break;
case MSPCodes.MSP_SET_MOTOR_3D_CONFIG:
buffer.push16(MOTOR_3D_CONFIG.deadband3d_low)
.push16(MOTOR_3D_CONFIG.deadband3d_high)
@ -2690,6 +2733,16 @@ MspHelper.prototype.setArmingEnabled = function(doEnable, disableRunawayTakeoffP
}
}
MspHelper.prototype.loadSerialConfig = function(callback) {
const mspCode = semver.gte(CONFIG.apiVersion, "1.43.0") ? MSPCodes.MSP2_COMMON_SERIAL_CONFIG : MSPCodes.MSP_CF_SERIAL_CONFIG;
MSP.send_message(mspCode, false, false, callback);
};
MspHelper.prototype.sendSerialConfig = function(callback) {
const mspCode = semver.gte(CONFIG.apiVersion, "1.43.0") ? MSPCodes.MSP2_COMMON_SET_SERIAL_CONFIG : MSPCodes.MSP_SET_CF_SERIAL_CONFIG;
MSP.send_message(mspCode, mspHelper.crunch(mspCode), false, callback);
};
MSP.SDCARD_STATE_NOT_PRESENT = 0; //TODO, move these to better place
MSP.SDCARD_STATE_FATAL = 1;
MSP.SDCARD_STATE_CARD_INIT = 2;