Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion js/appUpdater.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import semver from 'semver';

import { GUI } from './gui';
import GUI from './gui';
import jBox from 'jbox';
import i18n from './localization';

Expand Down
141 changes: 80 additions & 61 deletions js/configurator_main.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import $ from 'jquery';
import 'jquery-ui-dist/jquery-ui';
import * as THREE from 'three'

import { GUI, TABS } from './gui';
import GUI from './gui';
import CONFIGURATOR from './data_storage';
import FC from './fc';
import { globalSettings, UnitType } from './globalSettings';
Expand All @@ -21,6 +21,35 @@ import { SITLProcess } from './sitl';
import settingsCache from './settingsCache';
import store from './store';

// "Preload" tabs
import landingTab from './../tabs/landing';
import firmwareFlasherTab from './../tabs/firmware_flasher';
import sitlTab from './../tabs/sitl';
import auxiliaryTab from './../tabs/auxiliary';
import adjustmentsTab from './../tabs/adjustments';
import portsTab from './../tabs/ports'
import ledStripTab from './../tabs/led_strip';
import failsafeTab from './../tabs/failsafe';
import setupTab from './../tabs/setup'
import calibrationTab from './../tabs/calibration';
import configurationTab from './../tabs/configuration';
import pidTuningTab from './../tabs/pid_tuning';
import receiverTab from './../tabs/receiver';
import gpsTab from './../tabs/gps';
import magnetometerTab from './../tabs/magnetometer';
import missionControlTab from './../tabs/mission_control';
import mixerTab from './../tabs/mixer';
import programmingTab from './../tabs/programming';
import javascriptProgrammingTab from './../tabs/javascript_programming';
import outputsTab from './../tabs/outputs';
import osdTab from './../tabs/osd';
import sensorsTab from './../tabs/sensors';
import loggingTab from './../tabs/logging';
import advancedTuningTab from './../tabs/advanced_tuning';
import onboardLoggingTab from './../tabs/onboard_logging';
import cliTab from './../tabs/cli';
import searchTab from './../tabs/search';
import dialog from './dialog'

window.$ = $;

Expand All @@ -33,35 +62,12 @@ $(function() {
mspHelper.init();
SerialBackend.init();

GUI.updateEzTuneTabVisibility = function(loadMixerConfig) {
let useEzTune = true;
if (CONFIGURATOR.connectionValid) {
if (loadMixerConfig) {
mspHelper.loadMixerConfig(function () {
if (FC.MIXER_CONFIG.platformType == PLATFORM.MULTIROTOR || FC.MIXER_CONFIG.platformType == PLATFORM.TRICOPTER) {
$('.tab_ez_tune').removeClass("is-hidden");
} else {
$('.tab_ez_tune').addClass("is-hidden");
useEzTune = false;
}
});
} else {
if (FC.MIXER_CONFIG.platformType == PLATFORM.MULTIROTOR || FC.MIXER_CONFIG.platformType == PLATFORM.TRICOPTER) {
$('.tab_ez_tune').removeClass("is-hidden");
} else {
$('.tab_ez_tune').addClass("is-hidden");
useEzTune = false;
}
}
}

return useEzTune;
};

GUI.updateActivatedTab = function() {
var activeTab = $('#tabs > ul li.active');
activeTab.removeClass('active');
$('a', activeTab).trigger('click');
if (!GUI.tab_switch_in_progress) {
const activeTab = $('#tabs > ul li.active');
activeTab.removeClass('active');
$('a', activeTab).trigger('click');
}
}

globalSettings.unitType = store.get('unit_type', UnitType.none);
Expand Down Expand Up @@ -115,6 +121,12 @@ $(function() {
}

if ($(this).parent().hasClass('active') == false && !GUI.tab_switch_in_progress) { // only initialize when the tab isn't already active

if (CONFIGURATOR.cliActive) {
cliTab.exit($(this).parent());
return;
}

var self = this,
tabClass = $(self).parent().prop('class');

Expand Down Expand Up @@ -164,86 +176,85 @@ $(function() {

switch (tab) {
case 'landing':
import('./../tabs/landing').then(() => TABS.landing.initialize(content_ready));
landingTab.initialize(content_ready);
break;
case 'firmware_flasher':
import('./../tabs/firmware_flasher').then(() => TABS.firmware_flasher.initialize(content_ready));
firmwareFlasherTab.initialize(content_ready);
break;
case 'sitl':
import('./../tabs/sitl').then(() => TABS.sitl.initialize(content_ready));
sitlTab.initialize(content_ready);
break;
case 'auxiliary':
import('./../tabs/auxiliary').then(() => TABS.auxiliary.initialize(content_ready));
auxiliaryTab.initialize(content_ready);
break;
case 'adjustments':
import('./../tabs/adjustments').then(() => TABS.adjustments.initialize(content_ready));
adjustmentsTab.initialize(content_ready);
break;
case 'ports':
import('./../tabs/ports').then(() => TABS.ports.initialize(content_ready));
portsTab.initialize(content_ready);
break;
case 'led_strip':
import('./../tabs/led_strip').then(() => TABS.led_strip.initialize(content_ready));
ledStripTab.initialize(content_ready);
break;
case 'failsafe':
import('./../tabs/failsafe').then(() => TABS.failsafe.initialize(content_ready));
failsafeTab.initialize(content_ready);
break;
case 'setup':
import('./../tabs/setup').then(() => TABS.setup.initialize(content_ready));
setupTab.initialize(content_ready);
break;
case 'calibration':
import('./../tabs/calibration').then(() => TABS.calibration.initialize(content_ready));
calibrationTab.initialize(content_ready);
break;
case 'configuration':
import('./../tabs/configuration').then(() => TABS.configuration.initialize(content_ready));
configurationTab.initialize(content_ready);
break;
case 'pid_tuning':
import('./../tabs/pid_tuning').then(() => TABS.pid_tuning.initialize(content_ready));
pidTuningTab.initialize(content_ready);
break;
case 'receiver':
import('./../tabs/receiver').then(() => TABS.receiver.initialize(content_ready));
receiverTab.initialize(content_ready);
break;
case 'gps':
import('./../tabs/gps').then(() => TABS.gps.initialize(content_ready));
gpsTab.initialize(content_ready);
break;
case 'magnetometer':
import('./../tabs/magnetometer').then(() => TABS.magnetometer.initialize(content_ready));
magnetometerTab.initialize(content_ready);
break;
case 'mission_control':
import('./../tabs/mission_control').then(() => TABS.mission_control.initialize(content_ready));
missionControlTab.initialize(content_ready);
break;
case 'mixer':
import('./../tabs/mixer').then(() => TABS.mixer.initialize(content_ready));
mixerTab.initialize(content_ready);
break;
case 'outputs':
import('./../tabs/outputs').then(() => TABS.outputs.initialize(content_ready));
outputsTab.initialize(content_ready);
break;
case 'osd':
import('./../tabs/osd').then(() => TABS.osd.initialize(content_ready));
osdTab.initialize(content_ready);
break;
case 'sensors':
import('./../tabs/sensors').then(() => TABS.sensors.initialize(content_ready));
sensorsTab.initialize(content_ready);
break;
case 'logging':
import('./../tabs/logging').then(() => TABS.logging.initialize(content_ready));
loggingTab.initialize(content_ready);
break;
case 'onboard_logging':
import('./../tabs/onboard_logging').then(() => TABS.onboard_logging.initialize(content_ready));
onboardLoggingTab.initialize(content_ready);
break;
case 'advanced_tuning':
import('./../tabs/advanced_tuning').then(() => TABS.advanced_tuning.initialize(content_ready));
advancedTuningTab.initialize(content_ready);
break;
case 'programming':
import('./../tabs/programming').then(() => TABS.programming.initialize(content_ready));
programmingTab.initialize(content_ready);
break;
case 'cli':
import('./../tabs/cli').then(() => TABS.cli.initialize(content_ready));
cliTab.initialize(content_ready);
break;
case 'search':
import('./../tabs/search').then(() => TABS.search.initialize(content_ready));
searchTab.initialize(content_ready);
break;

case 'javascript_programming':
import('./../tabs/javascript_programming').then(() => TABS.javascript_programming.initialize(content_ready));
javascriptProgrammingTab.initialize(content_ready);
break;
default:
console.log('Tab not found:' + tab);
Expand Down Expand Up @@ -496,12 +507,20 @@ $(function() {
var mixerprofile_e = $('#mixerprofilechange');

mixerprofile_e.on('change', function () {
var mixerprofile = parseInt($(this).val());
if (!dialog.confirm(i18n.getMessage("changeMixerProfileReboot")))
{
$(this).val(FC.CONFIG.mixer_profile)
return;
}

const mixerprofile = parseInt($(this).val());
MSP.send_message(MSPCodes.MSP2_INAV_SELECT_MIXER_PROFILE, [mixerprofile], false, function () {
GUI.log(i18n.getMessage('setMixerProfile', [mixerprofile + 1]));
MSP.send_message(MSPCodes.MSP_SET_REBOOT, false, false, function () {
GUI.tab_switch_cleanup(function() {
GUI.log(i18n.getMessage('setMixerProfile', [mixerprofile + 1]));
GUI.log(i18n.getMessage('deviceRebooting'));
GUI.handleReconnect();
GUI.handleReconnect(true);
// This order! Why? ¯\_(ツ)_/¯
MSP.send_message(MSPCodes.MSP_SET_REBOOT, false, false);
});
});
});
Expand Down
2 changes: 1 addition & 1 deletion js/connection/connection.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
'use strict';

import { GUI } from './../gui';
import GUI from './../gui';

const ConnectionType = {
Serial: 0,
Expand Down
2 changes: 1 addition & 1 deletion js/connection/connectionBle.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
'use strict'

import { GUI } from './../gui';
import GUI from './../gui';

import { ConnectionType, Connection } from './connection';
import i18n from './../localization';
Expand Down
2 changes: 1 addition & 1 deletion js/connection/connectionSerial.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
'use strict'

import { GUI } from './../gui';
import GUI from './../gui';
import { ConnectionType, Connection } from './connection';
import i18n from './../localization';

Expand Down
2 changes: 1 addition & 1 deletion js/connection/connectionTcp.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
'use strict'

import { GUI } from './../gui';
import GUI from './../gui';
import { ConnectionType, Connection } from './connection';
import i18n from './../localization';

Expand Down
2 changes: 1 addition & 1 deletion js/connection/connectionUdp.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import { ConnectionType, Connection } from './connection';

import { GUI } from './../gui';
import GUI from './../gui';
import i18n from './../localization';

const STANDARD_UDP_PORT = 5761;
Expand Down
27 changes: 13 additions & 14 deletions js/defaults_dialog.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
'use strict';

import { GUI } from './../js/gui';
import GUI from './../js/gui';
import FC from './fc';
import MSP from './msp';
import MSPCodes from './../js/msp/MSPCodes';
Expand All @@ -26,12 +26,21 @@ var defaultsDialog = (function () {
let $container;

privateScope.wizardSettings = [];
privateScope.needsShow = false;

publicScope.init = function () {
mspHelper.getSetting("applied_defaults").then(privateScope.onInitSettingReturned);
// Ensure we're waiting until the setting is loaded.
publicScope.init = async function () {
const setting = await mspHelper.getSetting("applied_defaults")
if (setting.value > 0) {
return; //Defaults were applied, we can just ignore
}

$container = $("#defaults-wrapper");
privateScope.render();
$container.show();
};


privateScope.setFeaturesBits = function (selectedDefaultPreset) {

if (selectedDefaultPreset.features && selectedDefaultPreset.features.length > 0) {
Expand Down Expand Up @@ -172,7 +181,7 @@ var defaultsDialog = (function () {
savingDefaultsModal.close();
}
GUI.log(i18n.getMessage('deviceRebooting'));
GUI.handleReconnect();
GUI.handleReconnect(false);
});
});
};
Expand Down Expand Up @@ -334,16 +343,6 @@ var defaultsDialog = (function () {
}
}

privateScope.onInitSettingReturned = function (promise) {

if (promise.value > 0) {
return; //Defaults were applied, we can just ignore
}

privateScope.render();
$container.show();
}

return publicScope;
})();

Expand Down
2 changes: 1 addition & 1 deletion js/groundstation.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import Feature from 'ol/Feature';
import VectorSource from 'ol/source/Vector.js';
import VectorLayer from 'ol/layer/Vector.js';

import { GUI } from './gui';
import GUI from './gui';
import ltmDecoder from './ltmDecoder';
import interval from './intervals';
import { globalSettings } from './globalSettings';
Expand Down
7 changes: 2 additions & 5 deletions js/gui.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,6 @@ import { scaleRangeInt } from './helpers';
import i18n from './localization';
import mspDeduplicationQueue from "./msp/mspDeduplicationQueue";

var TABS = {}; // filled by individual tab js file


var GUI_control = function () {
this.connecting_to = false;
this.connected_to = false;
Expand Down Expand Up @@ -101,7 +98,7 @@ GUI_control.prototype.tab_switch_cleanup = function (callback) {
interval.killAll(['global_data_refresh', 'msp-load-update', 'ltm-connection-check']);

if (this.active_tab) {
TABS[this.active_tab].cleanup(callback);
this.active_tab.cleanup(callback);
} else {
callback();
}
Expand Down Expand Up @@ -496,4 +493,4 @@ GUI_control.prototype.update_dataflash_global = function () {
// initialize object into GUI variable
var GUI = new GUI_control();

export { GUI, TABS };
export default GUI;
2 changes: 1 addition & 1 deletion js/logicCondition.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'use strict';

import FC from './fc';
import { GUI } from './../js/gui';
import GUI from './../js/gui';
import { LOGIC_OPERATORS } from './logicConditionOperators';
import { OPERAND_TYPES } from './logicConditionOperantTypes';

Expand Down
2 changes: 1 addition & 1 deletion js/msp/MSPHelper.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import semver from 'semver';

import './../injected_methods';
import { GUI } from './../gui';
import GUI from './../gui';
import MSP from './../msp';
import MSPCodes from './MSPCodes';
import FC from './../fc';
Expand Down
Loading