Merge pull request #860 from iNavFlight/dzikuvx-defaults-dialog-to-2-3-1

Defaults dialog in 2.3.1
pull/862/head
Paweł Spychalski 5 years ago committed by GitHub
commit df6c4f7c55
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -3224,5 +3224,11 @@
},
"vtxDisclaimer": {
"message": "Use only bands, channels and power levels that are legal in a place you fly! Always refer to VTX user manual and local regulations!"
},
"defaultsDialogTitle": {
"message": "Default values"
},
"defaultsDialogInfo": {
"message": "INAV Configurator would like to know which kind of UAV you are configuring. Based on this information it will modify some default values to unlock the best flying performance. "
}
}

@ -50,7 +50,8 @@ sources.css = [
'./js/libraries/switchery/switchery.css',
'./js/libraries/jbox/jBox.css',
'./node_modules/openlayers/dist/ol.css',
'./src/css/logic.css'
'./src/css/logic.css',
'./src/css/defaults_dialog.css'
];
sources.js = [
@ -113,6 +114,7 @@ sources.js = [
'./tabs/advanced_tuning.js',
'./js/peripherals.js',
'./js/appUpdater.js',
'./js/defaults_dialog.js',
'./node_modules/openlayers/dist/ol.js'
];

@ -0,0 +1,277 @@
'use strict';
var helper = helper || {};
helper.defaultsDialog = (function() {
let publicScope = {},
privateScope = {};
let $container;
let data = [{
"title": 'Mini Quad with 3"-7" propellers',
"settings": [
{
key: "gyro_hardware_lpf",
value: "256HZ"
},
{
key: "looptime",
value: 500
},
{
key: "gyro_lpf_hz",
value: 100
},
{
key: "gyro_lpf_type",
value: "PT1"
},
{
key: "gyro_stage2_lowpass_hz",
value: 200
},
{
key: "dterm_lpf_hz",
value: 90
},
{
key: "use_dterm_fir_filter",
value: "OFF"
},
{
key: "mc_iterm_relax_type",
value: "RP"
},
{
key: "d_boost_factor",
value: 1.5
},
{
key: "antigravity_gain",
value: 2
},
{
key: "antigravity_accelerator",
value: 5
},
{
key: "rc_yaw_expo",
value: 70
},
{
key: "rc_expo",
value: 70
},
{
key: "roll_rate",
value: 70
},
{
key: "pitch_rate",
value: 70
},
{
key: "yaw_rate",
value: 60
},
{
key: "mc_p_pitch",
value: 44
},
{
key: "mc_i_pitch",
value: 60
},
{
key: "mc_d_pitch",
value: 25
},
{
key: "mc_p_roll",
value: 40
},
{
key: "mc_i_roll",
value: 50
},
{
key: "mc_d_roll",
value: 25
},
{
key: "mc_p_yaw",
value: 45
},
{
key: "mc_i_yaw",
value: 70
},
{
key: "mc_airmode_type",
value: "THROTTLE_THRESHOLD"
},
{
key: "applied_defaults",
value: 2
}
],
"features":[
{
bit: 5, // Enable DYNAMIC_FILTERS
state: true
}
]
},
{
"title": 'Airplane',
"id": 3,
"settings": [
{
key: "rc_yaw_expo",
value: 70
},
{
key: "rc_expo",
value: 70
},
{
key: "roll_rate",
value: 30
},
{
key: "pitch_rate",
value: 20
},
{
key: "yaw_rate",
value: 10
},
{
key: "small_angle",
value: 180
},
{
key: "applied_defaults",
value: 3
}
],
"features":[
{
bit: 4, // Enable MOTOR_STOP
state: true
}
]
},
{
"title": 'Custom UAV - INAV legacy defaults',
"settings": [
{
key: "applied_defaults",
value: 1
}
]
},
{
"title": 'Keep current settings',
"settings": [
{
key: "applied_defaults",
value: 1
}
]
}
]
publicScope.init = function() {
mspHelper.getSetting("applied_defaults").then(privateScope.onInitSettingReturned);
$container = $("#defaults-wrapper");
};
privateScope.setFeaturesBits = function (selectedDefaultPreset) {
if (selectedDefaultPreset.features && selectedDefaultPreset.features.length > 0) {
for (let i in selectedDefaultPreset.features) {
if (selectedDefaultPreset.features.hasOwnProperty(i)) {
let feature = selectedDefaultPreset.features[i];
if (feature.state) {
BF_CONFIG.features = bit_set(BF_CONFIG.features, feature.bit);
} else {
BF_CONFIG.features = bit_clear(BF_CONFIG.features, feature.bit);
}
}
}
mspHelper.saveBfConfig(function () {
privateScope.setSettings(selectedDefaultPreset);
});
} else {
privateScope.setSettings(selectedDefaultPreset);
}
};
privateScope.setSettings = function (selectedDefaultPreset) {
Promise.mapSeries(selectedDefaultPreset.settings, function (input, ii) {
return mspHelper.getSetting(input.key);
}).then(function () {
Promise.mapSeries(selectedDefaultPreset.settings, function (input, ii) {
return mspHelper.setSetting(input.key, input.value);
}).then(function () {
mspHelper.saveToEeprom(function () {
//noinspection JSUnresolvedVariable
GUI.log(chrome.i18n.getMessage('configurationEepromSaved'));
GUI.tab_switch_cleanup(function() {
MSP.send_message(MSPCodes.MSP_SET_REBOOT, false, false, function () {
//noinspection JSUnresolvedVariable
GUI.log(chrome.i18n.getMessage('deviceRebooting'));
GUI.handleReconnect();
});
});
});
})
});
};
privateScope.onPresetClick = function(event) {
$container.hide();
let selectedDefaultPreset = data[$(event.currentTarget).data("index")];
if (selectedDefaultPreset && selectedDefaultPreset.settings) {
mspHelper.loadBfConfig(function () {
privateScope.setFeaturesBits(selectedDefaultPreset)
});
}
};
privateScope.render = function() {
let $place = $container.find('.defaults-dialog__options');
$place.html("");
for (let i in data) {
if (data.hasOwnProperty(i)) {
let preset = data[i];
let $element = $("<div class='default_btn defaults_btn'>\
<a class='confirm' href='#'></a>\
</div>")
$element.find("a").html(preset.title);
$element.data("index", i).click(privateScope.onPresetClick)
$element.appendTo($place);
}
}
}
privateScope.onInitSettingReturned = function(promise) {
if (promise.value > 0) {
return; //Defaults were applied, we can just ignore
}
privateScope.render();
$container.show();
}
return publicScope;
})();

@ -199,6 +199,10 @@ function onValidFirmware()
GUI.allowedTabs = GUI.defaultAllowedTabsWhenConnected.slice();
onConnect();
if (semver.gte(CONFIG.flightControllerVersion, "2.3.0")) {
helper.defaultsDialog.init();
}
$('#tabs ul.mode-connected .tab_setup a').click();
});
});

@ -1,56 +1,57 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<link type="text/css" rel="stylesheet" href="./build/styles.css" media="all"/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link type="text/css" rel="stylesheet" href="./build/styles.css" media="all" />
<script type="text/javascript" src="./build/script.js"></script>
<title></title>
</head>
<body>
<div id="main-wrapper">
<div id="appUpdateNotification" class="is-hidden">
<div class="modal__content">
<h1 class="modal__title modal__title" data-i18n="appUpdateNotificationHeader"></h1>
<div class="modal__text" data-i18n="appUpdateNotificationDescription"></div>
</div>
<div class="modal__buttons modal__buttons--upbottom">
<a href="https://github.com/iNavFlight/inav-configurator/releases" target="_blank" id="update-notification-download"
class="modal__button modal__button--main modal__button--main--inline" data-i18n="downloadUpdatesBtn"></a>
<a id="update-notification-close" class="modal__button modal__button--main modal__button--main--inline" data-i18n="closeUpdateBtn"></a>
</div>
</div>
<div class="headerbar">
<div id="logo">
<div class="logo_text">
CONFIGURATOR
<div class="version"></div>
<div id="main-wrapper">
<div id="appUpdateNotification" class="is-hidden">
<div class="modal__content">
<h1 class="modal__title modal__title" data-i18n="appUpdateNotificationHeader"></h1>
<div class="modal__text" data-i18n="appUpdateNotificationDescription"></div>
</div>
<div class="modal__buttons modal__buttons--upbottom">
<a href="https://github.com/iNavFlight/inav-configurator/releases" target="_blank" id="update-notification-download" class="modal__button modal__button--main modal__button--main--inline" data-i18n="downloadUpdatesBtn"></a>
<a id="update-notification-close" class="modal__button modal__button--main modal__button--main--inline" data-i18n="closeUpdateBtn"></a>
</div>
</div>
<a id="options" href="#" data-i18n_title="options_title"></a>
<div id="port-picker">
<div class="connect_controls" id="connectbutton">
<div class="connect_b">
<a class="connect" href="#"></a>
<div class="headerbar">
<div id="logo">
<div class="logo_text">
CONFIGURATOR
<div class="version"></div>
</div>
<a class="connect_state" data-i18n="connect"></a>
</div>
<div id="portsinput">
<div class="portsinput__row">
<div id="port-override-option" class="portsinput__top-element portsinput__top-element--port-override">
<label for="port-override">Port: </label>
<input id="port-override" type="text" value="/dev/rfcomm0"/>
<a id="options" href="#" data-i18n_title="options_title"></a>
<div id="port-picker">
<div class="connect_controls" id="connectbutton">
<div class="connect_b">
<a class="connect" href="#"></a>
</div>
<div class="dropdown dropdown-dark portsinput__top-element">
<!--suppress HtmlFormInputWithoutLabel -->
<select class="dropdown-select" id="port" title="Port">
<a class="connect_state" data-i18n="connect"></a>
</div>
<div id="portsinput">
<div class="portsinput__row">
<div id="port-override-option" class="portsinput__top-element portsinput__top-element--port-override">
<label for="port-override">Port: </label>
<input id="port-override" type="text" value="/dev/rfcomm0" />
</div>
<div class="dropdown dropdown-dark portsinput__top-element">
<!--suppress HtmlFormInputWithoutLabel -->
<select class="dropdown-select" id="port" title="Port">
<option value="manual">Manual</option>
<!-- port list gets generated here -->
</select>
</div>
<div class="dropdown dropdown-dark portsinput__top-element">
<!--suppress HtmlFormInputWithoutLabel -->
<select class="dropdown-select" id="baud" title="Baud Rate">
</div>
<div class="dropdown dropdown-dark portsinput__top-element">
<!--suppress HtmlFormInputWithoutLabel -->
<select class="dropdown-select" id="baud" title="Baud Rate">
<option value="115200" selected="selected">115200</option>
<option value="57600">57600</option>
<option value="38400">38400</option>
@ -62,192 +63,243 @@
<option value="2400">2400</option>
<option value="1200">1200</option>
</select>
</div>
</div>
</div>
<div class="portsinput__row">
<div class="portsinput__top-element portsinput__top-element--inline">
<label for="wireless-mode">
<div class="portsinput__row">
<div class="portsinput__top-element portsinput__top-element--inline">
<label for="wireless-mode">
<span class="" data-i18n="wirelessModeSwitch"></span>
</label>
<input id="wireless-mode" class=" togglesmall" type="checkbox"/>
<input id="wireless-mode" class=" togglesmall" type="checkbox" />
</div>
</div>
</div>
</div>
</div>
<div class="header-wrapper">
<div id="dataflash_wrapper_global">
<div class="noflash_global" align="center">No dataflash <br>chip found</div>
<ul class="dataflash-contents_global">
<li class="dataflash-free_global">
<div class="legend">Dataflash: free space</div>
</li>
</ul>
<div id="profile_change">
<div class="dropdown dropdown-dark">
<form name="profile-change" id="profile-change">
<!--suppress HtmlFormInputWithoutLabel -->
<select class="dropdown-select" id="profilechange">
<div class="header-wrapper">
<div id="dataflash_wrapper_global">
<div class="noflash_global" align="center">No dataflash <br>chip found</div>
<ul class="dataflash-contents_global">
<li class="dataflash-free_global">
<div class="legend">Dataflash: free space</div>
</li>
</ul>
<div id="profile_change">
<div class="dropdown dropdown-dark">
<form name="profile-change" id="profile-change">
<!--suppress HtmlFormInputWithoutLabel -->
<select class="dropdown-select" id="profilechange">
<option value="0">Profile 1</option>
<option value="1">Profile 2</option>
<option value="2">Profile 3</option>
</select>
</form>
</form>
</div>
</div>
</div>
<div id="battery_profile_change">
<div class="dropdown dropdown-dark">
<form name="battery-profile-change" id="battery-profile-change">
<!--suppress HtmlFormInputWithoutLabel -->
<select class="dropdown-select" id="batteryprofilechange">
<div id="battery_profile_change">
<div class="dropdown dropdown-dark">
<form name="battery-profile-change" id="battery-profile-change">
<!--suppress HtmlFormInputWithoutLabel -->
<select class="dropdown-select" id="batteryprofilechange">
<option value="0">Battery profile 1</option>
<option value="1">Battery profile 2</option>
<option value="2">Battery profile 3</option>
</select>
</form>
</form>
</div>
</div>
</div>
<div id="sensor-status" class="sensor_state mode-connected">
<ul>
<li class="gyro" title="Gyroscope">
<div class="gyroicon">Gyro</div>
</li>
<li class="accel" title="Accelerometer">
<div class="accicon">Accel</div>
</li>
<li class="mag" title="Magnetometer">
<div class="magicon">Mag</div>
</li>
<li class="baro" title="Barometer">
<div class="baroicon">Baro</div>
</li>
<li class="gps" title="GPS">
<div class="gpsicon">GPS</div>
</li>
<li class="opflow" title="Optical flow">
<div class="opflowicon">Flow</div>
</li>
<li class="sonar" title="Sonar / Range finder">
<div class="sonaricon">Sonar</div>
</li>
<li class="airspeed" title="Airspeed">
<div class="airspeedicon">Speed</div>
</li>
</ul>
</div>
<div id="quad-status_wrapper">
<div class="battery-icon">
<div class="quad-status-contents">
<div class="battery-status"></div>
</div>
</div>
<div class="battery-legend">Battery voltage</div>
<div class="bottomStatusIcons">
<div class="armedicon cf_tip" data-i18n_title="mainHelpArmed"></div>
<div class="failsafeicon cf_tip" data-i18n_title="mainHelpFailsafe"></div>
<div class="linkicon cf_tip" data-i18n_title="mainHelpLink"></div>
</div>
</div>
</div>
<div id="sensor-status" class="sensor_state mode-connected">
<ul>
<li class="gyro" title="Gyroscope">
<div class="gyroicon">Gyro</div>
</div>
<div class="clear-both"></div>
<div id="log">
<div class="logswitch">
<a href="#" id="showlog">Show Log</a>
</div>
<div id="scrollicon"></div>
<div class="wrapper"></div>
</div>
<div class="tab_container">
<div id="tabs">
<ul class="mode-disconnected">
<li class="tab_landing">
<a href="#" data-i18n="tabLanding" class="tabicon ic_welcome" title="Welcome"></a>
</li>
<li class="tab_help">
<a href="https://github.com/iNavFlight/inav/wiki" target="_blank" data-i18n="tabHelp" class="tabicon ic_help" title="Documentation &amp; Support"></a>
</li>
<li class="tab_mission_control">
<a href="#" data-i18n="tabMissionControl" class="tabicon ic_mission" title="Mission Control"></a>
</li>
<li class="tab_firmware_flasher">
<a href="#" data-i18n="tabFirmwareFlasher" class="tabicon ic_flasher" title="Firmware Flasher"></a>
</li>
<li class="accel" title="Accelerometer">
<div class="accicon">Accel</div>
</ul>
<ul class="mode-connected">
<li class="tab_setup">
<a href="#" data-i18n="tabSetup" class="tabicon ic_setup" title="Setup"></a>
</li>
<li class="tab_calibration">
<a href="#" data-i18n="tabCalibration" class="tabicon ic_calibration" title="Calibration"></a>
</li>
<li class="tab_mixer">
<a href="#" data-i18n="tabMixer" class="tabicon ic_mixer" title="Mixer"></a>
</li>
<li class="tab_motors">
<a href="#" data-i18n="tabMotorTesting" class="tabicon ic_motor" title="Motors"></a>
</li>
<li class="tab_profiles">
<a href="#" data-i18n="tabPresets" class="tabicon ic_wizzard" title="Presets"></a>
</li>
<li class="mag" title="Magnetometer">
<div class="magicon">Mag</div>
<li class="tab_ports">
<a href="#" data-i18n="tabPorts" class="tabicon ic_ports" title="Ports"></a>
</li>
<li class="baro" title="Barometer">
<div class="baroicon">Baro</div>
<li class="tab_configuration">
<a href="#" data-i18n="tabConfiguration" class="tabicon ic_config" title="Configuration"></a>
</li>
<li class="tab_failsafe">
<a href="#" data-i18n="tabFailsafe" class="tabicon ic_failsafe" title="Failsafe"></a>
</li>
<li class="tab_pid_tuning">
<a href="#" data-i18n="tabPidTuning" class="tabicon ic_pid" title="PID Tuning"></a>
</li>
<li class="tab_advanced_tuning">
<a href="#" data-i18n="tabAdvancedTuning" class="tabicon ic_advanced" title="Advanced Tuning"></a>
</li>
<li class="tab_receiver">
<a href="#" data-i18n="tabReceiver" class="tabicon ic_rx" title="Receiver"></a>
</li>
<li class="gps" title="GPS">
<div class="gpsicon">GPS</div>
<li class="tab_auxiliary">
<a href="#" data-i18n="tabAuxiliary" class="tabicon ic_modes" title="Modes"></a>
</li>
<li class="opflow" title="Optical flow">
<div class="opflowicon">Flow</div>
<li class="tab_adjustments">
<a href="#" data-i18n="tabAdjustments" class="tabicon ic_adjust" title="Adjustments"></a>
</li>
<li class="sonar" title="Sonar / Range finder">
<div class="sonaricon">Sonar</div>
<li class="tab_gps">
<a href="#" data-i18n="tabGPS" class="tabicon ic_gps" title="GPS"></a>
</li>
<li class="airspeed" title="Airspeed">
<div class="airspeedicon">Speed</div>
<li class="tab_mission_control">
<a href="#" data-i18n="tabMissionControl" class="tabicon ic_mission" title="Mission Control"></a>
</li>
<li class="tab_osd">
<a href="#" data-i18n="tabOSD" class="tabicon ic_osd" title="OSD"></a>
</li>
<!--<li class="tab_transponder"><a href="#" data-i18n="tabTransponder" class="tabicon ic_transponder" title="Transponder"></a></li>-->
<li class="tab_led_strip">
<a href="#" data-i18n="tabLedStrip" class="tabicon ic_led" title="LED Strip"></a>
</li>
<li class="tab_sensors">
<a href="#" data-i18n="tabRawSensorData" class="tabicon ic_sensors" title="Sensors"></a>
</li>
<li class="tab_logging">
<a href="#" data-i18n="tabLogging" class="tabicon ic_log" title="Tethered Logging"></a>
</li>
<li class="tab_onboard_logging">
<a href="#" data-i18n="tabOnboardLogging" class="tabicon ic_data" title="Onboard Logging"></a>
</li>
<li class="tab_cli">
<a href="#" data-i18n="tabCLI" class="tabicon ic_cli" title="CLI"></a>
</li>
<!--<li class=""><a href="#" class="tabicon ic_advanced">Advanced (spare icon)</a></li>-->
<!--<li class=""><a href="#" class="tabicon ic_wizzard">Wizzard (spare icon)</a></li>-->
</ul>
</div>
<div id="quad-status_wrapper">
<div class="battery-icon">
<div class="quad-status-contents">
<div class="battery-status"></div>
</div>
</div>
<div class="battery-legend">Battery voltage</div>
<div class="bottomStatusIcons">
<div class="armedicon cf_tip" data-i18n_title="mainHelpArmed"></div>
<div class="failsafeicon cf_tip" data-i18n_title="mainHelpFailsafe"></div>
<div class="linkicon cf_tip" data-i18n_title="mainHelpLink"></div>
</div>
</div>
<div class="clear-both"></div>
</div>
</div>
<div class="clear-both"></div>
<div id="log">
<div class="logswitch">
<a href="#" id="showlog">Show Log</a>
<div id="content"></div>
<div id="status-bar">
<div>
<span data-i18n="statusbar_packet_error"></span> <span class="packet-error">0</span>
</div>
<div>
<span data-i18n="statusbar_i2c_error"></span> <span class="i2c-error">0</span>
</div>
<div>
<span data-i18n="statusbar_cycle_time"></span> <span class="cycle-time">0</span>
</div>
<div>
<span class="cpu-load"> </span>
</div>
<div>
<span id="msp-version"> </span>
</div>
<div>
<span id="msp-load"> </span>
</div>
<div>
<span id="msp-roundtrip"> </span>
</div>
<div>
<span id="hardware-roundtrip"> </span>
</div>
<div>
<span id="drop-rate"> </span>
</div>
<div class="version">
<!-- configuration version generated here -->
</div>
</div>
<div id="scrollicon"></div>
<div class="wrapper"></div>
</div>
<div class="tab_container">
<div id="tabs">
<ul class="mode-disconnected">
<li class="tab_landing"><a href="#" data-i18n="tabLanding" class="tabicon ic_welcome" title="Welcome"></a></li>
<li class="tab_help"><a href="https://github.com/iNavFlight/inav/wiki" target="_blank" data-i18n="tabHelp" class="tabicon ic_help"
title="Documentation &amp; Support"></a></li>
<li class="tab_mission_control"><a href="#" data-i18n="tabMissionControl" class="tabicon ic_mission" title="Mission Control"></a></li>
<li class="tab_firmware_flasher"><a href="#" data-i18n="tabFirmwareFlasher" class="tabicon ic_flasher"
title="Firmware Flasher"></a></li>
</ul>
<ul class="mode-connected">
<li class="tab_setup"><a href="#" data-i18n="tabSetup" class="tabicon ic_setup" title="Setup"></a></li>
<li class="tab_calibration"><a href="#" data-i18n="tabCalibration" class="tabicon ic_calibration" title="Calibration"></a></li>
<li class="tab_mixer"><a href="#" data-i18n="tabMixer" class="tabicon ic_mixer" title="Mixer"></a></li>
<li class="tab_motors"><a href="#" data-i18n="tabMotorTesting" class="tabicon ic_motor" title="Motors"></a></li>
<li class="tab_profiles"><a href="#" data-i18n="tabPresets" class="tabicon ic_wizzard"
title="Presets"></a></li>
<li class="tab_ports"><a href="#" data-i18n="tabPorts" class="tabicon ic_ports" title="Ports"></a></li>
<li class="tab_configuration"><a href="#" data-i18n="tabConfiguration" class="tabicon ic_config"
title="Configuration"></a></li>
<li class="tab_failsafe"><a href="#" data-i18n="tabFailsafe" class="tabicon ic_failsafe"
title="Failsafe"></a></li>
<li class="tab_pid_tuning"><a href="#" data-i18n="tabPidTuning" class="tabicon ic_pid"
title="PID Tuning"></a></li>
<li class="tab_advanced_tuning"><a href="#" data-i18n="tabAdvancedTuning" class="tabicon ic_advanced" title="Advanced Tuning"></a></li>
<li class="tab_receiver"><a href="#" data-i18n="tabReceiver" class="tabicon ic_rx" title="Receiver"></a></li>
<li class="tab_auxiliary"><a href="#" data-i18n="tabAuxiliary" class="tabicon ic_modes" title="Modes"></a></li>
<li class="tab_adjustments"><a href="#" data-i18n="tabAdjustments" class="tabicon ic_adjust" title="Adjustments"></a></li>
<li class="tab_gps"><a href="#" data-i18n="tabGPS" class="tabicon ic_gps" title="GPS"></a></li>
<li class="tab_mission_control"><a href="#" data-i18n="tabMissionControl" class="tabicon ic_mission" title="Mission Control"></a></li>
<li class="tab_osd"><a href="#" data-i18n="tabOSD" class="tabicon ic_osd" title="OSD"></a></li>
<!--<li class="tab_transponder"><a href="#" data-i18n="tabTransponder" class="tabicon ic_transponder" title="Transponder"></a></li>-->
<li class="tab_led_strip"><a href="#" data-i18n="tabLedStrip" class="tabicon ic_led"
title="LED Strip"></a></li>
<li class="tab_sensors"><a href="#" data-i18n="tabRawSensorData" class="tabicon ic_sensors"
title="Sensors"></a></li>
<li class="tab_logging"><a href="#" data-i18n="tabLogging" class="tabicon ic_log"
title="Tethered Logging"></a></li>
<li class="tab_onboard_logging"><a href="#" data-i18n="tabOnboardLogging" class="tabicon ic_data"
title="Onboard Logging"></a></li>
<li class="tab_cli"><a href="#" data-i18n="tabCLI" class="tabicon ic_cli" title="CLI"></a></li>
<!--<li class=""><a href="#" class="tabicon ic_advanced">Advanced (spare icon)</a></li>-->
<!--<li class=""><a href="#" class="tabicon ic_wizzard">Wizzard (spare icon)</a></li>-->
</ul>
<div id="cache">
<div class="data-loading">
<p>Waiting for data ...</p>
</div>
</div>
<div class="clear-both"></div>
</div>
<div id="content"></div>
<div id="status-bar">
<div>
<span data-i18n="statusbar_packet_error"></span> <span class="packet-error">0</span>
</div>
<div>
<span data-i18n="statusbar_i2c_error"></span> <span class="i2c-error">0</span>
</div>
<div>
<span data-i18n="statusbar_cycle_time"></span> <span class="cycle-time">0</span>
</div>
<div>
<span class="cpu-load"> </span>
</div>
<div>
<span id="msp-version"> </span>
</div>
<div>
<span id="msp-load"> </span>
</div>
<div>
<span id="msp-roundtrip"> </span>
</div>
<div>
<span id="hardware-roundtrip"> </span>
</div>
<div>
<span id="drop-rate"> </span>
</div>
<div class="version">
<!-- configuration version generated here -->
</div>
<div id="modal-reconnect" class="is-hidden">
<div data-i18n="deviceRebooting"></div>
</div>
<div id="cache">
<div class="data-loading">
<p>Waiting for data ...</p>
<div id="defaults-wrapper" style="display: none">
<div class="defaults-dialog__background"></div>
<div class="defaults-dialog__content">
<div class="tab_title" data-i18n="defaultsDialogTitle"></div>
<div class="defaults-dialog__content--wrapper">
<p class="defaults-dialog__info" data-i18n="defaultsDialogInfo"></p>
<div class="defaults-dialog__options"></div>
</div>
</div>
</div>
</div>
<div id="modal-reconnect" class="is-hidden">
<div data-i18n="deviceRebooting"></div>
</div>
</body>
</html>
</html>

@ -0,0 +1,45 @@
.defaults-dialog__background {
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
background: black;
opacity: 0.75;
z-index: 2001;
}
.defaults-dialog__content {
background-color: #efefef;
border-radius: 2px;
z-index: 2002;
position: absolute;
width: 500px;
height: 320px;
overflow-y: auto;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin: auto;
padding: 1em;
}
.defaults-dialog__content--wrapper {
overflow-y: auto;
}
.defaults-dialog__info {
font-size: 1.3em;
}
.defaults_btn {
float: none;
display: block;
margin-top: 1em;
}
.defaults_btn a {
font-size: 1.4em;
line-height: 25px;
}
Loading…
Cancel
Save