From b032fac62d84648c9901cc748bc25f07f4437816 Mon Sep 17 00:00:00 2001 From: Jeff Hendrix Date: Fri, 19 Nov 2021 16:13:40 -0700 Subject: [PATCH 01/11] Add support to configure LED strip to modify color with RC channel --- js/msp.js | 2 +- js/msp/MSPHelper.js | 2 +- src/css/tabs/led_strip.css | 7 +++++++ tabs/led_strip.html | 5 +++++ tabs/led_strip.js | 9 +++++++-- 5 files changed, 21 insertions(+), 4 deletions(-) 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/MSPHelper.js b/js/msp/MSPHelper.js index 56b00720..d9a61e7f 100644 --- a/js/msp/MSPHelper.js +++ b/js/msp/MSPHelper.js @@ -2664,7 +2664,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 */ 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/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 @@ + @@ -104,6 +105,10 @@ + +
+ Select Channel from color list +
Mode colors
diff --git a/tabs/led_strip.js b/tabs/led_strip.js index 39f61d7d..ef63b74e 100644 --- a/tabs/led_strip.js +++ b/tabs/led_strip.js @@ -17,7 +17,7 @@ TABS.led_strip.initialize = function (callback, scrollPosition) { 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.baseFuncs = ['c', 'f', 'a', 'l', 's', 'g', 'r', 'h']; TABS.led_strip.overlays = ['t', 'o', 'b', 'n', 'i', 'w']; } @@ -733,7 +733,7 @@ TABS.led_strip.initialize = function (callback, scrollPosition) { case "function-r": case "function-o": case "function-g": - return true; + return true; break; } } @@ -799,6 +799,7 @@ TABS.led_strip.initialize = function (callback, scrollPosition) { $('.modifiers').hide(); $('.blinkers').hide(); $('.warningOverlay').hide(); + $('.channel_info').hide(); if (areOverlaysActive(activeFunction)) $('.overlays').show(); @@ -867,6 +868,10 @@ TABS.led_strip.initialize = function (callback, scrollPosition) { $('.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: From 147b0eeb929ce96c1d5972de8b8fdd514a751fde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Spychalski?= Date: Wed, 23 Feb 2022 18:24:42 +0100 Subject: [PATCH 02/11] Revert "Resolving issue #1319 - Serial port is not visible on some Windows versions" --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2bcb4232..0d40f8b0 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.50.3-sdk", "nw-dialog": "^1.0.7", "openlayers": "^4.6.5", "plotly": "^1.0.6", From 9db17b4f4b23f664c5b92a7951764d098ed83058 Mon Sep 17 00:00:00 2001 From: "Pawel Spychalski (DzikuVx)" Date: Wed, 23 Feb 2022 18:29:57 +0100 Subject: [PATCH 03/11] Set correcy nw.js version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 0d40f8b0..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.50.3-sdk", + "nw": "^0.61.0", "nw-dialog": "^1.0.7", "openlayers": "^4.6.5", "plotly": "^1.0.6", From 7510152e20cb814993898952b0ee71e3d0e2bdea Mon Sep 17 00:00:00 2001 From: "Pawel Spychalski (DzikuVx)" Date: Wed, 23 Feb 2022 18:33:53 +0100 Subject: [PATCH 04/11] remove not needed dependency --- js/settings.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/js/settings.js b/js/settings.js index 1d4d8b7b..1d15df31 100644 --- a/js/settings.js +++ b/js/settings.js @@ -1,7 +1,5 @@ 'use strict'; -const GulpClient = require("gulp"); - var Settings = (function () { let self = {}; From 8d2fc3c83e427a935af55a2eb5d403e686e3b250 Mon Sep 17 00:00:00 2001 From: Darren Lines Date: Wed, 23 Feb 2022 19:19:51 +0000 Subject: [PATCH 05/11] Fixed almost empty battery icon for Vision font --- resources/osd/vision.mcm | 74 +++++++++++++++++------------------ resources/osd/vision.png | Bin 12637 -> 12591 bytes resources/osd/vision/104.png | Bin 220 -> 1668 bytes 3 files changed, 37 insertions(+), 37 deletions(-) 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 -01010100 -10100001 -01001010 -00010010 -10000101 -01001010 -10001010 -10000101 -01010010 -10101010 -00010101 -01010010 -10101010 +00000000 00010101 01010100 -10101000 -01010101 +10101010 +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 +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 c9fdf8e1783aa272866cc0918722176d28698d06..c21f79f2a519a77550ad58c719eaf73f41a10e47 100644 GIT binary patch delta 9002 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

A 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 Ct^UaX diff --git a/resources/osd/vision/104.png b/resources/osd/vision/104.png index e64fbcc17ed9ad34c93ca84160bbe1d6b7c859bb..63b314e99cbbf88e1db78e26a1ff06c7138583b2 100644 GIT binary patch literal 1668 zcmbVNO>f*p7OtIG|oQ!KEkuKo4*LgoHS9;u47)95``AFy0RnP#Q&8vOS)8=6Rp@V_tu_ zwR!8p`IpXHmUW@C(b_ieXUzTFxn=V_`r*+#=Jj;C@s_r%i{BLY(x=xizHC`f{TB6h z@}2JMl&iSHgbHP45~l`jSvOZFDdW2`2caB9NyGmA@mDs8M8m%8bx}8M%3-u|n8`bb zn>~KG%L8Grz6x$ms3C}D&cGxdC7Mne_LP^JaWU=KU<%218}?dZ5bSifKvQKBcoiRV zT=hULs9@i%2Eh$L5Ux9@?qC;UpH>ki1k5knSj$A8Zns{W+cIAbdzj}bb)4~dTp7C+ zl?@ym1c8HyLkKhos1K5yO<wUN)K<7u=B}8OtQs28&B?k8H7AHf(|jh8RKY_6VY`M?G{MVT#ZU+EpUzACyo65rM?*;eg^gMYXr*C{r+k zEx_m<^f9>!8za`Z(}? zNGf=0zT2gpMCUBwveRnVCMuOE5)`|*#{Iy9#P>oN%4!YPMUB8Z?)yBHu0Wnx>~AT) zSLD9fKRX6Oal`SCylM?0PFx=bA$K7PsvZnH(uV>Q?z+{m#!0wfdn1d?No1qrtc5CJ z7?C76WQaq-10OQK8o)qs0o^`ktY71GjKZScrzJ!;B5jg;Fh4Q5-w|0#SP7d~XkK$_m_*o7-j(S>GNasHdI>DsZ5wSb#8SPaYlYd*>jE)zqYnf`oR z|M;xw?W>*ETJP#5J_O4M=wCmvUTFVOx7Jtg-Cw%&^-q_dUuysL#qxc6cyYGjUIkq{3kl?&DNLe?|tw$Mr;X! delta 185 zcmV;q07n0W4cq~cD}M_U000XU0RWnu7ytkOAY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ+Vo5|nRCwCNlEDhVFbG4<*oWuOvx7yPGFngb))1Z{ z79?#qmmSOxrmyUw!^|WBC{~i8uXU2L$sLs`$<_WOdFK_*e=;$0Z~)<3VN=RUPZ?G) n^Tq?#JDcCmVf{)t`E<_!2?;=-TyVXW00000NkvXXu0mjf*#br^ From 8b7e95082352a13153d450a2335047aef3d14188 Mon Sep 17 00:00:00 2001 From: "Pawel Spychalski (DzikuVx)" Date: Wed, 23 Feb 2022 21:16:20 +0100 Subject: [PATCH 06/11] Merge remote-tracking branch 'origin/master' into dzikuvx-use-board-alignment-frame --- README.md | 48 ++++++++++++++++++++---------------------------- 1 file changed, 20 insertions(+), 28 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. From 4426176c4b908b25b92848ea65e93b4e7b9f5854 Mon Sep 17 00:00:00 2001 From: "Pawel Spychalski (DzikuVx)" Date: Thu, 24 Feb 2022 09:55:45 +0100 Subject: [PATCH 07/11] Drop MSP_LOOPTIME usage --- js/msp/MSPHelper.js | 8 -------- tabs/configuration.js | 3 --- 2 files changed, 11 deletions(-) diff --git a/js/msp/MSPHelper.js b/js/msp/MSPHelper.js index 3f4daf89..b83c2818 100644 --- a/js/msp/MSPHelper.js +++ b/js/msp/MSPHelper.js @@ -2714,10 +2714,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); }; @@ -2834,10 +2830,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); }; 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()); From 473adae418ad2d65f7907caaa9fbb704ea84992e Mon Sep 17 00:00:00 2001 From: "Pawel Spychalski (DzikuVx)" Date: Thu, 24 Feb 2022 11:27:39 +0100 Subject: [PATCH 08/11] Drop MSP_STATUS and MSP_STATUS_EX --- js/msp/MSPCodes.js | 2 +- js/msp/MSPHelper.js | 71 ++++++++++++++------------------------------ js/serial_backend.js | 2 +- js/tasks.js | 25 ---------------- tabs/calibration.js | 2 +- 5 files changed, 26 insertions(+), 76 deletions(-) delete mode 100644 js/tasks.js diff --git a/js/msp/MSPCodes.js b/js/msp/MSPCodes.js index 6e39f7f0..871567d4 100644 --- a/js/msp/MSPCodes.js +++ b/js/msp/MSPCodes.js @@ -107,7 +107,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 b83c2818..3d4f0e12 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; @@ -720,7 +699,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; @@ -1520,7 +1499,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 +1538,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)); @@ -2151,9 +2130,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 +2140,7 @@ var mspHelper = (function (gui) { buffer.push(highByte(BLACKBOX.blackboxRateDenom)); //noinspection JSUnusedLocalSymbols MSP.send_message(messageId, buffer, false, function (response) { - onDataCallback(); + onDataCallback(); }); }; @@ -2742,10 +2721,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); }; @@ -2753,7 +2728,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); }; @@ -2775,7 +2750,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) { @@ -2939,7 +2914,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) { @@ -2991,7 +2966,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 { @@ -3006,7 +2981,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 { @@ -3065,7 +3040,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; @@ -3120,7 +3095,7 @@ var mspHelper = (function (gui) { default: throw "Unknown setting type " + setting.type; } - return {setting: setting, value: value}; + return { setting: setting, value: value }; }); }); }; @@ -3209,8 +3184,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); @@ -3218,7 +3193,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++) { @@ -3239,26 +3214,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); @@ -3266,7 +3241,7 @@ var mspHelper = (function (gui) { }); }; - self.loadBrakingConfig = function(callback) { + self.loadBrakingConfig = function (callback) { MSP.send_message(MSPCodes.MSP2_INAV_MC_BRAKING, false, false, callback); } diff --git a/js/serial_backend.js b/js/serial_backend.js index 5e40e8a4..ff262b62 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 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/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 ]); From 005efec00735193082e3a3461d5be9689780754a Mon Sep 17 00:00:00 2001 From: "Pawel Spychalski (DzikuVx)" Date: Thu, 24 Feb 2022 13:11:47 +0100 Subject: [PATCH 09/11] Semver cleanup --- js/fc.js | 272 ++++++++++----------------------------- js/msp/MSPHelper.js | 49 +++----- js/serial_backend.js | 8 +- tabs/led_strip.js | 273 +++++++++++++++------------------------- tabs/mission_control.js | 12 +- tabs/osd.js | 193 ++++++++-------------------- tabs/outputs.html | 4 +- tabs/outputs.js | 6 - tabs/pid_tuning.html | 6 +- tabs/pid_tuning.js | 19 --- tabs/ports.js | 14 +-- 11 files changed, 242 insertions(+), 614 deletions(-) diff --git a/js/fc.js b/js/fc.js index 697f9398..b333363c 100644 --- a/js/fc.js +++ b/js/fc.js @@ -77,14 +77,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, @@ -601,10 +598,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 +657,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 +760,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 +796,7 @@ var FC = { ] }, getPidNames: function () { - let list = [ + return [ 'Roll', 'Pitch', 'Yaw', @@ -943,14 +806,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/msp/MSPHelper.js b/js/msp/MSPHelper.js index 3d4f0e12..8aab5349 100644 --- a/js/msp/MSPHelper.js +++ b/js/msp/MSPHelper.js @@ -104,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; @@ -1253,11 +1248,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; @@ -1904,16 +1897,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; @@ -2307,9 +2298,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)); @@ -3010,9 +2999,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(); @@ -3250,19 +3237,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 ff262b62..9fd17adc 100755 --- a/js/serial_backend.js +++ b/js/serial_backend.js @@ -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/tabs/led_strip.js b/tabs/led_strip.js index ef63b74e..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', 'h']; - 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++] = ('

UD
'); - else - theHTML[theHTMLlength++] = ('
UD
'); + theHTML[theHTMLlength++] = ('
UD
'); } $('.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,23 +739,12 @@ 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(); @@ -813,71 +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 + // 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(); - 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; - case "function-h": // Channel - $('.special_colors').hide(); - $('.channel_info').show(); - break; - - 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; } } @@ -908,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 @@
-
+
-
+
-
-
-
+
+
+
diff --git a/tabs/pid_tuning.js b/tabs/pid_tuning.js index 57331036..c0f7b3e5 100755 --- a/tabs/pid_tuning.js +++ b/tabs/pid_tuning.js @@ -112,25 +112,6 @@ TABS.pid_tuning.initialize = function (callback) { // translate to user-selected language 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.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(''); + for (i = 0; i < telemetryBaudRates_post1_6_3.length; i++) { + $elements.append(''); } $elements = $('select.blackbox_baudrate'); From 0be78dd37e0c97b4a34762e2346a7e53f63be15a Mon Sep 17 00:00:00 2001 From: "Pawel Spychalski (DzikuVx)" Date: Thu, 24 Feb 2022 13:15:23 +0100 Subject: [PATCH 10/11] Drop any leftovers of Transponder feature --- _locales/en/messages.json | 36 ------------- js/fc.js | 6 --- js/gui.js | 1 - js/msp/MSPCodes.js | 2 - js/msp/MSPHelper.js | 17 ------ main.css | 12 ----- main.html | 1 - main.js | 3 -- src/css/tabs/transponder.css | 74 ------------------------- tabs/transponder.html | 48 ----------------- tabs/transponder.js | 101 ----------------------------------- 11 files changed, 301 deletions(-) delete mode 100644 src/css/tabs/transponder.css delete mode 100644 tabs/transponder.html delete mode 100644 tabs/transponder.js diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 3a45e5d0..4d4170c5 100755 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -109,9 +109,6 @@ "tabFailsafe": { "message": "Failsafe" }, - "tabTransponder": { - "message": "Race Transponder" - }, "tabGPS": { "message": "GPS" }, @@ -678,12 +675,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" }, @@ -1548,33 +1539,6 @@ "programmingEepromSaved": { "message": "EEPROM saved: 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 Seriously Pro." - }, - "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 invalid" - }, - "transponderEepromSaved": { - "message": "EEPROM saved: Transponder" - }, "servosChangeDirection": { "message": "Change Direction in TX To Match" }, diff --git a/js/fc.js b/js/fc.js index b333363c..77024b0a 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, @@ -476,11 +475,6 @@ var FC = { blackboxRateDenom: 1 }; - TRANSPONDER = { - supported: false, - data: [] - }; - RC_deadband = { deadband: 0, yaw_deadband: 0, 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/MSPCodes.js b/js/msp/MSPCodes.js index 871567d4..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, diff --git a/js/msp/MSPHelper.js b/js/msp/MSPHelper.js index 8aab5349..f8f1c324 100644 --- a/js/msp/MSPHelper.js +++ b/js/msp/MSPHelper.js @@ -1102,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) { @@ -1744,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; diff --git a/main.css b/main.css index 704f7fe6..ccd1f97a 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 @@
  • -
  • diff --git a/main.js b/main.js index 09407d5f..6c697f30 100644 --- a/main.js +++ b/main.js @@ -218,9 +218,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/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/transponder.html b/tabs/transponder.html deleted file mode 100644 index c1bb2e19..00000000 --- a/tabs/transponder.html +++ /dev/null @@ -1,48 +0,0 @@ -
    -
    -
    Transponder
    -
    -
    -

    -
    -
    - -
    - -
    -
    -

    -
    -
    - -
    -
    -
    -
    -
    -
    -
    - -
    - -
    -
    -
    -
    -
    -
    - -
    -
    -

    -
    -
    - -
    -
    -
    - -
    -
    -
    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(); -}; From 35670916f9834bd6db80ad9562b5657a33181cbc Mon Sep 17 00:00:00 2001 From: "Pawel Spychalski (DzikuVx)" Date: Thu, 24 Feb 2022 14:06:08 +0100 Subject: [PATCH 11/11] Drop a comment --- js/fc.js | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/js/fc.js b/js/fc.js index 77024b0a..1d75cfec 100644 --- a/js/fc.js +++ b/js/fc.js @@ -248,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 = {