diff --git a/src/css/tabs/auxiliary.css b/src/css/tabs/auxiliary.css
index f6c823a8..86ff9acf 100644
--- a/src/css/tabs/auxiliary.css
+++ b/src/css/tabs/auxiliary.css
@@ -48,6 +48,21 @@
border-spacing: 0;
}
+.tab-auxiliary .modeSection > td {
+ background-color: #f9f9f9;
+ vertical-align: top;
+ padding-bottom: 5px;
+}
+
+.tab-auxiliary .modeSectionArea {
+ background-color: #37a8db;
+ color: white;
+ font-weight: bold;
+ font-size: 1.1em;
+ text-shadow: 0 1px rgba(0, 0, 0, 0.5);
+ padding: 5px;
+}
+
.tab-auxiliary .mode {
background-color: #f9f9f9;
vertical-align: top;
diff --git a/tabs/auxiliary.html b/tabs/auxiliary.html
index cec9c2af..94753e6a 100644
--- a/tabs/auxiliary.html
+++ b/tabs/auxiliary.html
@@ -61,4 +61,9 @@
+
diff --git a/tabs/auxiliary.js b/tabs/auxiliary.js
index f5085911..3b5cba70 100644
--- a/tabs/auxiliary.js
+++ b/tabs/auxiliary.js
@@ -36,20 +36,30 @@ TABS.auxiliary.initialize = function (callback) {
MSP.send_message(MSPCodes.MSP_BOXNAMES, false, false, get_mode_ranges);
+ const modeSections = {};
+ modeSections["ARM"] = "Arming";
+ modeSections["ANGLE"] = "Flight Modes";
+ modeSections["NAV COURSE HOLD"] = "Navigation Modes";
+ modeSections["NAV ALTHOLD"] = "Flight Mode Modifiers";
+ modeSections["AUTO TUNE"] = "Fixed Wing";
+ modeSections["FPV ANGLE MIX"] = "Multi-rotor";
+ modeSections["OSD OFF"] = "OSD Modes";
+ modeSections["CAMSTAB"] = "FPV Camera Modes";
+ modeSections["BEEPER"] = "Misc Modes";
+
function sort_modes_for_display() {
// This array defines the order that the modes are displayed in the configurator modes page
- configuratorBoxOrder = [
- "ARM", "PREARM", // Arming
- "ANGLE", "HORIZON", "MANUAL", // Flight modes
- "NAV RTH", "NAV POSHOLD", "NAV CRUISE", "NAV COURSE HOLD", // Navigation mode
- "NAV ALTHOLD", "HEADING HOLD", "AIR MODE", // Flight mode modifiers
- "NAV WP", "GCS NAV", "HOME RESET", // Navigation
- "SERVO AUTOTRIM", "AUTO LEVEL", "AUTO TUNE", "NAV LAUNCH", "LOITER CHANGE", "FLAPERON", // Fixed wing specific
- "TURTLE", "FPV ANGLE MIX", "TURN ASSIST", "MC BRAKING", "SURFACE", "HEADFREE", "HEADADJ", // Multi-rotor specific
- "BEEPER", "LEDS OFF", "LIGHTS", // Feedback
- "OSD OFF", "OSD ALT 1", "OSD ALT 2", "OSD ALT 3", // OSD
- "CAMSTAB", "CAMERA CONTROL 1", "CAMERA CONTROL 2", "CAMERA CONTROL 3", // FPV Camera
- "BLACKBOX", "FAILSAFE", "KILLSWITCH", "TELEMETRY", "MSP RC OVERRIDE", "USER1", "USER2" // Misc
+ const configuratorBoxOrder = [
+ "ARM", "PREARM", // Arming
+ "ANGLE", "HORIZON", "MANUAL", // Flight modes
+ "NAV COURSE HOLD", "NAV CRUISE", "NAV POSHOLD", "NAV RTH", "NAV WP", "GCS NAV", // Navigation modes
+ "NAV ALTHOLD", "HEADING HOLD", "AIR MODE", // Flight mode modifiers
+ "AUTO TUNE", "SERVO AUTOTRIM", "AUTO LEVEL", "NAV LAUNCH", "LOITER CHANGE", "FLAPERON", "TURN ASSIST", // Fixed wing specific
+ "FPV ANGLE MIX", "TURTLE", "MC BRAKING", "SURFACE", "HEADFREE", "HEADADJ", // Multi-rotor specific
+ "OSD OFF", "OSD ALT 1", "OSD ALT 2", "OSD ALT 3", // OSD
+ "CAMSTAB", "CAMERA CONTROL 1", "CAMERA CONTROL 2", "CAMERA CONTROL 3", // FPV Camera
+ "BEEPER", "LEDS OFF", "LIGHTS", "HOME RESET", "BLACKBOX", "FAILSAFE", "KILLSWITCH", "TELEMETRY", // Misc
+ "MSP RC OVERRIDE", "USER1", "USER2"
];
// Sort the modes
@@ -98,6 +108,15 @@ TABS.auxiliary.initialize = function (callback) {
}
}
+ function createModeSection(sectionName) {
+ var modeSectionTemplate = $('#tab-auxiliary-templates .modeSection');
+ var newModeSection = modeSectionTemplate.clone();
+ $(newModeSection).attr('id', 'section-' + sectionName);
+ $(newModeSection).find('.modeSectionName').text(sectionName);
+
+ return newModeSection;
+ }
+
function createMode(modeIndex, modeId) {
var modeTemplate = $('#tab-auxiliary-templates .mode');
var newMode = modeTemplate.clone();
@@ -198,6 +217,11 @@ TABS.auxiliary.initialize = function (callback) {
var modeTableBodyElement = $('.tab-auxiliary .modes tbody')
for (var modeIndex = 0; modeIndex < AUX_CONFIG.length; modeIndex++) {
+ if (AUX_CONFIG[modeIndex] in modeSections) {
+ var newSection = createModeSection(modeSections[AUX_CONFIG[modeIndex]]);
+ modeTableBodyElement.append(newSection);
+ }
+
var modeId = AUX_CONFIG_IDS[modeIndex];
var newMode = createMode(modeIndex, modeId);
modeTableBodyElement.append(newMode);
@@ -415,7 +439,11 @@ TABS.auxiliary.initialize = function (callback) {
if (modeElement.find(' .range').length == 0) {
modeElement.toggle(!hideUnused);
}
- }
+ }
+
+ $(".modeSection").each(function() {
+ $(this).toggle(!hideUnused);
+ });
}
let hideUnusedModes = false;