mirror of
https://github.com/iNavFlight/inav-configurator.git
synced 2025-07-13 11:29:53 +03:00
Semver cleanup
This commit is contained in:
parent
473adae418
commit
005efec007
11 changed files with 242 additions and 614 deletions
272
js/fc.js
272
js/fc.js
|
@ -77,14 +77,11 @@ var FC = {
|
||||||
return (MIXER_CONFIG.platformType == PLATFORM_MULTIROTOR || MIXER_CONFIG.platformType == PLATFORM_TRICOPTER);
|
return (MIXER_CONFIG.platformType == PLATFORM_MULTIROTOR || MIXER_CONFIG.platformType == PLATFORM_TRICOPTER);
|
||||||
},
|
},
|
||||||
isRpyFfComponentUsed: function () {
|
isRpyFfComponentUsed: function () {
|
||||||
return (MIXER_CONFIG.platformType == PLATFORM_AIRPLANE || MIXER_CONFIG.platformType == PLATFORM_ROVER || MIXER_CONFIG.platformType == PLATFORM_BOAT) || ((MIXER_CONFIG.platformType == PLATFORM_MULTIROTOR || MIXER_CONFIG.platformType == PLATFORM_TRICOPTER) && semver.gte(CONFIG.flightControllerVersion, "2.6.0"));
|
return true; // Currently all planes have roll, pitch and yaw FF
|
||||||
},
|
},
|
||||||
isRpyDComponentUsed: function () {
|
isRpyDComponentUsed: function () {
|
||||||
return true; // Currently all platforms use D term
|
return true; // Currently all platforms use D term
|
||||||
},
|
},
|
||||||
isCdComponentUsed: function () {
|
|
||||||
return (MIXER_CONFIG.platformType == PLATFORM_MULTIROTOR || MIXER_CONFIG.platformType == PLATFORM_TRICOPTER);
|
|
||||||
},
|
|
||||||
resetState: function () {
|
resetState: function () {
|
||||||
SENSOR_STATUS = {
|
SENSOR_STATUS = {
|
||||||
isHardwareHealthy: 0,
|
isHardwareHealthy: 0,
|
||||||
|
@ -601,10 +598,6 @@ var FC = {
|
||||||
{bit: 31, group: 'other', name: "FW_AUTOTRIM", haveTip: true, showNameInTip: true}
|
{bit: 31, group: 'other', name: "FW_AUTOTRIM", haveTip: true, showNameInTip: true}
|
||||||
];
|
];
|
||||||
|
|
||||||
if (semver.gte(CONFIG.flightControllerVersion, "2.4.0") && semver.lt(CONFIG.flightControllerVersion, "2.5.0")) {
|
|
||||||
features.push({bit: 5, group: 'other', name: 'DYNAMIC_FILTERS', haveTip: true, showNameInTip: true});
|
|
||||||
}
|
|
||||||
|
|
||||||
return features.reverse();
|
return features.reverse();
|
||||||
},
|
},
|
||||||
isFeatureEnabled: function (featureName, features) {
|
isFeatureEnabled: function (featureName, features) {
|
||||||
|
@ -664,168 +657,69 @@ var FC = {
|
||||||
];
|
];
|
||||||
},
|
},
|
||||||
getEscProtocols: function () {
|
getEscProtocols: function () {
|
||||||
|
return {
|
||||||
if (semver.gte(CONFIG.flightControllerVersion, "3.1.0")) {
|
0: {
|
||||||
return {
|
name: "STANDARD",
|
||||||
0: {
|
message: null,
|
||||||
name: "STANDARD",
|
defaultRate: 400,
|
||||||
message: null,
|
rates: {
|
||||||
defaultRate: 400,
|
50: "50Hz",
|
||||||
rates: {
|
400: "400Hz"
|
||||||
50: "50Hz",
|
|
||||||
400: "400Hz"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
1: {
|
|
||||||
name: "ONESHOT125",
|
|
||||||
message: null,
|
|
||||||
defaultRate: 1000,
|
|
||||||
rates: {
|
|
||||||
1000: "1kHz",
|
|
||||||
2000: "2kHz"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
2: {
|
|
||||||
name: "MULTISHOT",
|
|
||||||
message: null,
|
|
||||||
defaultRate: 2000,
|
|
||||||
rates: {
|
|
||||||
1000: "1kHz",
|
|
||||||
2000: "2kHz"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
3: {
|
|
||||||
name: "BRUSHED",
|
|
||||||
message: null,
|
|
||||||
defaultRate: 8000,
|
|
||||||
rates: {
|
|
||||||
8000: "8kHz",
|
|
||||||
16000: "16kHz",
|
|
||||||
32000: "32kHz"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
4: {
|
|
||||||
name: "DSHOT150",
|
|
||||||
message: null,
|
|
||||||
defaultRate: 4000,
|
|
||||||
rates: {
|
|
||||||
4000: "4kHz"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
5: {
|
|
||||||
name: "DSHOT300",
|
|
||||||
message: null,
|
|
||||||
defaultRate: 8000,
|
|
||||||
rates: {
|
|
||||||
8000: "8kHz"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
6: {
|
|
||||||
name: "DSHOT600",
|
|
||||||
message: null,
|
|
||||||
defaultRate: 16000,
|
|
||||||
rates: {
|
|
||||||
16000: "16kHz"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
};
|
},
|
||||||
} else {
|
1: {
|
||||||
return {
|
name: "ONESHOT125",
|
||||||
0: {
|
message: null,
|
||||||
name: "STANDARD",
|
defaultRate: 1000,
|
||||||
message: null,
|
rates: {
|
||||||
defaultRate: 400,
|
1000: "1kHz",
|
||||||
rates: {
|
2000: "2kHz"
|
||||||
50: "50Hz",
|
|
||||||
400: "400Hz"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
1: {
|
|
||||||
name: "ONESHOT125",
|
|
||||||
message: null,
|
|
||||||
defaultRate: 1000,
|
|
||||||
rates: {
|
|
||||||
400: "400Hz",
|
|
||||||
1000: "1kHz",
|
|
||||||
2000: "2kHz"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
2: {
|
|
||||||
name: "ONESHOT42",
|
|
||||||
message: null,
|
|
||||||
defaultRate: 2000,
|
|
||||||
rates: {
|
|
||||||
400: "400Hz",
|
|
||||||
1000: "1kHz",
|
|
||||||
2000: "2kHz",
|
|
||||||
4000: "4kHz",
|
|
||||||
8000: "8kHz"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
3: {
|
|
||||||
name: "MULTISHOT",
|
|
||||||
message: null,
|
|
||||||
defaultRate: 2000,
|
|
||||||
rates: {
|
|
||||||
400: "400Hz",
|
|
||||||
1000: "1kHz",
|
|
||||||
2000: "2kHz",
|
|
||||||
4000: "4kHz",
|
|
||||||
8000: "8kHz"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
4: {
|
|
||||||
name: "BRUSHED",
|
|
||||||
message: null,
|
|
||||||
defaultRate: 8000,
|
|
||||||
rates: {
|
|
||||||
8000: "8kHz",
|
|
||||||
16000: "16kHz",
|
|
||||||
32000: "32kHz"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
5: {
|
|
||||||
name: "DSHOT150",
|
|
||||||
message: null,
|
|
||||||
defaultRate: 4000,
|
|
||||||
rates: {
|
|
||||||
4000: "4kHz"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
6: {
|
|
||||||
name: "DSHOT300",
|
|
||||||
message: null,
|
|
||||||
defaultRate: 8000,
|
|
||||||
rates: {
|
|
||||||
8000: "8kHz"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
7: {
|
|
||||||
name: "DSHOT600",
|
|
||||||
message: null,
|
|
||||||
defaultRate: 16000,
|
|
||||||
rates: {
|
|
||||||
16000: "16kHz"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
8: {
|
|
||||||
name: "DSHOT1200",
|
|
||||||
message: "escProtocolNotAdvised",
|
|
||||||
defaultRate: 16000,
|
|
||||||
rates: {
|
|
||||||
16000: "16kHz"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
9: {
|
|
||||||
name: "SERIALSHOT",
|
|
||||||
message: "escProtocolExperimental",
|
|
||||||
defaultRate: 4000,
|
|
||||||
rates: {
|
|
||||||
4000: "4kHz"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
};
|
},
|
||||||
}
|
2: {
|
||||||
|
name: "MULTISHOT",
|
||||||
|
message: null,
|
||||||
|
defaultRate: 2000,
|
||||||
|
rates: {
|
||||||
|
1000: "1kHz",
|
||||||
|
2000: "2kHz"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
3: {
|
||||||
|
name: "BRUSHED",
|
||||||
|
message: null,
|
||||||
|
defaultRate: 8000,
|
||||||
|
rates: {
|
||||||
|
8000: "8kHz",
|
||||||
|
16000: "16kHz",
|
||||||
|
32000: "32kHz"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
4: {
|
||||||
|
name: "DSHOT150",
|
||||||
|
message: null,
|
||||||
|
defaultRate: 4000,
|
||||||
|
rates: {
|
||||||
|
4000: "4kHz"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
5: {
|
||||||
|
name: "DSHOT300",
|
||||||
|
message: null,
|
||||||
|
defaultRate: 8000,
|
||||||
|
rates: {
|
||||||
|
8000: "8kHz"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
6: {
|
||||||
|
name: "DSHOT600",
|
||||||
|
message: null,
|
||||||
|
defaultRate: 16000,
|
||||||
|
rates: {
|
||||||
|
16000: "16kHz"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
},
|
},
|
||||||
getServoRates: function () {
|
getServoRates: function () {
|
||||||
return {
|
return {
|
||||||
|
@ -866,37 +760,6 @@ var FC = {
|
||||||
getOsdDisabledFields: function () {
|
getOsdDisabledFields: function () {
|
||||||
return [];
|
return [];
|
||||||
},
|
},
|
||||||
getAccelerometerNames: function () {
|
|
||||||
return [ "NONE", "AUTO", "MPU6050", "LSM303DLHC", "MPU6000", "MPU6500", "MPU9250", "BMI160", "ICM20689", "FAKE"];
|
|
||||||
},
|
|
||||||
getBarometerNames: function () {
|
|
||||||
if (semver.gte(CONFIG.flightControllerVersion, "2.6.0")) {
|
|
||||||
return ["NONE", "AUTO", "BMP085", "MS5611", "BMP280", "MS5607", "LPS25H", "SPL06", "BMP388", "DPS310", "MSP", "FAKE"];
|
|
||||||
} else {
|
|
||||||
return ["NONE", "AUTO", "BMP085", "MS5611", "BMP280", "MS5607", "LPS25H", "SPL06", "BMP388", "FAKE"];
|
|
||||||
}
|
|
||||||
},
|
|
||||||
getPitotNames: function () {
|
|
||||||
if (semver.gte(CONFIG.flightControllerVersion, "2.6.0")) {
|
|
||||||
return ["NONE", "AUTO", "MS4525", "ADC", "VIRTUAL", "FAKE", "MSP"];
|
|
||||||
} else {
|
|
||||||
return ["NONE", "AUTO", "MS4525", "ADC", "VIRTUAL", "FAKE"];
|
|
||||||
}
|
|
||||||
},
|
|
||||||
getRangefinderNames: function () {
|
|
||||||
if (semver.gte(CONFIG.flightControllerVersion, "3.1.0")) {
|
|
||||||
return [ "NONE", "SRF10", "INAV_I2C", "VL53L0X", "MSP", "Benewake TFmini", "VL53L1X", "US42"];
|
|
||||||
} else {
|
|
||||||
return [ "NONE", "HCSR04", "SRF10", "INAV_I2C", "VL53L0X", "MSP", "UIB", "Benewake TFmini"];
|
|
||||||
}
|
|
||||||
},
|
|
||||||
getOpticalFlowNames: function () {
|
|
||||||
if (semver.gte(CONFIG.flightControllerVersion, "2.7.0")) {
|
|
||||||
return [ "NONE", "CXOF", "MSP", "FAKE" ];
|
|
||||||
} else {
|
|
||||||
return [ "NONE", "PMW3901", "CXOF", "MSP", "FAKE" ];
|
|
||||||
}
|
|
||||||
},
|
|
||||||
getArmingFlags: function () {
|
getArmingFlags: function () {
|
||||||
return {
|
return {
|
||||||
0: "OK_TO_ARM",
|
0: "OK_TO_ARM",
|
||||||
|
@ -933,7 +796,7 @@ var FC = {
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
getPidNames: function () {
|
getPidNames: function () {
|
||||||
let list = [
|
return [
|
||||||
'Roll',
|
'Roll',
|
||||||
'Pitch',
|
'Pitch',
|
||||||
'Yaw',
|
'Yaw',
|
||||||
|
@ -943,14 +806,9 @@ var FC = {
|
||||||
'Surface',
|
'Surface',
|
||||||
'Level',
|
'Level',
|
||||||
'Heading Hold',
|
'Heading Hold',
|
||||||
'Velocity Z'
|
'Velocity Z',
|
||||||
|
'Nav Heading'
|
||||||
];
|
];
|
||||||
|
|
||||||
if (semver.gte(CONFIG.flightControllerVersion, '2.5.0')) {
|
|
||||||
list.push("Nav Heading")
|
|
||||||
}
|
|
||||||
|
|
||||||
return list;
|
|
||||||
},
|
},
|
||||||
getRthAltControlMode: function () {
|
getRthAltControlMode: function () {
|
||||||
return ["Current", "Extra", "Fixed", "Max", "At least", "At least, linear descent"];
|
return ["Current", "Extra", "Fixed", "Max", "At least", "At least, linear descent"];
|
||||||
|
|
|
@ -104,12 +104,7 @@ var mspHelper = (function (gui) {
|
||||||
SENSOR_STATUS.rangeHwStatus = data.getUint8(6);
|
SENSOR_STATUS.rangeHwStatus = data.getUint8(6);
|
||||||
SENSOR_STATUS.speedHwStatus = data.getUint8(7);
|
SENSOR_STATUS.speedHwStatus = data.getUint8(7);
|
||||||
SENSOR_STATUS.flowHwStatus = data.getUint8(8);
|
SENSOR_STATUS.flowHwStatus = data.getUint8(8);
|
||||||
|
SENSOR_STATUS.imu2HwStatus = data.getUint8(9);
|
||||||
if (semver.gte(CONFIG.flightControllerVersion, "3.1.0")) {
|
|
||||||
SENSOR_STATUS.imu2HwStatus = data.getUint8(9);
|
|
||||||
} else {
|
|
||||||
SENSOR_STATUS.imu2HwStatus = 0;
|
|
||||||
}
|
|
||||||
sensor_status_ex(SENSOR_STATUS);
|
sensor_status_ex(SENSOR_STATUS);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -1253,11 +1248,9 @@ var mspHelper = (function (gui) {
|
||||||
CALIBRATION_DATA.magZero.Z = data.getInt16(17, true);
|
CALIBRATION_DATA.magZero.Z = data.getInt16(17, true);
|
||||||
CALIBRATION_DATA.opflow.Scale = (data.getInt16(19, true) / 256.0);
|
CALIBRATION_DATA.opflow.Scale = (data.getInt16(19, true) / 256.0);
|
||||||
|
|
||||||
if (semver.gte(CONFIG.flightControllerVersion, "2.6.0")) {
|
CALIBRATION_DATA.magGain.X = data.getInt16(21, true);
|
||||||
CALIBRATION_DATA.magGain.X = data.getInt16(21, true);
|
CALIBRATION_DATA.magGain.Y = data.getInt16(23, true);
|
||||||
CALIBRATION_DATA.magGain.Y = data.getInt16(23, true);
|
CALIBRATION_DATA.magGain.Z = data.getInt16(25, true);
|
||||||
CALIBRATION_DATA.magGain.Z = data.getInt16(25, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -1904,16 +1897,14 @@ var mspHelper = (function (gui) {
|
||||||
buffer.push(lowByte(Math.round(CALIBRATION_DATA.opflow.Scale * 256)));
|
buffer.push(lowByte(Math.round(CALIBRATION_DATA.opflow.Scale * 256)));
|
||||||
buffer.push(highByte(Math.round(CALIBRATION_DATA.opflow.Scale * 256)));
|
buffer.push(highByte(Math.round(CALIBRATION_DATA.opflow.Scale * 256)));
|
||||||
|
|
||||||
if (semver.gte(CONFIG.flightControllerVersion, "2.6.0")) {
|
buffer.push(lowByte(CALIBRATION_DATA.magGain.X));
|
||||||
buffer.push(lowByte(CALIBRATION_DATA.magGain.X));
|
buffer.push(highByte(CALIBRATION_DATA.magGain.X));
|
||||||
buffer.push(highByte(CALIBRATION_DATA.magGain.X));
|
|
||||||
|
|
||||||
buffer.push(lowByte(CALIBRATION_DATA.magGain.Y));
|
buffer.push(lowByte(CALIBRATION_DATA.magGain.Y));
|
||||||
buffer.push(highByte(CALIBRATION_DATA.magGain.Y));
|
buffer.push(highByte(CALIBRATION_DATA.magGain.Y));
|
||||||
|
|
||||||
buffer.push(lowByte(CALIBRATION_DATA.magGain.Z));
|
buffer.push(lowByte(CALIBRATION_DATA.magGain.Z));
|
||||||
buffer.push(highByte(CALIBRATION_DATA.magGain.Z));
|
buffer.push(highByte(CALIBRATION_DATA.magGain.Z));
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -2307,9 +2298,7 @@ var mspHelper = (function (gui) {
|
||||||
|
|
||||||
buffer.push(conditionIndex);
|
buffer.push(conditionIndex);
|
||||||
buffer.push(condition.getEnabled());
|
buffer.push(condition.getEnabled());
|
||||||
if (semver.gte(CONFIG.flightControllerVersion, "2.5.0")) {
|
buffer.push(condition.getActivatorId());
|
||||||
buffer.push(condition.getActivatorId());
|
|
||||||
}
|
|
||||||
buffer.push(condition.getOperation());
|
buffer.push(condition.getOperation());
|
||||||
buffer.push(condition.getOperandAType());
|
buffer.push(condition.getOperandAType());
|
||||||
buffer.push(specificByte(condition.getOperandAValue(), 0));
|
buffer.push(specificByte(condition.getOperandAValue(), 0));
|
||||||
|
@ -3010,9 +2999,7 @@ var mspHelper = (function (gui) {
|
||||||
var setting = {};
|
var setting = {};
|
||||||
|
|
||||||
// Discard setting name
|
// Discard setting name
|
||||||
if (semver.gte(CONFIG.apiVersion, "2.4.0")) {
|
result.data.readString();
|
||||||
result.data.readString();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Discard PG ID
|
// Discard PG ID
|
||||||
result.data.readU16();
|
result.data.readU16();
|
||||||
|
@ -3250,19 +3237,11 @@ var mspHelper = (function (gui) {
|
||||||
};
|
};
|
||||||
|
|
||||||
self.loadGlobalVariablesStatus = function (callback) {
|
self.loadGlobalVariablesStatus = function (callback) {
|
||||||
if (semver.gte(CONFIG.flightControllerVersion, "2.5.0")) {
|
MSP.send_message(MSPCodes.MSP2_INAV_GVAR_STATUS, false, false, callback);
|
||||||
MSP.send_message(MSPCodes.MSP2_INAV_GVAR_STATUS, false, false, callback);
|
|
||||||
} else {
|
|
||||||
callback();
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
self.loadProgrammingPidStatus = function (callback) {
|
self.loadProgrammingPidStatus = function (callback) {
|
||||||
if (semver.gte(CONFIG.flightControllerVersion, "2.6.0")) {
|
MSP.send_message(MSPCodes.MSP2_INAV_PROGRAMMING_PID_STATUS, false, false, callback);
|
||||||
MSP.send_message(MSPCodes.MSP2_INAV_PROGRAMMING_PID_STATUS, false, false, callback);
|
|
||||||
} else {
|
|
||||||
callback();
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return self;
|
return self;
|
||||||
|
|
|
@ -334,12 +334,8 @@ function onConnect() {
|
||||||
/*
|
/*
|
||||||
* Init PIDs bank with a length that depends on the version
|
* Init PIDs bank with a length that depends on the version
|
||||||
*/
|
*/
|
||||||
let pidCount;
|
let pidCount = 11;
|
||||||
if (semver.gte(CONFIG.flightControllerVersion, "2.5.0")) {
|
|
||||||
pidCount = 11;
|
|
||||||
} else {
|
|
||||||
pidCount = 10;
|
|
||||||
}
|
|
||||||
for (let i = 0; i < pidCount; i++) {
|
for (let i = 0; i < pidCount; i++) {
|
||||||
PIDs.push(new Array(4));
|
PIDs.push(new Array(4));
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,15 +11,9 @@ TABS.led_strip.initialize = function (callback, scrollPosition) {
|
||||||
var selectedColorIndex = null;
|
var selectedColorIndex = null;
|
||||||
var selectedModeColor = null;
|
var selectedModeColor = null;
|
||||||
|
|
||||||
if (semver.lt(CONFIG.apiVersion, "1.20.0")) {
|
TABS.led_strip.functions = ['i', 'w', 'f', 'a', 't', 'r', 'c', 'g', 's', 'b', 'l', 'o', 'n'];
|
||||||
TABS.led_strip.functions = ['i', 'w', 'f', 'a', 't', 'r', 'c', 'g', 's', 'b'];
|
TABS.led_strip.baseFuncs = ['c', 'f', 'a', 'l', 's', 'g', 'r', 'h'];
|
||||||
TABS.led_strip.baseFuncs = ['c', 'f', 'a', 'b', 'g', 'r'];
|
TABS.led_strip.overlays = ['t', 'o', 'b', 'n', 'i', 'w'];
|
||||||
TABS.led_strip.overlays = ['t', 's', 'i', 'w'];
|
|
||||||
} else {
|
|
||||||
TABS.led_strip.functions = ['i', 'w', 'f', 'a', 't', 'r', 'c', 'g', 's', 'b', 'l', 'o', 'n'];
|
|
||||||
TABS.led_strip.baseFuncs = ['c', 'f', 'a', 'l', 's', 'g', 'r', 'h'];
|
|
||||||
TABS.led_strip.overlays = ['t', 'o', 'b', 'n', 'i', 'w'];
|
|
||||||
}
|
|
||||||
|
|
||||||
TABS.led_strip.wireMode = false;
|
TABS.led_strip.wireMode = false;
|
||||||
|
|
||||||
|
@ -37,16 +31,9 @@ TABS.led_strip.initialize = function (callback, scrollPosition) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function load_led_mode_colors() {
|
function load_led_mode_colors() {
|
||||||
if (semver.gte(CONFIG.apiVersion, "1.19.0"))
|
MSP.send_message(MSPCodes.MSP_LED_STRIP_MODECOLOR, false, false, load_html);
|
||||||
MSP.send_message(MSPCodes.MSP_LED_STRIP_MODECOLOR, false, false, load_html);
|
|
||||||
else
|
|
||||||
load_html();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function load_html() {
|
function load_html() {
|
||||||
GUI.load("./tabs/led_strip.html", process_html);
|
GUI.load("./tabs/led_strip.html", process_html);
|
||||||
}
|
}
|
||||||
|
@ -74,10 +61,7 @@ TABS.led_strip.initialize = function (callback, scrollPosition) {
|
||||||
var theHTML = [];
|
var theHTML = [];
|
||||||
var theHTMLlength = 0;
|
var theHTMLlength = 0;
|
||||||
for (var i = 0; i < 256; i++) {
|
for (var i = 0; i < 256; i++) {
|
||||||
if (semver.lte(CONFIG.apiVersion, "1.19.0"))
|
theHTML[theHTMLlength++] = ('<div class="gPoint"><div class="indicators"><span class="north"></span><span class="south"></span><span class="west"></span><span class="east"></span><span class="up">U</span><span class="down">D</span></div><span class="wire"></span><span class="overlay-t"> </span><span class="overlay-o"> </span><span class="overlay-b"> </span><span class="overlay-n"> </span><span class="overlay-w"> </span><span class="overlay-i"> </span><span class="overlay-color"> </span></div>');
|
||||||
theHTML[theHTMLlength++] = ('<div class="gPoint"><div class="indicators"><span class="north"></span><span class="south"></span><span class="west"></span><span class="east"></span><span class="up">U</span><span class="down">D</span></div><span class="wire"></span><span class="overlay-t"> </span><span class="overlay-s"> </span><span class="overlay-w"> </span><span class="overlay-i"> </span><span class="overlay-color"> </span></div>');
|
|
||||||
else
|
|
||||||
theHTML[theHTMLlength++] = ('<div class="gPoint"><div class="indicators"><span class="north"></span><span class="south"></span><span class="west"></span><span class="east"></span><span class="up">U</span><span class="down">D</span></div><span class="wire"></span><span class="overlay-t"> </span><span class="overlay-o"> </span><span class="overlay-b"> </span><span class="overlay-n"> </span><span class="overlay-w"> </span><span class="overlay-i"> </span><span class="overlay-color"> </span></div>');
|
|
||||||
}
|
}
|
||||||
$('.mainGrid').html(theHTML.join(''));
|
$('.mainGrid').html(theHTML.join(''));
|
||||||
|
|
||||||
|
@ -549,10 +533,7 @@ TABS.led_strip.initialize = function (callback, scrollPosition) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function send_led_strip_mode_colors() {
|
function send_led_strip_mode_colors() {
|
||||||
if (semver.gte(CONFIG.apiVersion, "1.19.0"))
|
mspHelper.sendLedStripModeColors(save_to_eeprom);
|
||||||
mspHelper.sendLedStripModeColors(save_to_eeprom);
|
|
||||||
else
|
|
||||||
save_to_eeprom();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function save_to_eeprom() {
|
function save_to_eeprom() {
|
||||||
|
@ -674,20 +655,18 @@ TABS.led_strip.initialize = function (callback, scrollPosition) {
|
||||||
|
|
||||||
// refresh mode color buttons
|
// refresh mode color buttons
|
||||||
function setModeBackgroundColor(element) {
|
function setModeBackgroundColor(element) {
|
||||||
if (semver.gte(CONFIG.apiVersion, "1.19.0")) {
|
element.find('[class*="mode_color"]').each(function() {
|
||||||
element.find('[class*="mode_color"]').each(function() {
|
var m = 0;
|
||||||
var m = 0;
|
var d = 0;
|
||||||
var d = 0;
|
|
||||||
|
|
||||||
var match = $(this).attr("class").match(/(^|\s)mode_color-([0-9]+)-([0-9]+)(\s|$)/);
|
var match = $(this).attr("class").match(/(^|\s)mode_color-([0-9]+)-([0-9]+)(\s|$)/);
|
||||||
if (match) {
|
if (match) {
|
||||||
m = Number(match[2]);
|
m = Number(match[2]);
|
||||||
d = Number(match[3]);
|
d = Number(match[3]);
|
||||||
$(this).css('background-color', HsvToColor(LED_COLORS[getModeColor(m, d)]));
|
$(this).css('background-color', HsvToColor(LED_COLORS[getModeColor(m, d)]));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
function setBackgroundColor(element) {
|
function setBackgroundColor(element) {
|
||||||
if (element.is('[class*="color"]')) {
|
if (element.is('[class*="color"]')) {
|
||||||
|
@ -713,42 +692,29 @@ TABS.led_strip.initialize = function (callback, scrollPosition) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function areOverlaysActive(activeFunction) {
|
function areOverlaysActive(activeFunction) {
|
||||||
if (semver.lt(CONFIG.apiVersion, "1.20.0")) {
|
switch (activeFunction) {
|
||||||
switch (activeFunction) {
|
case "":
|
||||||
case "function-c":
|
case "function-c":
|
||||||
case "function-a":
|
case "function-a":
|
||||||
case "function-f":
|
case "function-f":
|
||||||
case "function-g":
|
case "function-s":
|
||||||
return true;
|
case "function-l":
|
||||||
break;
|
case "function-r":
|
||||||
}
|
case "function-o":
|
||||||
} else {
|
case "function-g":
|
||||||
switch (activeFunction) {
|
return true;
|
||||||
case "":
|
break;
|
||||||
case "function-c":
|
|
||||||
case "function-a":
|
|
||||||
case "function-f":
|
|
||||||
case "function-s":
|
|
||||||
case "function-l":
|
|
||||||
case "function-r":
|
|
||||||
case "function-o":
|
|
||||||
case "function-g":
|
|
||||||
return true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function areBlinkersActive(activeFunction) {
|
function areBlinkersActive(activeFunction) {
|
||||||
if (semver.gte(CONFIG.apiVersion, "1.20.0")) {
|
switch (activeFunction) {
|
||||||
switch (activeFunction) {
|
case "function-c":
|
||||||
case "function-c":
|
case "function-a":
|
||||||
case "function-a":
|
case "function-f":
|
||||||
case "function-f":
|
return true;
|
||||||
return true;
|
break;
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -758,13 +724,10 @@ TABS.led_strip.initialize = function (callback, scrollPosition) {
|
||||||
case "function-l":
|
case "function-l":
|
||||||
case "function-s":
|
case "function-s":
|
||||||
case "function-g":
|
case "function-g":
|
||||||
return false;
|
|
||||||
break;
|
|
||||||
case "function-r":
|
case "function-r":
|
||||||
case "function-b":
|
case "function-b":
|
||||||
if (semver.lt(CONFIG.apiVersion, "1.20.0"))
|
return false;
|
||||||
return false;
|
break;
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
return true;
|
return true;
|
||||||
break;
|
break;
|
||||||
|
@ -776,23 +739,12 @@ TABS.led_strip.initialize = function (callback, scrollPosition) {
|
||||||
var activeFunction = $('select.functionSelect').val();
|
var activeFunction = $('select.functionSelect').val();
|
||||||
$('select.functionSelect').addClass(activeFunction);
|
$('select.functionSelect').addClass(activeFunction);
|
||||||
|
|
||||||
|
// >= 20
|
||||||
if (semver.lte(CONFIG.apiVersion, "1.18.0")) {
|
// Show GPS (Func)
|
||||||
// <= 18
|
// Hide RSSI (O/L), Blink (Func)
|
||||||
// Hide GPS (Func)
|
// Show Battery, RSSI (Func), Larson (O/L), Blink (O/L), Landing (O/L)
|
||||||
// Hide RSSI (O/L), Blink (Func)
|
$(".extra_functions20").show();
|
||||||
// Hide Battery, RSSI (Func), Larson (O/L), Blink (O/L), Landing (O/L)
|
$(".mode_colors").show();
|
||||||
$(".extra_functions20").hide();
|
|
||||||
$(".mode_colors").hide();
|
|
||||||
} else {
|
|
||||||
// >= 20
|
|
||||||
// Show GPS (Func)
|
|
||||||
// Hide RSSI (O/L), Blink (Func)
|
|
||||||
// Show Battery, RSSI (Func), Larson (O/L), Blink (O/L), Landing (O/L)
|
|
||||||
$(".extra_functions20").show();
|
|
||||||
$(".mode_colors").show();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// set color modifiers (check-boxes) visibility
|
// set color modifiers (check-boxes) visibility
|
||||||
$('.overlays').hide();
|
$('.overlays').hide();
|
||||||
|
@ -813,71 +765,53 @@ TABS.led_strip.initialize = function (callback, scrollPosition) {
|
||||||
if (isWarningActive(activeFunction))
|
if (isWarningActive(activeFunction))
|
||||||
$('.warningOverlay').show();
|
$('.warningOverlay').show();
|
||||||
|
|
||||||
|
$('.mode_colors').hide();
|
||||||
|
// set mode colors visibility
|
||||||
|
|
||||||
|
if (activeFunction == "function-f") {
|
||||||
// set directions visibility
|
$('.mode_colors').show();
|
||||||
if (semver.lt(CONFIG.apiVersion, "1.20.0")) {
|
|
||||||
switch (activeFunction) {
|
|
||||||
case "function-r":
|
|
||||||
$('.indicatorOverlay').hide();
|
|
||||||
$('.directions').hide();
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
$('.indicatorOverlay').show();
|
|
||||||
$('.directions').show();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$('.mode_colors').hide();
|
// set special colors visibility
|
||||||
if (semver.gte(CONFIG.apiVersion, "1.19.0")) {
|
$('.special_colors').show();
|
||||||
// set mode colors visibility
|
$('.mode_color-6-0').hide();
|
||||||
|
$('.mode_color-6-1').hide();
|
||||||
|
$('.mode_color-6-2').hide();
|
||||||
|
$('.mode_color-6-3').hide();
|
||||||
|
$('.mode_color-6-4').hide();
|
||||||
|
$('.mode_color-6-5').hide();
|
||||||
|
$('.mode_color-6-6').hide();
|
||||||
|
$('.mode_color-6-7').hide();
|
||||||
|
|
||||||
if (semver.gte(CONFIG.apiVersion, "1.20.0"))
|
switch (activeFunction) {
|
||||||
if (activeFunction == "function-f")
|
case "": // none
|
||||||
$('.mode_colors').show();
|
case "function-f": // Modes & Orientation
|
||||||
|
case "function-l": // Battery
|
||||||
// set special colors visibility
|
// $('.mode_color-6-3').show(); // background
|
||||||
$('.special_colors').show();
|
$('.special_colors').hide();
|
||||||
$('.mode_color-6-0').hide();
|
|
||||||
$('.mode_color-6-1').hide();
|
|
||||||
$('.mode_color-6-2').hide();
|
|
||||||
$('.mode_color-6-3').hide();
|
|
||||||
$('.mode_color-6-4').hide();
|
|
||||||
$('.mode_color-6-5').hide();
|
|
||||||
$('.mode_color-6-6').hide();
|
|
||||||
$('.mode_color-6-7').hide();
|
|
||||||
|
|
||||||
switch (activeFunction) {
|
|
||||||
case "": // none
|
|
||||||
case "function-f": // Modes & Orientation
|
|
||||||
case "function-l": // Battery
|
|
||||||
// $('.mode_color-6-3').show(); // background
|
|
||||||
$('.special_colors').hide();
|
|
||||||
break;
|
|
||||||
case "function-g": // GPS
|
|
||||||
$('.mode_color-6-5').show(); // no sats
|
|
||||||
$('.mode_color-6-6').show(); // no lock
|
|
||||||
$('.mode_color-6-7').show(); // locked
|
|
||||||
// $('.mode_color-6-3').show(); // background
|
|
||||||
break;
|
|
||||||
case "function-b": // Blink
|
|
||||||
$('.mode_color-6-4').show(); // blink background
|
|
||||||
break;
|
|
||||||
case "function-a": // Arm state
|
|
||||||
$('.mode_color-6-0').show(); // disarmed
|
|
||||||
$('.mode_color-6-1').show(); // armed
|
|
||||||
break;
|
|
||||||
case "function-h": // Channel
|
|
||||||
$('.special_colors').hide();
|
|
||||||
$('.channel_info').show();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "function-r": // Ring
|
|
||||||
default:
|
|
||||||
$('.special_colors').hide();
|
|
||||||
break;
|
break;
|
||||||
}
|
case "function-g": // GPS
|
||||||
|
$('.mode_color-6-5').show(); // no sats
|
||||||
|
$('.mode_color-6-6').show(); // no lock
|
||||||
|
$('.mode_color-6-7').show(); // locked
|
||||||
|
// $('.mode_color-6-3').show(); // background
|
||||||
|
break;
|
||||||
|
case "function-b": // Blink
|
||||||
|
$('.mode_color-6-4').show(); // blink background
|
||||||
|
break;
|
||||||
|
case "function-a": // Arm state
|
||||||
|
$('.mode_color-6-0').show(); // disarmed
|
||||||
|
$('.mode_color-6-1').show(); // armed
|
||||||
|
break;
|
||||||
|
case "function-h": // Channel
|
||||||
|
$('.special_colors').hide();
|
||||||
|
$('.channel_info').show();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "function-r": // Ring
|
||||||
|
default:
|
||||||
|
$('.special_colors').hide();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -908,30 +842,19 @@ TABS.led_strip.initialize = function (callback, scrollPosition) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function unselectOverlays(letter) {
|
function unselectOverlays(letter) {
|
||||||
if (semver.lt(CONFIG.apiVersion, "1.20.0")) {
|
// MSP 1.20
|
||||||
if (letter == 'b' || letter == 'r') {
|
if (letter == 'r' || letter == '') {
|
||||||
unselectOverlay(letter, 'i');
|
unselectOverlay(letter, 'o');
|
||||||
}
|
unselectOverlay(letter, 'b');
|
||||||
if (letter == 'b' || letter == 'r' || letter == 'l' || letter == 'g') {
|
unselectOverlay(letter, 'n');
|
||||||
unselectOverlay(letter, 'w');
|
unselectOverlay(letter, 't');
|
||||||
unselectOverlay(letter, 't');
|
}
|
||||||
unselectOverlay(letter, 's');
|
if (letter == 'l' || letter == 'g' || letter == 's') {
|
||||||
}
|
unselectOverlay(letter, 'w');
|
||||||
} else {
|
unselectOverlay(letter, 't');
|
||||||
// MSP 1.20
|
unselectOverlay(letter, 'o');
|
||||||
if (letter == 'r' || letter == '') {
|
unselectOverlay(letter, 'b');
|
||||||
unselectOverlay(letter, 'o');
|
unselectOverlay(letter, 'n');
|
||||||
unselectOverlay(letter, 'b');
|
|
||||||
unselectOverlay(letter, 'n');
|
|
||||||
unselectOverlay(letter, 't');
|
|
||||||
}
|
|
||||||
if (letter == 'l' || letter == 'g' || letter == 's') {
|
|
||||||
unselectOverlay(letter, 'w');
|
|
||||||
unselectOverlay(letter, 't');
|
|
||||||
unselectOverlay(letter, 'o');
|
|
||||||
unselectOverlay(letter, 'b');
|
|
||||||
unselectOverlay(letter, 'n');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1543,11 +1543,7 @@ TABS.mission_control.initialize = function (callback) {
|
||||||
// * @param {Object=} opt_options Control options.
|
// * @param {Object=} opt_options Control options.
|
||||||
// */
|
// */
|
||||||
app.PlannerMultiMissionControl = function (opt_options) {
|
app.PlannerMultiMissionControl = function (opt_options) {
|
||||||
let versionCheck = true;
|
|
||||||
if (CONFIG !== undefined && !semver.gte(CONFIG.flightControllerVersion, "4.0.0")) {
|
|
||||||
versionCheck = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
var options = opt_options || {};
|
var options = opt_options || {};
|
||||||
var button = document.createElement('button');
|
var button = document.createElement('button');
|
||||||
|
|
||||||
|
@ -1555,9 +1551,7 @@ TABS.mission_control.initialize = function (callback) {
|
||||||
button.style = 'background: url(\'../images/icons/cf_icon_multimission_white.svg\') no-repeat 1px -1px;background-color: rgba(0,60,136,.5);';
|
button.style = 'background: url(\'../images/icons/cf_icon_multimission_white.svg\') no-repeat 1px -1px;background-color: rgba(0,60,136,.5);';
|
||||||
|
|
||||||
var handleShowSettings = function () {
|
var handleShowSettings = function () {
|
||||||
if (versionCheck) {
|
$('#missionPlannerMultiMission').fadeIn(300);
|
||||||
$('#missionPlannerMultiMission').fadeIn(300);
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
button.addEventListener('click', handleShowSettings, false);
|
button.addEventListener('click', handleShowSettings, false);
|
||||||
|
@ -1566,7 +1560,7 @@ TABS.mission_control.initialize = function (callback) {
|
||||||
var element = document.createElement('div');
|
var element = document.createElement('div');
|
||||||
element.className = 'mission-control-multimission ol-unselectable ol-control';
|
element.className = 'mission-control-multimission ol-unselectable ol-control';
|
||||||
element.appendChild(button);
|
element.appendChild(button);
|
||||||
element.title = versionCheck ? 'MP MultiMission' : 'Unavailable';
|
element.title = 'MP MultiMission';
|
||||||
|
|
||||||
ol.control.Control.call(this, {
|
ol.control.Control.call(this, {
|
||||||
element: element,
|
element: element,
|
||||||
|
|
193
tabs/osd.js
193
tabs/osd.js
|
@ -397,11 +397,8 @@ function osdMainBatteryPreview() {
|
||||||
if (Settings.getInputValue('osd_main_voltage_decimals') == 2) {
|
if (Settings.getInputValue('osd_main_voltage_decimals') == 2) {
|
||||||
s += '3';
|
s += '3';
|
||||||
}
|
}
|
||||||
if (semver.lt(CONFIG.flightControllerVersion, '2.2.0')) {
|
|
||||||
s += 'V';
|
s += FONT.symbol(SYM.VOLT);
|
||||||
} else {
|
|
||||||
s += FONT.symbol(SYM.VOLT);
|
|
||||||
}
|
|
||||||
return FONT.symbol(SYM.BATT) + FONT.embed_dot(s);
|
return FONT.symbol(SYM.BATT) + FONT.embed_dot(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -781,28 +778,14 @@ OSD.constants = {
|
||||||
name: 'REMAINING_FLIGHT_DISTANCE',
|
name: 'REMAINING_FLIGHT_DISTANCE',
|
||||||
id: 49,
|
id: 49,
|
||||||
preview: function(osd_data) {
|
preview: function(osd_data) {
|
||||||
if (semver.lt(CONFIG.flightControllerVersion, '2.2.0')) {
|
switch (OSD.data.preferences.units) {
|
||||||
switch (OSD.data.preferences.units) {
|
case 0: // Imperial
|
||||||
case 0: // Imperial
|
case 3: // UK
|
||||||
case 3: // UK
|
return FONT.symbol(SYM.TRIP_DIST) + FONT.embed_dot('0.98') + FONT.symbol(SYM.DIST_MI);
|
||||||
return FONT.symbol(SYM.TRIP_DIST) + FONT.symbol(SYM.DIST_MI) + FONT.embed_dot('0.98');
|
case 4: // GA
|
||||||
case 4: // GA
|
return FONT.symbol(SYM.TRIP_DIST) + FONT.embed_dot('0.85') + FONT.symbol(SYM.DIST_NM);
|
||||||
return FONT.symbol(SYM.TRIP_DIST) + FONT.symbol(SYM.DIST_NM) + FONT.embed_dot('0.85');
|
default: // Metric
|
||||||
default:
|
return FONT.symbol(SYM.TRIP_DIST) + FONT.embed_dot('1.73') + FONT.symbol(SYM.DIST_KM);
|
||||||
// Metric
|
|
||||||
return FONT.symbol(SYM.TRIP_DIST) + FONT.symbol(SYM.DIST_KM) + FONT.embed_dot('1.57');
|
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
|
||||||
switch (OSD.data.preferences.units) {
|
|
||||||
case 0: // Imperial
|
|
||||||
case 3: // UK
|
|
||||||
return FONT.symbol(SYM.TRIP_DIST) + FONT.embed_dot('0.98') + FONT.symbol(SYM.DIST_MI);
|
|
||||||
case 4: // GA
|
|
||||||
return FONT.symbol(SYM.TRIP_DIST) + FONT.embed_dot('0.85') + FONT.symbol(SYM.DIST_NM);
|
|
||||||
default: // Metric
|
|
||||||
return FONT.symbol(SYM.TRIP_DIST) + FONT.embed_dot('1.73') + FONT.symbol(SYM.DIST_KM);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -1082,24 +1065,13 @@ OSD.constants = {
|
||||||
name: 'ALTITUDE',
|
name: 'ALTITUDE',
|
||||||
id: 15,
|
id: 15,
|
||||||
preview: function () {
|
preview: function () {
|
||||||
if (semver.lt(CONFIG.flightControllerVersion, '2.2.0')) {
|
switch (OSD.data.preferences.units) {
|
||||||
switch (OSD.data.preferences.units) {
|
case 0: // Imperial
|
||||||
case 0: // Imperial
|
case 3: // UK
|
||||||
case 3: // UK
|
case 4: // GA
|
||||||
case 4: // GA
|
return ' 375' + FONT.symbol(SYM.ALT_FT);
|
||||||
return FONT.symbol(SYM.ALT_FT) + '375';
|
default: // Metric
|
||||||
default: // Metric
|
return ' 114' + FONT.symbol(SYM.ALT_M);
|
||||||
return FONT.symbol(SYM.ALT_M) + '114'
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
switch (OSD.data.preferences.units) {
|
|
||||||
case 0: // Imperial
|
|
||||||
case 3: // UK
|
|
||||||
case 4: // GA
|
|
||||||
return ' 375' + FONT.symbol(SYM.ALT_FT);
|
|
||||||
default: // Metric
|
|
||||||
return ' 114' + FONT.symbol(SYM.ALT_M);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -1237,55 +1209,35 @@ OSD.constants = {
|
||||||
name: 'CURRENT_DRAW',
|
name: 'CURRENT_DRAW',
|
||||||
id: 11,
|
id: 11,
|
||||||
preview: function() {
|
preview: function() {
|
||||||
if (semver.lt(CONFIG.flightControllerVersion, '2.2.0')) {
|
return FONT.embed_dot('42.1') + FONT.symbol(SYM.AMP);
|
||||||
return FONT.symbol(SYM.AMP) + FONT.embed_dot('42.1');
|
|
||||||
} else {
|
|
||||||
return FONT.embed_dot('42.1') + FONT.symbol(SYM.AMP);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'MAH_DRAWN',
|
name: 'MAH_DRAWN',
|
||||||
id: 12,
|
id: 12,
|
||||||
preview: function() {
|
preview: function() {
|
||||||
if (semver.lt(CONFIG.flightControllerVersion, '2.2.0')) {
|
return '1034' + FONT.symbol(SYM.MAH); // 4 chars
|
||||||
return FONT.symbol(SYM.MAH) + '690 '; // 4 chars
|
|
||||||
} else {
|
|
||||||
return '1034' + FONT.symbol(SYM.MAH); // 4 chars
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'WH_DRAWN',
|
name: 'WH_DRAWN',
|
||||||
id: 36,
|
id: 36,
|
||||||
preview: function() {
|
preview: function() {
|
||||||
if (semver.lt(CONFIG.flightControllerVersion, '2.2.0')) {
|
return FONT.embed_dot('1.25') + FONT.symbol(SYM.WH);
|
||||||
return FONT.symbol(SYM.WH) + FONT.embed_dot('1.25');
|
|
||||||
} else {
|
|
||||||
return FONT.embed_dot('1.25') + FONT.symbol(SYM.WH);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'POWER',
|
name: 'POWER',
|
||||||
id: 19,
|
id: 19,
|
||||||
preview: function() {
|
preview: function() {
|
||||||
if (semver.lt(CONFIG.flightControllerVersion, '2.2.0')) {
|
return ' 69' + FONT.symbol(SYM.WATT); // 3 chars
|
||||||
return FONT.symbol(SYM.WATT) + '50 '; // 3 chars
|
|
||||||
} else {
|
|
||||||
return ' 69' + FONT.symbol(SYM.WATT); // 3 chars
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'MAIN_BATT_REMAINING_CAPACITY',
|
name: 'MAIN_BATT_REMAINING_CAPACITY',
|
||||||
id: 37,
|
id: 37,
|
||||||
preview: function() {
|
preview: function() {
|
||||||
if (semver.lt(CONFIG.flightControllerVersion, '2.2.0')) {
|
return '1276' + FONT.symbol(SYM.MAH); // 4 chars
|
||||||
return FONT.symbol(SYM.MAH) + '690 '; // 4 chars
|
|
||||||
} else {
|
|
||||||
return '1276' + FONT.symbol(SYM.MAH); // 4 chars
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -1350,24 +1302,13 @@ OSD.constants = {
|
||||||
name: 'MSL_ALTITUDE',
|
name: 'MSL_ALTITUDE',
|
||||||
id: 96,
|
id: 96,
|
||||||
preview: function(osd_data) {
|
preview: function(osd_data) {
|
||||||
if (semver.lt(CONFIG.flightControllerVersion, '2.2.0')) {
|
switch (OSD.data.preferences.units) {
|
||||||
switch (OSD.data.preferences.units) {
|
case 0: // Imperial
|
||||||
case 0: // Imperial
|
case 3: // UK
|
||||||
case 3: // UK
|
case 4: // GA
|
||||||
case 4: // GA
|
return ' 375' + FONT.symbol(SYM.ALT_FT);
|
||||||
return FONT.symbol(SYM.ALT_FT) + '375';
|
default: // Metric
|
||||||
default: // Metric
|
return ' 114' + FONT.symbol(SYM.ALT_M);
|
||||||
return FONT.symbol(SYM.ALT_M) + '114';
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
switch (OSD.data.preferences.units) {
|
|
||||||
case 0: // Imperial
|
|
||||||
case 3: // UK
|
|
||||||
case 4: // GA
|
|
||||||
return ' 375' + FONT.symbol(SYM.ALT_FT);
|
|
||||||
default: // Metric
|
|
||||||
return ' 114' + FONT.symbol(SYM.ALT_M);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -1483,26 +1424,14 @@ OSD.constants = {
|
||||||
name: 'DISTANCE_TO_HOME',
|
name: 'DISTANCE_TO_HOME',
|
||||||
id: 23,
|
id: 23,
|
||||||
preview: function(osd_data) {
|
preview: function(osd_data) {
|
||||||
if (semver.lt(CONFIG.flightControllerVersion, '2.2.0')) {
|
switch (OSD.data.preferences.units) {
|
||||||
switch (OSD.data.preferences.units) {
|
case 0: // Imperial
|
||||||
case 0: // Imperial
|
case 3: // UK
|
||||||
case 3: // UK
|
return FONT.symbol(SYM.HOME) + FONT.embed_dot('0.98') + FONT.symbol(SYM.DIST_MI);
|
||||||
return FONT.symbol(SYM.HOME) + FONT.symbol(SYM.DIST_MI) + FONT.embed_dot('0.98');
|
case 4: // GA
|
||||||
case 4: // GA
|
return FONT.symbol(SYM.HOME) + FONT.embed_dot('0.85') + FONT.symbol(SYM.DIST_NM);
|
||||||
return FONT.symbol(SYM.HOME) + FONT.symbol(SYM.DIST_NM) + FONT.embed_dot('0.85');
|
default: // Metric
|
||||||
default: // Metric
|
return FONT.symbol(SYM.HOME) + FONT.embed_dot('1.57') + FONT.symbol(SYM.DIST_KM);
|
||||||
return FONT.symbol(SYM.HOME) + FONT.symbol(SYM.DIST_KM) + FONT.embed_dot('1.57');
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
switch (OSD.data.preferences.units) {
|
|
||||||
case 0: // Imperial
|
|
||||||
case 3: // UK
|
|
||||||
return FONT.symbol(SYM.HOME) + FONT.embed_dot('0.98') + FONT.symbol(SYM.DIST_MI);
|
|
||||||
case 4: // GA
|
|
||||||
return FONT.symbol(SYM.HOME) + FONT.embed_dot('0.85') + FONT.symbol(SYM.DIST_NM);
|
|
||||||
default: // Metric
|
|
||||||
return FONT.symbol(SYM.HOME) + FONT.embed_dot('1.57') + FONT.symbol(SYM.DIST_KM);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -1511,26 +1440,14 @@ OSD.constants = {
|
||||||
id: 40,
|
id: 40,
|
||||||
min_version: '1.9.1',
|
min_version: '1.9.1',
|
||||||
preview: function(osd_data) {
|
preview: function(osd_data) {
|
||||||
if (semver.lt(CONFIG.flightControllerVersion, '2.2.0')) {
|
switch (OSD.data.preferences.units) {
|
||||||
switch (OSD.data.preferences.units) {
|
case 0: // Imperial
|
||||||
case 0: // Imperial
|
case 3: // UK
|
||||||
case 3: // UK
|
return FONT.symbol(SYM.TRIP_DIST) + FONT.embed_dot('0.98') + FONT.symbol(SYM.DIST_MI);
|
||||||
return FONT.symbol(SYM.TRIP_DIST) + FONT.symbol(SYM.DIST_MI) + FONT.embed_dot('0.98');
|
case 4: // GA
|
||||||
case 4: // GA
|
return FONT.symbol(SYM.TRIP_DIST) + FONT.embed_dot('0.85') + FONT.symbol(SYM.DIST_NM);
|
||||||
return FONT.symbol(SYM.TRIP_DIST) + FONT.symbol(SYM.DIST_NM) + FONT.embed_dot('0.85');
|
default: // Metric
|
||||||
default: // Metric
|
return FONT.symbol(SYM.TRIP_DIST) + FONT.embed_dot('1.57') + FONT.symbol(SYM.DIST_KM);
|
||||||
return FONT.symbol(SYM.TRIP_DIST) + FONT.symbol(SYM.DIST_KM) + FONT.embed_dot('1.57');
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
switch (OSD.data.preferences.units) {
|
|
||||||
case 0: // Imperial
|
|
||||||
case 3: // UK
|
|
||||||
return FONT.symbol(SYM.TRIP_DIST) + FONT.embed_dot('0.98') + FONT.symbol(SYM.DIST_MI);
|
|
||||||
case 4: // GA
|
|
||||||
return FONT.symbol(SYM.TRIP_DIST) + FONT.embed_dot('0.85') + FONT.symbol(SYM.DIST_NM);
|
|
||||||
default: // Metric
|
|
||||||
return FONT.symbol(SYM.TRIP_DIST) + FONT.embed_dot('1.57') + FONT.symbol(SYM.DIST_KM);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -2117,12 +2034,10 @@ OSD.msp = {
|
||||||
result.push16(OSD.data.alarms.max_altitude);
|
result.push16(OSD.data.alarms.max_altitude);
|
||||||
result.push16(OSD.data.alarms.dist);
|
result.push16(OSD.data.alarms.dist);
|
||||||
result.push16(OSD.data.alarms.max_neg_altitude);
|
result.push16(OSD.data.alarms.max_neg_altitude);
|
||||||
if (semver.gte(CONFIG.flightControllerVersion, '2.2.0')) {
|
result.push16(OSD.data.alarms.gforce);
|
||||||
result.push16(OSD.data.alarms.gforce);
|
result.push16(OSD.data.alarms.gforce_axis_min);
|
||||||
result.push16(OSD.data.alarms.gforce_axis_min);
|
result.push16(OSD.data.alarms.gforce_axis_max);
|
||||||
result.push16(OSD.data.alarms.gforce_axis_max);
|
result.push8(OSD.data.alarms.current);
|
||||||
result.push8(OSD.data.alarms.current);
|
|
||||||
}
|
|
||||||
result.push16(OSD.data.alarms.imu_temp_alarm_min);
|
result.push16(OSD.data.alarms.imu_temp_alarm_min);
|
||||||
result.push16(OSD.data.alarms.imu_temp_alarm_max);
|
result.push16(OSD.data.alarms.imu_temp_alarm_max);
|
||||||
result.push16(OSD.data.alarms.baro_temp_alarm_min);
|
result.push16(OSD.data.alarms.baro_temp_alarm_min);
|
||||||
|
@ -2138,12 +2053,10 @@ OSD.msp = {
|
||||||
OSD.data.alarms.max_altitude = alarms.readU16();
|
OSD.data.alarms.max_altitude = alarms.readU16();
|
||||||
OSD.data.alarms.dist = alarms.readU16();
|
OSD.data.alarms.dist = alarms.readU16();
|
||||||
OSD.data.alarms.max_neg_altitude = alarms.readU16();
|
OSD.data.alarms.max_neg_altitude = alarms.readU16();
|
||||||
if (semver.gte(CONFIG.flightControllerVersion, '2.2.0')) {
|
OSD.data.alarms.gforce = alarms.readU16();
|
||||||
OSD.data.alarms.gforce = alarms.readU16();
|
OSD.data.alarms.gforce_axis_min = alarms.read16();
|
||||||
OSD.data.alarms.gforce_axis_min = alarms.read16();
|
OSD.data.alarms.gforce_axis_max = alarms.read16();
|
||||||
OSD.data.alarms.gforce_axis_max = alarms.read16();
|
OSD.data.alarms.current = alarms.readU8();
|
||||||
OSD.data.alarms.current = alarms.readU8();
|
|
||||||
}
|
|
||||||
OSD.data.alarms.imu_temp_alarm_min = alarms.read16();
|
OSD.data.alarms.imu_temp_alarm_min = alarms.read16();
|
||||||
OSD.data.alarms.imu_temp_alarm_max = alarms.read16();
|
OSD.data.alarms.imu_temp_alarm_max = alarms.read16();
|
||||||
OSD.data.alarms.baro_temp_alarm_min = alarms.read16();
|
OSD.data.alarms.baro_temp_alarm_min = alarms.read16();
|
||||||
|
|
|
@ -54,14 +54,14 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="throttle_idle-info" class="info-box"></div>
|
<div id="throttle_idle-info" class="info-box"></div>
|
||||||
<div class="number requires-v2_4">
|
<div class="number">
|
||||||
<input id="throttle_idle" data-setting="throttle_idle" type="number" data-step="1.0" />
|
<input id="throttle_idle" data-setting="throttle_idle" type="number" data-step="1.0" />
|
||||||
<label for="throttle_idle">
|
<label for="throttle_idle">
|
||||||
<span data-i18n="throttleIdle"></span>
|
<span data-i18n="throttleIdle"></span>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="number requires-v2_4">
|
<div class="number">
|
||||||
<input id="motor_poles" data-setting="motor_poles" type="number" />
|
<input id="motor_poles" data-setting="motor_poles" type="number" />
|
||||||
<label for="motor_poles">
|
<label for="motor_poles">
|
||||||
<span data-i18n="motor_poles"></span>
|
<span data-i18n="motor_poles"></span>
|
||||||
|
|
|
@ -70,12 +70,6 @@ TABS.outputs.initialize = function (callback) {
|
||||||
process_servos();
|
process_servos();
|
||||||
processConfiguration();
|
processConfiguration();
|
||||||
|
|
||||||
if (semver.gte(CONFIG.flightControllerVersion, "2.4.0")) {
|
|
||||||
$('.requires-v2_4').show();
|
|
||||||
} else {
|
|
||||||
$('.requires-v2_4').hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
finalize();
|
finalize();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -313,9 +313,9 @@
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="clear-both requires-v2_4"></div>
|
<div class="clear-both"></div>
|
||||||
<div class="tab_subtitle requires-v2_4" data-i18n="rpmFilters" style="margin-top: 1em;"></div>
|
<div class="tab_subtitle" data-i18n="rpmFilters" style="margin-top: 1em;"></div>
|
||||||
<div class="cf_column requires-v2_4">
|
<div class="cf_column">
|
||||||
<table class="settings-table settings-table--filtering">
|
<table class="settings-table settings-table--filtering">
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
|
|
|
@ -112,25 +112,6 @@ TABS.pid_tuning.initialize = function (callback) {
|
||||||
// translate to user-selected language
|
// translate to user-selected language
|
||||||
localize();
|
localize();
|
||||||
|
|
||||||
if (FC.isCdComponentUsed()) {
|
|
||||||
$('th.feedforward').html(chrome.i18n.getMessage('pidTuningControlDerivative'));
|
|
||||||
$('th.feedforward').attr('title', chrome.i18n.getMessage('pidTuningControlDerivative'));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (semver.gte(CONFIG.flightControllerVersion, "2.4.0")) {
|
|
||||||
$('.requires-v2_4').show();
|
|
||||||
} else {
|
|
||||||
$('.requires-v2_4').hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (semver.gte(CONFIG.flightControllerVersion, "2.6.0")) {
|
|
||||||
$('.requires-v2_6').show();
|
|
||||||
$('.hides-v2_6').hide();
|
|
||||||
} else {
|
|
||||||
$('.requires-v2_6').hide();
|
|
||||||
$('.hides-v2_6').show();
|
|
||||||
}
|
|
||||||
|
|
||||||
helper.tabs.init($('.tab-pid_tuning'));
|
helper.tabs.init($('.tab-pid_tuning'));
|
||||||
helper.features.updateUI($('.tab-pid_tuning'), FEATURES);
|
helper.features.updateUI($('.tab-pid_tuning'), FEATURES);
|
||||||
|
|
||||||
|
|
|
@ -131,15 +131,6 @@ TABS.ports.initialize = function (callback) {
|
||||||
'115200'
|
'115200'
|
||||||
];
|
];
|
||||||
|
|
||||||
var telemetryBaudRates_pre1_6_3 = [
|
|
||||||
'AUTO',
|
|
||||||
'9600',
|
|
||||||
'19200',
|
|
||||||
'38400',
|
|
||||||
'57600',
|
|
||||||
'115200'
|
|
||||||
];
|
|
||||||
|
|
||||||
var telemetryBaudRates_post1_6_3 = [
|
var telemetryBaudRates_post1_6_3 = [
|
||||||
'AUTO',
|
'AUTO',
|
||||||
'1200',
|
'1200',
|
||||||
|
@ -210,9 +201,8 @@ TABS.ports.initialize = function (callback) {
|
||||||
}
|
}
|
||||||
|
|
||||||
$elements = $('select.telemetry_baudrate');
|
$elements = $('select.telemetry_baudrate');
|
||||||
var telemetryBaudRates = semver.gte(CONFIG.flightControllerVersion, "1.6.3") ? telemetryBaudRates_post1_6_3 : telemetryBaudRates_pre1_6_3;
|
for (i = 0; i < telemetryBaudRates_post1_6_3.length; i++) {
|
||||||
for (i = 0; i < telemetryBaudRates.length; i++) {
|
$elements.append('<option value="' + telemetryBaudRates_post1_6_3[i] + '">' + telemetryBaudRates_post1_6_3[i] + '</option>');
|
||||||
$elements.append('<option value="' + telemetryBaudRates[i] + '">' + telemetryBaudRates[i] + '</option>');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$elements = $('select.blackbox_baudrate');
|
$elements = $('select.blackbox_baudrate');
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue