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

Merge branch 'master' of https://github.com/iNavFlight/inav-configurator into mission-planer

Fix conflicts:
 _locales/en/messages.json
This commit is contained in:
afinogen 2018-01-29 13:55:20 +03:00
commit db31180753
17 changed files with 466 additions and 128 deletions

View file

@ -355,6 +355,20 @@ var mspHelper = (function (gui) {
}
break;
case MSPCodes.MSP_SERVO_MIX_RULES:
SERVO_RULES.flush();
if (data.byteLength % 7 === 0) {
for (i = 0; i < data.byteLength; i += 7) {
SERVO_RULES.put(new ServoMixRule(
data.getInt8(i + 0, true),
data.getInt8(i + 1, true),
data.getInt8(i + 2, true),
data.getInt8(i + 3, true)
));
}
}
SERVO_RULES.cleanup();
break;
case MSPCodes.MSP_SERVO_CONFIGURATIONS:
@ -1106,6 +1120,11 @@ var mspHelper = (function (gui) {
case MSPCodes.MSP_OSD_CHAR_WRITE:
console.log('OSD char uploaded');
break;
case MSPCodes.MSP_NAME:
break;
case MSPCodes.MSP_SET_NAME:
console.log("Craft name set");
break;
case MSPCodes.MSPV2_SETTING:
break;
case MSPCodes.MSPV2_SET_SETTING:
@ -1693,7 +1712,6 @@ var mspHelper = (function (gui) {
nextFunction();
}
function send_next_servo_configuration() {
var buffer = [];
@ -1736,24 +1754,41 @@ var mspHelper = (function (gui) {
}
MSP.send_message(MSPCodes.MSP_SET_SERVO_CONFIGURATION, buffer, false, nextFunction);
}
};
//FIXME looks like this is not used and not ever implemented
//noinspection JSUnusedLocalSymbols
function send_channel_forwarding() {
self.sendServoMixer = function (onCompleteCallback) {
var nextFunction = sendMixer,
servoIndex = 0;
if (SERVO_RULES.length == 0) {
onCompleteCallback();
} else {
nextFunction();
}
function sendMixer() {
var buffer = [];
for (var i = 0; i < SERVO_CONFIG.length; i++) {
var out = SERVO_CONFIG[i].indexOfChannelToForward;
if (out == undefined) {
out = 255; // Cleanflight defines "CHANNEL_FORWARDING_DISABLED" as "(uint8_t)0xFF"
}
buffer.push(out);
// send one at a time, with index
var servoRule = SERVO_RULES.get()[servoIndex];
buffer.push(servoIndex);
buffer.push(servoRule.getTarget());
buffer.push(servoRule.getInput());
buffer.push(servoRule.getRate());
buffer.push(servoRule.getSpeed());
buffer.push(0);
buffer.push(0);
buffer.push(0);
// prepare for next iteration
servoIndex++;
if (servoIndex == 16) { //This is the last rule. Not pretty, but we have to send all rules
nextFunction = onCompleteCallback;
}
nextFunction = onCompleteCallback;
MSP.send_message(MSPCodes.MSP_SET_CHANNEL_FORWARDING, buffer, false, nextFunction);
MSP.send_message(MSPCodes.MSP_SET_SERVO_MIX_RULE, buffer, false, nextFunction);
}
};
@ -2548,5 +2583,46 @@ var mspHelper = (function (gui) {
}
};
self.loadServoConfiguration = function (callback) {
MSP.send_message(MSPCodes.MSP_SERVO_CONFIGURATIONS, false, false, callback);
};
self.loadServoMixRules = function (callback) {
MSP.send_message(MSPCodes.MSP_SERVO_MIX_RULES, false, false, callback);
}
self.getCraftName = function(callback) {
if (semver.gt(CONFIG.flightControllerVersion, "1.8.0")) {
MSP.send_message(MSPCodes.MSP_NAME, false, false, function(resp) {
var name = "";
for (var ii = 0; ii < resp.data.byteLength; ii++) {
var c = resp.data.readU8();
if (c != 0) {
name += String.fromCharCode(c);
}
}
if (callback) {
callback(name);
}
});
} else if (callback) {
callback(null);
}
};
self.setCraftName = function(name, callback) {
if (semver.gt(CONFIG.flightControllerVersion, "1.8.0")) {
var data = [];
name = name || "";
for (var ii = 0; ii < name.length; ii++) {
data.push(name.charCodeAt(ii));
}
MSP.send_message(MSPCodes.MSP_SET_NAME, data, false, callback);
} else if (callback) {
callback();
}
};
return self;
})(GUI);