Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/iNavFlight/inav-configurator.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md48
-rwxr-xr-x_locales/en/messages.json36
-rw-r--r--js/fc.js295
-rw-r--r--js/gui.js1
-rw-r--r--js/msp.js2
-rw-r--r--js/msp/MSPCodes.js4
-rw-r--r--js/msp/MSPHelper.js147
-rwxr-xr-xjs/serial_backend.js10
-rw-r--r--js/settings.js2
-rw-r--r--js/tasks.js25
-rw-r--r--main.css12
-rwxr-xr-xmain.html1
-rw-r--r--main.js3
-rwxr-xr-xpackage.json2
-rw-r--r--resources/osd/vision.mcm70
-rw-r--r--resources/osd/vision.pngbin12637 -> 12591 bytes
-rw-r--r--resources/osd/vision/104.pngbin220 -> 1668 bytes
-rw-r--r--src/css/tabs/led_strip.css7
-rw-r--r--src/css/tabs/transponder.css74
-rwxr-xr-xtabs/calibration.js2
-rw-r--r--tabs/configuration.js3
-rw-r--r--tabs/led_strip.html5
-rw-r--r--tabs/led_strip.js270
-rw-r--r--tabs/mission_control.js12
-rw-r--r--tabs/osd.js193
-rw-r--r--tabs/outputs.html4
-rw-r--r--tabs/outputs.js6
-rw-r--r--[-rwxr-xr-x]tabs/pid_tuning.html6
-rw-r--r--[-rwxr-xr-x]tabs/pid_tuning.js14
-rw-r--r--tabs/ports.js14
-rw-r--r--tabs/transponder.html48
-rw-r--r--tabs/transponder.js101
32 files changed, 339 insertions, 1078 deletions
diff --git a/README.md b/README.md
index f1a4e601..906dbfab 100644
--- a/README.md
+++ b/README.md
@@ -6,6 +6,18 @@ It runs as an app within Google Chrome and allows you to configure the INAV soft
Various types of aircraft are supported by the tool and by INAV, e.g. quadcopters, hexacopters, octocopters and fixed-wing aircraft.
+# Support
+
+INAV Configurator comes `as is`, without any warranty and support from authors. If you found a bug, please create an issue on [GitHub](https://github.com/iNavFlight/inav-configurator/issues).
+
+GitHub issue tracker is reserved for bugs and other technical problems. If you do not know how to setup
+everything, hardware is not working or have any other _support_ problem, please consult:
+
+* [INAV Discord Server](https://discord.gg/peg2hhbYwN)
+* [INAV Official on Facebook](https://www.facebook.com/groups/INAVOfficial)
+* [RC Groups Support](https://www.rcgroups.com/forums/showthread.php?2495732-Cleanflight-iNav-(navigation-rewrite)-project)
+* [INAV Official on Telegram](https://t.me/INAVFlight)
+
## INAV Configurator start minimized, what should I do?
You have to remove `C:\Users%Your_UserNname%\AppData\Local\inav-configurator` folder and all its content.
@@ -42,11 +54,7 @@ Depending on target operating system, _INAV Configurator_ is distributed as _sta
1. Run INAV Configurator
1. Configurator is not signed, so you have to allow Mac to run untrusted application. There might be a monit for it during first run
-### ChromeOS
-
-**INAV Configurator** form ChromeOS is available in [Chrome Web Store](https://chrome.google.com/webstore/detail/inav-configurator/fmaidjmgkdkpafmbnmigkpdnpdhopgel)
-
-### Building and running INAV Configurator locally (for development or Linux users)
+## Building and running INAV Configurator locally (for development or Linux users)
For local development, **node.js** build system is used.
@@ -68,7 +76,13 @@ in the `./dist/` directory.
directory. Running this task on macOS or Linux requires Wine, since it's needed to set the icon
for the Windows app. If you don't have Wine installed you can create a release by running the **release-only-linux** task.
- To build a specific release, use the command `release --platform="win64"` for example.
+To build a specific release, use the command `release --platform="win64"` for example.
+
+### Running with debug | Inspector
+
+To be able to open Inspector, you will need SDK flavours of NW.js
+
+`npm install nw@0.61.0 --nwjs_build_type=sdk`
## Different map providers
@@ -103,15 +117,6 @@ INAV Configurator is shipped **WITHOUT** API key for Bing Maps. That means: ever
1. Enter MapProxy service layer (inav_layer if configured from MAPPROXY.md)
1. Once completed, you can zoom in on area you will be flying in while connected to the internet in either GPS or Mission Control tab to save the cache for offline use
-## Authors
-
-Konstantin Sharlaimov/DigitalEntity - maintainer of the INAV firmware and configurator.
-
-INAV Configurator was originally a [fork](#credits) of Cleanflight Configurator with support for INAV instead of Cleanflight.
-
-This configurator is the only configurator with support for INAV specific features. It will likely require that you run the latest firmware on the flight controller.
-If you are experiencing any problems please make sure you are running the [latest firmware version](https://github.com/iNavFlight/inav/releases).
-
## Notes
### WebGL
@@ -123,14 +128,6 @@ Make sure Settings -> System -> "User hardware acceleration when available" is c
1. Dont forget to add your user into dialout group "sudo usermod -aG dialout YOUR_USERNAME" for serial access
2. If you have 3D model animation problems, enable "Override software rendering list" in Chrome flags chrome://flags/#ignore-gpu-blacklist
-## Support
-
-GitHub issue tracker is reserved for bugs and other technical problems. If you do not know how to setup
-everything, hardware is not working or have any other _support_ problem, please consult:
-
-* [rcgroups main thread](https://www.rcgroups.com/forums/showthread.php?2495732-Cleanflight-iNav-(navigation-rewrite)-project)
-* [Telegram Group](https://t.me/INAVFlight)
-
## Issue trackers
For INAV configurator issues raise them here
@@ -144,8 +141,3 @@ https://github.com/iNavFlight/inav/issues
## Developers
We accept clean and reasonable patches, submit them!
-
-## Credits
-
-ctn - primary author and maintainer of Baseflight Configurator.
-Hydra - author and maintainer of Cleanflight Configurator from which this project was forked.
diff --git a/_locales/en/messages.json b/_locales/en/messages.json
index 1e92ba52..40ffbd3b 100755
--- a/_locales/en/messages.json
+++ b/_locales/en/messages.json
@@ -112,9 +112,6 @@
"tabFailsafe": {
"message": "Failsafe"
},
- "tabTransponder": {
- "message": "Race Transponder"
- },
"tabGPS": {
"message": "GPS"
},
@@ -681,12 +678,6 @@
"featureCHANNEL_FORWARDING": {
"message": "Forward aux channels to servo outputs"
},
- "featureTRANSPONDER": {
- "message": "Race Transponder"
- },
- "featureTRANSPONDERTip": {
- "message": "Configure via the Race Transponder tab after enabling."
- },
"featureSOFTSPI": {
"message": "CPU based SPI"
},
@@ -1710,33 +1701,6 @@
"programmingEepromSaved": {
"message": "EEPROM <span style=\"color: #37a8db\">saved</span>: Programming"
},
- "transponderNotSupported": {
- "message": "Your flight controller's firmware does not support transponder functionality."
- },
- "transponderHelp": {
- "message": "Configure your transponder code here. Note: Only valid codes will be recognised by race timing systems. Valid transponder codes can be obtained from <a href=\"http://seriouslypro.com/transponder-codes\" target=\"_blank\">Seriously Pro</a>."
- },
- "transponderInformation": {
- "message": "Transponders systems allow race organizers to time your laps. The transponder is fitted to your aircraft and when your aircraft passes the timing gate the track-side receiver registers your code and records your laptime. When fitting an IR based transponder your should ensure that it points outward from your aircraft towards the track-side receivers and that the light beam is not obstructed by your airframe, battery-straps, cables, propellers, etc."
- },
- "transponderConfiguration": {
- "message": "Configuration"
- },
- "transponderData": {
- "message": "Data"
- },
- "transponderDataHelp": {
- "message": "Hexadecimal digits only, 0-9, A-F"
- },
- "transponderButtonSave": {
- "message": "Save"
- },
- "transponderDataInvalid": {
- "message": "Transponder data is <span style=\"color: red\">invalid</span>"
- },
- "transponderEepromSaved": {
- "message": "EEPROM <span style=\"color: #37a8db\">saved</span>: Transponder"
- },
"servosChangeDirection": {
"message": "Change Direction in TX To Match"
},
diff --git a/js/fc.js b/js/fc.js
index e81cdcf3..62800900 100644
--- a/js/fc.js
+++ b/js/fc.js
@@ -38,7 +38,6 @@ var CONFIG,
DATAFLASH,
SDCARD,
BLACKBOX,
- TRANSPONDER,
RC_deadband,
SENSOR_ALIGNMENT,
RX_CONFIG,
@@ -77,14 +76,11 @@ var FC = {
return (MIXER_CONFIG.platformType == PLATFORM_MULTIROTOR || MIXER_CONFIG.platformType == PLATFORM_TRICOPTER);
},
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 () {
return true; // Currently all platforms use D term
},
- isCdComponentUsed: function () {
- return (MIXER_CONFIG.platformType == PLATFORM_MULTIROTOR || MIXER_CONFIG.platformType == PLATFORM_TRICOPTER);
- },
resetState: function () {
SENSOR_STATUS = {
isHardwareHealthy: 0,
@@ -252,23 +248,6 @@ var FC = {
packetCount: 0
};
- /* MISSION_PLANNER = {
- maxWaypoints: 0,
- isValidMission: 0,
- countBusyPoints: 0,
- bufferPoint: {
- number: 0,
- action: 0,
- lat: 0,
- lon: 0,
- alt: 0,
- endMission: 0,
- p1: 0,
- p2: 0,
- p3: 0
- }
- }; */
-
MISSION_PLANNER = new WaypointCollection();
ANALOG = {
@@ -479,11 +458,6 @@ var FC = {
blackboxRateDenom: 1
};
- TRANSPONDER = {
- supported: false,
- data: []
- };
-
RC_deadband = {
deadband: 0,
yaw_deadband: 0,
@@ -601,10 +575,6 @@ var FC = {
{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();
},
isFeatureEnabled: function (featureName, features) {
@@ -664,168 +634,69 @@ var FC = {
];
},
getEscProtocols: function () {
-
- if (semver.gte(CONFIG.flightControllerVersion, "3.1.0")) {
- return {
- 0: {
- name: "STANDARD",
- message: null,
- defaultRate: 400,
- rates: {
- 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"
- }
+ return {
+ 0: {
+ name: "STANDARD",
+ message: null,
+ defaultRate: 400,
+ rates: {
+ 50: "50Hz",
+ 400: "400Hz"
}
- };
- } else {
- return {
- 0: {
- name: "STANDARD",
- message: null,
- defaultRate: 400,
- rates: {
- 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"
- }
+ },
+ 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"
+ }
+ }
+ };
},
getServoRates: function () {
return {
@@ -866,37 +737,6 @@ var FC = {
getOsdDisabledFields: function () {
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 () {
return {
0: "OK_TO_ARM",
@@ -933,7 +773,7 @@ var FC = {
]
},
getPidNames: function () {
- let list = [
+ return [
'Roll',
'Pitch',
'Yaw',
@@ -943,14 +783,9 @@ var FC = {
'Surface',
'Level',
'Heading Hold',
- 'Velocity Z'
+ 'Velocity Z',
+ 'Nav Heading'
];
-
- if (semver.gte(CONFIG.flightControllerVersion, '2.5.0')) {
- list.push("Nav Heading")
- }
-
- return list;
},
getRthAltControlMode: function () {
return ["Current", "Extra", "Fixed", "Max", "At least", "At least, linear descent"];
diff --git a/js/gui.js b/js/gui.js
index 46fe85db..4765e6ba 100644
--- a/js/gui.js
+++ b/js/gui.js
@@ -18,7 +18,6 @@ var GUI_control = function () {
];
this.defaultAllowedTabsWhenConnected = [
'failsafe',
- 'transponder',
'adjustments',
'auxiliary',
'cli',
diff --git a/js/msp.js b/js/msp.js
index e98cd4fd..727f9fa0 100644
--- a/js/msp.js
+++ b/js/msp.js
@@ -72,7 +72,7 @@ var MSP = {
ledDirectionLetters: ['n', 'e', 's', 'w', 'u', 'd'], // in LSB bit order
ledFunctionLetters: ['i', 'w', 'f', 'a', 't', 'r', 'c', 'g', 's', 'b', 'l'], // in LSB bit order
- ledBaseFunctionLetters: ['c', 'f', 'a', 'l', 's', 'g', 'r'], // in LSB bit
+ ledBaseFunctionLetters: ['c', 'f', 'a', 'l', 's', 'g', 'r', 'h'], // in LSB bit
ledOverlayLetters: ['t', 'o', 'b', 'n', 'i', 'w'], // in LSB bit
last_received_timestamp: null,
diff --git a/js/msp/MSPCodes.js b/js/msp/MSPCodes.js
index 6e39f7f0..856a6ade 100644
--- a/js/msp/MSPCodes.js
+++ b/js/msp/MSPCodes.js
@@ -64,8 +64,6 @@ var MSPCodes = {
MSP_SDCARD_SUMMARY: 79,
MSP_BLACKBOX_CONFIG: 80,
MSP_SET_BLACKBOX_CONFIG: 81,
- MSP_TRANSPONDER_CONFIG: 82,
- MSP_SET_TRANSPONDER_CONFIG: 83,
MSP_OSD_CONFIG: 84,
MSP_SET_OSD_CONFIG: 85,
MSP_OSD_CHAR_READ: 86,
@@ -107,7 +105,7 @@ var MSPCodes = {
MSP_RC_DEADBAND: 125,
MSP_SENSOR_ALIGNMENT: 126,
MSP_LED_STRIP_MODECOLOR:127,
- MSP_STATUS_EX: 150,
+ MSP_STATUS_EX: 150, // Deprecated, do not use.
MSP_SENSOR_STATUS: 151,
MSP_SET_RAW_RC: 200,
diff --git a/js/msp/MSPHelper.js b/js/msp/MSPHelper.js
index 976d39f4..f8f1c324 100644
--- a/js/msp/MSPHelper.js
+++ b/js/msp/MSPHelper.js
@@ -68,27 +68,6 @@ var mspHelper = (function (gui) {
colorCount,
color;
if (!dataHandler.unsupported || dataHandler.unsupported) switch (dataHandler.code) {
- case MSPCodes.MSP_STATUS:
- console.log('Using deprecated msp command: MSP_STATUS');
- CONFIG.cycleTime = data.getUint16(0, true);
- CONFIG.i2cError = data.getUint16(2, true);
- CONFIG.activeSensors = data.getUint16(4, true);
- CONFIG.mode = data.getUint32(6, true);
- CONFIG.profile = data.getUint8(10);
- gui.updateProfileChange();
- gui.updateStatusBar();
- break;
- case MSPCodes.MSP_STATUS_EX:
- CONFIG.cycleTime = data.getUint16(0, true);
- CONFIG.i2cError = data.getUint16(2, true);
- CONFIG.activeSensors = data.getUint16(4, true);
- CONFIG.profile = data.getUint8(10);
- CONFIG.cpuload = data.getUint16(11, true);
- CONFIG.armingFlags = data.getUint16(13, true);
- gui.updateStatusBar();
- gui.updateProfileChange();
- break;
-
case MSPCodes.MSPV2_INAV_STATUS:
CONFIG.cycleTime = data.getUint16(offset, true);
offset += 2;
@@ -125,12 +104,7 @@ var mspHelper = (function (gui) {
SENSOR_STATUS.rangeHwStatus = data.getUint8(6);
SENSOR_STATUS.speedHwStatus = data.getUint8(7);
SENSOR_STATUS.flowHwStatus = data.getUint8(8);
-
- if (semver.gte(CONFIG.flightControllerVersion, "3.1.0")) {
- SENSOR_STATUS.imu2HwStatus = data.getUint8(9);
- } else {
- SENSOR_STATUS.imu2HwStatus = 0;
- }
+ SENSOR_STATUS.imu2HwStatus = data.getUint8(9);
sensor_status_ex(SENSOR_STATUS);
break;
@@ -720,7 +694,7 @@ var mspHelper = (function (gui) {
BOARD_ALIGNMENT.pitch = data.getInt16(2, true); // -180 - 360
BOARD_ALIGNMENT.yaw = data.getInt16(4, true); // -180 - 360
break;
-
+
case MSPCodes.MSP_SET_BOARD_ALIGNMENT:
console.log('MSP_SET_BOARD_ALIGNMENT saved');
break;
@@ -1128,17 +1102,6 @@ var mspHelper = (function (gui) {
case MSPCodes.MSP_SET_BLACKBOX_CONFIG:
console.log("Blackbox config saved");
break;
- case MSPCodes.MSP_TRANSPONDER_CONFIG:
- TRANSPONDER.supported = (data.getUint8(offset++) & 1) != 0;
- TRANSPONDER.data = [];
- var bytesRemaining = data.byteLength - offset;
- for (i = 0; i < bytesRemaining; i++) {
- TRANSPONDER.data.push(data.getUint8(offset++));
- }
- break;
- case MSPCodes.MSP_SET_TRANSPONDER_CONFIG:
- console.log("Transponder config saved");
- break;
case MSPCodes.MSP_VTX_CONFIG:
VTX_CONFIG.device_type = data.getUint8(offset++);
if (VTX_CONFIG.device_type != VTX.DEV_UNKNOWN) {
@@ -1274,11 +1237,9 @@ var mspHelper = (function (gui) {
CALIBRATION_DATA.magZero.Z = data.getInt16(17, true);
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.Y = data.getInt16(23, true);
- CALIBRATION_DATA.magGain.Z = data.getInt16(25, true);
- }
+ CALIBRATION_DATA.magGain.X = data.getInt16(21, true);
+ CALIBRATION_DATA.magGain.Y = data.getInt16(23, true);
+ CALIBRATION_DATA.magGain.Z = data.getInt16(25, true);
break;
@@ -1520,7 +1481,7 @@ var mspHelper = (function (gui) {
// fire callback
if (callback) {
- callback({'command': dataHandler.code, 'data': data, 'length': dataHandler.message_length_expected});
+ callback({ 'command': dataHandler.code, 'data': data, 'length': dataHandler.message_length_expected });
}
break;
}
@@ -1559,7 +1520,7 @@ var mspHelper = (function (gui) {
buffer.push(specificByte(CURRENT_METER_CONFIG.capacity, 0));
buffer.push(specificByte(CURRENT_METER_CONFIG.capacity, 1));
break;
-
+
case MSPCodes.MSP_SET_VTX_CONFIG:
if (VTX_CONFIG.band > 0) {
buffer.push16(((VTX_CONFIG.band - 1) * 8) + (VTX_CONFIG.channel - 1));
@@ -1772,12 +1733,6 @@ var mspHelper = (function (gui) {
buffer.push(FAILSAFE_CONFIG.failsafe_min_distance_procedure);
break;
- case MSPCodes.MSP_SET_TRANSPONDER_CONFIG:
- for (i = 0; i < TRANSPONDER.data.length; i++) {
- buffer.push(TRANSPONDER.data[i]);
- }
- break;
-
case MSPCodes.MSP_SET_CHANNEL_FORWARDING:
for (i = 0; i < SERVO_CONFIG.length; i++) {
var out = SERVO_CONFIG[i].indexOfChannelToForward;
@@ -1925,16 +1880,14 @@ var mspHelper = (function (gui) {
buffer.push(lowByte(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(highByte(CALIBRATION_DATA.magGain.X));
+ buffer.push(lowByte(CALIBRATION_DATA.magGain.X));
+ buffer.push(highByte(CALIBRATION_DATA.magGain.X));
- buffer.push(lowByte(CALIBRATION_DATA.magGain.Y));
- buffer.push(highByte(CALIBRATION_DATA.magGain.Y));
+ buffer.push(lowByte(CALIBRATION_DATA.magGain.Y));
+ buffer.push(highByte(CALIBRATION_DATA.magGain.Y));
- buffer.push(lowByte(CALIBRATION_DATA.magGain.Z));
- buffer.push(highByte(CALIBRATION_DATA.magGain.Z));
- }
+ buffer.push(lowByte(CALIBRATION_DATA.magGain.Z));
+ buffer.push(highByte(CALIBRATION_DATA.magGain.Z));
break;
@@ -2151,9 +2104,9 @@ var mspHelper = (function (gui) {
};
self.sendBlackboxConfiguration = function (onDataCallback) {
- var buffer = [];
- var messageId = MSPCodes.MSP_SET_BLACKBOX_CONFIG;
- buffer.push(BLACKBOX.blackboxDevice & 0xFF);
+ var buffer = [];
+ var messageId = MSPCodes.MSP_SET_BLACKBOX_CONFIG;
+ buffer.push(BLACKBOX.blackboxDevice & 0xFF);
messageId = MSPCodes.MSP2_SET_BLACKBOX_CONFIG;
buffer.push(lowByte(BLACKBOX.blackboxRateNum));
buffer.push(highByte(BLACKBOX.blackboxRateNum));
@@ -2161,7 +2114,7 @@ var mspHelper = (function (gui) {
buffer.push(highByte(BLACKBOX.blackboxRateDenom));
//noinspection JSUnusedLocalSymbols
MSP.send_message(messageId, buffer, false, function (response) {
- onDataCallback();
+ onDataCallback();
});
};
@@ -2328,9 +2281,7 @@ var mspHelper = (function (gui) {
buffer.push(conditionIndex);
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.getOperandAType());
buffer.push(specificByte(condition.getOperandAValue(), 0));
@@ -2623,7 +2574,7 @@ var mspHelper = (function (gui) {
/*
ledDirectionLetters: ['n', 'e', 's', 'w', 'u', 'd'], // in LSB bit order
ledFunctionLetters: ['i', 'w', 'f', 'a', 't', 'r', 'c', 'g', 's', 'b', 'l'], // in LSB bit order
- ledBaseFunctionLetters: ['c', 'f', 'a', 'l', 's', 'g', 'r'], // in LSB bit
+ ledBaseFunctionLetters: ['c', 'f', 'a', 'l', 's', 'g', 'r', 'h'], // in LSB bit
ledOverlayLetters: ['t', 'o', 'b', 'n', 'i', 'w'], // in LSB bit
*/
@@ -2714,10 +2665,6 @@ var mspHelper = (function (gui) {
MSP.send_message(MSPCodes.MSP_INAV_PID, false, false, callback);
};
- self.loadLoopTime = function (callback) {
- MSP.send_message(MSPCodes.MSP_LOOP_TIME, false, false, callback);
- };
-
self.loadAdvancedConfig = function (callback) {
MSP.send_message(MSPCodes.MSP_ADVANCED_CONFIG, false, false, callback);
};
@@ -2746,10 +2693,6 @@ var mspHelper = (function (gui) {
MSP.send_message(MSPCodes.MSP_PIDNAMES, false, false, callback);
};
- self.loadStatus = function (callback) {
- MSP.send_message(MSPCodes.MSP_STATUS, false, false, callback);
- };
-
self.loadFeatures = function (callback) {
MSP.send_message(MSPCodes.MSP_FEATURE, false, false, callback);
};
@@ -2757,7 +2700,7 @@ var mspHelper = (function (gui) {
self.loadBoardAlignment = function (callback) {
MSP.send_message(MSPCodes.MSP_BOARD_ALIGNMENT, false, false, callback);
};
-
+
self.loadCurrentMeterConfig = function (callback) {
MSP.send_message(MSPCodes.MSP_CURRENT_METER_CONFIG, false, false, callback);
};
@@ -2779,7 +2722,7 @@ var mspHelper = (function (gui) {
};
self.loadBatteryConfig = function (callback) {
- MSP.send_message(MSPCodes.MSPV2_BATTERY_CONFIG, false, false, callback);
+ MSP.send_message(MSPCodes.MSPV2_BATTERY_CONFIG, false, false, callback);
};
self.loadArmingConfig = function (callback) {
@@ -2834,10 +2777,6 @@ var mspHelper = (function (gui) {
MSP.send_message(MSPCodes.MSP_SET_INAV_PID, mspHelper.crunch(MSPCodes.MSP_SET_INAV_PID), false, callback);
};
- self.saveLooptimeConfig = function (callback) {
- MSP.send_message(MSPCodes.MSP_SET_LOOP_TIME, mspHelper.crunch(MSPCodes.MSP_SET_LOOP_TIME), false, callback);
- };
-
self.saveAdvancedConfig = function (callback) {
MSP.send_message(MSPCodes.MSP_SET_ADVANCED_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_ADVANCED_CONFIG), false, callback);
};
@@ -2947,7 +2886,7 @@ var mspHelper = (function (gui) {
};
self.saveFwConfig = function (callback) {
- MSP.send_message(MSPCodes.MSP_SET_FW_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_FW_CONFIG), false, callback);
+ MSP.send_message(MSPCodes.MSP_SET_FW_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_FW_CONFIG), false, callback);
};
self.getMissionInfo = function (callback) {
@@ -2999,7 +2938,7 @@ var mspHelper = (function (gui) {
function nextSafehome() {
safehomeId++;
- if (safehomeId < SAFEHOMES.getMaxSafehomeCount()-1) {
+ if (safehomeId < SAFEHOMES.getMaxSafehomeCount() - 1) {
MSP.send_message(MSPCodes.MSP2_INAV_SAFEHOME, [safehomeId], false, nextSafehome);
}
else {
@@ -3014,7 +2953,7 @@ var mspHelper = (function (gui) {
function nextSendSafehome() {
safehomeId++;
- if (safehomeId < SAFEHOMES.getMaxSafehomeCount()-1) {
+ if (safehomeId < SAFEHOMES.getMaxSafehomeCount() - 1) {
MSP.send_message(MSPCodes.MSP2_INAV_SET_SAFEHOME, SAFEHOMES.extractBuffer(safehomeId), false, nextSendSafehome);
}
else {
@@ -3043,9 +2982,7 @@ var mspHelper = (function (gui) {
var setting = {};
// Discard setting name
- if (semver.gte(CONFIG.apiVersion, "2.4.0")) {
- result.data.readString();
- }
+ result.data.readString();
// Discard PG ID
result.data.readU16();
@@ -3073,7 +3010,7 @@ var mspHelper = (function (gui) {
for (var ii = setting.min; ii <= setting.max; ii++) {
values.push(result.data.readString());
}
- setting.table = {values: values};
+ setting.table = { values: values };
}
SETTINGS[name] = setting;
return setting;
@@ -3128,7 +3065,7 @@ var mspHelper = (function (gui) {
default:
throw "Unknown setting type " + setting.type;
}
- return {setting: setting, value: value};
+ return { setting: setting, value: value };
});
});
};
@@ -3217,8 +3154,8 @@ var mspHelper = (function (gui) {
MSP.send_message(MSPCodes.MSP_MOTOR, false, false, callback);
};
- self.getCraftName = function(callback) {
- MSP.send_message(MSPCodes.MSP_NAME, false, false, function(resp) {
+ self.getCraftName = function (callback) {
+ MSP.send_message(MSPCodes.MSP_NAME, false, false, function (resp) {
var name = resp.data.readString();
if (callback) {
callback(name);
@@ -3226,7 +3163,7 @@ var mspHelper = (function (gui) {
});
};
- self.setCraftName = function(name, callback) {
+ self.setCraftName = function (name, callback) {
var data = [];
name = name || "";
for (var ii = 0; ii < name.length; ii++) {
@@ -3247,26 +3184,26 @@ var mspHelper = (function (gui) {
MSP.send_message(MSPCodes.MSP_VTX_CONFIG, false, false, callback);
};
- self.saveVTXConfig = function(callback) {
+ self.saveVTXConfig = function (callback) {
MSP.send_message(MSPCodes.MSP_SET_VTX_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_VTX_CONFIG), false, callback);
};
- self.loadBrakingConfig = function(callback) {
+ self.loadBrakingConfig = function (callback) {
MSP.send_message(MSPCodes.MSP2_INAV_MC_BRAKING, false, false, callback);
}
- self.saveBrakingConfig = function(callback) {
+ self.saveBrakingConfig = function (callback) {
MSP.send_message(MSPCodes.MSP2_INAV_SET_MC_BRAKING, mspHelper.crunch(MSPCodes.MSP2_INAV_SET_MC_BRAKING), false, callback);
};
- self.loadParameterGroups = function(callback) {
+ self.loadParameterGroups = function (callback) {
MSP.send_message(MSPCodes.MSP2_COMMON_PG_LIST, false, false, function (resp) {
var groups = [];
while (resp.data.offset < resp.data.byteLength) {
var id = resp.data.readU16();
var start = resp.data.readU16();
var end = resp.data.readU16();
- groups.push({id: id, start: start, end: end});
+ groups.push({ id: id, start: start, end: end });
}
if (callback) {
callback(groups);
@@ -3274,7 +3211,7 @@ var mspHelper = (function (gui) {
});
};
- self.loadBrakingConfig = function(callback) {
+ self.loadBrakingConfig = function (callback) {
MSP.send_message(MSPCodes.MSP2_INAV_MC_BRAKING, false, false, callback);
}
@@ -3283,19 +3220,11 @@ var mspHelper = (function (gui) {
};
self.loadGlobalVariablesStatus = function (callback) {
- if (semver.gte(CONFIG.flightControllerVersion, "2.5.0")) {
- MSP.send_message(MSPCodes.MSP2_INAV_GVAR_STATUS, false, false, callback);
- } else {
- callback();
- }
+ MSP.send_message(MSPCodes.MSP2_INAV_GVAR_STATUS, false, false, 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);
- } else {
- callback();
- }
+ MSP.send_message(MSPCodes.MSP2_INAV_PROGRAMMING_PID_STATUS, false, false, callback);
};
return self;
diff --git a/js/serial_backend.js b/js/serial_backend.js
index 5e40e8a4..9fd17adc 100755
--- a/js/serial_backend.js
+++ b/js/serial_backend.js
@@ -62,7 +62,7 @@ $(document).ready(function () {
} else {
helper.timeout.add('waiting_for_bootup', function waiting_for_bootup() {
- MSP.send_message(MSPCodes.MSP_STATUS, false, false, function () {
+ MSP.send_message(MSPCodes.MSPV2_INAV_STATUS, false, false, function () {
//noinspection JSUnresolvedVariable
GUI.log(chrome.i18n.getMessage('deviceReady'));
//noinspection JSValidateTypes
@@ -334,12 +334,8 @@ function onConnect() {
/*
* Init PIDs bank with a length that depends on the version
*/
- let pidCount;
- if (semver.gte(CONFIG.flightControllerVersion, "2.5.0")) {
- pidCount = 11;
- } else {
- pidCount = 10;
- }
+ let pidCount = 11;
+
for (let i = 0; i < pidCount; i++) {
PIDs.push(new Array(4));
}
diff --git a/js/settings.js b/js/settings.js
index defbf8d7..7c9482d3 100644
--- a/js/settings.js
+++ b/js/settings.js
@@ -1,7 +1,5 @@
'use strict';
-const GulpClient = require("gulp");
-
var Settings = (function () {
let self = {};
diff --git a/js/tasks.js b/js/tasks.js
deleted file mode 100644
index 9a53d0ba..00000000
--- a/js/tasks.js
+++ /dev/null
@@ -1,25 +0,0 @@
-'use strict';
-
-var helper = helper || {};
-
-helper.task = (function () {
-
- var publicScope = {},
- privateScope = {};
-
- privateScope.getStatusPullInterval = function () {
- //TODO use serial connection speed to determine update interval
- return 250;
- };
-
- publicScope.statusPullStart = function () {
- helper.interval.add('status_pull', function () {
- MSP.send_message(MSPCodes.MSP_STATUS, false, false, function () {
- MSP.send_message(MSPCodes.MSP_SENSOR_STATUS);
- });
-
- }, privateScope.getStatusPullInterval(), true);
- };
-
- return publicScope;
-})(); \ No newline at end of file
diff --git a/main.css b/main.css
index ab89d6bf..23ed1e97 100644
--- a/main.css
+++ b/main.css
@@ -902,18 +902,6 @@ li.active .ic_flasher {
background-image: url("../images/icons/cf_icon_flasher_white.svg");
}
-.ic_transponder {
- background-image: url("../images/icons/cf_icon_transponder_grey.svg");
-}
-
-.ic_transponder:hover {
- background-image: url("../images/icons/cf_icon_transponder_white.svg");
-}
-
-li.active .ic_transponder {
- background-image: url("../images/icons/cf_icon_transponder_white.svg");
-}
-
.ic_calibration {
background-image: url(../images/icons/cf_icon_cal_grey.svg);
}
diff --git a/main.html b/main.html
index b6cff39b..bcb3b685 100755
--- a/main.html
+++ b/main.html
@@ -231,7 +231,6 @@
<li class="tab_osd">
<a href="#" data-i18n="tabOSD" class="tabicon ic_osd" title="OSD"></a>
</li>
- <!--<li class="tab_transponder"><a href="#" data-i18n="tabTransponder" class="tabicon ic_transponder" title="Transponder"></a></li>-->
<li class="tab_led_strip">
<a href="#" data-i18n="tabLedStrip" class="tabicon ic_led" title="LED Strip"></a>
</li>
diff --git a/main.js b/main.js
index bf92a75e..becb1a6b 100644
--- a/main.js
+++ b/main.js
@@ -230,9 +230,6 @@ $(document).ready(function () {
case 'failsafe':
TABS.failsafe.initialize(content_ready);
break;
- case 'transponder':
- TABS.transponder.initialize(content_ready);
- break;
case 'setup':
TABS.setup.initialize(content_ready);
break;
diff --git a/package.json b/package.json
index 2bcb4232..f458b46a 100755
--- a/package.json
+++ b/package.json
@@ -35,7 +35,7 @@
"jquery-ui-npm": "1.12.0",
"marked": "^0.3.17",
"minimist": "^1.2.0",
- "nw": "^0.61.0-sdk",
+ "nw": "^0.61.0",
"nw-dialog": "^1.0.7",
"openlayers": "^4.6.5",
"plotly": "^1.0.6",
diff --git a/resources/osd/vision.mcm b/resources/osd/vision.mcm
index 4e3611f6..d317bf46 100644
--- a/resources/osd/vision.mcm
+++ b/resources/osd/vision.mcm
@@ -6665,47 +6665,47 @@ MAX7456
01010101
01010101
01010101
-01010101
-01010101
-01010101
-01010101
-01010101
-01000101
-01010101
-01000101
-00100001
-01010101
-00100001
-00101000
+00000000
+00010101
01010100
-10100001
-01001010
-00010010
+10101010
10000101
-01001010
-10001010
+01010100
+10000000
10000101
-01010010
-10101010
-00010101
-01010010
-10101010
-00010101
01010100
-10101000
-01010101
+10000000
+10000101
01010100
-10101000
-01010101
-01010101
-00100001
-01010101
-01010101
-00100001
-01010101
-01010101
-01000101
+10000000
+10000101
+01010100
+10000000
+10000101
+01010100
+10000000
+10000101
+01010100
+10000000
+10000101
+01010100
+10000000
+10000101
+01010100
+10000000
+10000101
+01010100
+10000000
+10000101
+01010100
+10101010
+10000101
+01010100
+10101010
+10000101
01010101
+00000000
+00010101
01010101
01010101
01010101
diff --git a/resources/osd/vision.png b/resources/osd/vision.png
index c9fdf8e1..c21f79f2 100644
--- a/resources/osd/vision.png
+++ b/resources/osd/vision.png
Binary files differ
diff --git a/resources/osd/vision/104.png b/resources/osd/vision/104.png
index e64fbcc1..63b314e9 100644
--- a/resources/osd/vision/104.png
+++ b/resources/osd/vision/104.png
Binary files differ
diff --git a/src/css/tabs/led_strip.css b/src/css/tabs/led_strip.css
index 5f1f4788..639251b2 100644
--- a/src/css/tabs/led_strip.css
+++ b/src/css/tabs/led_strip.css
@@ -74,6 +74,12 @@
border-color: rgb(52, 155, 255);
}
+.tab-led-strip .gPoint.function-h { /* Channel */
+ background: skyblue;
+ box-shadow: inset 0 0 30px rgba(0, 0, 0, .7);
+ border-color: black;
+}
+
.tab-led-strip .gPoint.function-c .overlay-color,
.tab-led-strip .gPoint.function-r .overlay-color {
float: left;
@@ -210,6 +216,7 @@
.tab-led-strip .select .function-g { background: green;}
/* .tab-led-strip .select .function-b { background: white; color:black;} */
.tab-led-strip .select .function-r { background: #acacac;}
+.tab-led-strip .select .function-h { background: skyblue;}
.tab-led-strip .select .functionSelect option {
background: white;
diff --git a/src/css/tabs/transponder.css b/src/css/tabs/transponder.css
deleted file mode 100644
index b4e7381c..00000000
--- a/src/css/tabs/transponder.css
+++ /dev/null
@@ -1,74 +0,0 @@
-.tab-transponder .spacer_box {
- padding-bottom: 10px;
- float: left;
- width: calc(100% - 20px);
-}
-
-.tab-transponder .text input {
- width: 100px;
- padding-left: 3px;
- height: 20px;
- line-height: 20px;
- text-align: left;
- border: 1px solid silver;
- border-radius: 3px;
- font-size: 12px;
- font-weight: normal;
-}
-
-.tab-transponder .text .disabled {
- width: 43px;
- padding: 0 5px;
- background-color: #ececec;
-}
-
-.tab-transponder .text span {
- margin-left: 0;
-}
-
-.tab-transponder input {
- float: left;
-}
-
-.tab-transponder span {
- margin: 0;
-}
-
-.tab-transponder .text
- {
- margin-bottom: 5px;
- clear: left;
- padding-bottom: 5px;
- border-bottom: 1px solid #ddd;
- width: 100%;
- float: left;
-}
-
-.tab-transponder .text:last-child {
- border-bottom: none;
- padding-bottom: 0;
- margin-bottom: 0;
-}
-
-.tab-transponder .textspacer {
- float: left;
- width: 115px;
- height: 21px;
-}
-
-.tab-transponder .gui_box span {
- font-style: normal;
- font-family: 'open_sansregular', Arial,serif;
- line-height: 19px;
- color: #4F4F4F;
- font-size: 11px;
-}
-
-.require-transponder-supported,
-.tab-transponder.transponder-supported .require-transponder-unsupported {
- display: none;
-}
-
-.tab-transponder.transponder-supported .require-transponder-supported {
- display: block;
-}
diff --git a/tabs/calibration.js b/tabs/calibration.js
index 9ab2cdf5..4a4cf084 100755
--- a/tabs/calibration.js
+++ b/tabs/calibration.js
@@ -53,7 +53,7 @@ TABS.calibration.initialize = function (callback) {
googleAnalytics.sendAppView('Calibration');
}
loadChainer.setChain([
- mspHelper.loadStatus,
+ mspHelper.queryFcStatus,
mspHelper.loadSensorConfig,
mspHelper.loadCalibrationData
]);
diff --git a/tabs/configuration.js b/tabs/configuration.js
index a8879baa..c57bdd6e 100644
--- a/tabs/configuration.js
+++ b/tabs/configuration.js
@@ -32,7 +32,6 @@ TABS.configuration.initialize = function (callback, scrollPosition) {
var loadChain = [
mspHelper.loadFeatures,
mspHelper.loadArmingConfig,
- mspHelper.loadLoopTime,
mspHelper.load3dConfig,
mspHelper.loadSensorAlignment,
mspHelper.loadAdvancedConfig,
@@ -56,7 +55,6 @@ TABS.configuration.initialize = function (callback, scrollPosition) {
mspHelper.saveSensorAlignment,
mspHelper.saveAccTrim,
mspHelper.saveArmingConfig,
- mspHelper.saveLooptimeConfig,
mspHelper.saveAdvancedConfig,
mspHelper.saveINAVPidConfig,
mspHelper.saveVTXConfig,
@@ -328,7 +326,6 @@ TABS.configuration.initialize = function (callback, scrollPosition) {
craftName = $('input[name="craft_name"]').val();
- googleAnalytics.sendEvent('Setting', 'Looptime', FC_CONFIG.loopTime);
googleAnalytics.sendEvent('Setting', 'I2CSpeed', $('#i2c_speed').children("option:selected").text());
googleAnalytics.sendEvent('Board', 'Accelerometer', $('#sensor-acc').children("option:selected").text());
diff --git a/tabs/led_strip.html b/tabs/led_strip.html
index 5fed7bc6..fdc12786 100644
--- a/tabs/led_strip.html
+++ b/tabs/led_strip.html
@@ -65,6 +65,7 @@
<option value="function-s" class="extra_functions20">RSSI</option>
<option value="function-g" class="extra_functions20">GPS</option>
<option value="function-r" class="">Ring</option>
+ <option value="function-h" class="channel_info">Channel</option>
</select>
</div>
@@ -104,6 +105,10 @@
<label> <span>Indicator</span></label>
</div>
</div>
+
+ <div class="channel_info">
+ <span class="color_section">Select Channel from color list</span>
+ </div>
<div class="mode_colors">
<div class="section">Mode colors</div>
diff --git a/tabs/led_strip.js b/tabs/led_strip.js
index 39f61d7d..bb838914 100644
--- a/tabs/led_strip.js
+++ b/tabs/led_strip.js
@@ -11,15 +11,9 @@ TABS.led_strip.initialize = function (callback, scrollPosition) {
var selectedColorIndex = 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'];
- TABS.led_strip.baseFuncs = ['c', 'f', 'a', 'b', 'g', 'r'];
- 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'];
- TABS.led_strip.overlays = ['t', 'o', 'b', 'n', 'i', 'w'];
- }
+ 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;
@@ -37,16 +31,9 @@ TABS.led_strip.initialize = function (callback, scrollPosition) {
}
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);
- else
- load_html();
+ MSP.send_message(MSPCodes.MSP_LED_STRIP_MODECOLOR, false, false, load_html);
}
-
-
-
-
function load_html() {
GUI.load("./tabs/led_strip.html", process_html);
}
@@ -74,10 +61,7 @@ TABS.led_strip.initialize = function (callback, scrollPosition) {
var theHTML = [];
var theHTMLlength = 0;
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-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>');
+ 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(''));
@@ -549,10 +533,7 @@ TABS.led_strip.initialize = function (callback, scrollPosition) {
}
function send_led_strip_mode_colors() {
- if (semver.gte(CONFIG.apiVersion, "1.19.0"))
- mspHelper.sendLedStripModeColors(save_to_eeprom);
- else
- save_to_eeprom();
+ mspHelper.sendLedStripModeColors(save_to_eeprom);
}
function save_to_eeprom() {
@@ -674,20 +655,18 @@ TABS.led_strip.initialize = function (callback, scrollPosition) {
// refresh mode color buttons
function setModeBackgroundColor(element) {
- if (semver.gte(CONFIG.apiVersion, "1.19.0")) {
- element.find('[class*="mode_color"]').each(function() {
- var m = 0;
- var d = 0;
+ element.find('[class*="mode_color"]').each(function() {
+ var m = 0;
+ var d = 0;
- var match = $(this).attr("class").match(/(^|\s)mode_color-([0-9]+)-([0-9]+)(\s|$)/);
- if (match) {
- m = Number(match[2]);
- d = Number(match[3]);
- $(this).css('background-color', HsvToColor(LED_COLORS[getModeColor(m, d)]));
- }
- });
- }
- }
+ var match = $(this).attr("class").match(/(^|\s)mode_color-([0-9]+)-([0-9]+)(\s|$)/);
+ if (match) {
+ m = Number(match[2]);
+ d = Number(match[3]);
+ $(this).css('background-color', HsvToColor(LED_COLORS[getModeColor(m, d)]));
+ }
+ });
+ }
function setBackgroundColor(element) {
if (element.is('[class*="color"]')) {
@@ -713,42 +692,29 @@ TABS.led_strip.initialize = function (callback, scrollPosition) {
}
function areOverlaysActive(activeFunction) {
- if (semver.lt(CONFIG.apiVersion, "1.20.0")) {
- switch (activeFunction) {
- case "function-c":
- case "function-a":
- case "function-f":
- case "function-g":
- return true;
- break;
- }
- } else {
- switch (activeFunction) {
- case "":
- 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;
- }
+ switch (activeFunction) {
+ case "":
+ 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;
}
function areBlinkersActive(activeFunction) {
- if (semver.gte(CONFIG.apiVersion, "1.20.0")) {
- switch (activeFunction) {
- case "function-c":
- case "function-a":
- case "function-f":
- return true;
- break;
- }
+ switch (activeFunction) {
+ case "function-c":
+ case "function-a":
+ case "function-f":
+ return true;
+ break;
}
return false;
}
@@ -758,13 +724,10 @@ TABS.led_strip.initialize = function (callback, scrollPosition) {
case "function-l":
case "function-s":
case "function-g":
- return false;
- break;
case "function-r":
case "function-b":
- if (semver.lt(CONFIG.apiVersion, "1.20.0"))
- return false;
- break;
+ return false;
+ break;
default:
return true;
break;
@@ -776,29 +739,19 @@ TABS.led_strip.initialize = function (callback, scrollPosition) {
var activeFunction = $('select.functionSelect').val();
$('select.functionSelect').addClass(activeFunction);
-
- if (semver.lte(CONFIG.apiVersion, "1.18.0")) {
- // <= 18
- // Hide GPS (Func)
- // Hide RSSI (O/L), Blink (Func)
- // Hide Battery, RSSI (Func), Larson (O/L), Blink (O/L), Landing (O/L)
- $(".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();
- }
-
+ // >= 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
$('.overlays').hide();
$('.modifiers').hide();
$('.blinkers').hide();
$('.warningOverlay').hide();
+ $('.channel_info').hide();
if (areOverlaysActive(activeFunction))
$('.overlays').show();
@@ -812,67 +765,53 @@ TABS.led_strip.initialize = function (callback, scrollPosition) {
if (isWarningActive(activeFunction))
$('.warningOverlay').show();
+ $('.mode_colors').hide();
+ // set mode colors visibility
-
- // set directions visibility
- if (semver.lt(CONFIG.apiVersion, "1.20.0")) {
- switch (activeFunction) {
- case "function-r":
- $('.indicatorOverlay').hide();
- $('.directions').hide();
- break;
- default:
- $('.indicatorOverlay').show();
- $('.directions').show();
- break;
- }
+ if (activeFunction == "function-f") {
+ $('.mode_colors').show();
}
- $('.mode_colors').hide();
- if (semver.gte(CONFIG.apiVersion, "1.19.0")) {
- // set mode colors visibility
-
- if (semver.gte(CONFIG.apiVersion, "1.20.0"))
- if (activeFunction == "function-f")
- $('.mode_colors').show();
-
- // set special colors visibility
- $('.special_colors').show();
- $('.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;
+ // set special colors visibility
+ $('.special_colors').show();
+ $('.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();
- case "function-r": // Ring
- default:
- $('.special_colors').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;
}
}
@@ -903,30 +842,19 @@ TABS.led_strip.initialize = function (callback, scrollPosition) {
}
function unselectOverlays(letter) {
- if (semver.lt(CONFIG.apiVersion, "1.20.0")) {
- if (letter == 'b' || letter == 'r') {
- unselectOverlay(letter, 'i');
- }
- if (letter == 'b' || letter == 'r' || letter == 'l' || letter == 'g') {
- unselectOverlay(letter, 'w');
- unselectOverlay(letter, 't');
- unselectOverlay(letter, 's');
- }
- } else {
- // MSP 1.20
- if (letter == 'r' || letter == '') {
- unselectOverlay(letter, 'o');
- 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');
- }
+ // MSP 1.20
+ if (letter == 'r' || letter == '') {
+ unselectOverlay(letter, 'o');
+ 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');
}
}
diff --git a/tabs/mission_control.js b/tabs/mission_control.js
index 59cb1823..882018b4 100644
--- a/tabs/mission_control.js
+++ b/tabs/mission_control.js
@@ -1543,11 +1543,7 @@ TABS.mission_control.initialize = function (callback) {
// * @param {Object=} opt_options Control 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 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);';
var handleShowSettings = function () {
- if (versionCheck) {
- $('#missionPlannerMultiMission').fadeIn(300);
- }
+ $('#missionPlannerMultiMission').fadeIn(300);
};
button.addEventListener('click', handleShowSettings, false);
@@ -1566,7 +1560,7 @@ TABS.mission_control.initialize = function (callback) {
var element = document.createElement('div');
element.className = 'mission-control-multimission ol-unselectable ol-control';
element.appendChild(button);
- element.title = versionCheck ? 'MP MultiMission' : 'Unavailable';
+ element.title = 'MP MultiMission';
ol.control.Control.call(this, {
element: element,
diff --git a/tabs/osd.js b/tabs/osd.js
index 9b8a7ace..11ced1b9 100644
--- a/tabs/osd.js
+++ b/tabs/osd.js
@@ -397,11 +397,8 @@ function osdMainBatteryPreview() {
if (Settings.getInputValue('osd_main_voltage_decimals') == 2) {
s += '3';
}
- if (semver.lt(CONFIG.flightControllerVersion, '2.2.0')) {
- s += 'V';
- } else {
- s += FONT.symbol(SYM.VOLT);
- }
+
+ s += FONT.symbol(SYM.VOLT);
return FONT.symbol(SYM.BATT) + FONT.embed_dot(s);
}
@@ -781,28 +778,14 @@ OSD.constants = {
name: 'REMAINING_FLIGHT_DISTANCE',
id: 49,
preview: function(osd_data) {
- if (semver.lt(CONFIG.flightControllerVersion, '2.2.0')) {
- switch (OSD.data.preferences.units) {
- case 0: // Imperial
- case 3: // UK
- return FONT.symbol(SYM.TRIP_DIST) + FONT.symbol(SYM.DIST_MI) + FONT.embed_dot('0.98');
- case 4: // GA
- return FONT.symbol(SYM.TRIP_DIST) + FONT.symbol(SYM.DIST_NM) + FONT.embed_dot('0.85');
- default:
- // 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);
- }
+ 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',
id: 15,
preview: function () {
- if (semver.lt(CONFIG.flightControllerVersion, '2.2.0')) {
- switch (OSD.data.preferences.units) {
- case 0: // Imperial
- case 3: // UK
- case 4: // GA
- return FONT.symbol(SYM.ALT_FT) + '375';
- default: // Metric
- 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);
- }
+ 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',
id: 11,
preview: function() {
- if (semver.lt(CONFIG.flightControllerVersion, '2.2.0')) {
- return FONT.symbol(SYM.AMP) + FONT.embed_dot('42.1');
- } else {
- return FONT.embed_dot('42.1') + FONT.symbol(SYM.AMP);
- }
+ return FONT.embed_dot('42.1') + FONT.symbol(SYM.AMP);
}
},
{
name: 'MAH_DRAWN',
id: 12,
preview: function() {
- if (semver.lt(CONFIG.flightControllerVersion, '2.2.0')) {
- return FONT.symbol(SYM.MAH) + '690 '; // 4 chars
- } else {
- return '1034' + FONT.symbol(SYM.MAH); // 4 chars
- }
+ return '1034' + FONT.symbol(SYM.MAH); // 4 chars
}
},
{
name: 'WH_DRAWN',
id: 36,
preview: function() {
- if (semver.lt(CONFIG.flightControllerVersion, '2.2.0')) {
- return FONT.symbol(SYM.WH) + FONT.embed_dot('1.25');
- } else {
- return FONT.embed_dot('1.25') + FONT.symbol(SYM.WH);
- }
+ return FONT.embed_dot('1.25') + FONT.symbol(SYM.WH);
}
},
{
name: 'POWER',
id: 19,
preview: function() {
- if (semver.lt(CONFIG.flightControllerVersion, '2.2.0')) {
- return FONT.symbol(SYM.WATT) + '50 '; // 3 chars
- } else {
- return ' 69' + FONT.symbol(SYM.WATT); // 3 chars
- }
+ return ' 69' + FONT.symbol(SYM.WATT); // 3 chars
}
},
{
name: 'MAIN_BATT_REMAINING_CAPACITY',
id: 37,
preview: function() {
- if (semver.lt(CONFIG.flightControllerVersion, '2.2.0')) {
- return FONT.symbol(SYM.MAH) + '690 '; // 4 chars
- } else {
- return '1276' + FONT.symbol(SYM.MAH); // 4 chars
- }
+ return '1276' + FONT.symbol(SYM.MAH); // 4 chars
}
},
{
@@ -1350,24 +1302,13 @@ OSD.constants = {
name: 'MSL_ALTITUDE',
id: 96,
preview: function(osd_data) {
- if (semver.lt(CONFIG.flightControllerVersion, '2.2.0')) {
- switch (OSD.data.preferences.units) {
- case 0: // Imperial
- case 3: // UK
- case 4: // GA
- return FONT.symbol(SYM.ALT_FT) + '375';
- default: // Metric
- 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);
- }
+ 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',
id: 23,
preview: function(osd_data) {
- if (semver.lt(CONFIG.flightControllerVersion, '2.2.0')) {
- switch (OSD.data.preferences.units) {
- case 0: // Imperial
- case 3: // UK
- return FONT.symbol(SYM.HOME) + FONT.symbol(SYM.DIST_MI) + FONT.embed_dot('0.98');
- case 4: // GA
- return FONT.symbol(SYM.HOME) + FONT.symbol(SYM.DIST_NM) + FONT.embed_dot('0.85');
- default: // Metric
- 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);
- }
+ 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,
min_version: '1.9.1',
preview: function(osd_data) {
- if (semver.lt(CONFIG.flightControllerVersion, '2.2.0')) {
- switch (OSD.data.preferences.units) {
- case 0: // Imperial
- case 3: // UK
- return FONT.symbol(SYM.TRIP_DIST) + FONT.symbol(SYM.DIST_MI) + FONT.embed_dot('0.98');
- case 4: // GA
- return FONT.symbol(SYM.TRIP_DIST) + FONT.symbol(SYM.DIST_NM) + FONT.embed_dot('0.85');
- default: // 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.57') + FONT.symbol(SYM.DIST_KM);
- }
+ 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.dist);
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_axis_min);
- result.push16(OSD.data.alarms.gforce_axis_max);
- result.push8(OSD.data.alarms.current);
- }
+ result.push16(OSD.data.alarms.gforce);
+ result.push16(OSD.data.alarms.gforce_axis_min);
+ result.push16(OSD.data.alarms.gforce_axis_max);
+ result.push8(OSD.data.alarms.current);
result.push16(OSD.data.alarms.imu_temp_alarm_min);
result.push16(OSD.data.alarms.imu_temp_alarm_max);
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.dist = 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_axis_min = alarms.read16();
- OSD.data.alarms.gforce_axis_max = alarms.read16();
- OSD.data.alarms.current = alarms.readU8();
- }
+ OSD.data.alarms.gforce = alarms.readU16();
+ OSD.data.alarms.gforce_axis_min = alarms.read16();
+ OSD.data.alarms.gforce_axis_max = alarms.read16();
+ OSD.data.alarms.current = alarms.readU8();
OSD.data.alarms.imu_temp_alarm_min = alarms.read16();
OSD.data.alarms.imu_temp_alarm_max = alarms.read16();
OSD.data.alarms.baro_temp_alarm_min = alarms.read16();
diff --git a/tabs/outputs.html b/tabs/outputs.html
index fb690a8e..3df018bb 100644
--- a/tabs/outputs.html
+++ b/tabs/outputs.html
@@ -54,14 +54,14 @@
</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" />
<label for="throttle_idle">
<span data-i18n="throttleIdle"></span>
</label>
</div>
- <div class="number requires-v2_4">
+ <div class="number">
<input id="motor_poles" data-setting="motor_poles" type="number" />
<label for="motor_poles">
<span data-i18n="motor_poles"></span>
diff --git a/tabs/outputs.js b/tabs/outputs.js
index f2200e34..6ada2f98 100644
--- a/tabs/outputs.js
+++ b/tabs/outputs.js
@@ -70,12 +70,6 @@ TABS.outputs.initialize = function (callback) {
process_servos();
processConfiguration();
- if (semver.gte(CONFIG.flightControllerVersion, "2.4.0")) {
- $('.requires-v2_4').show();
- } else {
- $('.requires-v2_4').hide();
- }
-
finalize();
}
diff --git a/tabs/pid_tuning.html b/tabs/pid_tuning.html
index 246a4bb1..352ea50a 100755..100644
--- a/tabs/pid_tuning.html
+++ b/tabs/pid_tuning.html
@@ -302,9 +302,9 @@
</table>
</div>
- <div class="clear-both requires-v2_4"></div>
- <div class="tab_subtitle requires-v2_4" data-i18n="pidTuning_rpmFilters" style="margin-top: 1em;"></div>
- <div class="cf_column requires-v2_4">
+ <div class="clear-both"></div>
+ <div class="tab_subtitle" data-i18n="pidTuning_rpmFilters" style="margin-top: 1em;"></div>
+ <div class="cf_column">
<table class="settings-table settings-table--filtering">
<tbody>
<tr>
diff --git a/tabs/pid_tuning.js b/tabs/pid_tuning.js
index 46dc58fb..6f1c1e5f 100755..100644
--- a/tabs/pid_tuning.js
+++ b/tabs/pid_tuning.js
@@ -117,20 +117,6 @@ TABS.pid_tuning.initialize = function (callback) {
$('th.feedforward').attr('title', chrome.i18n.getMessage('pidTuning_ControlDerivative'));
}
- 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.features.updateUI($('.tab-pid_tuning'), FEATURES);
diff --git a/tabs/ports.js b/tabs/ports.js
index d00df0f2..af923652 100644
--- a/tabs/ports.js
+++ b/tabs/ports.js
@@ -131,15 +131,6 @@ TABS.ports.initialize = function (callback) {
'115200'
];
- var telemetryBaudRates_pre1_6_3 = [
- 'AUTO',
- '9600',
- '19200',
- '38400',
- '57600',
- '115200'
- ];
-
var telemetryBaudRates_post1_6_3 = [
'AUTO',
'1200',
@@ -210,9 +201,8 @@ TABS.ports.initialize = function (callback) {
}
$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.length; i++) {
- $elements.append('<option value="' + telemetryBaudRates[i] + '">' + telemetryBaudRates[i] + '</option>');
+ for (i = 0; i < telemetryBaudRates_post1_6_3.length; i++) {
+ $elements.append('<option value="' + telemetryBaudRates_post1_6_3[i] + '">' + telemetryBaudRates_post1_6_3[i] + '</option>');
}
$elements = $('select.blackbox_baudrate');
diff --git a/tabs/transponder.html b/tabs/transponder.html
deleted file mode 100644
index c1bb2e19..00000000
--- a/tabs/transponder.html
+++ /dev/null
@@ -1,48 +0,0 @@
-<div class="tab-transponder toolbar_fixed_bottom">
- <div class="content_wrapper">
- <div class="tab_title" i18n="tabTransponder">Transponder</div>
- <div class="require-transponder-unsupported note">
- <div class="note_spacer">
- <p i18n="transponderNotSupported"></p>
- </div>
- </div>
-
- <div class="require-transponder-supported">
-
- <div class="note" style="margin-bottom: 20px;">
- <div class="note_spacer">
- <p i18n="transponderHelp"></p>
- </div>
- </div>
-
- <div class="gui_box grey">
- <div class="gui_box_titlebar">
- <div class="spacer_box_title" i18n="transponderConfiguration"></div>
- </div>
- <div class="spacer_box">
- <div class="text transponderData">
- <div class="textspacer" >
- <input type="text" name="data" spellcheck="false"/>
- </div>
- <label for="failsafe_feature_new"><span i18n="transponderData"></span>
- </label>
- <div class="helpicon cf_tip" i18n_title="transponderDataHelp"></div>
- </div>
- </div>
- </div>
- <div class="clear-both"></div>
- </div>
-
- <div class="note">
- <div class="note_spacer">
- <p i18n="transponderInformation"></p>
- </div>
- </div>
-
- </div>
- <div class="content_toolbar require-transponder-supported">
- <div class="btn save_btn">
- <a class="save" href="#" i18n="transponderButtonSave"></a>
- </div>
- </div>
-</div>
diff --git a/tabs/transponder.js b/tabs/transponder.js
deleted file mode 100644
index fbd1d798..00000000
--- a/tabs/transponder.js
+++ /dev/null
@@ -1,101 +0,0 @@
-'use strict';
-
-TABS.transponder = {
- available: false
-};
-
-TABS.transponder.initialize = function (callback, scrollPosition) {
- var self = this;
-
- if (GUI.active_tab != 'transponder') {
- GUI.active_tab = 'transponder';
- googleAnalytics.sendAppView('Transponder');
- }
-
- // transponder supported added in MSP API Version 1.16.0
- TABS.transponder.available = semver.gte(CONFIG.apiVersion, "1.16.0");
-
- if (!TABS.transponder.available) {
- load_html();
- return;
- }
-
- function load_html() {
- GUI.load("./tabs/transponder.html", process_html);
- }
-
- // get the transponder data and a flag to see if transponder support is enabled on the FC
- MSP.send_message(MSPCodes.MSP_TRANSPONDER_CONFIG, false, false, load_html);
-
- // Convert a hex string to a byte array
- function hexToBytes(hex) {
- for (var bytes = [], c = 0; c < hex.length; c += 2)
- bytes.push(~parseInt(hex.substr(c, 2), 16));
- return bytes;
- }
-
- function pad(n, width) {
- n = n + '';
- return n.length >= width ? n : new Array(width - n.length + 1).join('0') + n;
- }
-
- // Convert a byte array to a hex string
- function bytesToHex(bytes) {
- for (var hex = [], i = 0; i < bytes.length; i++) {
- hex.push(pad(((~bytes[i]) & 0xFF).toString(16),2));
- }
- return hex.join("").toUpperCase();
- }
- function process_html() {
- // translate to user-selected language
- localize();
-
- $(".tab-transponder")
- .toggleClass("transponder-supported", TABS.transponder.available && TRANSPONDER.supported);
-
- if (TABS.transponder.available) {
-
- var data = bytesToHex(TRANSPONDER.data);
-
- $('input[name="data"]').val(data);
- $('input[name="data"]').prop('maxLength', data.length);
-
- $('a.save').click(function () {
-
-
- // gather data that doesn't have automatic change event bound
-
- var dataString = $('input[name="data"]').val();
- var expectedLength = TRANSPONDER.data.length;
- var hexRegExp = new RegExp('[0-9a-fA-F]{' + (expectedLength * 2) + '}', 'gi');
- if (!dataString.match(hexRegExp)) {
- GUI.log(chrome.i18n.getMessage('transponderDataInvalid'));
- return;
- }
-
- TRANSPONDER.data = hexToBytes(dataString);
-
-
- //
- // send data to FC
- //
- function save_transponder_config() {
- MSP.send_message(MSPCodes.MSP_SET_TRANSPONDER_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_TRANSPONDER_CONFIG), false, save_to_eeprom);
- }
- function save_to_eeprom() {
- MSP.send_message(MSPCodes.MSP_EEPROM_WRITE, false, false, function () {
- GUI.log(chrome.i18n.getMessage('transponderEepromSaved'));
- });
- }
-
- save_transponder_config();
- });
- }
-
- GUI.content_ready(callback);
- }
-};
-
-TABS.transponder.cleanup = function (callback) {
- if (callback) callback();
-};