Skip to content

Commit

Permalink
Restore backwards compatibility
Browse files Browse the repository at this point in the history
  • Loading branch information
haslinghuis committed Jul 8, 2023
1 parent ca17f19 commit 04c5a1f
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 2 deletions.
14 changes: 13 additions & 1 deletion src/js/Features.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { bit_check, bit_set, bit_clear } from "./bit";
import { API_VERSION_1_44, API_VERSION_1_45 } from './data_storage';
import { API_VERSION_1_44, API_VERSION_1_45, API_VERSION_1_46 } from './data_storage';
import semver from "semver";
import { tracking } from "./Analytics";

Expand Down Expand Up @@ -37,8 +37,15 @@ const Features = function (config) {
);
}

if (semver.gte(config.apiVersion, API_VERSION_1_46)) {
features.push(
{bit: 24, group: 'vtx', name: 'VTX', dependsOn: 'VTX'},
);
}

self._features = features;

// Filter features based on build options
if (semver.gte(config.apiVersion, API_VERSION_1_45) && config.buildOptions.length) {
self._features = [];

Expand All @@ -49,6 +56,11 @@ const Features = function (config) {
}
}

// Enable vtx feature if not already enabled in firmware. This is needed for the vtx tab to show up.
if (semver.gte(config.apiVersion, API_VERSION_1_46) && config.buildOptions.some(opt => opt.includes('VTX'))) {
self.enable('VTX');
}

self._features.sort((a, b) => a.name.localeCompare(b.name, window.navigator.language, { ignorePunctuation: true }));
self._featureMask = 0;

Expand Down
2 changes: 1 addition & 1 deletion src/js/gui.js
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@ class GuiControl {
'ports',
'receiver',
'sensors',
'vtx',
];

this.defaultCloudBuildTabOptions = [
Expand All @@ -60,6 +59,7 @@ class GuiControl {
'osd',
'servos',
'transponder',
'vtx',
];

this.defaultAllowedFCTabsWhenConnected = [ ...this.defaultAllowedTabs, ...this.defaultCloudBuildTabOptions];
Expand Down
2 changes: 2 additions & 0 deletions src/js/serial_backend.js
Original file line number Diff line number Diff line change
Expand Up @@ -538,13 +538,15 @@ function finishOpen() {
CONFIGURATOR.connectionValid = true;

if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45) && FC.CONFIG.buildOptions.length) {

GUI.allowedTabs = Array.from(GUI.defaultAllowedTabs);

for (const tab of GUI.defaultCloudBuildTabOptions) {
if (FC.CONFIG.buildOptions.some(opt => opt.toLowerCase().includes(tab))) {
GUI.allowedTabs.push(tab);
}
}

} else {
GUI.allowedTabs = Array.from(GUI.defaultAllowedFCTabsWhenConnected);
}
Expand Down
11 changes: 11 additions & 0 deletions src/js/utils/updateTabList.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
import semver from "semver";
import { API_VERSION_1_42, API_VERSION_1_46 } from "../data_storage";
import FC from "../fc";

export function updateTabList(features) {
const isExpertModeEnabled = $('input[name="expertModeCheckbox"]').is(':checked');

Expand All @@ -11,4 +15,11 @@ export function updateTabList(features) {
$('#tabs ul.mode-connected li.tab_led_strip').toggle(features.isEnabled('LED_STRIP'));
$('#tabs ul.mode-connected li.tab_transponder').toggle(features.isEnabled('TRANSPONDER'));
$('#tabs ul.mode-connected li.tab_osd').toggle(features.isEnabled('OSD'));
$('#tabs ul.mode-connected li.tab_vtx').toggle(features.isEnabled('VTX'));

if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_46)) {
$('#tabs ul.mode-connected li.tab_vtx').toggle(features.isEnabled('VTX'));
} else {
$('#tabs ul.mode-connected li.tab_vtx').toggle(semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_42));
}
}

0 comments on commit 04c5a1f

Please sign in to comment.