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

Basic support for MSP2_INAV_MIXER frame

This commit is contained in:
Pawel Spychalski (DzikuVx) 2018-03-28 20:22:48 +02:00
parent c4735d2690
commit 7fbf63b7fc
5 changed files with 57 additions and 6 deletions

View file

@ -51,7 +51,8 @@ var CONFIG,
POSITION_ESTIMATOR,
RTH_AND_LAND_CONFIG,
FW_CONFIG,
DEBUG_TRACE;
DEBUG_TRACE,
MIXER_CONFIG;
var FC = {
MAX_SERVO_RATE: 125,
@ -162,6 +163,14 @@ var FC = {
SERVO_RULES = new ServoMixerRuleCollection();
MOTOR_RULES = new MotorMixerRuleCollection();
MIXER_CONFIG = {
yawMotorDirection: 0,
yawJumpPreventionLimit: 0,
platformType: -1,
hasFlaps: false,
appliedMixerPreset: -1
},
SERIAL_CONFIG = {
ports: [],
@ -793,7 +802,6 @@ var FC = {
'JJRC H8_3D',
'iNav Reference protocol',
'eLeReS'
];
},
getSensorAlignments: function () {

View file

@ -169,4 +169,7 @@ var MSPCodes = {
MSPV2_INAV_RATE_PROFILE: 0x2007,
MSPV2_INAV_SET_RATE_PROFILE: 0x2008,
MSPV2_INAV_AIR_SPEED: 0x2009,
MSP2_INAV_MIXER: 0x2010,
MSP2_INAV_SET_MIXER: 0x2011
};

View file

@ -1294,6 +1294,19 @@ var mspHelper = (function (gui) {
case MSPCodes.MSP_WP_MISSION_LOAD:
console.log('Mission load');
break;
case MSPCodes.MSP2_INAV_MIXER:
MIXER_CONFIG.yawMotorDirection = data.getInt8(0);
MIXER_CONFIG.yawJumpPreventionLimit = data.getUint16(1, true);
MIXER_CONFIG.platformType = data.getInt8(3);
MIXER_CONFIG.hasFlaps = data.getInt8(4)
MIXER_CONFIG.appliedMixerPreset = data.getInt16(5, true);
break;
case MSPCodes.MSP2_INAV_SET_MIXER:
console.log('Mixer config saved');
break;
default:
console.log('Unknown code detected: ' + dataHandler.code);
} else {
@ -1888,6 +1901,17 @@ var mspHelper = (function (gui) {
console.log(buffer);
break;
case MSPCodes.MSP2_INAV_SET_MIXER:
buffer.push(MIXER_CONFIG.yawMotorDirection);
buffer.push(lowByte(MIXER_CONFIG.yawJumpPreventionLimit));
buffer.push(highByte(MIXER_CONFIG.yawJumpPreventionLimit));
buffer.push(MIXER_CONFIG.platformType);
buffer.push(MIXER_CONFIG.hasFlaps);
buffer.push(lowByte(MIXER_CONFIG.appliedMixerPreset));
buffer.push(highByte(MIXER_CONFIG.appliedMixerPreset));
break;
default:
return false;
}
@ -2893,7 +2917,7 @@ var mspHelper = (function (gui) {
if (semver.gte(CONFIG.flightControllerVersion, "1.8.1")) {
MSP.send_message(MSPCodes.MSP2_COMMON_MOTOR_MIXER, false, false, callback);
} else {
onCompleteCallback();
callback();
}
};
@ -2933,6 +2957,21 @@ var mspHelper = (function (gui) {
}
};
self.loadMixerConfig = function (callback) {
if (semver.gte(CONFIG.flightControllerVersion, "1.9.1")) {
MSP.send_message(MSPCodes.MSP2_INAV_MIXER, false, false, callback);
} else {
callback();
}
};
self.saveMixerConfig = function (callback) {
if (semver.gte(CONFIG.flightControllerVersion, "1.9.1")) {
MSP.send_message(MSPCodes.MSP2_INAV_SET_MIXER, mspHelper.crunch(MSPCodes.MSP2_INAV_SET_MIXER), false, callback);
} else {
callback();
}
};
return self;
})(GUI);

View file

@ -188,9 +188,9 @@ TABS.motors.initialize = function (callback) {
$motorsEnableTestMode.prop('checked', false);
$motorsEnableTestMode.prop('disabled', true);
update_model(BF_CONFIG.mixerConfiguration);
// Always start with default/empty sensor data array, clean slate all
initSensorData();

View file

@ -17,7 +17,8 @@ TABS.setup.initialize = function (callback) {
var loadChain = [
mspHelper.loadBfConfig,
mspHelper.queryFcStatus
mspHelper.queryFcStatus,
mspHelper.loadMixerConfig
];
if (semver.gte(CONFIG.flightControllerVersion, '1.8.1')) {