mirror of
https://github.com/iNavFlight/inav-configurator.git
synced 2025-07-14 20:10:11 +03:00
ground work for mmix editing
This commit is contained in:
parent
385827a66f
commit
bb8507e81b
6 changed files with 112 additions and 4 deletions
|
@ -91,7 +91,9 @@ sources.js = [
|
|||
'./js/boards.js',
|
||||
'./js/tasks.js',
|
||||
'./js/servoMixRule.js',
|
||||
'./js/servoMixRuleCollection.js',
|
||||
'./js/motorMixRule.js',
|
||||
'./js/servoMixerRuleCollection.js',
|
||||
'./js/motorMixerRuleCollection.js',
|
||||
'./main.js',
|
||||
'./tabs/*.js',
|
||||
'./js/eventFrequencyAnalyzer.js',
|
||||
|
|
4
js/fc.js
4
js/fc.js
|
@ -18,6 +18,7 @@ var CONFIG,
|
|||
ADJUSTMENT_RANGES,
|
||||
SERVO_CONFIG,
|
||||
SERVO_RULES,
|
||||
MOTOR_RULES,
|
||||
SERIAL_CONFIG,
|
||||
SENSOR_DATA,
|
||||
MOTOR_DATA,
|
||||
|
@ -150,7 +151,8 @@ var FC = {
|
|||
ADJUSTMENT_RANGES = [];
|
||||
|
||||
SERVO_CONFIG = [];
|
||||
SERVO_RULES = new ServoMixRuleCollection();
|
||||
SERVO_RULES = new ServoMixerRuleCollection();
|
||||
MOTOR_RULES = new MotorMixerRuleCollection();
|
||||
|
||||
SERIAL_CONFIG = {
|
||||
ports: [],
|
||||
|
|
52
js/motorMixRule.js
Normal file
52
js/motorMixRule.js
Normal file
|
@ -0,0 +1,52 @@
|
|||
/*global $*/
|
||||
'use strict';
|
||||
|
||||
var MotorMixRule = function (throttle, roll, pitch, yaw) {
|
||||
|
||||
var self = {};
|
||||
|
||||
self.fromMsp = function (mspThrottle, mspRoll, mspPitch, mspYaw) {
|
||||
throttle = mspThrottle / 1000;
|
||||
roll = (mspRoll / 1000) - 1;
|
||||
pitch = (mspPitch / 1000) - 1;
|
||||
yaw = (mspYaw / 1000) - 1;
|
||||
};
|
||||
|
||||
self.isUsed = function () {
|
||||
return throttle !== 0;
|
||||
};
|
||||
|
||||
self.getThrottle = function () {
|
||||
return throttle;
|
||||
};
|
||||
|
||||
self.setThrottle = function (data) {
|
||||
throttle = data;
|
||||
};
|
||||
|
||||
self.getRoll = function () {
|
||||
return roll;
|
||||
};
|
||||
|
||||
self.setRoll = function (data) {
|
||||
roll = data;
|
||||
};
|
||||
|
||||
self.getPitch = function () {
|
||||
return pitch;
|
||||
};
|
||||
|
||||
self.setPitch = function (data) {
|
||||
pitch = data;
|
||||
};
|
||||
|
||||
self.getYaw = function () {
|
||||
return yaw;
|
||||
};
|
||||
|
||||
self.setYaw = function (data) {
|
||||
yaw = data;
|
||||
};
|
||||
|
||||
return self;
|
||||
};
|
49
js/motorMixerRuleCollection.js
Normal file
49
js/motorMixerRuleCollection.js
Normal file
|
@ -0,0 +1,49 @@
|
|||
/*global $, MotorMixRule*/
|
||||
'use strict';
|
||||
|
||||
var MotorMixerRuleCollection = function () {
|
||||
|
||||
var self = {};
|
||||
var data = [];
|
||||
|
||||
self.put = function (element) {
|
||||
data.push(element);
|
||||
};
|
||||
|
||||
self.get = function () {
|
||||
return data;
|
||||
};
|
||||
|
||||
self.drop = function (index) {
|
||||
data[index].setThrottle(0);
|
||||
self.cleanup();
|
||||
};
|
||||
|
||||
self.flush = function () {
|
||||
data = [];
|
||||
};
|
||||
|
||||
self.cleanup = function () {
|
||||
var tmpData = [];
|
||||
|
||||
data.forEach(function (element) {
|
||||
if (element.isUsed()) {
|
||||
tmpData.push(element);
|
||||
}
|
||||
});
|
||||
|
||||
data = tmpData;
|
||||
};
|
||||
|
||||
self.inflate = function () {
|
||||
while (self.hasFreeSlots()) {
|
||||
self.put(new MotorMixRule(0, 0, 0, 0));
|
||||
}
|
||||
};
|
||||
|
||||
self.hasFreeSlots = function () {
|
||||
return data.length < 8;
|
||||
};
|
||||
|
||||
return self;
|
||||
};
|
|
@ -153,4 +153,7 @@ var MSPCodes = {
|
|||
// INAV specific codes
|
||||
MSPV2_SETTING: 0x1003,
|
||||
MSPV2_SET_SETTING: 0x1004,
|
||||
|
||||
MSP2_COMMON_MOTOR_MIXER: 0x1005,
|
||||
MSP2_COMMON_SET_MOTOR_MIXER: 0x1006
|
||||
};
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*global $, ServoMixRule*/
|
||||
'use strict';
|
||||
|
||||
var ServoMixRuleCollection = function () {
|
||||
var ServoMixerRuleCollection = function () {
|
||||
|
||||
var self = {};
|
||||
var data = [];
|
||||
|
@ -39,7 +39,7 @@ var ServoMixRuleCollection = function () {
|
|||
while (self.hasFreeSlots()) {
|
||||
self.put(new ServoMixRule(0, 0, 0, 0));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
self.hasFreeSlots = function () {
|
||||
return data.length < 16;
|
Loading…
Add table
Add a link
Reference in a new issue