mirror of
https://github.com/iNavFlight/inav-configurator.git
synced 2025-07-14 03:49:53 +03:00
Merge branch 'master' into release_6.1.0
This commit is contained in:
commit
7fa0f7e695
31 changed files with 1400 additions and 584 deletions
File diff suppressed because it is too large
Load diff
|
@ -5,7 +5,7 @@ var appUpdater = appUpdater || {};
|
||||||
appUpdater.checkRelease = function (currVersion) {
|
appUpdater.checkRelease = function (currVersion) {
|
||||||
var modalStart;
|
var modalStart;
|
||||||
$.get('https://api.github.com/repos/iNavFlight/inav-configurator/releases', function (releaseData) {
|
$.get('https://api.github.com/repos/iNavFlight/inav-configurator/releases', function (releaseData) {
|
||||||
GUI.log('Loaded release information from GitHub.');
|
GUI.log(chrome.i18n.getMessage('loadedReleaseInfo'));
|
||||||
//Git return sorted list, 0 - last release
|
//Git return sorted list, 0 - last release
|
||||||
|
|
||||||
let newVersion = releaseData[0].tag_name;
|
let newVersion = releaseData[0].tag_name;
|
||||||
|
@ -15,7 +15,7 @@ appUpdater.checkRelease = function (currVersion) {
|
||||||
GUI.log(newVersion, chrome.runtime.getManifest().version);
|
GUI.log(newVersion, chrome.runtime.getManifest().version);
|
||||||
GUI.log(currVersion);
|
GUI.log(currVersion);
|
||||||
|
|
||||||
GUI.log('New version available!');
|
GUI.log(chrome.i18n.getMessage('newVersionAvailable'));
|
||||||
modalStart = new jBox('Modal', {
|
modalStart = new jBox('Modal', {
|
||||||
width: 400,
|
width: 400,
|
||||||
height: 200,
|
height: 200,
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
|
|
||||||
var CONFIGURATOR = {
|
var CONFIGURATOR = {
|
||||||
// all versions are specified and compared using semantic versioning http://semver.org/
|
// all versions are specified and compared using semantic versioning http://semver.org/
|
||||||
'minfirmwareVersionAccepted': '6.0.0',
|
'minfirmwareVersionAccepted': '7.0.0',
|
||||||
'maxFirmwareVersionAccepted': '7.0.0', // Condition is < (lt) so we accept all in 6.x branch
|
'maxFirmwareVersionAccepted': '8.0.0', // Condition is < (lt) so we accept all in 7.x branch
|
||||||
'connectionValid': false,
|
'connectionValid': false,
|
||||||
'connectionValidCliOnly': false,
|
'connectionValidCliOnly': false,
|
||||||
'cliActive': false,
|
'cliActive': false,
|
||||||
|
|
|
@ -3003,7 +3003,7 @@ var mspHelper = (function (gui) {
|
||||||
if (waypointId < MISSION_PLANNER.getCountBusyPoints()) {
|
if (waypointId < MISSION_PLANNER.getCountBusyPoints()) {
|
||||||
MSP.send_message(MSPCodes.MSP_WP, [waypointId], false, loadWaypoint);
|
MSP.send_message(MSPCodes.MSP_WP, [waypointId], false, loadWaypoint);
|
||||||
} else {
|
} else {
|
||||||
GUI.log('Receive time: ' + (new Date().getTime() - startTime) + 'ms');
|
GUI.log(chrome.i18n.getMessage('ReceiveTime') + (new Date().getTime() - startTime) + 'ms');
|
||||||
MSP.send_message(MSPCodes.MSP_WP, [waypointId], false, callback);
|
MSP.send_message(MSPCodes.MSP_WP, [waypointId], false, callback);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -3025,7 +3025,7 @@ var mspHelper = (function (gui) {
|
||||||
};
|
};
|
||||||
|
|
||||||
function endMission() {
|
function endMission() {
|
||||||
GUI.log('Send time: ' + (new Date().getTime() - startTime) + 'ms');
|
GUI.log(chrome.i18n.getMessage('SendTime') + (new Date().getTime() - startTime) + 'ms');
|
||||||
MSP.send_message(MSPCodes.MSP_WP_GETINFO, false, false, callback);
|
MSP.send_message(MSPCodes.MSP_WP_GETINFO, false, false, callback);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -81,7 +81,7 @@ STM32_protocol.prototype.connect = function (port, baud, hex, options, callback)
|
||||||
|
|
||||||
self.initialize();
|
self.initialize();
|
||||||
} else {
|
} else {
|
||||||
GUI.log('<span style="color: red">Failed</span> to open serial port');
|
GUI.log(chrome.i18n.getMessage('failedToOpenSerialPort'));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
@ -108,7 +108,7 @@ STM32_protocol.prototype.connect = function (port, baud, hex, options, callback)
|
||||||
retries++;
|
retries++;
|
||||||
if (retries > maxRetries) {
|
if (retries > maxRetries) {
|
||||||
clearInterval(interval);
|
clearInterval(interval);
|
||||||
GUI.log('<span style="color: red">Failed</span> to flash ' + port);
|
GUI.log(chrome.i18n.getMessage('failedToFlash') + port);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Check for DFU devices
|
// Check for DFU devices
|
||||||
|
@ -145,7 +145,7 @@ STM32_protocol.prototype.connect = function (port, baud, hex, options, callback)
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
GUI.log('<span style="color: red">Failed</span> to open serial port');
|
GUI.log(chrome.i18n.getMessage('failedToOpenSerialPort'));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
4
main.css
4
main.css
|
@ -60,6 +60,10 @@ a.disabled {
|
||||||
transition: none;
|
transition: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.inputRequiredWarning {
|
||||||
|
border: 3px solid #d40000 !important;
|
||||||
|
}
|
||||||
|
|
||||||
.cf_doc_version_bt a {
|
.cf_doc_version_bt a {
|
||||||
padding: 1px 9px 1px 9px;
|
padding: 1px 9px 1px 9px;
|
||||||
margin-top: -45px;
|
margin-top: -45px;
|
||||||
|
|
65
main.html
65
main.html
|
@ -23,11 +23,11 @@
|
||||||
<div class="headerbar">
|
<div class="headerbar">
|
||||||
<div id="logo">
|
<div id="logo">
|
||||||
<div class="logo_text">
|
<div class="logo_text">
|
||||||
CONFIGURATOR
|
<span i18n="mainLogoText"></span>
|
||||||
<div class="version"></div>
|
<div class="version"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="logo_text_firmware">
|
<div class="logo_text_firmware">
|
||||||
FC FIRMWARE
|
<span i18n="mainLogoTextFirmware"></span>
|
||||||
<div class="firmware_version"></div>
|
<div class="firmware_version"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -43,13 +43,13 @@
|
||||||
<div id="portsinput">
|
<div id="portsinput">
|
||||||
<div class="portsinput__row">
|
<div class="portsinput__row">
|
||||||
<div id="port-override-option" class="portsinput__top-element portsinput__top-element--port-override">
|
<div id="port-override-option" class="portsinput__top-element portsinput__top-element--port-override">
|
||||||
<label id="port-override-label" for="port-override">Port: </label>
|
<label id="port-override-label" for="port-override" i18n="mainPortOverrideLabel"></label>
|
||||||
<input id="port-override" type="text" value="/dev/rfcomm0" />
|
<input id="port-override" type="text" value="/dev/rfcomm0" />
|
||||||
</div>
|
</div>
|
||||||
<div class="dropdown dropdown-dark portsinput__top-element">
|
<div class="dropdown dropdown-dark portsinput__top-element">
|
||||||
<!--suppress HtmlFormInputWithoutLabel -->
|
<!--suppress HtmlFormInputWithoutLabel -->
|
||||||
<select class="dropdown-select" id="port" title="Port">
|
<select class="dropdown-select" id="port" title="Port">
|
||||||
<option value="manual">Manual</option>
|
<option value="manual" i18n="mainManual"></option>
|
||||||
<!-- port list gets generated here -->
|
<!-- port list gets generated here -->
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
@ -81,10 +81,10 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="header-wrapper">
|
<div class="header-wrapper">
|
||||||
<div id="dataflash_wrapper_global">
|
<div id="dataflash_wrapper_global">
|
||||||
<div class="noflash_global" align="center">No dataflash <br>chip found</div>
|
<div class="noflash_global" align="center" i18n="sensorDataFlashNotFound"></div>
|
||||||
<ul class="dataflash-contents_global">
|
<ul class="dataflash-contents_global">
|
||||||
<li class="dataflash-free_global">
|
<li class="dataflash-free_global">
|
||||||
<div class="legend">Dataflash: free space</div>
|
<div class="legend" i18n="sensorDataFlashFreeSpace"></div>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div id="profile_change">
|
<div id="profile_change">
|
||||||
|
@ -92,9 +92,9 @@
|
||||||
<form name="profile-change" id="profile-change">
|
<form name="profile-change" id="profile-change">
|
||||||
<!--suppress HtmlFormInputWithoutLabel -->
|
<!--suppress HtmlFormInputWithoutLabel -->
|
||||||
<select class="dropdown-select" id="profilechange">
|
<select class="dropdown-select" id="profilechange">
|
||||||
<option value="0">Profile 1</option>
|
<option value="0" i18n="sensorProfile1"></option>
|
||||||
<option value="1">Profile 2</option>
|
<option value="1" i18n="sensorProfile2"></option>
|
||||||
<option value="2">Profile 3</option>
|
<option value="2" i18n="sensorProfile3"></option>
|
||||||
</select>
|
</select>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
@ -104,9 +104,9 @@
|
||||||
<form name="battery-profile-change" id="battery-profile-change">
|
<form name="battery-profile-change" id="battery-profile-change">
|
||||||
<!--suppress HtmlFormInputWithoutLabel -->
|
<!--suppress HtmlFormInputWithoutLabel -->
|
||||||
<select class="dropdown-select" id="batteryprofilechange">
|
<select class="dropdown-select" id="batteryprofilechange">
|
||||||
<option value="0">Battery profile 1</option>
|
<option value="0" i18n="sensorBatteryProfile1"></option>
|
||||||
<option value="1">Battery profile 2</option>
|
<option value="1" i18n="sensorBatteryProfile2"></option>
|
||||||
<option value="2">Battery profile 3</option>
|
<option value="2" i18n="sensorBatteryProfile3"></option>
|
||||||
</select>
|
</select>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
@ -114,29 +114,30 @@
|
||||||
</div>
|
</div>
|
||||||
<div id="sensor-status" class="sensor_state mode-connected">
|
<div id="sensor-status" class="sensor_state mode-connected">
|
||||||
<ul>
|
<ul>
|
||||||
<li class="gyro" title="Gyroscope">
|
<li class="gyro" i18n_title="sensorStatusGyro">
|
||||||
<div class="gyroicon">Gyro</div>
|
<div class="gyroicon" i18n="sensorStatusGyroShort"></div>
|
||||||
</li>
|
</li>
|
||||||
<li class="accel" title="Accelerometer">
|
<li class="accel" i18n_title="sensorStatusAccel">
|
||||||
<div class="accicon">Accel</div>
|
<div class="accicon" i18n="sensorStatusAccelShort"></div>
|
||||||
</li>
|
</li>
|
||||||
<li class="mag" title="Magnetometer">
|
<li class="mag" i18n_title="sensorStatusMag">
|
||||||
<div class="magicon">Mag</div>
|
<div class="magicon" i18n="sensorStatusMagShort"></div>
|
||||||
</li>
|
</li>
|
||||||
<li class="baro" title="Barometer">
|
<li class="baro" i18n_title="sensorStatusBaro">
|
||||||
<div class="baroicon">Baro</div>
|
<div class="baroicon" i18n="sensorStatusBaroShort"></div>
|
||||||
</li>
|
</li>
|
||||||
<li class="gps" title="GPS">
|
<li class="gps" i18n_title="sensorStatusGPS">
|
||||||
<div class="gpsicon">GPS</div>
|
<div class="gpsicon" i18n="sensorStatusGPSShort"></div>
|
||||||
</li>
|
</li>
|
||||||
<li class="opflow" title="Optical flow">
|
|
||||||
<div class="opflowicon">Flow</div>
|
<li class="opflow" i18n_title="sensorOpticalFlow">
|
||||||
|
<div class="opflowicon" i18n="sensorOpticalFlowShort"></div>
|
||||||
</li>
|
</li>
|
||||||
<li class="sonar" title="Sonar / Range finder">
|
<li class="sonar" i18n_title="sensorStatusSonar">
|
||||||
<div class="sonaricon">Sonar</div>
|
<div class="sonaricon" i18n="sensorStatusSonarShort"></div>
|
||||||
</li>
|
</li>
|
||||||
<li class="airspeed" title="Airspeed">
|
<li class="airspeed" i18n_title="sensorAirspeed">
|
||||||
<div class="airspeedicon">Speed</div>
|
<div class="airspeedicon" i18n="sensorAirspeedShort"></div>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
@ -146,7 +147,7 @@
|
||||||
<div class="battery-status"></div>
|
<div class="battery-status"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="battery-legend">Battery voltage</div>
|
<div class="battery-legend" i18n="sensorBatteryVoltage"></div>
|
||||||
<div class="bottomStatusIcons">
|
<div class="bottomStatusIcons">
|
||||||
<div class="armedicon cf_tip" data-i18n_title="mainHelpArmed"></div>
|
<div class="armedicon cf_tip" data-i18n_title="mainHelpArmed"></div>
|
||||||
<div class="failsafeicon cf_tip" data-i18n_title="mainHelpFailsafe"></div>
|
<div class="failsafeicon cf_tip" data-i18n_title="mainHelpFailsafe"></div>
|
||||||
|
@ -158,7 +159,7 @@
|
||||||
<div class="clear-both"></div>
|
<div class="clear-both"></div>
|
||||||
<div id="log">
|
<div id="log">
|
||||||
<div class="logswitch">
|
<div class="logswitch">
|
||||||
<a href="#" id="showlog">Show Log</a>
|
<a href="#" id="showlog" i18n="mainShowLog"></a>
|
||||||
</div>
|
</div>
|
||||||
<div id="scrollicon"></div>
|
<div id="scrollicon"></div>
|
||||||
<div class="wrapper"></div>
|
<div class="wrapper"></div>
|
||||||
|
@ -294,7 +295,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div id="cache">
|
<div id="cache">
|
||||||
<div class="data-loading">
|
<div class="data-loading">
|
||||||
<p>Waiting for data ...</p>
|
<p i18n="waitingForData"></p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -317,4 +318,4 @@
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
6
main.js
6
main.js
|
@ -85,9 +85,9 @@ $(document).ready(function () {
|
||||||
}
|
}
|
||||||
|
|
||||||
// alternative - window.navigator.appVersion.match(/Chrome\/([0-9.]*)/)[1];
|
// alternative - window.navigator.appVersion.match(/Chrome\/([0-9.]*)/)[1];
|
||||||
GUI.log('Running - OS: <strong>' + GUI.operating_system + '</strong>, ' +
|
GUI.log(chrome.i18n.getMessage('getRunningOS') + GUI.operating_system + '</strong>, ' +
|
||||||
'Chrome: <strong>' + window.navigator.appVersion.replace(/.*Chrome\/([0-9.]*).*/, "$1") + '</strong>, ' +
|
'Chrome: <strong>' + window.navigator.appVersion.replace(/.*Chrome\/([0-9.]*).*/, "$1") + '</strong>, ' +
|
||||||
'Configurator: <strong>' + chrome.runtime.getManifest().version + '</strong>');
|
chrome.i18n.getMessage('getConfiguratorVersion') + chrome.runtime.getManifest().version + '</strong>');
|
||||||
|
|
||||||
$('#status-bar .version').text(chrome.runtime.getManifest().version);
|
$('#status-bar .version').text(chrome.runtime.getManifest().version);
|
||||||
$('#logo .version').text(chrome.runtime.getManifest().version);
|
$('#logo .version').text(chrome.runtime.getManifest().version);
|
||||||
|
@ -540,7 +540,7 @@ $(document).ready(function () {
|
||||||
|
|
||||||
state = true;
|
state = true;
|
||||||
}
|
}
|
||||||
$(this).text(state ? 'Hide Log' : 'Show Log');
|
$(this).html(state ? chrome.i18n.getMessage("mainHideLog") : chrome.i18n.getMessage("mainShowLog"));
|
||||||
$(this).data('state', state);
|
$(this).data('state', state);
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"manifest_version": 2,
|
"manifest_version": 2,
|
||||||
"minimum_chrome_version": "38",
|
"minimum_chrome_version": "38",
|
||||||
"version": "6.1.0",
|
"version": "7.0.0",
|
||||||
"author": "Several",
|
"author": "Several",
|
||||||
"name": "INAV - Configurator",
|
"name": "INAV - Configurator",
|
||||||
"short_name": "INAV",
|
"short_name": "INAV",
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "inav-configurator",
|
"name": "inav-configurator",
|
||||||
"description": "INAV Configurator",
|
"description": "INAV Configurator",
|
||||||
"version": "6.1.0",
|
"version": "7.0.0",
|
||||||
"main": "main.html",
|
"main": "main.html",
|
||||||
"default_locale": "en",
|
"default_locale": "en",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<div class="tab-configuration tab-advanced-tuning toolbar_fixed_bottom">
|
<div class="tab-configuration tab-advanced-tuning toolbar_fixed_bottom">
|
||||||
<div class="content_wrapper">
|
<div class="content_wrapper">
|
||||||
<div class="tab_title"><span data-i18n="tabAdvancedTuningTitle">Advanced Tuning</span><span class="airplaneTuningTitle">: Fixed Wing</span><span class="multirotorTuningTitle">: Multirotors</span></div>
|
<div class="tab_title"><span data-i18n="tabAdvancedTuningTitle"></span><span class="airplaneTuningTitle" data-i18n="tabAdvancedTuningAirplaneTuningTitle"></span><span class="multirotorTuningTitle" data-i18n="tabAdvancedTuningMultirotorTuningTitle"></span></div>
|
||||||
|
|
||||||
<!-- Airplane Advanced Tuning-->
|
<!-- Airplane Advanced Tuning-->
|
||||||
<div class="airplaneTuning">
|
<div class="airplaneTuning">
|
||||||
|
@ -96,7 +96,8 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div> <!-- left wrapper -->
|
</div>
|
||||||
|
<!-- left wrapper -->
|
||||||
|
|
||||||
<div class="rightWrapper">
|
<div class="rightWrapper">
|
||||||
<div class="config-section gui_box grey">
|
<div class="config-section gui_box grey">
|
||||||
|
@ -120,7 +121,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="checkbox">
|
<div class="checkbox">
|
||||||
<input type="checkbox" class="toggle update_preview" id="cruiseManualThrottle" data-setting="nav_fw_allow_manual_thr_increase" data-live="true" />
|
<input type="checkbox" class="toggle update_preview" id="cruiseManualThrottle" data-setting="nav_fw_allow_manual_thr_increase" data-live="true" />
|
||||||
<label for="cruiseManualThrottle"><span data-i18n="cruiseManualThrottleLabel"></span></label>
|
<label for="cruiseManualThrottle"><span data-i18n="cruiseManualThrottleLabel"></span></label>
|
||||||
<div for="cruiseManualThrottle" class="helpicon cf_tip" data-i18n_title="cruiseManualThrottleHelp"></div>
|
<div for="cruiseManualThrottle" class="helpicon cf_tip" data-i18n_title="cruiseManualThrottleHelp"></div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -191,7 +192,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="checkbox">
|
<div class="checkbox">
|
||||||
<input type="checkbox" class="toggle update_preview" id="soarMotorStop" data-setting="nav_fw_soaring_motor_stop" data-live="true" />
|
<input type="checkbox" class="toggle update_preview" id="soarMotorStop" data-setting="nav_fw_soaring_motor_stop" data-live="true" />
|
||||||
<label for="soarMotorStop"><span data-i18n="soarMotorStop"></span></label>
|
<label for="soarMotorStop"><span data-i18n="soarMotorStop"></span></label>
|
||||||
<div for="soarMotorStop" class="helpicon cf_tip" data-i18n_title="soarMotorStopHelp"></div>
|
<div for="soarMotorStop" class="helpicon cf_tip" data-i18n_title="soarMotorStopHelp"></div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -204,10 +205,12 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div> <!-- right wrapper -->
|
</div>
|
||||||
|
<!-- right wrapper -->
|
||||||
|
|
||||||
<div class="clear-both"></div>
|
<div class="clear-both"></div>
|
||||||
</div> <!-- Airplane Advanced Tuning -->
|
</div>
|
||||||
|
<!-- Airplane Advanced Tuning -->
|
||||||
|
|
||||||
<!-- Multirotor Advanced tuning -->
|
<!-- Multirotor Advanced tuning -->
|
||||||
<div class="multirotorTuning">
|
<div class="multirotorTuning">
|
||||||
|
@ -255,7 +258,8 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div> <!-- left wrapper -->
|
</div>
|
||||||
|
<!-- left wrapper -->
|
||||||
|
|
||||||
<div class="rightWrapper">
|
<div class="rightWrapper">
|
||||||
<div class="config-section gui_box grey">
|
<div class="config-section gui_box grey">
|
||||||
|
@ -295,7 +299,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="number">
|
<div class="number">
|
||||||
<input id="brakingBoostSpeedThreshold" type="number" data-unit="cms"data-setting="nav_mc_braking_boost_speed_threshold" data-setting-multiplier="1" step="1" min="100" max="1000" />
|
<input id="brakingBoostSpeedThreshold" type="number" data-unit="cms" data-setting="nav_mc_braking_boost_speed_threshold" data-setting-multiplier="1" step="1" min="100" max="1000" />
|
||||||
<label for="brakingBoostSpeedThreshold"><span data-i18n="brakingBoostSpeedThreshold"></span></label>
|
<label for="brakingBoostSpeedThreshold"><span data-i18n="brakingBoostSpeedThreshold"></span></label>
|
||||||
<div for="brakingBoostSpeedThreshold" class="helpicon cf_tip" data-i18n_title="brakingBoostSpeedThresholdTip"></div>
|
<div for="brakingBoostSpeedThreshold" class="helpicon cf_tip" data-i18n_title="brakingBoostSpeedThresholdTip"></div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -314,10 +318,12 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div> <!-- right wrapper -->
|
</div>
|
||||||
|
<!-- right wrapper -->
|
||||||
|
|
||||||
<div class="clear-both"></div>
|
<div class="clear-both"></div>
|
||||||
</div> <!-- Multirotor Advanced Tuning -->
|
</div>
|
||||||
|
<!-- Multirotor Advanced Tuning -->
|
||||||
|
|
||||||
<!-- Common tuning -->
|
<!-- Common tuning -->
|
||||||
<div class="tab_subtitle" data-i18n="tabAdvancedTuningGenericTitle">Advanced Tuning: Generic settings</div>
|
<div class="tab_subtitle" data-i18n="tabAdvancedTuningGenericTitle">Advanced Tuning: Generic settings</div>
|
||||||
|
@ -341,7 +347,7 @@
|
||||||
<div for="rthAltitude" class="helpicon cf_tip" data-i18n_title="rthAltitudeHelp"></div>
|
<div for="rthAltitude" class="helpicon cf_tip" data-i18n_title="rthAltitudeHelp"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="number">
|
<div class="number">
|
||||||
<input type="number" id="rthHomeAltitude" data-unit="cm" data-setting="nav_rth_home_altitude" data-setting-multiplier="1" step="1" min="0" max="65000" />
|
<input type="number" id="rthHomeAltitude" data-unit="cm" data-setting="nav_rth_home_altitude" data-setting-multiplier="1" step="1" min="0" max="65000" />
|
||||||
<label for="rthHomeAltitude"><span data-i18n="rthHomeAltitudeLabel"></span></label>
|
<label for="rthHomeAltitude"><span data-i18n="rthHomeAltitudeLabel"></span></label>
|
||||||
<div for="rthHomeAltitude" class="helpicon cf_tip" data-i18n_title="rthHomeAltitudeHelp"></div>
|
<div for="rthHomeAltitude" class="helpicon cf_tip" data-i18n_title="rthHomeAltitudeHelp"></div>
|
||||||
|
@ -365,6 +371,18 @@
|
||||||
<div for="rthTwoStageAlt" class="helpicon cf_tip" data-i18n_title="rthTwoStageAltHelp"></div>
|
<div for="rthTwoStageAlt" class="helpicon cf_tip" data-i18n_title="rthTwoStageAltHelp"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="checkbox">
|
||||||
|
<input type="checkbox" class="toggle update_preview" id="rthUseLinearDescent" data-setting="nav_rth_use_linear_descent" data-live="true" />
|
||||||
|
<label for="rthUseLinearDescent"><span data-i18n="rthUseLinearDescent"></span></label>
|
||||||
|
<div for="rthUseLinearDescent" class="helpicon cf_tip" data-i18n_title="rthUseLinearDescentHelp"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="number">
|
||||||
|
<input type="number" id="rthLinearDescentStart" data-unit="m" data-setting="nav_rth_linear_descent_start_distance" data-setting-multiplier="1" step="1" min="0" max="10000" />
|
||||||
|
<label for="rthLinearDescentStart"><span data-i18n="rthLinearDescentStart"></span></label>
|
||||||
|
<div for="rthLinearDescentStart" class="helpicon cf_tip" data-i18n_title="rthLinearDescentStartHelp"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="checkbox">
|
<div class="checkbox">
|
||||||
<input type="checkbox" class="toggle update_preview" id="rthClimbIgnoreEmergency" data-setting="nav_rth_climb_ignore_emerg" data-live="true" />
|
<input type="checkbox" class="toggle update_preview" id="rthClimbIgnoreEmergency" data-setting="nav_rth_climb_ignore_emerg" data-live="true" />
|
||||||
<label for="rthClimbIgnoreEmergency"><span data-i18n="rthClimbIgnoreEmergency"></span></label>
|
<label for="rthClimbIgnoreEmergency"><span data-i18n="rthClimbIgnoreEmergency"></span></label>
|
||||||
|
@ -427,17 +445,18 @@
|
||||||
<label for="fsMissionDelay"><span data-i18n="fsMissionDelay"></span></label>
|
<label for="fsMissionDelay"><span data-i18n="fsMissionDelay"></span></label>
|
||||||
<div for="fsMissionDelay" class="helpicon cf_tip" data-i18n_title="fsMissionDelayHelp"></div>
|
<div for="fsMissionDelay" class="helpicon cf_tip" data-i18n_title="fsMissionDelayHelp"></div>
|
||||||
</div>
|
</div>
|
||||||
<!--
|
<!--
|
||||||
<div class="checkbox">
|
<div class="checkbox">
|
||||||
<input type="checkbox" class="toggle update_preview" id="drNavigation" data-setting="inav_allow_dead_reckoning" data-live="true" />
|
<input type="checkbox" class="toggle update_preview" id="drNavigation" data-setting="inav_allow_dead_reckoning" data-live="true" />
|
||||||
<label for="drNavigation"><span data-i18n="drNavigation"></span></label>
|
<label for="drNavigation"><span data-i18n="drNavigation"></span></label>
|
||||||
<div for="drNavigation" class="helpicon cf_tip" data-i18n_title="drNavigationHelp"></div>
|
<div for="drNavigation" class="helpicon cf_tip" data-i18n_title="drNavigationHelp"></div>
|
||||||
</div>
|
</div>
|
||||||
-->
|
-->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div> <!-- Left wrapper -->
|
</div>
|
||||||
|
<!-- Left wrapper -->
|
||||||
|
|
||||||
<div class="rightWrapper">
|
<div class="rightWrapper">
|
||||||
|
|
||||||
|
@ -457,13 +476,13 @@
|
||||||
<label for="navAutoClimbRate"><span data-i18n="navAutoClimbRate"></span></label>
|
<label for="navAutoClimbRate"><span data-i18n="navAutoClimbRate"></span></label>
|
||||||
<div for="navAutoClimbRate" class="helpicon cf_tip" data-i18n_title="navAutoClimbRateHelp"></div>
|
<div for="navAutoClimbRate" class="helpicon cf_tip" data-i18n_title="navAutoClimbRateHelp"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="number">
|
<div class="number">
|
||||||
<input type="number" id="navMaxAltitude" data-unit="cm" data-setting="nav_max_altitude" data-setting-multiplier="1" step="1" min="0" max="65000" />
|
<input type="number" id="navMaxAltitude" data-unit="cm" data-setting="nav_max_altitude" data-setting-multiplier="1" step="1" min="0" max="65000" />
|
||||||
<label for="navMaxAltitude"><span data-i18n="navMaxAltitude"></span></label>
|
<label for="navMaxAltitude"><span data-i18n="navMaxAltitude"></span></label>
|
||||||
<div for="navMaxAltitude" class="helpicon cf_tip" data-i18n_title="navMaxAltitudeHelp"></div>
|
<div for="navMaxAltitude" class="helpicon cf_tip" data-i18n_title="navMaxAltitudeHelp"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="select">
|
<div class="select">
|
||||||
<select id="navMotorStop" data-setting="nav_overrides_motor_stop"></select>
|
<select id="navMotorStop" data-setting="nav_overrides_motor_stop"></select>
|
||||||
<label for="navMotorStop"><span data-i18n="navMotorStop"></span></label>
|
<label for="navMotorStop"><span data-i18n="navMotorStop"></span></label>
|
||||||
|
@ -502,7 +521,7 @@
|
||||||
<label for="wpEnforceAlt"><span data-i18n="wpEnforceAlt"></span></label>
|
<label for="wpEnforceAlt"><span data-i18n="wpEnforceAlt"></span></label>
|
||||||
<div for="wpEnforceAlt" class="helpicon cf_tip" data-i18n_title="wpEnforceAltHelp"></div>
|
<div for="wpEnforceAlt" class="helpicon cf_tip" data-i18n_title="wpEnforceAltHelp"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="number">
|
<div class="number">
|
||||||
<input type="number" id="wpTrackingAccuracy" data-setting="nav_fw_wp_tracking_accuracy" data-setting-multiplier="1" step="1" min="0" max="10" />
|
<input type="number" id="wpTrackingAccuracy" data-setting="nav_fw_wp_tracking_accuracy" data-setting-multiplier="1" step="1" min="0" max="10" />
|
||||||
<label for="wpTrackingAccuracy"><span data-i18n="wpTrackingAccuracy"></span></label>
|
<label for="wpTrackingAccuracy"><span data-i18n="wpTrackingAccuracy"></span></label>
|
||||||
|
@ -514,7 +533,7 @@
|
||||||
<label for="wpTrackingAngle"><span data-i18n="wpTrackingAngle"></span></label>
|
<label for="wpTrackingAngle"><span data-i18n="wpTrackingAngle"></span></label>
|
||||||
<div for="wpTrackingAngle" class="helpicon cf_tip" data-i18n_title="wpTrackingAngleHelp"></div>
|
<div for="wpTrackingAngle" class="helpicon cf_tip" data-i18n_title="wpTrackingAngleHelp"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="select">
|
<div class="select">
|
||||||
<select id="wpTurnSmoothing" data-setting="nav_fw_wp_turn_smoothing"></select>
|
<select id="wpTurnSmoothing" data-setting="nav_fw_wp_turn_smoothing"></select>
|
||||||
<label for="wpTurnSmoothing"><span data-i18n="wpTurnSmoothing"></span></label>
|
<label for="wpTurnSmoothing"><span data-i18n="wpTurnSmoothing"></span></label>
|
||||||
|
@ -561,9 +580,11 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div> <!-- Right wrapper -->
|
</div>
|
||||||
|
<!-- Right wrapper -->
|
||||||
|
|
||||||
</div> <!-- Common tuning -->
|
</div>
|
||||||
|
<!-- Common tuning -->
|
||||||
|
|
||||||
<div class="clear-both"></div>
|
<div class="clear-both"></div>
|
||||||
|
|
||||||
|
@ -574,4 +595,4 @@
|
||||||
<a id="advanced-tuning-save-button" class="save" href="#" data-i18n="advancedTuningSave"></a>
|
<a id="advanced-tuning-save-button" class="save" href="#" data-i18n="advancedTuningSave"></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
|
@ -38,6 +38,27 @@ TABS.advanced_tuning.initialize = function (callback) {
|
||||||
|
|
||||||
localize();
|
localize();
|
||||||
|
|
||||||
|
// Set up required field warnings
|
||||||
|
$('#launchIdleThr').keyup(function() {
|
||||||
|
TABS.advanced_tuning.checkRequirements_IdleThrottle();
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#launchIdleDelay').keyup(function() {
|
||||||
|
TABS.advanced_tuning.checkRequirements_IdleThrottle();
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#rthHomeAltitude').keyup(function() {
|
||||||
|
TABS.advanced_tuning.checkRequirements_LinearDescent();
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#rthUseLinearDescent').change(function() {
|
||||||
|
TABS.advanced_tuning.checkRequirements_LinearDescent();
|
||||||
|
});
|
||||||
|
|
||||||
|
// Preload required field warnings
|
||||||
|
TABS.advanced_tuning.checkRequirements_IdleThrottle();
|
||||||
|
TABS.advanced_tuning.checkRequirements_LinearDescent();
|
||||||
|
|
||||||
$('a.save').click(function () {
|
$('a.save').click(function () {
|
||||||
Settings.saveInputs().then(function () {
|
Settings.saveInputs().then(function () {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
@ -68,8 +89,28 @@ TABS.advanced_tuning.initialize = function (callback) {
|
||||||
GUI.log(chrome.i18n.getMessage('deviceRebooting'));
|
GUI.log(chrome.i18n.getMessage('deviceRebooting'));
|
||||||
GUI.handleReconnect($('.tab_advanced_tuning a'));
|
GUI.handleReconnect($('.tab_advanced_tuning a'));
|
||||||
}
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
$incLD = 0;
|
||||||
|
|
||||||
|
TABS.advanced_tuning.checkRequirements_IdleThrottle = function() {
|
||||||
|
let idleThrottle = $('#launchIdleThr');
|
||||||
|
if ($('#launchIdleDelay').val() > 0 && (idleThrottle.val() == "" || idleThrottle.val() < "1150")) {
|
||||||
|
idleThrottle.addClass('inputRequiredWarning');
|
||||||
|
} else {
|
||||||
|
idleThrottle.removeClass('inputRequiredWarning');
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
TABS.advanced_tuning.checkRequirements_LinearDescent = function() {
|
||||||
|
let rthHomeAlt = $('#rthHomeAltitude');
|
||||||
|
let minRthHomeAlt = 1000.0 / rthHomeAlt.data('setting-multiplier'); // 10 metres minimum recommended for safety.
|
||||||
|
|
||||||
|
if ($('#rthUseLinearDescent').is(":checked") && (rthHomeAlt.val() == "" || parseFloat(rthHomeAlt.val()) < minRthHomeAlt)) {
|
||||||
|
rthHomeAlt.addClass('inputRequiredWarning');
|
||||||
|
} else {
|
||||||
|
rthHomeAlt.removeClass('inputRequiredWarning');
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
TABS.advanced_tuning.cleanup = function (callback) {
|
TABS.advanced_tuning.cleanup = function (callback) {
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="acroEnabled">
|
<div class="acroEnabled">
|
||||||
ACRO
|
<span i18n="auxiliaryAcroEnabled"></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="tab-auxiliary-templates">
|
<div id="tab-auxiliary-templates">
|
||||||
|
@ -63,7 +63,11 @@
|
||||||
</div>
|
</div>
|
||||||
<table>
|
<table>
|
||||||
<tr class="modeSection">
|
<tr class="modeSection">
|
||||||
<td colspan="2"><div class="modeSectionArea"><p class="modeSectionName"></p></div></td>
|
<td colspan="2">
|
||||||
|
<div class="modeSectionArea">
|
||||||
|
<p class="modeSectionName"></p>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
|
@ -42,7 +42,7 @@ TABS.auxiliary.initialize = function (callback) {
|
||||||
modeSections["Flight Modes"] = ["ANGLE", "HORIZON", "MANUAL"];
|
modeSections["Flight Modes"] = ["ANGLE", "HORIZON", "MANUAL"];
|
||||||
modeSections["Navigation Modes"] = ["NAV COURSE HOLD", "NAV CRUISE", "NAV POSHOLD", "NAV RTH", "NAV WP", "GCS NAV"];
|
modeSections["Navigation Modes"] = ["NAV COURSE HOLD", "NAV CRUISE", "NAV POSHOLD", "NAV RTH", "NAV WP", "GCS NAV"];
|
||||||
modeSections["Flight Mode Modifiers"] = ["NAV ALTHOLD", "HEADING HOLD", "AIR MODE", "SOARING", "SURFACE", "TURN ASSIST"];
|
modeSections["Flight Mode Modifiers"] = ["NAV ALTHOLD", "HEADING HOLD", "AIR MODE", "SOARING", "SURFACE", "TURN ASSIST"];
|
||||||
modeSections["Fixed Wing"] = ["AUTO TUNE", "SERVO AUTOTRIM", "AUTO LEVEL", "NAV LAUNCH", "LOITER CHANGE", "FLAPERON"];
|
modeSections["Fixed Wing"] = ["AUTO TUNE", "SERVO AUTOTRIM", "AUTO LEVEL TRIM", "NAV LAUNCH", "LOITER CHANGE", "FLAPERON"];
|
||||||
modeSections["Multi-rotor"] = ["FPV ANGLE MIX", "TURTLE", "MC BRAKING", "HEADFREE", "HEADADJ"];
|
modeSections["Multi-rotor"] = ["FPV ANGLE MIX", "TURTLE", "MC BRAKING", "HEADFREE", "HEADADJ"];
|
||||||
modeSections["OSD Modes"] = ["OSD OFF", "OSD ALT 1", "OSD ALT 2", "OSD ALT 3"];
|
modeSections["OSD Modes"] = ["OSD OFF", "OSD ALT 1", "OSD ALT 2", "OSD ALT 3"];
|
||||||
modeSections["FPV Camera Modes"] = ["CAMSTAB", "CAMERA CONTROL 1", "CAMERA CONTROL 2", "CAMERA CONTROL 3"];
|
modeSections["FPV Camera Modes"] = ["CAMSTAB", "CAMERA CONTROL 1", "CAMERA CONTROL 2", "CAMERA CONTROL 3"];
|
||||||
|
|
|
@ -23,27 +23,27 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div data-step="1" class="tile step1 finished">
|
<div data-step="1" class="tile step1 finished">
|
||||||
<div class="steptitle">Step 1</div>
|
<div class="steptitle" data-i18n="stepTitle1"></div>
|
||||||
<div class="indicator"></div>
|
<div class="indicator"></div>
|
||||||
</div>
|
</div>
|
||||||
<div data-step="2" class="tile step2 active">
|
<div data-step="2" class="tile step2 active">
|
||||||
<div class="steptitle">Step 2</div>
|
<div class="steptitle" data-i18n="stepTitle2"></div>
|
||||||
<div class="indicator"></div>
|
<div class="indicator"></div>
|
||||||
</div>
|
</div>
|
||||||
<div data-step="3" class="tile step3">
|
<div data-step="3" class="tile step3">
|
||||||
<div class="steptitle">Step 3</div>
|
<div class="steptitle" data-i18n="stepTitle3"></div>
|
||||||
<div class="indicator"></div>
|
<div class="indicator"></div>
|
||||||
</div>
|
</div>
|
||||||
<div data-step="4" class="tile step4">
|
<div data-step="4" class="tile step4">
|
||||||
<div class="steptitle">Step 4</div>
|
<div class="steptitle" data-i18n="stepTitle4"></div>
|
||||||
<div class="indicator"></div>
|
<div class="indicator"></div>
|
||||||
</div>
|
</div>
|
||||||
<div data-step="5" class="tile step5">
|
<div data-step="5" class="tile step5">
|
||||||
<div class="steptitle">Step 5</div>
|
<div class="steptitle" data-i18n="stepTitle5"></div>
|
||||||
<div class="indicator"></div>
|
<div class="indicator"></div>
|
||||||
</div>
|
</div>
|
||||||
<div data-step="6" class="tile step6">
|
<div data-step="6" class="tile step6">
|
||||||
<div class="steptitle">Step 6</div>
|
<div class="steptitle" data-i18n="stepTitle6"></div>
|
||||||
<div class="indicator"></div>
|
<div class="indicator"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="gui_box grey" id="accPosAll">
|
<div class="gui_box grey" id="accPosAll">
|
||||||
|
@ -98,27 +98,27 @@
|
||||||
</div>
|
</div>
|
||||||
<table id="mag-calibrated-data" class="cf_table">
|
<table id="mag-calibrated-data" class="cf_table">
|
||||||
<tr>
|
<tr>
|
||||||
<td><label for="MagX"><span>Zero X</span></label></td>
|
<td><label for="MagX" data-i18n="MagXText"><span></span></label></td>
|
||||||
<td><input readonly disabled type="number" name="MagX" min="-32768" max="32767"></td>
|
<td><input readonly disabled type="number" name="MagX" min="-32768" max="32767"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><label for="MagY"><span>Zero Y</span></label></td>
|
<td><label for="MagY" data-i18n="MagYText"><span></span></label></td>
|
||||||
<td><input readonly disabled type="number" name="MagY" min="-32768" max="32767"></td>
|
<td><input readonly disabled type="number" name="MagY" min="-32768" max="32767"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><label for="MagZ"><span>Zero Z</span></label></td>
|
<td><label for="MagZ" data-i18n="MagZText"><span></span></label></td>
|
||||||
<td><input readonly disabled type="number" name="MagZ" min="-32768" max="32767"></td>
|
<td><input readonly disabled type="number" name="MagZ" min="-32768" max="32767"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><label for="MagGainX"><span>Gain X</span></label></td>
|
<td><label for="MagGainX" data-i18n="MagGainXText"><span></span></label></td>
|
||||||
<td><input readonly disabled type="number" name="MagGainX" min="-32768" max="32767"></td>
|
<td><input readonly disabled type="number" name="MagGainX" min="-32768" max="32767"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><label for="MagGainY"><span>Gain Y</span></label></td>
|
<td><label for="MagGainY" data-i18n="MagGainYText"><span></span></label></td>
|
||||||
<td><input readonly disabled type="number" name="MagGainY" min="-32768" max="32767"></td>
|
<td><input readonly disabled type="number" name="MagGainY" min="-32768" max="32767"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><label for="MagGainZ"><span>Gain Z</span></label></td>
|
<td><label for="MagGainZ" data-i18n="MagGainZText"><span></span></label></td>
|
||||||
<td><input readonly disabled type="number" name="MagGainZ" min="-32768" max="32767"></td>
|
<td><input readonly disabled type="number" name="MagGainZ" min="-32768" max="32767"></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
@ -137,7 +137,7 @@
|
||||||
</div>
|
</div>
|
||||||
<table id="opflow-calibrated-data" class="cf_table">
|
<table id="opflow-calibrated-data" class="cf_table">
|
||||||
<tr>
|
<tr>
|
||||||
<td><label for="OpflowScale"><span>Scale</span></label></td>
|
<td><label for="OpflowScale"><span data-i18n="OpflowScaleText"></span></label></td>
|
||||||
<td><input type="number" name="OpflowScale" min="0" max="10000"></td>
|
<td><input type="number" name="OpflowScale" min="0" max="10000"></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
@ -189,4 +189,4 @@
|
||||||
<h1 class="modal__title modal__title--center" data-i18n="accCalibrationProcessing"></h1>
|
<h1 class="modal__title modal__title--center" data-i18n="accCalibrationProcessing"></h1>
|
||||||
<div id="modal-opflow-countdown" class="modal__text"></div>
|
<div id="modal-opflow-countdown" class="modal__text"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
|
@ -11,7 +11,12 @@
|
||||||
<div class="wrapper"></div>
|
<div class="wrapper"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<textarea name="commands" i18n_placeholder="cliInputPlaceholder" rows="1" cols="0"></textarea>
|
<div style="display:flex;align-items:center;">
|
||||||
|
<textarea name="commands" i18n_placeholder="cliInputPlaceholder" rows="1" cols="0"></textarea>
|
||||||
|
<a class="helpiconLink" style="margin-left:5px;margin-right:5px;" href="https://github.com/iNavFlight/inav/blob/master/docs/Cli.md" target="_blank">
|
||||||
|
<div class="helpicon cf_tip" style="float:none;" data-i18n_title="cliCommandsHelp"></div>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="content_toolbar">
|
<div class="content_toolbar">
|
||||||
<div class="btn save_btn" style="float: left; padding-left: 15px">
|
<div class="btn save_btn" style="float: left; padding-left: 15px">
|
||||||
|
@ -23,8 +28,9 @@
|
||||||
<a class="cliDocsBtn" href="#" i18n="cliDocsBtn" target="_blank"></a>
|
<a class="cliDocsBtn" href="#" i18n="cliDocsBtn" target="_blank"></a>
|
||||||
<a class="save" href="#" i18n="cliSaveToFileBtn"></a>
|
<a class="save" href="#" i18n="cliSaveToFileBtn"></a>
|
||||||
<a class="load" href="#" i18n="cliLoadFromFileBtn"></a>
|
<a class="load" href="#" i18n="cliLoadFromFileBtn"></a>
|
||||||
<a class="clear" href="#" i18n="cliClearOutputHistoryBtn"></a>
|
<a class="copy" href="#" i18n="cliCopyToClipboardBtn"></a>
|
||||||
<a class="copy" href="#" i18n="cliCopyToClipboardBtn"></a>
|
<a class="clear" href="#" i18n="cliClearOutputHistoryBtn"></a>
|
||||||
|
<a class="diffall" href="#" i18n="cliDiffAllBtn"></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
14
tabs/cli.js
14
tabs/cli.js
|
@ -172,10 +172,10 @@ TABS.cli.initialize = function (callback) {
|
||||||
|
|
||||||
fs.writeFile(result, self.outputHistory, (err) => {
|
fs.writeFile(result, self.outputHistory, (err) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
GUI.log('<span style="color: red">Error writing file</span>');
|
GUI.log(chrome.i18n.getMessage('ErrorWritingFile'));
|
||||||
return console.error(err);
|
return console.error(err);
|
||||||
}
|
}
|
||||||
GUI.log('File saved');
|
GUI.log(chrome.i18n.getMessage('FileSaved'));
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
@ -193,6 +193,12 @@ TABS.cli.initialize = function (callback) {
|
||||||
self.send(getCliCommand('msc\n', TABS.cli.cliBuffer));
|
self.send(getCliCommand('msc\n', TABS.cli.cliBuffer));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$('.tab-cli .diffall').click(function() {
|
||||||
|
self.outputHistory = "";
|
||||||
|
$('.tab-cli .window .wrapper').empty();
|
||||||
|
self.send(getCliCommand('diff all\n', TABS.cli.cliBuffer));
|
||||||
|
});
|
||||||
|
|
||||||
$('.tab-cli .clear').click(function() {
|
$('.tab-cli .clear').click(function() {
|
||||||
self.outputHistory = "";
|
self.outputHistory = "";
|
||||||
$('.tab-cli .window .wrapper').empty();
|
$('.tab-cli .window .wrapper').empty();
|
||||||
|
@ -244,7 +250,7 @@ TABS.cli.initialize = function (callback) {
|
||||||
|
|
||||||
fs.readFile(result, (err, data) => {
|
fs.readFile(result, (err, data) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
GUI.log('<span style="color: red">Error reading file</span>');
|
GUI.log(chrome.i18n.getMessage('ErrorReadingFile'));
|
||||||
return console.error(err);
|
return console.error(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -278,7 +284,7 @@ TABS.cli.initialize = function (callback) {
|
||||||
var out_string = textarea.val();
|
var out_string = textarea.val();
|
||||||
self.history.add(out_string.trim());
|
self.history.add(out_string.trim());
|
||||||
|
|
||||||
if (out_string.trim().toLowerCase() == "cls") {
|
if (out_string.trim().toLowerCase() == "cls" || out_string.trim().toLowerCase() == "clear") {
|
||||||
self.outputHistory = "";
|
self.outputHistory = "";
|
||||||
$('.tab-cli .window .wrapper').empty();
|
$('.tab-cli .window .wrapper').empty();
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -1,20 +1,20 @@
|
||||||
<div class="tab-failsafe toolbar_fixed_bottom">
|
<div class="tab-failsafe toolbar_fixed_bottom">
|
||||||
<div class="content_wrapper">
|
<div class="content_wrapper">
|
||||||
<div class="tab_title">Failsafe</div>
|
<div class="tab_title" data-i18n="tabFailsafe">Failsafe</div>
|
||||||
<div class="gui_box grey">
|
<div class="gui_box grey">
|
||||||
<div class="gui_box_titlebar">
|
<div class="gui_box_titlebar">
|
||||||
<div class="spacer_box_title" data-i18n="failsafeStageTwoSettingsTitle"></div>
|
<div class="spacer_box_title" data-i18n="failsafeStageTwoSettingsTitle"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="spacer_box">
|
<div class="spacer_box">
|
||||||
<div class="number">
|
<div class="number">
|
||||||
<input id="failsafeDelay" type="number" name="failsafe_delay" data-unit="dsec" data-setting="failsafe_delay" min="0" max="200" />
|
<input id="failsafeDelay" type="number" name="failsafe_delay" data-unit="dsec" data-setting="failsafe_delay" min="0" max="200" />
|
||||||
<label><span data-i18n="failsafeDelayItem"></span></label>
|
<label><span data-i18n="failsafeDelayItem"></span></label>
|
||||||
<div for="failsafeDelay" class="helpicon cf_tip" data-i18n_title="failsafeDelayHelp"></div>
|
<div for="failsafeDelay" class="helpicon cf_tip" data-i18n_title="failsafeDelayHelp"></div>
|
||||||
</div>
|
</div>
|
||||||
<!-- radio buttons -->
|
<!-- radio buttons -->
|
||||||
<div class="subline" data-i18n="failsafeSubTitle1"></div>
|
<div class="subline" data-i18n="failsafeSubTitle1"></div>
|
||||||
<div class="radioarea pro1">
|
<div class="radioarea pro1">
|
||||||
<div class="radiobuttons"><input class="procedure" id="drop" name="group1" type="radio"/>
|
<div class="radiobuttons"><input class="procedure" id="drop" name="group1" type="radio" />
|
||||||
<label for="drop" data-i18n="failsafeProcedureItemSelect2"></label>
|
<label for="drop" data-i18n="failsafeProcedureItemSelect2"></label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -35,18 +35,18 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="radioarea pro4">
|
<div class="radioarea pro4">
|
||||||
<div class="radiobuttons"><input class="procedure" id="rth" name="group1" type="radio"/>
|
<div class="radiobuttons"><input class="procedure" id="rth" name="group1" type="radio" />
|
||||||
<label for="rth" data-i18n="failsafeProcedureItemSelect3"></label>
|
<label for="rth" data-i18n="failsafeProcedureItemSelect3"></label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="radioarea pro5">
|
<div class="radioarea pro5">
|
||||||
<div class="radiobuttons"><input class="procedure" id="nothing" name="group1" type="radio"/>
|
<div class="radiobuttons"><input class="procedure" id="nothing" name="group1" type="radio" />
|
||||||
<label for="nothing" data-i18n="failsafeProcedureItemSelect4"></label>
|
<label for="nothing" data-i18n="failsafeProcedureItemSelect4"></label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- Minimum Failsafe Distance controls -->
|
<!-- Minimum Failsafe Distance controls -->
|
||||||
<div class="checkbox">
|
<div class="checkbox">
|
||||||
<div class="numberspacer" >
|
<div class="numberspacer">
|
||||||
<input type="checkbox" name="failsafe_use_minimum_distance" class="toggle" id="failsafe_use_minimum_distance" />
|
<input type="checkbox" name="failsafe_use_minimum_distance" class="toggle" id="failsafe_use_minimum_distance" />
|
||||||
</div>
|
</div>
|
||||||
<label for="failsafe_use_minimum_distance"><span data-i18n="failsafeUseMinimumDistanceItem"></span>
|
<label for="failsafe_use_minimum_distance"><span data-i18n="failsafeUseMinimumDistanceItem"></span>
|
||||||
|
@ -73,4 +73,4 @@
|
||||||
<a class="save" href="#" data-i18n="configurationButtonSave"></a>
|
<a class="save" href="#" data-i18n="configurationButtonSave"></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
|
@ -52,9 +52,9 @@ TABS.firmware_flasher.initialize = function (callback) {
|
||||||
|
|
||||||
$('input.show_development_releases').click(function() {
|
$('input.show_development_releases').click(function() {
|
||||||
let selectedTarget = String($('select[name="board"]').val());
|
let selectedTarget = String($('select[name="board"]').val());
|
||||||
GUI.log("selected target = " + selectedTarget);
|
GUI.log(chrome.i18n.getMessage('selectedTarget') + selectedTarget);
|
||||||
buildBoardOptions();
|
buildBoardOptions();
|
||||||
GUI.log("toggled RCs");
|
GUI.log(chrome.i18n.getMessage('toggledRCs'));
|
||||||
if (selectedTarget === "0") {
|
if (selectedTarget === "0") {
|
||||||
TABS.firmware_flasher.getTarget();
|
TABS.firmware_flasher.getTarget();
|
||||||
} else {
|
} else {
|
||||||
|
@ -274,7 +274,7 @@ TABS.firmware_flasher.initialize = function (callback) {
|
||||||
$('a.load_remote_file').click(function (evt) {
|
$('a.load_remote_file').click(function (evt) {
|
||||||
|
|
||||||
if ($('select[name="firmware_version"]').val() == "0") {
|
if ($('select[name="firmware_version"]').val() == "0") {
|
||||||
GUI.log("<b>No firmware selected to load</b>");
|
GUI.log(chrome.i18n.getMessage('noFirmwareSelectedToLoad'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -402,7 +402,7 @@ TABS.firmware_flasher.initialize = function (callback) {
|
||||||
STM32.connect(port, baud, parsed_hex, options);
|
STM32.connect(port, baud, parsed_hex, options);
|
||||||
} else {
|
} else {
|
||||||
console.log('Please select valid serial port');
|
console.log('Please select valid serial port');
|
||||||
GUI.log('<span style="color: red">Please select valid serial port</span>');
|
GUI.log(chrome.i18n.getMessage('selectValidSerialPort'));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
STM32DFU.connect(usbDevices, parsed_hex, options);
|
STM32DFU.connect(usbDevices, parsed_hex, options);
|
||||||
|
@ -452,7 +452,7 @@ TABS.firmware_flasher.initialize = function (callback) {
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
console.log('You don\'t have write permissions for this file, sorry.');
|
console.log('You don\'t have write permissions for this file, sorry.');
|
||||||
GUI.log('You don\'t have <span style="color: red">write permissions</span> for this file');
|
GUI.log(chrome.i18n.getMessage('writePermissionsForFile'));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -635,14 +635,14 @@ TABS.firmware_flasher.cleanup = function (callback) {
|
||||||
};
|
};
|
||||||
|
|
||||||
TABS.firmware_flasher.getTarget = function() {
|
TABS.firmware_flasher.getTarget = function() {
|
||||||
GUI.log("Attempting automatic target selection");
|
GUI.log(chrome.i18n.getMessage('automaticTargetSelect'));
|
||||||
|
|
||||||
var selected_baud = parseInt($('#baud').val());
|
var selected_baud = parseInt($('#baud').val());
|
||||||
var selected_port = $('#port').find('option:selected').data().isManual ? $('#port-override').val() : String($('#port').val());
|
var selected_port = $('#port').find('option:selected').data().isManual ? $('#port-override').val() : String($('#port').val());
|
||||||
|
|
||||||
if (selected_port !== 'DFU') {
|
if (selected_port !== 'DFU') {
|
||||||
if (selected_port == '0') {
|
if (selected_port == '0') {
|
||||||
GUI.log("Cannot prefetch target: No port");
|
GUI.log(chrome.i18n.getMessage('targetPrefetchFailNoPort'));
|
||||||
} else {
|
} else {
|
||||||
console.log('Connecting to: ' + selected_port);
|
console.log('Connecting to: ' + selected_port);
|
||||||
GUI.connecting_to = selected_port;
|
GUI.connecting_to = selected_port;
|
||||||
|
@ -654,7 +654,7 @@ TABS.firmware_flasher.getTarget = function() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
GUI.log("Cannot prefetch target: Flight Controller in DFU");
|
GUI.log(chrome.i18n.getMessage('targetPrefetchFailDFU'));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -686,7 +686,7 @@ TABS.firmware_flasher.onOpen = function(openInfo) {
|
||||||
// disconnect after 10 seconds with error if we don't get IDENT data
|
// disconnect after 10 seconds with error if we don't get IDENT data
|
||||||
helper.timeout.add('connecting', function () {
|
helper.timeout.add('connecting', function () {
|
||||||
if (!CONFIGURATOR.connectionValid) {
|
if (!CONFIGURATOR.connectionValid) {
|
||||||
GUI.log("Cannot prefetch target: " + chrome.i18n.getMessage('noConfigurationReceived'));
|
GUI.log(chrome.i18n.getMessage('targetPrefetchFail') + chrome.i18n.getMessage('noConfigurationReceived'));
|
||||||
|
|
||||||
TABS.firmware_flasher.closeTempConnection();
|
TABS.firmware_flasher.closeTempConnection();
|
||||||
}
|
}
|
||||||
|
@ -709,7 +709,7 @@ TABS.firmware_flasher.onOpen = function(openInfo) {
|
||||||
if (CONFIG.flightControllerIdentifier == 'INAV') {
|
if (CONFIG.flightControllerIdentifier == 'INAV') {
|
||||||
MSP.send_message(MSPCodes.MSP_FC_VERSION, false, false, function () {
|
MSP.send_message(MSPCodes.MSP_FC_VERSION, false, false, function () {
|
||||||
if (semver.lt(CONFIG.flightControllerVersion, "5.0.0")) {
|
if (semver.lt(CONFIG.flightControllerVersion, "5.0.0")) {
|
||||||
GUI.log("Cannot prefetch target: INAV Firmware too old");
|
GUI.log(chrome.i18n.getMessage('targetPrefetchFailOld'));
|
||||||
TABS.firmware_flasher.closeTempConnection();
|
TABS.firmware_flasher.closeTempConnection();
|
||||||
} else {
|
} else {
|
||||||
mspHelper.getCraftName(function(name) {
|
mspHelper.getCraftName(function(name) {
|
||||||
|
@ -721,13 +721,13 @@ TABS.firmware_flasher.onOpen = function(openInfo) {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
GUI.log("Cannot prefetch target: Non-INAV Firmware");
|
GUI.log(chrome.i18n.getMessage('targetPrefetchFailNonINAV'));
|
||||||
TABS.firmware_flasher.closeTempConnection();
|
TABS.firmware_flasher.closeTempConnection();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
GUI.log("Cannot prefetch target: " + chrome.i18n.getMessage('serialPortOpenFail'));
|
GUI.log(chrome.i18n.getMessage('targetPrefetchFail') + chrome.i18n.getMessage('serialPortOpenFail'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -736,7 +736,7 @@ TABS.firmware_flasher.onValidFirmware = function() {
|
||||||
MSP.send_message(MSPCodes.MSP_BUILD_INFO, false, false, function () {
|
MSP.send_message(MSPCodes.MSP_BUILD_INFO, false, false, function () {
|
||||||
MSP.send_message(MSPCodes.MSP_BOARD_INFO, false, false, function () {
|
MSP.send_message(MSPCodes.MSP_BOARD_INFO, false, false, function () {
|
||||||
$('select[name="board"] option[value=' + CONFIG.target + ']').attr("selected", "selected");
|
$('select[name="board"] option[value=' + CONFIG.target + ']').attr("selected", "selected");
|
||||||
GUI.log("Target prefetch successful: " + CONFIG.target);
|
GUI.log(chrome.i18n.getMessage('targetPrefetchsuccessful') + CONFIG.target);
|
||||||
|
|
||||||
TABS.firmware_flasher.closeTempConnection();
|
TABS.firmware_flasher.closeTempConnection();
|
||||||
$('select[name="board"]').change();
|
$('select[name="board"]').change();
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
<div class="content_mid">
|
<div class="content_mid">
|
||||||
<div class="column half text1">
|
<div class="column half text1">
|
||||||
<div class="wrap">
|
<div class="wrap">
|
||||||
<h2>Hardware</h2>
|
<h2 i18n="defaultWelcomeHead"></h2>
|
||||||
<div i18n="defaultWelcomeText"></div>
|
<div i18n="defaultWelcomeText"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -29,9 +29,11 @@
|
||||||
<div class="sponsors">
|
<div class="sponsors">
|
||||||
<div class="title" i18n="defaultSponsorsHead"></div>
|
<div class="title" i18n="defaultSponsorsHead"></div>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="http://www.mateksys.com" title="www.mateksys.com" target="_blank"><img src="./images/partner/mateksys.png" alt="MATEK Systems" height="35" /></a></li>
|
<li>
|
||||||
|
<a href="http://www.mateksys.com" title="www.mateksys.com" target="_blank"><img src="./images/partner/mateksys.png" alt="MATEK Systems" height="35" /></a>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
|
@ -26,19 +26,19 @@
|
||||||
<div class="block"></div>
|
<div class="block"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="colorDefineSliders">
|
<div class="colorDefineSliders">
|
||||||
<div class="">Color setup</div>
|
<div class="" i18n="ledStripColorSetupTitle"></div>
|
||||||
<div class="colorDefineSliderContainer">
|
<div class="colorDefineSliderContainer">
|
||||||
<Label class="colorDefineSliderLabel">H</Label>
|
<Label class="colorDefineSliderLabel" i18n="ledStripH"></Label>
|
||||||
<input class="sliderHSV" type="range" min="0" max="359" value="0">
|
<input class="sliderHSV" type="range" min="0" max="359" value="0">
|
||||||
<Label class="colorDefineSliderValue Hvalue">0</Label>
|
<Label class="colorDefineSliderValue Hvalue">0</Label>
|
||||||
</div>
|
</div>
|
||||||
<div class="colorDefineSliderContainer">
|
<div class="colorDefineSliderContainer">
|
||||||
<Label class="colorDefineSliderLabel">S</Label>
|
<Label class="colorDefineSliderLabel" i18n="ledStripS"></Label>
|
||||||
<input class="sliderHSV" type="range" min="0" max="255" value="0">
|
<input class="sliderHSV" type="range" min="0" max="255" value="0">
|
||||||
<Label class="colorDefineSliderValue Svalue">0</Label>
|
<Label class="colorDefineSliderValue Svalue">0</Label>
|
||||||
</div>
|
</div>
|
||||||
<div class="colorDefineSliderContainer">
|
<div class="colorDefineSliderContainer">
|
||||||
<Label class="colorDefineSliderLabel">V</Label>
|
<Label class="colorDefineSliderLabel" i18n="ledStripV"></Label>
|
||||||
<input class="sliderHSV" type="range" min="0" max="255" value="0">
|
<input class="sliderHSV" type="range" min="0" max="255" value="0">
|
||||||
<Label class="colorDefineSliderValue Vvalue">0</Label>
|
<Label class="colorDefineSliderValue Vvalue">0</Label>
|
||||||
</div>
|
</div>
|
||||||
|
@ -46,151 +46,151 @@
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<div class="wires-remaining">
|
<div class="wires-remaining">
|
||||||
<div></div>
|
<div></div>
|
||||||
Remaining
|
<span i18n="ledStripRemainingText"></span>
|
||||||
</div>
|
</div>
|
||||||
<button class="funcClear">Clear selected</button>
|
<button class="funcClear" i18n="ledStripClearSelectedButton"></button>
|
||||||
<button class="funcClearAll">Clear ALL</button>
|
<button class="funcClearAll" i18n="ledStripClearAllButton"></button>
|
||||||
|
|
||||||
|
<div class="section" i18n="ledStripFunctionSection"></div>
|
||||||
|
|
||||||
|
|
||||||
<div class="section">LED Functions</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="select">
|
<div class="select">
|
||||||
<span class="color_section">Function</span>
|
<span class="color_section" i18n="ledStripFunctionTitle"></span>
|
||||||
<select class="functionSelect">
|
<select class="functionSelect">
|
||||||
<option value="">None</option>
|
<option value="" i18n="ledStripFunctionNoneOption"></option>
|
||||||
<option value="function-c" class="">Color</option>
|
<option value="function-c" class="" i18n="ledStripFunctionColorOption"></option>
|
||||||
<option value="function-f" class="">Modes & Orientation</option>
|
<option value="function-f" class="" i18n="ledStripFunctionModesOption"></option>
|
||||||
<option value="function-a" class="">Arm State</option>
|
<option value="function-a" class="" i18n="ledStripFunctionArmOption"></option>
|
||||||
<option value="function-l" class="extra_functions20">Battery</option>
|
<option value="function-l" class="extra_functions20" i18n="ledStripFunctionBatteryOption"></option>
|
||||||
<option value="function-s" class="extra_functions20">RSSI</option>
|
<option value="function-s" class="extra_functions20" i18n="ledStripFunctionRSSIOption"></option>
|
||||||
<option value="function-g" class="extra_functions20">GPS</option>
|
<option value="function-g" class="extra_functions20" i18n="ledStripFunctionGPSOption"></option>
|
||||||
<option value="function-r" class="">Ring</option>
|
<option value="function-r" class="" i18n="ledStripFunctionRingOption"></option>
|
||||||
<option value="function-h" class="channel_info">Channel</option>
|
<option value="function-h" class="channel_info" i18n="ledStripFunctionChannelOption"></option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="modifiers">
|
<div class="modifiers">
|
||||||
<span class="color_section">Color modifier</span>
|
<span class="color_section" i18n="ledStripColorModifierTitle"></span>
|
||||||
<div class="checkbox">
|
<div class="checkbox">
|
||||||
<input type="checkbox" name="ThrottleHue" class="toggle function-t" />
|
<input type="checkbox" name="ThrottleHue" class="toggle function-t" />
|
||||||
<label> <span>Throttle</span></label>
|
<label> <span i18n="ledStripThrottleText"></span></label>
|
||||||
</div>
|
</div>
|
||||||
<div class="checkbox extra_functions20">
|
<div class="checkbox extra_functions20">
|
||||||
<input type="checkbox" name="LarsonScanner" class="toggle function-o" />
|
<input type="checkbox" name="LarsonScanner" class="toggle function-o" />
|
||||||
<label> <span>Larson scanner</span></label>
|
<label> <span i18n="ledStripLarsonscannerText"></span></label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="blinkers extra_functions20">
|
<div class="blinkers extra_functions20">
|
||||||
<span class="color_section">Blink</span>
|
<span class="color_section" i18n="ledStripBlinkTitle"></span>
|
||||||
<div class="checkbox blinkOverlay">
|
<div class="checkbox blinkOverlay">
|
||||||
<input type="checkbox" name="blink" class="toggle function-b" />
|
<input type="checkbox" name="blink" class="toggle function-b" />
|
||||||
<label> <span>Blink always</span></label>
|
<label> <span i18n="ledStripBlinkAlwaysOverlay"></span></label>
|
||||||
</div>
|
</div>
|
||||||
<div class="checkbox landingBlinkOverlay">
|
<div class="checkbox landingBlinkOverlay">
|
||||||
<input type="checkbox" name="landingBlink" class="toggle function-n" />
|
<input type="checkbox" name="landingBlink" class="toggle function-n" />
|
||||||
<label> <span>Blink on landing</span></label>
|
<label> <span i18n="ledStripBlinkLandingOverlay"></span></label>
|
||||||
</div>
|
</div>
|
||||||
<span class="color_section">Strobe</span>
|
<span class="color_section" i18n="ledStripStrobeText"></span>
|
||||||
<div class="checkbox strobeOverlay">
|
<div class="checkbox strobeOverlay">
|
||||||
<input type="checkbox" name="strobe" class="toggle function-e" />
|
<input type="checkbox" name="strobe" class="toggle function-e" />
|
||||||
<label> <span>Enable strobe light effect</span></label>
|
<label> <span i18n="ledStripEnableStrobeLightEffectText"></span></label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="overlays">
|
<div class="overlays">
|
||||||
<span class="color_section">Overlay</span>
|
<span class="color_section" i18n="ledStripOverlayTitle"></span>
|
||||||
<div class="checkbox warningOverlay">
|
<div class="checkbox warningOverlay">
|
||||||
<input type="checkbox" name="Warnings" class="toggle function-w" />
|
<input type="checkbox" name="Warnings" class="toggle function-w" />
|
||||||
<label> <span>Warnings</span></label>
|
<label> <span i18n="ledStripWarningsOverlay"></span></label>
|
||||||
</div>
|
</div>
|
||||||
<div class="checkbox indicatorOverlay">
|
<div class="checkbox indicatorOverlay">
|
||||||
<input type="checkbox" name="Indicator" class="toggle function-i" />
|
<input type="checkbox" name="Indicator" class="toggle function-i" />
|
||||||
<label> <span>Indicator</span></label>
|
<label> <span i18n="ledStripIndecatorOverlay"></span></label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="channel_info">
|
<div class="channel_info">
|
||||||
<span class="color_section">Select Channel from color list</span>
|
<span class="color_section" i18n="ledStripSelectChannelFromColorList"></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mode_colors">
|
<div class="mode_colors">
|
||||||
<div class="section">Mode colors</div>
|
<div class="section" i18n="ledStripModeColorsTitle"></div>
|
||||||
|
|
||||||
<select class="modeSelect">
|
<select id="ledStripModeColorsModeSelect" class="modeSelect">
|
||||||
<option value="0">Orientation</option>
|
<option value="0" i18n="ledStripModeColorsModeOrientation"></option>
|
||||||
<option value="1">Headfree</option>
|
<option value="1" i18n="ledStripModeColorsModeHeadfree"></option>
|
||||||
<option value="2">Horizon</option>
|
<option value="2" i18n="ledStripModeColorsModeHorizon"></option>
|
||||||
<option value="3">Angle</option>
|
<option value="3" i18n="ledStripModeColorsModeAngle"></option>
|
||||||
<option value="4">Mag</option>
|
<option value="4" i18n="ledStripModeColorsModeMag"></option>
|
||||||
<option value="5">Baro</option>
|
<option value="5" i18n="ledStripModeColorsModeBaro"></option>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<button class="mode_color-0-0 dir-n">N</button>
|
<button class="mode_color-0-0 dir-n" i18n="ledStripDirN"></button>
|
||||||
<button class="mode_color-0-1 dir-e">E</button>
|
<button class="mode_color-0-1 dir-e" i18n="ledStripDirE"></button>
|
||||||
<button class="mode_color-0-2 dir-s">S</button>
|
<button class="mode_color-0-2 dir-s" i18n="ledStripDirS"></button>
|
||||||
<button class="mode_color-0-3 dir-w">W</button>
|
<button class="mode_color-0-3 dir-w" i18n="ledStripDirW"></button>
|
||||||
<button class="mode_color-0-4 dir-u">U</button>
|
<button class="mode_color-0-4 dir-u" i18n="ledStripDirU"></button>
|
||||||
<button class="mode_color-0-5 dir-d">D</button>
|
<button class="mode_color-0-5 dir-d" i18n="ledStripDirD"></button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="section">LED Orientation and Color</div>
|
<div class="section" i18n="ledStripModesOrientationTitle"></div>
|
||||||
<div class="directions">
|
<div class="directions">
|
||||||
<button class="dir-n">N</button>
|
<button class="dir-n" i18n="ledStripDirN"></button>
|
||||||
<button class="dir-e">E</button>
|
<button class="dir-e" i18n="ledStripDirE"></button>
|
||||||
<button class="dir-s">S</button>
|
<button class="dir-s" i18n="ledStripDirS"></button>
|
||||||
<button class="dir-w">W</button>
|
<button class="dir-w" i18n="ledStripDirW"></button>
|
||||||
<button class="dir-u">U</button>
|
<button class="dir-u" i18n="ledStripDirU"></button>
|
||||||
<button class="dir-d">D</button>
|
<button class="dir-d" i18n="ledStripDirD"></button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="colors">
|
<div class="colors">
|
||||||
<button class="color-0" title="black">0</button>
|
<button class="color-0" i18n_title="colorBlack">0</button>
|
||||||
<button class="color-1" title="white">1</button>
|
<button class="color-1" i18n_title="colorWhite">1</button>
|
||||||
<button class="color-2" title="red">2</button>
|
<button class="color-2" i18n_title="colorRed">2</button>
|
||||||
<button class="color-3" title="orange">3</button>
|
<button class="color-3" i18n_title="colorOrange">3</button>
|
||||||
<button class="color-4" title="yellow">4</button>
|
<button class="color-4" i18n_title="colorYellow">4</button>
|
||||||
<button class="color-5" title="lime green">5</button>
|
<button class="color-5" i18n_title="colorLimeGreen">5</button>
|
||||||
<button class="color-6" title="green">6</button>
|
<button class="color-6" i18n_title="colorGreen">6</button>
|
||||||
<button class="color-7" title="mint green">7</button>
|
<button class="color-7" i18n_title="colorMintGreen">7</button>
|
||||||
<button class="color-8" title="cyan">8</button>
|
<button class="color-8" i18n_title="colorCyan">8</button>
|
||||||
<button class="color-9" title="light blue">9</button>
|
<button class="color-9" i18n_title="colorLightBlue">9</button>
|
||||||
<button class="color-10" title="blue">10</button>
|
<button class="color-10" i18n_title="colorBlue">10</button>
|
||||||
<button class="color-11" title="dark violet">11</button>
|
<button class="color-11" i18n_title="colorDarkViolet">11</button>
|
||||||
<button class="color-12" title="magenta">12</button>
|
<button class="color-12" i18n_title="colorMagenta">12</button>
|
||||||
<button class="color-13" title="deep pink">13</button>
|
<button class="color-13" i18n_title="colorDeepPink">13</button>
|
||||||
<button class="color-14" title="black">14</button>
|
<button class="color-14" i18n_title="colorBlack">14</button>
|
||||||
<button class="color-15" title="black">15</button>
|
<button class="color-15" i18n_title="colorBlack">15</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="special_colors mode_colors">
|
<div class="special_colors mode_colors">
|
||||||
<div class="section">Special colors</div>
|
<div class="section" i18n="ledStripModesSpecialColorsTitle"></div>
|
||||||
<button class="mode_color-6-0" title="green">Disarmed</button>
|
<button class="mode_color-6-0" i18n_title="colorGreen" i18n="ledStripModeColorsModeDisarmed"></button>
|
||||||
<button class="mode_color-6-1" title="blue">Armed</button>
|
<button class="mode_color-6-1" i18n_title="colorBlue" i18n="ledStripModeColorsModeArmed"></button>
|
||||||
<button class="mode_color-6-2" title="white">Animation</button>
|
<button class="mode_color-6-2" i18n_title="colorWhite" i18n="ledStripModeColorsModeAnimation"></button>
|
||||||
<!-- button class="mode_color-6-3" title="black">Background</button -->
|
<!-- button class="mode_color-6-3" i18n_title="colorBlack">Background</button -->
|
||||||
<button class="mode_color-6-4" title="black">Blink background</button>
|
<button class="mode_color-6-4" i18n_title="colorBlack" i18n="ledStripModeColorsModeBlinkBg"></button>
|
||||||
<button class="mode_color-6-5" title="red">GPS: no sats</button>
|
<button class="mode_color-6-5" i18n_title="colorRed" i18n="ledStripModeColorsModeGPSNoSats"></button>
|
||||||
<button class="mode_color-6-6" title="orange">GPS: no lock</button>
|
<button class="mode_color-6-6" i18n_title="colorOrange" i18n="ledStripModeColorsModeGPSNoLock"></button>
|
||||||
<button class="mode_color-6-7" title="green">GPS: locked</button>
|
<button class="mode_color-6-7" i18n_title="colorGreen" i18n="ledStripModeColorsModeGPSLocked"></button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="section">LED Strip Wiring</div>
|
<div class="section" i18n="ledStripWiring"></div>
|
||||||
<div class="wiringMode">
|
<div class="wiringMode">
|
||||||
<button class="funcWire w100">Wire Ordering Mode</button>
|
<button class="funcWire w100" i18n="ledStripWiringMode"></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="wiringControls">
|
<div class="wiringControls">
|
||||||
<button class="funcWireClearSelect w50">Clear selected</button>
|
<button class="funcWireClearSelect w50" i18n="ledStripWiringClearControl"></button>
|
||||||
<button class="funcWireClear w50">Clear ALL Wiring</button>
|
<button class="funcWireClear w50" i18n="ledStripWiringClearAllControl"></button>
|
||||||
</div>
|
</div>
|
||||||
<p>LEDs without wire ordering number will not be saved.</p>
|
<p i18n="ledStripWiringMessage"></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="colorControls">
|
<div class="colorControls">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="clear-both"></div>
|
<div class="clear-both"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="content_toolbar">
|
<div class="content_toolbar">
|
||||||
|
@ -198,4 +198,4 @@
|
||||||
<a class="save" href="#" i18n="ledStripButtonSave"></a>
|
<a class="save" href="#" i18n="ledStripButtonSave"></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
|
@ -41,65 +41,59 @@
|
||||||
|
|
||||||
<table class="axis-table">
|
<table class="axis-table">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<td style="width: 5%; padding-bottom: 10px;">
|
<td style="width: 5%; padding-bottom: 10px;">
|
||||||
<p class="table-title">
|
<p class="table-title">
|
||||||
Axis
|
<span data-i18n="axisTableTitleAxis"></span>
|
||||||
</p>
|
</p>
|
||||||
</td>
|
</td>
|
||||||
<td style="width: 90%; padding-bottom: 10px;">
|
<td style="width: 90%; padding-bottom: 10px;">
|
||||||
<p class="table-title">
|
<p class="table-title">
|
||||||
Slider
|
<span data-i18n="axisTableTitleSlider"></span>
|
||||||
</p>
|
</p>
|
||||||
</td>
|
</td>
|
||||||
<td style="width: 5%; padding-bottom: 10px;">
|
<td style="width: 5%; padding-bottom: 10px;">
|
||||||
<a class="table-title">
|
<a class="table-title">
|
||||||
Value [degree]
|
<span data-i18n="axisTableTitleValue"></span>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="info">
|
<td class="info">
|
||||||
<p class="title" data-i18n="configurationSensorAlignmentMagPitch"></p>
|
<p class="title" data-i18n="configurationSensorAlignmentMagPitch"></p>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<div id="roll_slider" class="slider"></div>
|
<div id="roll_slider" class="slider"></div>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<input type="number" id="alignRoll" class="tab-magnetometer" data-setting="tz_offset"
|
<input type="number" id="alignRoll" class="tab-magnetometer" data-setting="tz_offset" data-setting-multiplier="1" step="1" min="-180" max="180" />
|
||||||
data-setting-multiplier="1"
|
</td>
|
||||||
step="1" min="-180" max="180"/>
|
</tr>
|
||||||
</td>
|
<tr>
|
||||||
</tr>
|
<td class="info">
|
||||||
<tr>
|
<p class="title" data-i18n="configurationSensorAlignmentMagRoll"></p>
|
||||||
<td class="info">
|
</td>
|
||||||
<p class="title" data-i18n="configurationSensorAlignmentMagRoll"></p>
|
<td>
|
||||||
</td>
|
<div id="pitch_slider" class="slider"></div>
|
||||||
<td>
|
</td>
|
||||||
<div id="pitch_slider" class="slider"></div>
|
<td>
|
||||||
</td>
|
<input type="number" id="alignPitch" class="tab-magnetometer" data-setting="tz_offset" data-setting-multiplier="1" step="1" min="-180" max="180" />
|
||||||
<td>
|
</td>
|
||||||
<input type="number" id="alignPitch" class="tab-magnetometer" data-setting="tz_offset"
|
</tr>
|
||||||
data-setting-multiplier="1"
|
<tr>
|
||||||
step="1" min="-180" max="180"/>
|
<td class="info">
|
||||||
</td>
|
<p class="title" data-i18n="configurationSensorAlignmentMagYaw"></p>
|
||||||
</tr>
|
</td>
|
||||||
<tr>
|
<td>
|
||||||
<td class="info">
|
<div id="yaw_slider" class="slider"></div>
|
||||||
<p class="title" data-i18n="configurationSensorAlignmentMagYaw"></p>
|
</td>
|
||||||
</td>
|
<td>
|
||||||
<td>
|
<input type="number" id="alignYaw" class="tab-magnetometer" data-setting="tz_offset" data-setting-multiplier="1" step="1" min="-180" max="360" />
|
||||||
<div id="yaw_slider" class="slider"></div>
|
</td>
|
||||||
</td>
|
</tr>
|
||||||
<td>
|
|
||||||
<input type="number" id="alignYaw" class="tab-magnetometer" data-setting="tz_offset"
|
|
||||||
data-setting-multiplier="1"
|
|
||||||
step="1" min="-180" max="360"/>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
@ -115,15 +109,15 @@
|
||||||
<div id="tab-auxiliary-templates">
|
<div id="tab-auxiliary-templates">
|
||||||
<table class="modes">
|
<table class="modes">
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr class="mode">
|
<tr class="mode">
|
||||||
<td class="info">
|
<td class="info">
|
||||||
<p class="name"></p>
|
<p class="name"></p>
|
||||||
<div class="buttons">
|
<div class="buttons">
|
||||||
<a class="addRange" href="#" i18n="auxiliaryAddRange"></a>
|
<a class="addRange" href="#" i18n="auxiliaryAddRange"></a>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td class="ranges"></td>
|
<td class="ranges"></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<div class="range">
|
<div class="range">
|
||||||
|
@ -150,8 +144,10 @@
|
||||||
<table>
|
<table>
|
||||||
<tr class="modeSection">
|
<tr class="modeSection">
|
||||||
<td colspan="2">
|
<td colspan="2">
|
||||||
<div class="modeSectionArea"><p class="modeSectionName"></p></div>
|
<div class="modeSectionArea">
|
||||||
|
<p class="modeSectionName"></p>
|
||||||
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
|
@ -1,28 +1,28 @@
|
||||||
<div class="tab-mission-control">
|
<div class="tab-mission-control">
|
||||||
<div style="padding-top: 20px;padding-left: 20px; padding-right: 20px;position: relative;">
|
<div style="padding-top: 20px;padding-left: 20px; padding-right: 20px;position: relative;">
|
||||||
<div class="tab_title" data-i18n="tabMissionControl">Mission planner</div>
|
<div class="tab_title" data-i18n="tabMissionControl"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="content_wrapper">
|
<div class="content_wrapper">
|
||||||
<div class="cf_column fourth" id="missionControls">
|
<div class="cf_column fourth" id="missionControls">
|
||||||
<div class="spacer_right">
|
<div class="spacer_right">
|
||||||
<div id="missionPlannerAction" class="gui_box grey">
|
<div id="missionPlannerAction" class="gui_box grey">
|
||||||
<div class="gui_box_titlebar">
|
<div class="gui_box_titlebar">
|
||||||
<div class="spacer_box_title i18n-replaced" data-i18n="missionActionMenuHead">Action Menu</div>
|
<div class="spacer_box_title" data-i18n="missionActionMenuHead"></div>
|
||||||
<div class="btnMenu btnMenuIcon show_btn" id="showHideActionButton">
|
<div class="btnMenu btnMenuIcon show_btn" id="showHideActionButton">
|
||||||
<a class="ic_hide" href="#" title="Hide"></a>
|
<a class="ic_hide" href="#" i18n_title="missionTitleHide"></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="spacer" id="ActionContent">
|
<div class="spacer" id="ActionContent">
|
||||||
|
|
||||||
<div class="btn save_btn">
|
<div class="btn save_btn">
|
||||||
<a id="loadFileMissionButton" class="btnicon ic_loadFromFile" href="#" title="Load Mission File"></a>
|
<a id="loadFileMissionButton" class="btnicon ic_loadFromFile" href="#" i18n_title="missionTitleLoadMissionFile"></a>
|
||||||
<a id="saveFileMissionButton" class="btnicon ic_save2File" href="#" title="Save Mission File"></a>
|
<a id="saveFileMissionButton" class="btnicon ic_save2File" href="#" i18n_title="missionTitleSaveMissionFile"></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="btn save_btn">
|
<div class="btn save_btn">
|
||||||
<a id="loadMissionButton" class="btnicon ic_loadFromFC" href="#" title="Load mission from FC"</a>
|
<a id="loadMissionButton" class="btnicon ic_loadFromFC" href="#" i18n_title="missionTitleLoadMissionFromFC" </a>
|
||||||
<a id="saveMissionButton" class="btnicon ic_save2FC" href="#" title="Save mission to FC"</a>
|
<a id="saveMissionButton" class="btnicon ic_save2FC" href="#" i18n_title="missionTitleSaveMissionToFC" </a>
|
||||||
<a id="loadEepromMissionButton" class="btnicon ic_loadFromEprom" href="#" title="Load Eeprom mission"></a>
|
<a id="loadEepromMissionButton" class="btnicon ic_loadFromEprom" href="#" i18n_title="missionTitleLoadEepromMission"></a>
|
||||||
<a id="saveEepromMissionButton" class="btnicon ic_save2Eprom" href="#" title="Save Eeprom mission"></a>
|
<a id="saveEepromMissionButton" class="btnicon ic_save2Eprom" href="#" i18n_title="missionTitleSaveEepromMission"></a>
|
||||||
</div>
|
</div>
|
||||||
<hr>
|
<hr>
|
||||||
<!-- <div class="btn">
|
<!-- <div class="btn">
|
||||||
|
@ -33,33 +33,33 @@
|
||||||
</div>
|
</div>
|
||||||
<hr> -->
|
<hr> -->
|
||||||
<div id="removeAllPoints" class="btn btn-danger" style="padding-top: 1px; display: inline-block">
|
<div id="removeAllPoints" class="btn btn-danger" style="padding-top: 1px; display: inline-block">
|
||||||
<a class="btnicon ic_removeAll" href="#" title="Remove all"></a>
|
<a class="btnicon ic_removeAll" href="#" i18n_title="missionTitleRemoveAll"></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="missionPlannerTotalInfo" class="gui_box grey">
|
<div id="missionPlannerTotalInfo" class="gui_box grey">
|
||||||
<div class="gui_box_titlebar">
|
<div class="gui_box_titlebar">
|
||||||
<div class="spacer_box_title i18n-replaced" data-i18n="missionTotalInformationHead">Total information</div>
|
<div class="spacer_box_title" data-i18n="missionTotalInformationHead"></div>
|
||||||
<div class="btnMenu btnMenuIcon show_btn" id="showHideInfoButton">
|
<div class="btnMenu btnMenuIcon show_btn" id="showHideInfoButton">
|
||||||
<a class="ic_hide" href="#" title="Hide"></a>
|
<a class="ic_hide" href="#" i18n_title="missionTitleHide"></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="spacer" id="InfoContent">
|
<div class="spacer" id="InfoContent">
|
||||||
<div id="infoMissionFilename" style="padding-bottom: 2px;">
|
<div id="infoMissionFilename" style="padding-bottom: 2px;">
|
||||||
<span>Filename loaded:</span>
|
<span data-i18n="missionTotalInfoFilenameLoaded"></span>
|
||||||
<span id="missionFilename" style="color: #3394b5"></span>
|
<span id="missionFilename" style="color: #3394b5"></span>
|
||||||
</div>
|
</div>
|
||||||
<div id="infoMissionDistance" style="padding-bottom: 2px;">
|
<div id="infoMissionDistance" style="padding-bottom: 2px;">
|
||||||
<span>Distance (m):</span>
|
<span data-i18n="missionTotalInfoDistance"></span>
|
||||||
<span id="missionDistance"></span>
|
<span id="missionDistance"></span>
|
||||||
</div>
|
</div>
|
||||||
<div id="infoAvailablePoints" style="padding-bottom: 2px;">
|
<div id="infoAvailablePoints" style="padding-bottom: 2px;">
|
||||||
<span>Available Points</span>
|
<span data-i18n="missionTotalInfoAvailablePoints"></span>
|
||||||
<span id="availablePoints">0/0</span>
|
<span id="availablePoints">0/0</span>
|
||||||
</div>
|
</div>
|
||||||
<div id="infoMissionValid" style="padding-bottom: 2px;">
|
<div id="infoMissionValid" style="padding-bottom: 2px;">
|
||||||
<span>Mission valid</span>
|
<span data-i18n="missionTotalInfoMissionValid"></span>
|
||||||
<div id="missionValid" style="display: inline-block"></div>
|
<div id="missionValid" style="display: inline-block"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -67,23 +67,23 @@
|
||||||
|
|
||||||
<div id="missionPlannerSettings" class="gui_box grey" style="display: none">
|
<div id="missionPlannerSettings" class="gui_box grey" style="display: none">
|
||||||
<div class="gui_box_titlebar">
|
<div class="gui_box_titlebar">
|
||||||
<div class="spacer_box_title i18n-replaced" data-i18n="missionDefaultSettingsHead">Default settings</div>
|
<div class="spacer_box_title" data-i18n="missionDefaultSettingsHead"></div>
|
||||||
<div class="btnMenu btnMenuIcon save_btn">
|
<div class="btnMenu btnMenuIcon save_btn">
|
||||||
<a id="cancelSettings" class="ic_cancel" href="#" title="Cancel"></a>
|
<a id="cancelSettings" class="ic_cancel" href="#" i18n_title="missionTitleCancel"></a>
|
||||||
<a id="saveSettings" class="ic_save" href="#" title="Save"></a>
|
<a id="saveSettings" class="ic_save" href="#" i18n_title="missionTitleSave"></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="spacer">
|
<div class="spacer">
|
||||||
<div class="point">
|
<div class="point">
|
||||||
<label class="point-label" for="MPdefaultPointAlt">Alt (cm): </label>
|
<label class="point-label" for="MPdefaultPointAlt" data-i18n="missionDefaultPointAlt"></label>
|
||||||
<input id="MPdefaultPointAlt" type="text" value="0" required>
|
<input id="MPdefaultPointAlt" type="text" value="0" required>
|
||||||
</div>
|
</div>
|
||||||
<div class="point">
|
<div class="point">
|
||||||
<label class="point-label" for="MPdefaultPointSpeed">Speed (cm/s): </label>
|
<label class="point-label" for="MPdefaultPointSpeed" data-i18n="missionDefaultPointSpeed"></label>
|
||||||
<input id="MPdefaultPointSpeed" type="text" value="0" required>
|
<input id="MPdefaultPointSpeed" type="text" value="0" required>
|
||||||
</div>
|
</div>
|
||||||
<div class="point">
|
<div class="point">
|
||||||
<label class="point-label" for="MPdefaultSafeRangeSH">Radius (m): </label>
|
<label class="point-label" for="MPdefaultSafeRangeSH" data-i18n="missionDefaultSafeRangeSH"></label>
|
||||||
<input id="MPdefaultSafeRangeSH" type="text" value="0" required>
|
<input id="MPdefaultSafeRangeSH" type="text" value="0" required>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -91,38 +91,38 @@
|
||||||
|
|
||||||
<div id="missionPlannerMultiMission" class="gui_box grey" style="display: none">
|
<div id="missionPlannerMultiMission" class="gui_box grey" style="display: none">
|
||||||
<div class="gui_box_titlebar">
|
<div class="gui_box_titlebar">
|
||||||
<div class="spacer_box_title i18n-replaced" data-i18n="missionMultiMissionHead">Multi Missions</div>
|
<div class="spacer_box_title" data-i18n="missionMultiMissionHead"></div>
|
||||||
<div class="btnMenu btnMenuIcon save_btn">
|
<div class="btnMenu btnMenuIcon save_btn">
|
||||||
<div id="showHideMultimissionButton">
|
<div id="showHideMultimissionButton">
|
||||||
<a class="ic_hide" href="#" title="Hide"></a>
|
<a class="ic_hide" href="#" i18n_title="missionTitleHide"></a>
|
||||||
</div>
|
</div>
|
||||||
<a id="cancelMultimission" class="ic_cancel" href="#" title="Cancel"></a>
|
<a id="cancelMultimission" class="ic_cancel" href="#" i18n_title="missionTitleCancel"></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="spacer" id="multimissionContent">
|
<div class="spacer" id="multimissionContent">
|
||||||
<div class="btn btnTable btnTableIcon save_btn">
|
<div class="btn btnTable btnTableIcon save_btn">
|
||||||
<div>
|
<div>
|
||||||
<span>Missions Info:</span>
|
<span data-i18n="missionMultiMissionsInfo"></span>
|
||||||
<span id="multimissionInfo">None</span>
|
<span id="multimissionInfo">None</span>
|
||||||
</div>
|
</div>
|
||||||
<div style="margin-top: 5px">
|
<div style="margin-top: 5px">
|
||||||
<span>Active Mission:</span>
|
<span data-i18n="missionMultiActiveMission"></span>
|
||||||
<span id="activeNissionIndex">1</span>
|
<span id="activeNissionIndex">1</span>
|
||||||
<a class="ic_save disabled" id="setActiveMissionButton" href="#" title="Set Active"></a>
|
<a class="ic_save disabled" id="setActiveMissionButton" href="#" i18n_title="missionTitleSetActive"></a>
|
||||||
</div>
|
</div>
|
||||||
<hr>
|
<hr>
|
||||||
<div style="display: inline-block">
|
<div style="display: inline-block">
|
||||||
<label for="multimissionOptionList">Mission No.</label>
|
<label for="multimissionOptionList" data-i18n="missionMultiMissionNo."></label>
|
||||||
<select name="Number" id="multimissionOptionList" style="width: 50px">
|
<select name="Number" id="multimissionOptionList" style="width: 50px">
|
||||||
<option value="0">ALL</option>
|
<option value="0">ALL</option>
|
||||||
</select>
|
</select>
|
||||||
<div style="float: right">
|
<div style="float: right">
|
||||||
<span>Update All</span>
|
<span data-i18n="missionMultiUpdateAll"></span>
|
||||||
<a class="ic_save disabled" id="updateMultimissionButton" href="#" title="Update All"></a>
|
<a class="ic_save disabled" id="updateMultimissionButton" href="#" i18n_title="missionTitleUpdateAll"></a>
|
||||||
</div>
|
</div>
|
||||||
<div style="margin-bottom: 5px; margin-top: 5px">
|
<div style="margin-bottom: 5px; margin-top: 5px">
|
||||||
<label for="addMultimissionButton">Add New Mission</label>
|
<label for="addMultimissionButton" data-i18n="missionMultiAddNewMission"></label>
|
||||||
<a class="ic_add disabled" id="addMultimissionButton" href="#" title="Add"></a>
|
<a class="ic_add disabled" id="addMultimissionButton" href="#" i18n_title="missionTitleAdd"></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -131,12 +131,12 @@
|
||||||
|
|
||||||
<div id="missionPlannerHome" class="gui_box grey" style="display: none">
|
<div id="missionPlannerHome" class="gui_box grey" style="display: none">
|
||||||
<div class="gui_box_titlebar">
|
<div class="gui_box_titlebar">
|
||||||
<div class="spacer_box_title i18n-replaced" data-i18n="missionHomeHead">Take Off home</div>
|
<div class="spacer_box_title" data-i18n="missionHomeHead"></div>
|
||||||
<div class="btnMenu btnMenuIcon save_btn">
|
<div class="btnMenu btnMenuIcon save_btn">
|
||||||
<div id="showHideHomeButton">
|
<div id="showHideHomeButton">
|
||||||
<a class="ic_hide" href="#" title="Hide"></a>
|
<a class="ic_hide" href="#" i18n_title="missionTitleHide"></a>
|
||||||
</div>
|
</div>
|
||||||
<a id="cancelHome" class="ic_cancel" href="#" title="Cancel"></a>
|
<a id="cancelHome" class="ic_cancel" href="#" i18n_title="missionTitleCancel"></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="spacer" id="HomeContent">
|
<div class="spacer" id="HomeContent">
|
||||||
|
@ -152,8 +152,9 @@
|
||||||
</thead>
|
</thead>
|
||||||
<tbody id="homeTableBody">
|
<tbody id="homeTableBody">
|
||||||
<tr>
|
<tr>
|
||||||
<td><div id="viewHomePoint" class="btnTable btnTableIcon">
|
<td>
|
||||||
<a class="ic_center" data-role="home-center" href="#" title="move to center view"></a>
|
<div id="viewHomePoint" class="btnTable btnTableIcon">
|
||||||
|
<a class="ic_center" data-role="home-center" href="#" i18n_title="missionTitleMoveToCenterView"></a>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td><input type="number" class="home-lat" /></td>
|
<td><input type="number" class="home-lat" /></td>
|
||||||
|
@ -165,21 +166,21 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="point" id="elevationEarthModelclass" style="display: none">
|
<div class="point" id="elevationEarthModelclass" style="display: none">
|
||||||
<label class="spacer_box_title i18n-replaced" for="elevationEarthModel">Use Sea Level Earth DEM Model: </label>
|
<label class="spacer_box_title" for="elevationEarthModel" data-i18n="missionLevelEarthDEMModel"></label>
|
||||||
<input id="elevationEarthModel" type="checkbox" value="0" class="togglemedium" required>
|
<input id="elevationEarthModel" type="checkbox" value="0" class="togglemedium" required>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="missionPlannerSafehome" class="gui_box grey" style="display: none">
|
<div id="missionPlannerSafehome" class="gui_box grey" style="display: none">
|
||||||
<div class="gui_box_titlebar">
|
<div class="gui_box_titlebar">
|
||||||
<div class="spacer_box_title i18n-replaced" data-i18n="missionSafehomeHead">Safe Home manager</div>
|
<div class="spacer_box_title" data-i18n="missionSafehomeHead"></div>
|
||||||
<div class="btnMenu btnMenuIcon save_btn">
|
<div class="btnMenu btnMenuIcon save_btn">
|
||||||
<div id="showHideSafehomeButton">
|
<div id="showHideSafehomeButton">
|
||||||
<a class="ic_hide" href="#" title="Hide"></a>
|
<a class="ic_hide" href="#" i18n_title="missionTitleHide"></a>
|
||||||
</div>
|
</div>
|
||||||
<a id="cancelSafehome" class="ic_cancel" href="#" title="Cancel"></a>
|
<a id="cancelSafehome" class="ic_cancel" href="#" i18n_title="missionTitleCancel"></a>
|
||||||
<a id="saveEepromSafehomeButton" class="ic_save2Eprom" href="#" title="Save Eeprom Safehome"></a>
|
<a id="saveEepromSafehomeButton" class="ic_save2Eprom" href="#" i18n_title="missionTitleSaveEepromSafehome"></a>
|
||||||
<a id="loadEepromSafehomeButton" class="ic_loadFromEprom" href="#" title="Load Eeprom Safehome"></a>
|
<a id="loadEepromSafehomeButton" class="ic_loadFromEprom" href="#" i18n_title="missionTitleLoadEepromSafehome"></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="spacer" id="SafehomeContent">
|
<div class="spacer" id="SafehomeContent">
|
||||||
|
@ -199,15 +200,15 @@
|
||||||
</table>
|
</table>
|
||||||
<hr>
|
<hr>
|
||||||
<div class="spacer" id="safehomeLegend">
|
<div class="spacer" id="safehomeLegend">
|
||||||
<span><b>Legend : </b></span>
|
<span><b data-i18n="SafehomeLegend"></b></span>
|
||||||
<div class="legendItem">
|
<div class="legendItem">
|
||||||
<span class="fill" style="border-bottom-color:#900C3F"></span>
|
<span class="fill" style="border-bottom-color:#900C3F"></span>
|
||||||
<span class="textLegend">Max distance (m):</span>
|
<span class="textLegend" data-i18n="SafehomeMaxDistance"></span>
|
||||||
<span id="safeHomeMaxDistance" class="valueLegend"></span>
|
<span id="safeHomeMaxDistance" class="valueLegend"></span>
|
||||||
</div>
|
</div>
|
||||||
<div class="legendItem">
|
<div class="legendItem">
|
||||||
<span class="fill"></span>
|
<span class="fill"></span>
|
||||||
<span class="textLegend">Safe Radius (m):</span>
|
<span class="textLegend" data-i18n="SafehomeSafeRadius"></span>
|
||||||
<span id="SafeHomeSafeDistance" class="valueLegend"></span>
|
<span id="SafeHomeSafeDistance" class="valueLegend"></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -217,16 +218,16 @@
|
||||||
|
|
||||||
<div class="gui_box grey" id="MPeditPoint" style="display: none">
|
<div class="gui_box grey" id="MPeditPoint" style="display: none">
|
||||||
<div class="gui_box_titlebar">
|
<div class="gui_box_titlebar">
|
||||||
<div class="spacer_box_title i18n-replaced" data-i18n="editPointHead" id="EditPointNumber">Edit point</div>
|
<div class="spacer_box_title" data-i18n="editPointHead" id="EditPointNumber"></div>
|
||||||
<div class="btnMenu btnMenuIcon">
|
<div class="btnMenu btnMenuIcon">
|
||||||
<div id="showHideWPeditButton" class="save_btn">
|
<div id="showHideWPeditButton" class="save_btn">
|
||||||
<a class="ic_hide" href="#" title="Hide"></a>
|
<a class="ic_hide" href="#" i18n_title="missionTitleHide"></a>
|
||||||
</div>
|
</div>
|
||||||
<div id="removePoint" class="btn btnMenu-danger">
|
<div id="removePoint" class="btn btnMenu-danger">
|
||||||
<a id="removePointButton" class="ic_removeAll" href="#" title="Remove"></a>
|
<a id="removePointButton" class="ic_removeAll" href="#" i18n_title="missionTitlRemove"></a>
|
||||||
</div>
|
</div>
|
||||||
<div id="editMission" class="save_btn" style="display: none">
|
<div id="editMission" class="save_btn" style="display: none">
|
||||||
<a id="editMissionButton" class="ic_setup" href="#" title="Edit Mission"></a>
|
<a id="editMissionButton" class="ic_setup" href="#" i18n_title="missionTitlEditMission"></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -274,7 +275,7 @@
|
||||||
<label class="point-label" for="pointP1">Parameter 1: </label>
|
<label class="point-label" for="pointP1">Parameter 1: </label>
|
||||||
<input id="pointP1" type="text" value="0" required>
|
<input id="pointP1" type="text" value="0" required>
|
||||||
</div>
|
</div>
|
||||||
<div class="point" id="pointP2class" style="display: none">
|
<div class="point" id="pointP2class" style="display: none">
|
||||||
<label class="point-label" for="pointP2">Parameter 2: </label>
|
<label class="point-label" for="pointP2">Parameter 2: </label>
|
||||||
<input id="pointP2" type="text" value="0" required>
|
<input id="pointP2" type="text" value="0" required>
|
||||||
</div>
|
</div>
|
||||||
|
@ -286,26 +287,26 @@
|
||||||
<div class="userActionContainer">4 <input id="pointP3UserAction4" type="checkbox" value="0" class="togglemedium" checked required></div>
|
<div class="userActionContainer">4 <input id="pointP3UserAction4" type="checkbox" value="0" class="togglemedium" checked required></div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<table class="waypointOptionsTable">
|
<table class="waypointOptionsTable">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th style="width: 30px">
|
<th style="width: 30px">
|
||||||
<div id="addOptionsPoint" class="btn btnTable btnTableIcon btnTable-success">
|
<div id="addOptionsPoint" class="btn btnTable btnTableIcon btnTable-success">
|
||||||
<a id="addOptionsPointButton" class="ic_add" data-role="waypointOptions-add" href="#" style="float: center" title="Add"></a>
|
<a id="addOptionsPointButton" class="ic_add" data-role="waypointOptions-add" href="#" style="float: center" title="Add"></a>
|
||||||
</div>
|
</div>
|
||||||
</th>
|
</th>
|
||||||
<th style="width: 50px" data-i18n="WaypointOptionId"></th>
|
<th style="width: 50px" data-i18n="WaypointOptionId"></th>
|
||||||
<th style="width: 80px" data-i18n="WaypointOptionAction"></th>
|
<th style="width: 80px" data-i18n="WaypointOptionAction"></th>
|
||||||
<th style="width: 120px" data-i18n="WaypointOptionP1"></th>
|
<th style="width: 120px" data-i18n="WaypointOptionP1"></th>
|
||||||
<th style="width: 120px" data-i18n="WaypointOptionP2"></th>
|
<th style="width: 120px" data-i18n="WaypointOptionP2"></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody id="waypointOptionsTableBody">
|
<tbody id="waypointOptionsTableBody">
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- <div class="point-radio" id="pointOptionclass" style="display: none">
|
<!-- <div class="point-radio" id="pointOptionclass" style="display: none">
|
||||||
<div class="radio-line">
|
<div class="radio-line">
|
||||||
<input type="radio" id="Options_None" name="Options" value="None" checked>
|
<input type="radio" id="Options_None" name="Options" value="None" checked>
|
||||||
<label class="radio-options" for="Options_None">None</label><br>
|
<label class="radio-options" for="Options_None">None</label><br>
|
||||||
|
@ -339,17 +340,17 @@
|
||||||
<div class="cf_column threefourth_left" style="height: 100%;">
|
<div class="cf_column threefourth_left" style="height: 100%;">
|
||||||
<div id="missionMap"></div>
|
<div id="missionMap"></div>
|
||||||
<div id="missionPlannerElevation" class="gui_box grey" style="display: none">
|
<div id="missionPlannerElevation" class="gui_box grey" style="display: none">
|
||||||
<div class="gui_box_titlebar">
|
<div class="gui_box_titlebar">
|
||||||
<div class="spacer_box_title i18n-replaced" data-i18n="missionDefaultElevationHead">Elevation Profile</div>
|
<div class="spacer_box_title" data-i18n="missionDefaultElevationHead"></div>
|
||||||
<div class="btnMenu btnMenuIcon save_btn">
|
<div class="btnMenu btnMenuIcon save_btn">
|
||||||
<a id="cancelPlot" class="ic_cancel" href="#" title="Cancel"></a>
|
<a id="cancelPlot" class="ic_cancel" href="#" i18n_title="missionTitleCancel"></a>
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="spacer">
|
|
||||||
<div id="elevationDiv">
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="spacer">
|
||||||
|
<div id="elevationDiv">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div id="notLoadMap" data-i18n="useOnlyStandalone" style="display: none;"></div>
|
<div id="notLoadMap" data-i18n="useOnlyStandalone" style="display: none;"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1797,7 +1797,7 @@ TABS.mission_control.initialize = function (callback) {
|
||||||
clearEditForm();
|
clearEditForm();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log(e);
|
console.log(e);
|
||||||
GUI.log("Previous selection was not a WAYPOINT!");
|
GUI.log(chrome.i18n.getMessage('notAWAYPOINT'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
selectedFeature = map.forEachFeatureAtPixel(evt.pixel,
|
selectedFeature = map.forEachFeatureAtPixel(evt.pixel,
|
||||||
|
@ -2259,25 +2259,25 @@ TABS.mission_control.initialize = function (callback) {
|
||||||
|
|
||||||
$('#loadEepromSafehomeButton').on('click', function () {
|
$('#loadEepromSafehomeButton').on('click', function () {
|
||||||
$(this).addClass('disabled');
|
$(this).addClass('disabled');
|
||||||
GUI.log('Start of getting Safehome points');
|
GUI.log(chrome.i18n.getMessage('startGettingSafehomePoints'));
|
||||||
mspHelper.loadSafehomes();
|
mspHelper.loadSafehomes();
|
||||||
setTimeout(function(){
|
setTimeout(function(){
|
||||||
renderSafehomesTable();
|
renderSafehomesTable();
|
||||||
cleanSafehomeLayers();
|
cleanSafehomeLayers();
|
||||||
renderSafehomesOnMap();
|
renderSafehomesOnMap();
|
||||||
GUI.log('End of getting Safehome points');
|
GUI.log(chrome.i18n.getMessage('endGettingSafehomePoints'));
|
||||||
$('#loadEepromSafehomeButton').removeClass('disabled');
|
$('#loadEepromSafehomeButton').removeClass('disabled');
|
||||||
}, 500);
|
}, 500);
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#saveEepromSafehomeButton').on('click', function () {
|
$('#saveEepromSafehomeButton').on('click', function() {
|
||||||
$(this).addClass('disabled');
|
$(this).addClass('disabled');
|
||||||
GUI.log('Start of sending Safehome points');
|
GUI.log(chrome.i18n.getMessage('startSendingSafehomePoints'));
|
||||||
mspHelper.saveSafehomes();
|
mspHelper.saveSafehomes();
|
||||||
setTimeout(function(){
|
setTimeout(function(){
|
||||||
mspHelper.saveToEeprom();
|
mspHelper.saveToEeprom();
|
||||||
GUI.log('End of sending Safehome points');
|
GUI.log(chrome.i18n.getMessage('endSendingSafehomePoints'));
|
||||||
$('#saveEepromSafehomeButton').removeClass('disabled');
|
$('#saveEepromSafehomeButton').removeClass('disabled');
|
||||||
}, 500);
|
}, 500);
|
||||||
});
|
});
|
||||||
|
@ -2431,7 +2431,7 @@ TABS.mission_control.initialize = function (callback) {
|
||||||
if ((markers.length || multimissionCount) && !confirm(chrome.i18n.getMessage(message))) return;
|
if ((markers.length || multimissionCount) && !confirm(chrome.i18n.getMessage(message))) return;
|
||||||
removeAllWaypoints();
|
removeAllWaypoints();
|
||||||
$(this).addClass('disabled');
|
$(this).addClass('disabled');
|
||||||
GUI.log('Start get point');
|
GUI.log(chrome.i18n.getMessage('startGetPoint'));
|
||||||
getWaypointsFromFC(false);
|
getWaypointsFromFC(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -2441,7 +2441,7 @@ TABS.mission_control.initialize = function (callback) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$(this).addClass('disabled');
|
$(this).addClass('disabled');
|
||||||
GUI.log('Start send point');
|
GUI.log(chrome.i18n.getMessage('startSendPoint'));
|
||||||
sendWaypointsToFC(false);
|
sendWaypointsToFC(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -2450,7 +2450,7 @@ TABS.mission_control.initialize = function (callback) {
|
||||||
if ((markers.length || multimissionCount) && !confirm(chrome.i18n.getMessage(message))) return;
|
if ((markers.length || multimissionCount) && !confirm(chrome.i18n.getMessage(message))) return;
|
||||||
removeAllWaypoints();
|
removeAllWaypoints();
|
||||||
$(this).addClass('disabled');
|
$(this).addClass('disabled');
|
||||||
GUI.log('Start get point');
|
GUI.log(chrome.i18n.getMessage('startGetPoint'));
|
||||||
getWaypointsFromFC(true);
|
getWaypointsFromFC(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -2460,7 +2460,7 @@ TABS.mission_control.initialize = function (callback) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$(this).addClass('disabled');
|
$(this).addClass('disabled');
|
||||||
GUI.log('Start send point');
|
GUI.log(chrome.i18n.getMessage('startSendPoint'));
|
||||||
sendWaypointsToFC(true);
|
sendWaypointsToFC(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -2494,17 +2494,17 @@ TABS.mission_control.initialize = function (callback) {
|
||||||
/////////////////////////////////////////////
|
/////////////////////////////////////////////
|
||||||
function loadMissionFile(filename) {
|
function loadMissionFile(filename) {
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
if (!window.xml2js) return GUI.log('<span style="color: red">Error reading file (xml2js not found)</span>');
|
if (!window.xml2js) return GUI.log(chrome.i18n.getMessage('errorReadingFileXml2jsNotFound'));
|
||||||
|
|
||||||
fs.readFile(filename, (err, data) => {
|
fs.readFile(filename, (err, data) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
GUI.log('<span style="color: red">Error reading file</span>');
|
GUI.log(chrome.i18n.getMessage('errorReadingFile'));
|
||||||
return console.error(err);
|
return console.error(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
window.xml2js.Parser({ 'explicitChildren': true, 'preserveChildrenOrder': true }).parseString(data, (err, result) => {
|
window.xml2js.Parser({ 'explicitChildren': true, 'preserveChildrenOrder': true }).parseString(data, (err, result) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
GUI.log('<span style="color: red">Error parsing file</span>');
|
GUI.log(chrome.i18n.getMessage('errorParsingFile'));
|
||||||
return console.error(err);
|
return console.error(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2636,7 +2636,7 @@ TABS.mission_control.initialize = function (callback) {
|
||||||
}
|
}
|
||||||
updateTotalInfo();
|
updateTotalInfo();
|
||||||
let sFilename = String(filename.split('\\').pop().split('/').pop());
|
let sFilename = String(filename.split('\\').pop().split('/').pop());
|
||||||
GUI.log(sFilename+' has been loaded successfully !');
|
GUI.log(sFilename + chrome.i18n.getMessage('loadedSuccessfully'));
|
||||||
updateFilename(sFilename);
|
updateFilename(sFilename);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -2644,7 +2644,7 @@ TABS.mission_control.initialize = function (callback) {
|
||||||
|
|
||||||
function saveMissionFile(filename) {
|
function saveMissionFile(filename) {
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
if (!window.xml2js) return GUI.log('<span style="color: red">Error writing file (xml2js not found)</span>');
|
if (!window.xml2js) return GUI.log(chrome.i18n.getMessage('errorWritingFileXml2jsNotFound'));
|
||||||
|
|
||||||
var center = ol.proj.toLonLat(map.getView().getCenter());
|
var center = ol.proj.toLonLat(map.getView().getCenter());
|
||||||
var zoom = map.getView().getZoom();
|
var zoom = map.getView().getZoom();
|
||||||
|
@ -2693,11 +2693,11 @@ TABS.mission_control.initialize = function (callback) {
|
||||||
xml = xml.replace(/missionitem mission/g, 'meta mission');
|
xml = xml.replace(/missionitem mission/g, 'meta mission');
|
||||||
fs.writeFile(filename, xml, (err) => {
|
fs.writeFile(filename, xml, (err) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
GUI.log('<span style="color: red">Error writing file</span>');
|
GUI.log(chrome.i18n.getMessage('ErrorWritingFile'));
|
||||||
return console.error(err);
|
return console.error(err);
|
||||||
}
|
}
|
||||||
let sFilename = String(filename.split('\\').pop().split('/').pop());
|
let sFilename = String(filename.split('\\').pop().split('/').pop());
|
||||||
GUI.log(sFilename+' has been saved successfully !');
|
GUI.log(sFilename + chrome.i18n.getMessage('savedSuccessfully'));
|
||||||
updateFilename(sFilename);
|
updateFilename(sFilename);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -2715,7 +2715,7 @@ TABS.mission_control.initialize = function (callback) {
|
||||||
|
|
||||||
function getWaypointData() {
|
function getWaypointData() {
|
||||||
mspHelper.loadWaypoints(function() {
|
mspHelper.loadWaypoints(function() {
|
||||||
GUI.log('End get point');
|
GUI.log(chrome.i18n.getMessage('endGetPoint'));
|
||||||
if (loadEeprom) {
|
if (loadEeprom) {
|
||||||
GUI.log(chrome.i18n.getMessage('eeprom_load_ok'));
|
GUI.log(chrome.i18n.getMessage('eeprom_load_ok'));
|
||||||
$('#loadEepromMissionButton').removeClass('disabled');
|
$('#loadEepromMissionButton').removeClass('disabled');
|
||||||
|
@ -2757,7 +2757,7 @@ TABS.mission_control.initialize = function (callback) {
|
||||||
MISSION_PLANNER.copy(mission);
|
MISSION_PLANNER.copy(mission);
|
||||||
MISSION_PLANNER.update(false, true, true);
|
MISSION_PLANNER.update(false, true, true);
|
||||||
mspHelper.saveWaypoints(function() {
|
mspHelper.saveWaypoints(function() {
|
||||||
GUI.log('End send point');
|
GUI.log(chrome.i18n.getMessage('endSendPoint'));
|
||||||
if (saveEeprom) {
|
if (saveEeprom) {
|
||||||
$('#saveEepromMissionButton').removeClass('disabled');
|
$('#saveEepromMissionButton').removeClass('disabled');
|
||||||
GUI.log(chrome.i18n.getMessage('eeprom_saved_ok'));
|
GUI.log(chrome.i18n.getMessage('eeprom_saved_ok'));
|
||||||
|
|
|
@ -42,7 +42,7 @@
|
||||||
<div class="half" style="width: calc(50% - 10px); margin-left: 10px;">
|
<div class="half" style="width: calc(50% - 10px); margin-left: 10px;">
|
||||||
<select id="mixer-preset"></select>
|
<select id="mixer-preset"></select>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mixer-load-button">
|
<div class="mixer-load-button">
|
||||||
<div id="needToUpdateMixerMessage" class="is-hidden" data-i18n="mixerNotLoaded"></div>
|
<div id="needToUpdateMixerMessage" class="is-hidden" data-i18n="mixerNotLoaded"></div>
|
||||||
<div class="btn default_btn narrow green is-hidden">
|
<div class="btn default_btn narrow green is-hidden">
|
||||||
|
@ -90,7 +90,7 @@
|
||||||
<table id="motor-mix-table" class="mixer-table">
|
<table id="motor-mix-table" class="mixer-table">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th style="width: 75px">Motor</th>
|
<th style="width: 75px" data-i18n="controlAxisMotor"></th>
|
||||||
<th data-i18n="controlAxisThrottle"></th>
|
<th data-i18n="controlAxisThrottle"></th>
|
||||||
<th data-i18n="controlAxisRoll"></th>
|
<th data-i18n="controlAxisRoll"></th>
|
||||||
<th data-i18n="controlAxisPitch"></th>
|
<th data-i18n="controlAxisPitch"></th>
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<div class="content_wrapper">
|
<div class="content_wrapper">
|
||||||
<div class="tab_title" data-i18n="tabOnboardLogging"></div>
|
<div class="tab_title" data-i18n="tabOnboardLogging"></div>
|
||||||
<div class="require-blackbox-unsupported">
|
<div class="require-blackbox-unsupported">
|
||||||
|
|
||||||
<div class="gui_box grey require-blackbox-config-supported">
|
<div class="gui_box grey require-blackbox-config-supported">
|
||||||
<div class="gui_box_titlebar">
|
<div class="gui_box_titlebar">
|
||||||
<div class="spacer_box_title" data-i18n="blackboxConfiguration"></div>
|
<div class="spacer_box_title" data-i18n="blackboxConfiguration"></div>
|
||||||
|
@ -31,22 +31,22 @@
|
||||||
<div class="spacer_box_title" data-i18n="blackboxConfiguration"></div>
|
<div class="spacer_box_title" data-i18n="blackboxConfiguration"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="spacer_box">
|
<div class="spacer_box">
|
||||||
<div class="checkbox">
|
<div class="checkbox">
|
||||||
<input checked type="checkbox" data-bit="19" class="feature toggle" name="BLACKBOX" title="BLACKBOX" id="feature-19-2">
|
<input checked type="checkbox" data-bit="19" class="feature toggle" name="BLACKBOX" title="BLACKBOX" id="feature-19-2">
|
||||||
<label for="feature-19-2">
|
<label for="feature-19-2">
|
||||||
<span data-i18n="featureBLACKBOX"></span>
|
<span data-i18n="featureBLACKBOX"></span>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="select line blackboxDevice">
|
<div class="select line blackboxDevice">
|
||||||
<select name="blackbox_device">
|
<select name="blackbox_device">
|
||||||
</select>
|
</select>
|
||||||
<span>Blackbox logging device</span>
|
<span i18n="onboardLoggingBlackbox"></span>
|
||||||
</div>
|
</div>
|
||||||
<div class="select line blackboxRate">
|
<div class="select line blackboxRate">
|
||||||
<select name="blackbox_rate">
|
<select name="blackbox_rate">
|
||||||
</select>
|
</select>
|
||||||
<span>Portion of flight loop iterations to log (logging rate)</span>
|
<span i18n="onboardLoggingBlackboxRate"></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -56,45 +56,43 @@
|
||||||
<div class="spacer_box_title" data-i18n="blackboxFields"></div>
|
<div class="spacer_box_title" data-i18n="blackboxFields"></div>
|
||||||
</div>
|
</div>
|
||||||
<div id="blackBoxFlagsDiv" class="spacer_box config-section">
|
<div id="blackBoxFlagsDiv" class="spacer_box config-section">
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="gui_box grey">
|
<div class="gui_box grey">
|
||||||
<div class="gui_box_titlebar" align="left">
|
<div class="gui_box_titlebar" align="left">
|
||||||
<div class="spacer_box_title">
|
<div class="spacer_box_title" data-i18n="serialLogging">
|
||||||
Outboard serial logging device
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="spacer_box">
|
||||||
|
<p data-i18n="serialLoggingSupportedNote"></p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="spacer_box">
|
|
||||||
<p data-i18n="serialLoggingSupportedNote"></p>
|
<div class="gui_box grey require-dataflash-supported">
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="gui_box grey require-dataflash-supported">
|
|
||||||
<div class="gui_box_titlebar" align="left">
|
<div class="gui_box_titlebar" align="left">
|
||||||
<div class="spacer_box_title">
|
<div class="spacer_box_title" data-i18n="onboardLoggingFlashLogger">
|
||||||
Onboard dataflash chip
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="spacer_box">
|
<div class="spacer_box">
|
||||||
<div class="require-dataflash-supported">
|
<div class="require-dataflash-supported">
|
||||||
<p data-i18n="dataflashNote"></p>
|
<p data-i18n="dataflashNote"></p>
|
||||||
|
|
||||||
<dialog class="dataflash-confirm-erase">
|
<dialog class="dataflash-confirm-erase">
|
||||||
<h3 data-i18n="dataflashConfirmEraseTitle"></h3>
|
<h3 data-i18n="dataflashConfirmEraseTitle"></h3>
|
||||||
<div class="dataflash-confirm-erase-note" data-i18n="dataflashConfirmEraseNote"></div>
|
<div class="dataflash-confirm-erase-note" data-i18n="dataflashConfirmEraseNote"></div>
|
||||||
<div class="dataflash-erase-progress">
|
<div class="dataflash-erase-progress">
|
||||||
<div class="data-loading">
|
<div class="data-loading">
|
||||||
<p>Erase in progress, please wait...</p>
|
<p data-i18n="dataflashEraseing"></p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="buttons">
|
<div class="buttons">
|
||||||
<a href="#" class="erase-flash-confirm regular-button" data-i18n="dataflashButtonEraseConfirm"></a>
|
<a href="#" class="erase-flash-confirm regular-button" data-i18n="dataflashButtonEraseConfirm"></a>
|
||||||
<a href="#" class="erase-flash-cancel regular-button" data-i18n="dataflashButtonEraseCancel"></a>
|
<a href="#" class="erase-flash-cancel regular-button" data-i18n="dataflashButtonEraseCancel"></a>
|
||||||
</div>
|
</div>
|
||||||
</dialog>
|
</dialog>
|
||||||
|
|
||||||
<dialog class="dataflash-saving">
|
<dialog class="dataflash-saving">
|
||||||
<h3 data-i18n="dataflashSavingTitle"></h3>
|
<h3 data-i18n="dataflashSavingTitle"></h3>
|
||||||
<div class="dataflash-saving-before">
|
<div class="dataflash-saving-before">
|
||||||
|
@ -111,7 +109,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</dialog>
|
</dialog>
|
||||||
|
|
||||||
<ul class="dataflash-contents">
|
<ul class="dataflash-contents">
|
||||||
<li class="dataflash-used">
|
<li class="dataflash-used">
|
||||||
<div class="legend"></div>
|
<div class="legend"></div>
|
||||||
|
@ -120,32 +118,31 @@
|
||||||
<div class="legend"></div>
|
<div class="legend"></div>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<a class="regular-button erase-flash" href="#" data-i18n="dataflashButtonErase"></a>
|
<a class="regular-button erase-flash" href="#" data-i18n="dataflashButtonErase"></a>
|
||||||
<a class="regular-button save-flash" href="#" data-i18n="dataflashButtonSaveFile"></a>
|
<a class="regular-button save-flash" href="#" data-i18n="dataflashButtonSaveFile"></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p class="require-dataflash-not-present" data-i18n="dataflashNotPresentNote"></p>
|
<p class="require-dataflash-not-present" data-i18n="dataflashNotPresentNote"></p>
|
||||||
<p class="require-dataflash-unsupported" data-i18n="dataflashFirmwareUpgradeRequired"></p>
|
<p class="require-dataflash-unsupported" data-i18n="dataflashFirmwareUpgradeRequired"></p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="require-sdcard-supported">
|
<div class="require-sdcard-supported">
|
||||||
<div class="gui_box grey">
|
<div class="gui_box grey">
|
||||||
<div class="gui_box_titlebar" align="left">
|
<div class="gui_box_titlebar" align="left">
|
||||||
<div class="spacer_box_title">
|
<div class="spacer_box_title" data-i18n="OnboardSDCard">
|
||||||
Onboard SD card
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div class="spacer_box">
|
||||||
<div class="spacer_box">
|
|
||||||
<div class="sdcard">
|
<div class="sdcard">
|
||||||
<div class="sdcard-icon"></div>
|
<div class="sdcard-icon"></div>
|
||||||
<div class="sdcard-status"></div>
|
<div class="sdcard-status"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p data-i18n="sdcardNote"></p>
|
<p data-i18n="sdcardNote"></p>
|
||||||
|
|
||||||
<div class="require-sdcard-ready">
|
<div class="require-sdcard-ready">
|
||||||
<ul class="sdcard-contents">
|
<ul class="sdcard-contents">
|
||||||
<li class="sdcard-other">
|
<li class="sdcard-other">
|
||||||
|
@ -166,4 +163,4 @@
|
||||||
<a href="#" class="save-settings regular-button" data-i18n="blackboxButtonSave"></a>
|
<a href="#" class="save-settings regular-button" data-i18n="blackboxButtonSave"></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
|
@ -839,6 +839,7 @@ OSD.constants = {
|
||||||
{
|
{
|
||||||
name: 'THROTTLE_POSITION',
|
name: 'THROTTLE_POSITION',
|
||||||
id: 9,
|
id: 9,
|
||||||
|
|
||||||
preview: ' ' + FONT.symbol(SYM.THR) + ' 69'
|
preview: ' ' + FONT.symbol(SYM.THR) + ' 69'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -3090,7 +3091,7 @@ TABS.osd.initialize = function (callback) {
|
||||||
Settings.saveInputs().then(function () {
|
Settings.saveInputs().then(function () {
|
||||||
var self = this;
|
var self = this;
|
||||||
MSP.promise(MSPCodes.MSP_EEPROM_WRITE);
|
MSP.promise(MSPCodes.MSP_EEPROM_WRITE);
|
||||||
GUI.log('OSD settings saved');
|
GUI.log(chrome.i18n.getMessage('osdSettingsSaved'));
|
||||||
var oldText = $(this).text();
|
var oldText = $(this).text();
|
||||||
$(this).html("Saved");
|
$(this).html("Saved");
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
|
@ -3278,7 +3279,7 @@ TABS.osd.initialize = function (callback) {
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
console.log('You don\'t have write permissions for this file, sorry.');
|
console.log('You don\'t have write permissions for this file, sorry.');
|
||||||
GUI.log('You don\'t have <span style="color: red">write permissions</span> for this file');
|
GUI.log(chrome.i18n.getMessage('writePermissionsForFile'));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -52,7 +52,7 @@
|
||||||
<span data-i18n="throttleIdle"></span>
|
<span data-i18n="throttleIdle"></span>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="number">
|
<div class="number">
|
||||||
<input id="throttle_scale" data-setting="throttle_scale" type="number" data-step="0.01" />
|
<input id="throttle_scale" data-setting="throttle_scale" type="number" data-step="0.01" />
|
||||||
<label for="throttle_scale">
|
<label for="throttle_scale">
|
||||||
|
@ -94,7 +94,7 @@
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="gui_box grey">
|
<div class="gui_box grey">
|
||||||
|
@ -108,10 +108,10 @@
|
||||||
<div class="bar-wrapper"></div>
|
<div class="bar-wrapper"></div>
|
||||||
<div class="clear-both"></div>
|
<div class="clear-both"></div>
|
||||||
<div class="motor_testing">
|
<div class="motor_testing">
|
||||||
<div class="sliders motor-sliders"></div>
|
<div class="sliders motor-sliders"></div>
|
||||||
<div class="values">
|
<div class="values">
|
||||||
<ul class="motor-values"></ul>
|
<ul class="motor-values"></ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="motors right">
|
<div class="motors right">
|
||||||
|
@ -123,15 +123,15 @@
|
||||||
<div class="half">
|
<div class="half">
|
||||||
<table class="output-stats-table">
|
<table class="output-stats-table">
|
||||||
<tr>
|
<tr>
|
||||||
<th>Acc. noise RMS</th>
|
<th i18n="outputStatsTableAcc"></th>
|
||||||
<td class="acc-rms"></td>
|
<td class="acc-rms"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Current [A]</th>
|
<th i18n="outputStatsTableCurrent"></th>
|
||||||
<td class="current-current"></td>
|
<td class="current-current"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Voltage [V]</th>
|
<th i18n="outputStatsTableVoltage"></th>
|
||||||
<td class="current-voltage"></td>
|
<td class="current-voltage"></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
@ -193,9 +193,9 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="content_toolbar">
|
<div class="content_toolbar">
|
||||||
<div class="btn save_btn">
|
<div class="btn save_btn">
|
||||||
<a class="update" href="#" data-i18n="servosButtonSave"></a>
|
<a class="update" href="#" data-i18n="servosButtonSave"></a>
|
||||||
<a class="save" href="#" data-i18n="configurationButtonSave"></a>
|
<a class="save" href="#" data-i18n="configurationButtonSave"></a>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -12,12 +12,12 @@
|
||||||
<table class="ports spacebottom">
|
<table class="ports spacebottom">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Identifier</td>
|
<td i18n="portsIdentifier"></td>
|
||||||
<td>Data</td>
|
<td i18n="portsConfiguration"></td>
|
||||||
<td>Telemetry</td>
|
<td i18n="portsTelemetryOut"></td>
|
||||||
<td>RX</td>
|
<td i18n="portsSerialRx"></td>
|
||||||
<td data-i18n="portColumnSensors"></td>
|
<td data-i18n="portColumnSensors"></td>
|
||||||
<td class='peripherls-column'>Peripherals</td>
|
<td class='peripherls-column' i18n="portsPeripherals"></td>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
<div class="tab-configuration tab-programming toolbar_fixed_bottom">
|
<div class="tab-configuration tab-programming toolbar_fixed_bottom">
|
||||||
<div class="content_wrapper" id="programming-main-content">
|
<div class="content_wrapper" id="programming-main-content">
|
||||||
|
|
||||||
|
|
||||||
<div class="tab_title subtab__header">
|
<div class="tab_title subtab__header">
|
||||||
<span class="subtab__header_label subtab__header_label--current" for="subtab-lc">Logic Conditions</span>
|
<span class="subtab__header_label subtab__header_label--current" for="subtab-lc" data-i18n="LogicConditions"></span>
|
||||||
<span class="subtab__header_label" for="subtab-pid">PID Controllers</span>
|
<span class="subtab__header_label" for="subtab-pid" data-i18n="PIDControllers"></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="gvar__container">
|
<div class="gvar__container">
|
||||||
<div class="gvar__wrapper">
|
<div class="gvar__wrapper">
|
||||||
<div class="gvar__cell">
|
<div class="gvar__cell">
|
||||||
|
|
|
@ -11,20 +11,20 @@
|
||||||
<div class="gui_box">
|
<div class="gui_box">
|
||||||
<div class="info">
|
<div class="info">
|
||||||
<div class="checkboxes">
|
<div class="checkboxes">
|
||||||
<label><input type="checkbox" name="gyro_on" class="first" />Gyroscope</label> <label><input
|
<label><input type="checkbox" name="gyro_on" class="first" /><span i18n="sensorsGyroSelect"></label> <label><input
|
||||||
type="checkbox" name="accel_on" />Accelerometer</label> <label><input type="checkbox"
|
type="checkbox" name="accel_on" /><span i18n="sensorsAccelSelect"></span></label> <label><input type="checkbox"
|
||||||
name="mag_on" />Magnetometer</label> <label><input type="checkbox" name="baro_on" />Barometer</label> <label><input
|
name="mag_on" /><span i18n="sensorsMagSelect"></span></label> <label><input type="checkbox" name="baro_on" /><span i18n="sensorsAltitudeSelect"></span></label> <label><input
|
||||||
type="checkbox" name="sonar_on" />Sonar</label> <label><input type="checkbox" name="airspeed_on" />Air speed</label> <label><input
|
type="checkbox" name="sonar_on" /><span i18n="sensorsSonarSelect"></span></label> <label><input type="checkbox" name="airspeed_on" /><span i18n="sensorsAirSpeedSelect"></span></label> <label><input
|
||||||
type="checkbox" name="temperature_on" />Temperatures</label><label><input type="checkbox" name="debug_on" />Debug</label>
|
type="checkbox" name="temperature_on" /><span i18n="sensorsTemperaturesSelect"></span></label><label><input type="checkbox" name="debug_on" /><span i18n="sensorsDebugSelect"></span></label>
|
||||||
|
|
||||||
<a class="debug-trace" href="javascript:void(0);">Open Debug Trace</a>
|
<a class="debug-trace" href="javascript:void(0);"><span i18n="sensorsDebugTrace"></span></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="wrapper gyro">
|
<div class="wrapper gyro">
|
||||||
<div class="gui_box grey">
|
<div class="gui_box grey">
|
||||||
<div class="plot_control">
|
<div class="plot_control">
|
||||||
<div class="title">Gyroscope - deg/s</div>
|
<div class="title" i18n="sensorsGyroscope"></div>
|
||||||
<dl>
|
<dl>
|
||||||
<dt i18n="sensorsRefresh"></dt>
|
<dt i18n="sensorsRefresh"></dt>
|
||||||
<dd class="rate">
|
<dd class="rate">
|
||||||
|
@ -70,7 +70,7 @@
|
||||||
<div class="wrapper accel">
|
<div class="wrapper accel">
|
||||||
<div class="gui_box grey">
|
<div class="gui_box grey">
|
||||||
<div class="plot_control">
|
<div class="plot_control">
|
||||||
<div class="title">Accelerometer - g</div>
|
<div class="title" i18n="sensorsAccelerometer"></div>
|
||||||
<dl>
|
<dl>
|
||||||
<dt i18n="sensorsRefresh"></dt>
|
<dt i18n="sensorsRefresh"></dt>
|
||||||
<dd class="rate">
|
<dd class="rate">
|
||||||
|
@ -116,7 +116,7 @@
|
||||||
<div class="wrapper mag">
|
<div class="wrapper mag">
|
||||||
<div class="gui_box grey">
|
<div class="gui_box grey">
|
||||||
<div class="plot_control">
|
<div class="plot_control">
|
||||||
<div class="title">Magnetometer - Ga</div>
|
<div class="title" i18n="sensorsMagnetometer"></div>
|
||||||
<dl>
|
<dl>
|
||||||
<dt i18n="sensorsRefresh"></dt>
|
<dt i18n="sensorsRefresh"></dt>
|
||||||
<dd class="rate">
|
<dd class="rate">
|
||||||
|
@ -160,7 +160,7 @@
|
||||||
<div class="wrapper altitude">
|
<div class="wrapper altitude">
|
||||||
<div class="gui_box grey">
|
<div class="gui_box grey">
|
||||||
<div class="plot_control">
|
<div class="plot_control">
|
||||||
<div class="title">Barometer - meters</div>
|
<div class="title" i18n="sensorsBarometer"></div>
|
||||||
<dl>
|
<dl>
|
||||||
<dt i18n="sensorsRefresh"></dt>
|
<dt i18n="sensorsRefresh"></dt>
|
||||||
<dd class="rate">
|
<dd class="rate">
|
||||||
|
@ -196,7 +196,7 @@
|
||||||
<div class="wrapper sonar">
|
<div class="wrapper sonar">
|
||||||
<div class="gui_box grey">
|
<div class="gui_box grey">
|
||||||
<div class="plot_control">
|
<div class="plot_control">
|
||||||
<div class="title">Sonar - cm</div>
|
<div class="title" i18n="sensorsSonar"></div>
|
||||||
<dl>
|
<dl>
|
||||||
<dt i18n="sensorsRefresh"></dt>
|
<dt i18n="sensorsRefresh"></dt>
|
||||||
<dd class="rate">
|
<dd class="rate">
|
||||||
|
@ -229,7 +229,7 @@
|
||||||
<div class="wrapper airspeed">
|
<div class="wrapper airspeed">
|
||||||
<div class="gui_box grey">
|
<div class="gui_box grey">
|
||||||
<div class="plot_control">
|
<div class="plot_control">
|
||||||
<div class="title">Air speed - cm/s</div>
|
<div class="title" i18n="sensorsAirspeed"></div>
|
||||||
<dl>
|
<dl>
|
||||||
<dt i18n="sensorsRefresh"></dt>
|
<dt i18n="sensorsRefresh"></dt>
|
||||||
<dd class="rate">
|
<dd class="rate">
|
||||||
|
@ -263,9 +263,9 @@
|
||||||
<div class="wrapper temperature">
|
<div class="wrapper temperature">
|
||||||
<div class="gui_box grey">
|
<div class="gui_box grey">
|
||||||
<div class="plot_control">
|
<div class="plot_control">
|
||||||
<div class="title">Temperature 0 - °C</div>
|
<div class="title" i18n="sensorsTemperature0"></div>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>value:</dt>
|
<dt i18n="sensorsTemperatureValue"></dt>
|
||||||
<dd class="x">0</dd>
|
<dd class="x">0</dd>
|
||||||
</dl>
|
</dl>
|
||||||
</div>
|
</div>
|
||||||
|
@ -278,9 +278,9 @@
|
||||||
</svg>
|
</svg>
|
||||||
<div class="clear-both"></div>
|
<div class="clear-both"></div>
|
||||||
<div class="plot_control">
|
<div class="plot_control">
|
||||||
<div class="title">Temperature 1 - °C</div>
|
<div class="title" i18n="sensorsTemperature1"></div>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>value:</dt>
|
<dt i18n="sensorsTemperatureValue"></dt>
|
||||||
<dd class="x">0</dd>
|
<dd class="x">0</dd>
|
||||||
</dl>
|
</dl>
|
||||||
</div>
|
</div>
|
||||||
|
@ -293,9 +293,9 @@
|
||||||
</svg>
|
</svg>
|
||||||
<div class="clear-both"></div>
|
<div class="clear-both"></div>
|
||||||
<div class="plot_control">
|
<div class="plot_control">
|
||||||
<div class="title">Temperature 2 - °C</div>
|
<div class="title" i18n="sensorsTemperature2"></div>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>value:</dt>
|
<dt i18n="sensorsTemperatureValue"></dt>
|
||||||
<dd class="x">0</dd>
|
<dd class="x">0</dd>
|
||||||
</dl>
|
</dl>
|
||||||
</div>
|
</div>
|
||||||
|
@ -308,9 +308,9 @@
|
||||||
</svg>
|
</svg>
|
||||||
<div class="clear-both"></div>
|
<div class="clear-both"></div>
|
||||||
<div class="plot_control">
|
<div class="plot_control">
|
||||||
<div class="title">Temperature 3 - °C</div>
|
<div class="title" i18n="sensorsTemperature3"></div>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>value:</dt>
|
<dt i18n="sensorsTemperatureValue"></dt>
|
||||||
<dd class="x">0</dd>
|
<dd class="x">0</dd>
|
||||||
</dl>
|
</dl>
|
||||||
</div>
|
</div>
|
||||||
|
@ -323,9 +323,9 @@
|
||||||
</svg>
|
</svg>
|
||||||
<div class="clear-both"></div>
|
<div class="clear-both"></div>
|
||||||
<div class="plot_control">
|
<div class="plot_control">
|
||||||
<div class="title">Temperature 4 - °C</div>
|
<div class="title" i18n="sensorsTemperature4"></div>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>value:</dt>
|
<dt i18n="sensorsTemperatureValue"></dt>
|
||||||
<dd class="x">0</dd>
|
<dd class="x">0</dd>
|
||||||
</dl>
|
</dl>
|
||||||
</div>
|
</div>
|
||||||
|
@ -338,9 +338,9 @@
|
||||||
</svg>
|
</svg>
|
||||||
<div class="clear-both"></div>
|
<div class="clear-both"></div>
|
||||||
<div class="plot_control">
|
<div class="plot_control">
|
||||||
<div class="title">Temperature 5 - °C</div>
|
<div class="title" i18n="sensorsTemperature5"></div>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>value:</dt>
|
<dt i18n="sensorsTemperatureValue"></dt>
|
||||||
<dd class="x">0</dd>
|
<dd class="x">0</dd>
|
||||||
</dl>
|
</dl>
|
||||||
</div>
|
</div>
|
||||||
|
@ -353,9 +353,9 @@
|
||||||
</svg>
|
</svg>
|
||||||
<div class="clear-both"></div>
|
<div class="clear-both"></div>
|
||||||
<div class="plot_control">
|
<div class="plot_control">
|
||||||
<div class="title">Temperature 6 - °C</div>
|
<div class="title" i18n="sensorsTemperature6"></div>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>value:</dt>
|
<dt i18n="sensorsTemperatureValue"></dt>
|
||||||
<dd class="x">0</dd>
|
<dd class="x">0</dd>
|
||||||
</dl>
|
</dl>
|
||||||
</div>
|
</div>
|
||||||
|
@ -368,9 +368,9 @@
|
||||||
</svg>
|
</svg>
|
||||||
<div class="clear-both"></div>
|
<div class="clear-both"></div>
|
||||||
<div class="plot_control">
|
<div class="plot_control">
|
||||||
<div class="title">Temperature 7 - °C</div>
|
<div class="title" i18n="sensorsTemperature7"></div>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>value:</dt>
|
<dt i18n="sensorsTemperatureValue"></dt>
|
||||||
<dd class="x">0</dd>
|
<dd class="x">0</dd>
|
||||||
</dl>
|
</dl>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue