Basic layout

pull/1850/head
Pawel Spychalski (DzikuVx) 12 months ago
parent 4b2e6e3777
commit b0726bbe8c

@ -110,6 +110,9 @@
"tabFailsafe": {
"message": "Failsafe"
},
"tabEzTune": {
"message": "Ez Tune"
},
"tabGPS": {
"message": "GPS"
},
@ -5483,5 +5486,53 @@
},
"timerOutputs": {
"message": "Timer outputs"
},
"ezTuneFilterHz": {
"message": "Filter Hz"
},
"ezTuneAxisRatio": {
"message": "Axis ratio"
},
"ezTuneResponse": {
"message": "Response"
},
"ezTuneDamping": {
"message": "Damping"
},
"ezTuneStability": {
"message": "Stability"
},
"ezTuneAggressiveness": {
"message": "Aggressiveness"
},
"ezTuneRate": {
"message": "Rate"
},
"ezTuneExpo": {
"message": "Expo"
},
"ezTuneFilterHzTips": {
"message": "This sets the base cutoff frequency for all INAV gyro and D-term filters. Higher values will result in lower filter delay and better stabilization, but more noise will go through the filters and motors will get hot, UAV might oscillate and be unfyable. Your goal is to increase this value as high as possible before any negative effects appear. Negative effects include: hot motors, audible osciallations, UAV rapidly shaking, UAV gaining altitude by itself. Usual starting points for 'Filter Hz' are: <strong>3-inch props</strong>: 90, <strong>5-inch props</strong>: 110, <strong>7-inch props</strong>: 90, <strong>10-inch props</strong>: 75, <strong>12-inch props</strong>: 60. Use Blackbox and common sense to find a value that is most suited for your UAV."
},
"ezTuneAxisRatioTips": {
"message": "Describes the weight/moment of inertia distribution of your UAV. The longer the frame (more mass on the front-back axis) more Axis Ratio is requires. Perfect X frame is ratio 100. Most modern frames should fit somewhere between 110 and 130. Default 110 is a good starting point."
},
"ezTuneResponseTips": {
"message": "This setting defines how fast the UAV will react to stick movements and gyro signal. Higher values will result in faster reaction, but also in more overshoots and oscillations. If UAV feels sluggish or has a slow wobble, increase the Response. If it has hot motors, audibly osciallates, overshoots or feels too nervous, decrease the Response. Most modern quads should beefy motors will fly best with Response below 80. Should be tuned together with Damping. It is a P-term equivalent."
},
"ezTuneDampingTips": {
"message": "Describes the stengths of a force that opposes any rotation speed change. It dampens roll and pitch acceleration and causes smoother and more stable flight. Your task during tuning is to find out how much you can increase it before any negative symptoms appear: hot motors, audible osciallations, overshoot. Most modern quads should accept 'Damping' up to 150-180. It is a D-term equivalent."
},
"ezTuneStabilityTips": {
"message": "Defines long-term stabilization strength. Most modern quads should tolerate 'Stability' even up to 120-130. Usually does not have to be tuned at all. If UAV suffers from heavy propwash during vertical descent, lowering 'Stability' might help. It is a I-term equivalent"
},
"ezTuneAggressivenessTips": {
"message": "Defines how fast your UAV will react to fast stick movements. Higher 'Aggressiveness' results in snappier fast manouvers. It does not affect stabilization, only stick feeling. It is a FF-term equivalent."
},
"ezTuneRateTips": {
"message": "Defines how fast your UAV will rotate around roll, pitch and yaw axis. Higher 'Rate' results in faster rotation. Value of 0 is the equivalent of 300dps, 100 is the equivalent of 600dps, 200 is the equivalent of 900dps."
},
"ezTuneExpoTips": {
"message": "Defines expo of the RC input. Lower values result in more sensitive stick in the center. Higher values result in less sensitive center and more rapid response at the end of the stick. Value of 0 is the equivalent of 0 expo, 100 is the equivalent of 0.7 expo, 200 is the equivalent of 1.0 expo."
}
}
}

@ -126,6 +126,7 @@ sources.js = [
'./js/serial_queue.js',
'./js/msp_balanced_interval.js',
'./tabs/advanced_tuning.js',
'./tabs/ez_tune.js',
'./js/peripherals.js',
'./js/appUpdater.js',
'./js/feature_framework.js',

@ -41,7 +41,8 @@ var GUI_control = function () {
'advanced_tuning',
'mission_control',
'mixer',
'programming'
'programming',
'ez_tune'
];
this.allowedTabs = this.defaultAllowedTabsWhenDisconnected;

@ -1643,7 +1643,7 @@ dialog {
/* fixing padding for all Tabs*/
.tab-setup, .tab-landing, .tab-adjustments, .tab-auxiliary, .tab-cli, .tab-configuration, .tab-failsafe, .tab-onboard_logging,
.tab-firmware_flasher, .tab-gps, .tab-magnetometer, .tab-help, .tab-led-strip, .tab-logging, .tab-modes, .tab-motors, .tab-pid_tuning,
.tab-ports, .tab-receiver, .tab-sensors, .tab-servos, .tab-osd, .tab-calibration {
.tab-ports, .tab-receiver, .tab-sensors, .tab-servos, .tab-osd, .tab-calibration, .tab-ez_tune {
height: 100%;
position: relative;
}
@ -2278,4 +2278,8 @@ ol li {
.no-border {
border: none !important;
}
.bold {
font-weight: bold;
}

@ -205,6 +205,9 @@
<li class="tab_failsafe">
<a href="#" data-i18n="tabFailsafe" class="tabicon ic_failsafe" title="Failsafe"></a>
</li>
<li class="tab_ez_tune">
<a href="#" data-i18n="tabEzTune" class="tabicon ic_wizzard"></a>
</li>
<li class="tab_pid_tuning">
<a href="#" data-i18n="tabPidTuning" class="tabicon ic_pid" title="PID Tuning"></a>
</li>
@ -251,8 +254,7 @@
<a href="#" data-i18n="tabCLI" class="tabicon ic_cli" title="CLI"></a>
</li>
<!--<li class=""><a href="#" class="tabicon ic_advanced">Advanced (spare icon)</a></li>-->
<!--<li class=""><a href="#" class="tabicon ic_wizzard">Wizzard (spare icon)</a></li>-->
<!-- <li class=""><a href="#" class="tabicon ic_advanced">Advanced (spare icon)</a></li> -->
</ul>
</div>
<div class="clear-both"></div>

@ -301,6 +301,9 @@ $(document).ready(function () {
case 'cli':
TABS.cli.initialize(content_ready);
break;
case 'ez_tune':
TABS.ez_tune.initialize(content_ready);
break;
default:
console.log('Tab not found:' + tab);

@ -0,0 +1,104 @@
<!--suppress ALL -->
<div id="content-watermark"></div>
<div class="tab-ez_tune toolbar_fixed_bottom">
<div class="content_wrapper">
<div class="tab_title" data-i18n="tabEzTune"></div>
<div class="clear-both"></div>
<div style="display: flex;">
<div>
<div class="pid-sliders-axis" data-axis="roll">
<div style="padding: 1em;" data-i18n="ezTuneFilterHzTips"></div>
<div class="pid-slider-row">
<span data-i18n="ezTuneFilterHz" class="bold"></span>
<div class="number no-border">
<input id="ez_tune_filter_hz" type="number"/>
</div>
</div>
<div class="clear-both"></div>
</div>
<div class="pid-sliders-axis" data-axis="pitch">
<div style="padding: 1em;" data-i18n="ezTuneAxisRatioTips"></div>
<div class="pid-slider-row">
<span data-i18n="ezTuneAxisRatio" class="bold"></span>
<div class="number no-border">
<input id="ez_tune_axis_ratio" type="number"/>
</div>
<div class="clear-both"></div>
</div>
<div style="padding: 1em;" data-i18n="ezTuneResponseTips"></div>
<div class="pid-slider-row">
<span data-i18n="ezTuneResponse" class="bold"></span>
<div class="number no-border">
<input id="ez_tune_response" type="number"/>
</div>
<div class="clear-both"></div>
</div>
<div style="padding: 1em;" data-i18n="ezTuneDampingTips"></div>
<div class="pid-slider-row">
<span data-i18n="ezTuneDamping" class="bold"></span>
<div class="number no-border">
<input id="ez_tune_damping" type="number"/>
</div>
<div class="clear-both"></div>
</div>
<div style="padding: 1em;" data-i18n="ezTuneStabilityTips"></div>
<div class="pid-slider-row">
<span data-i18n="ezTuneStability" class="bold"></span>
<div class="number no-border">
<input id="ez_tune_stability" type="number"/>
</div>
<div class="clear-both"></div>
</div>
<div style="padding: 1em;" data-i18n="ezTuneAggressivenessTips"></div>
<div class="pid-slider-row">
<span data-i18n="ezTuneAggressiveness" class="bold"></span>
<div class="number no-border">
<input id="ez_tune_aggressiveness" type="number"/>
</div>
<div class="clear-both"></div>
</div>
</div>
<div class="pid-sliders-axis" data-axis="yaw">
<div style="padding: 1em;" data-i18n="ezTuneRateTips"></div>
<div class="pid-slider-row">
<span data-i18n="ezTuneRate" class="bold"></span>
<div class="number no-border">
<input id="ez_tune_rate" type="number"/>
</div>
<div class="clear-both"></div>
</div>
<div style="padding: 1em;" data-i18n="ezTuneExpoTips"></div>
<div class="pid-slider-row">
<span data-i18n="ezTuneExpo" class="bold"></span>
<div class="number no-border">
<input id="ez_tune_expo" type="number"/>
</div>
<div class="clear-both"></div>
</div>
</div>
</div>
<div>Bla</div>
</div>
</div>
<div class="clear-both"></div>
<div class="content_toolbar">
<div class="btn save_btn">
<a class="update" href="#" data-i18n="pidTuning_ButtonSave"></a>
</div>
</div>
</div>

@ -0,0 +1,58 @@
/*global chrome,helper,mspHelper*/
'use strict';
TABS.ez_tune = {
};
TABS.ez_tune.initialize = function (callback) {
var loadChainer = new MSPChainerClass();
var loadChain = [
mspHelper.loadEzTune,
];
loadChain.push(mspHelper.loadRateProfileData);
loadChainer.setChain(loadChain);
loadChainer.setExitPoint(load_html);
loadChainer.execute();
if (GUI.active_tab != 'ez_tune') {
GUI.active_tab = 'ez_tune';
googleAnalytics.sendAppView('Ez Tune');
}
function load_html() {
GUI.load("./tabs/ez_tune.html", Settings.processHtml(process_html));
}
function process_html() {
localize();
helper.tabs.init($('.tab-ez_tune'));
helper.features.updateUI($('.tab-ez_tune'), FEATURES);
GUI.sliderize($('#ez_tune_filter_hz'), EZ_TUNE.filterHz, 10, 300);
GUI.sliderize($('#ez_tune_axis_ratio'), EZ_TUNE.axisRatio, 25, 175);
GUI.sliderize($('#ez_tune_response'), EZ_TUNE.response, 0, 200);
GUI.sliderize($('#ez_tune_damping'), EZ_TUNE.damping, 0, 200);
GUI.sliderize($('#ez_tune_stability'), EZ_TUNE.stability, 0, 200);
GUI.sliderize($('#ez_tune_aggressiveness'), EZ_TUNE.aggressiveness, 0, 200);
GUI.sliderize($('#ez_tune_rate'), EZ_TUNE.rate, 0, 200);
GUI.sliderize($('#ez_tune_expo'), EZ_TUNE.expo, 0, 200);
GUI.simpleBind();
GUI.content_ready(callback);
}
};
TABS.ez_tune.cleanup = function (callback) {
if (callback) {
callback();
}
};
Loading…
Cancel
Save