Skip to content

Commit cab3e3b

Browse files
committed
Removed Dynamic Notch from Features
1 parent 11e2ec6 commit cab3e3b

File tree

3 files changed

+108
-107
lines changed

3 files changed

+108
-107
lines changed

src/js/Features.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,13 @@ const Features = function (config) {
8484

8585
if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_36)) {
8686
features.push(
87-
{bit: 28, group: 'antiGravity', name: 'ANTI_GRAVITY', haveTip: true, hideName: true},
88-
{bit: 29, group: 'other', name: 'DYNAMIC_FILTER'}
87+
{bit: 28, group: 'antiGravity', name: 'ANTI_GRAVITY', haveTip: true, hideName: true}
8988
);
89+
if (semver.lt(FC.CONFIG.apiVersion, API_VERSION_1_44)) { // DYNAMIC_FILTER got removed from FEATURES in BF 4.3 / API 1.44
90+
features.push(
91+
{bit: 29, group: 'other', name: 'DYNAMIC_FILTER'}
92+
);
93+
}
9094
}
9195

9296
if (!semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_36)) {

src/js/tabs/pid_tuning.js

Lines changed: 60 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -377,51 +377,76 @@ TABS.pid_tuning.initialize = function (callback) {
377377
}
378378

379379
if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_42)) {
380-
const dynamicNotchWidthPercent_e = $('.pid_filter input[name="dynamicNotchWidthPercent"]');
381-
const dynamicNotchQ_e = $('.pid_filter input[name="dynamicNotchQ"]');
382-
const dynamicNotchCount_e = $('.pid_filter input[name="dynamicNotchCount"]');
383380

384381
$('.smartfeedforward').hide();
385382

386-
if (FC.FEATURE_CONFIG.features.isEnabled('DYNAMIC_FILTER')) {
387-
$('.dynamicNotch').show();
388-
} else {
389-
$('.dynamicNotch').hide();
383+
// Dynamic Notch Filter
384+
if (semver.lt(FC.CONFIG.apiVersion, API_VERSION_1_44)) {
385+
if (FC.FEATURE_CONFIG.features.isEnabled('DYNAMIC_FILTER')) {
386+
$('.dynamicNotch span.inputSwitch').hide();
387+
} else {
388+
$('.dynamicNotch').hide();
389+
}
390390
}
391-
$('.dynamicNotchRange').toggle(semver.lt(FC.CONFIG.apiVersion, API_VERSION_1_43));
392-
$('.pid_filter select[name="dynamicNotchRange"]').val(FC.FILTER_CONFIG.dyn_notch_range);
391+
392+
const dynamicNotchRange_e = $('.pid_filter select[name="dynamicNotchRange"]');
393+
const dynamicNotchWidthPercent_e = $('.pid_filter input[name="dynamicNotchWidthPercent"]');
394+
const dynamicNotchCount_e = $('.pid_filter input[name="dynamicNotchCount"]');
395+
const dynamicNotchQ_e = $('.pid_filter input[name="dynamicNotchQ"]');
396+
const dynamicNotchMinHz_e = $('.pid_filter input[name="dynamicNotchMinHz"]');
397+
const dynamicNotchMaxHz_e = $('.pid_filter input[name="dynamicNotchMaxHz"]');
398+
399+
dynamicNotchRange_e.val(FC.FILTER_CONFIG.dyn_notch_range);
393400
dynamicNotchWidthPercent_e.val(FC.FILTER_CONFIG.dyn_notch_width_percent);
394-
dynamicNotchQ_e.val(FC.FILTER_CONFIG.dyn_notch_q);
395401
dynamicNotchCount_e.val(FC.FILTER_CONFIG.dyn_notch_count);
396-
$('.pid_filter input[name="dynamicNotchMinHz"]').val(FC.FILTER_CONFIG.dyn_notch_min_hz);
402+
dynamicNotchQ_e.val(FC.FILTER_CONFIG.dyn_notch_q);
403+
dynamicNotchMinHz_e.val(FC.FILTER_CONFIG.dyn_notch_min_hz);
404+
dynamicNotchMaxHz_e.val(FC.FILTER_CONFIG.dyn_notch_max_hz);
405+
397406
if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_43)) {
398-
$('.pid_filter input[name="dynamicNotchMinHz"]').attr("max","250");
399-
$('.pid_filter input[name="dynamicNotchMaxHz"]').val(FC.FILTER_CONFIG.dyn_notch_max_hz);
407+
dynamicNotchMinHz_e.attr("max","250");
400408
} else {
401409
$('.dynamicNotchMaxHz').hide();
402410
}
403-
if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_44)) {
404-
$('.dynamicNotchHelp').attr('title', i18n.getMessage('pidTuningMultiDynamicNotchFilterHelp'));
405-
$('.dynamicNotchWidthPercent').hide();
406-
} else {
407-
$('.dynamicNotchCount').hide();
408-
}
409411

412+
const dynamicNotchSwitch_e = $('.pid_filter input[id="dynamicNotchEnabled"]');
413+
414+
dynamicNotchSwitch_e.on('change', function() {
415+
416+
const checked = $(this).is(':checked');
417+
const count = parseInt(dynamicNotchCount_e.val());
418+
419+
if (checked && !count) {
420+
dynamicNotchCount_e.val(FILTER_DEFAULT.dyn_notch_count);
421+
}
422+
423+
$('.dynamicNotch span.suboption').toggle(checked);
424+
$('.dynamicNotchRange').toggle(semver.lt(FC.CONFIG.apiVersion, API_VERSION_1_43) && checked);
425+
$('.dynamicNotchMaxHz').toggle(semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_43) && checked);
426+
$('.dynamicNotchWidthPercent').toggle(semver.lt(FC.CONFIG.apiVersion, API_VERSION_1_44) && checked);
427+
$('.dynamicNotchCount').toggle(semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_44) && checked);
428+
429+
}).prop('checked', FC.FILTER_CONFIG.dyn_notch_count !== 0 || FC.FEATURE_CONFIG.features.isEnabled('DYNAMIC_FILTER')).trigger('change');
430+
431+
// RPM Filter
410432
$('.rpmFilter').toggle(FC.MOTOR_CONFIG.use_dshot_telemetry);
411433

412-
$('.pid_filter input[name="rpmFilterHarmonics"]').val(FC.FILTER_CONFIG.gyro_rpm_notch_harmonics);
413-
$('.pid_filter input[name="rpmFilterMinHz"]').val(FC.FILTER_CONFIG.gyro_rpm_notch_min_hz);
434+
const rpmFilterHarmonics_e = $('.pid_filter input[name="rpmFilterHarmonics"]');
435+
const rpmFilterMinHz_e = $('.pid_filter input[name="rpmFilterMinHz"]');
436+
437+
rpmFilterHarmonics_e.val(FC.FILTER_CONFIG.gyro_rpm_notch_harmonics);
438+
rpmFilterMinHz_e.val(FC.FILTER_CONFIG.gyro_rpm_notch_min_hz);
414439

415-
$('.pid_filter #rpmFilterEnabled').change(function() {
440+
$('.pid_filter #rpmFilterEnabled').on('change', function() {
416441

417-
let harmonics = $('.pid_filter input[name="rpmFilterHarmonics"]').val();
418-
let checked = $(this).is(':checked') && harmonics != 0;
442+
const harmonics = rpmFilterHarmonics_e.val();
443+
const checked = $(this).is(':checked') && harmonics !== 0;
419444

420-
$('.pid_filter input[name="rpmFilterHarmonics"]').attr('disabled', !checked);
421-
$('.pid_filter input[name="rpmFilterMinHz"]').attr('disabled', !checked);
445+
rpmFilterHarmonics_e.attr('disabled', !checked);
446+
rpmFilterMinHz_e.attr('disabled', !checked);
422447

423448
if (harmonics == 0) {
424-
$('.pid_filter input[name="rpmFilterHarmonics"]').val(FILTER_DEFAULT.gyro_rpm_notch_harmonics);
449+
rpmFilterHarmonics_e.val(FILTER_DEFAULT.gyro_rpm_notch_harmonics);
425450
}
426451

427452
if (checked !== (FC.FILTER_CONFIG.gyro_rpm_notch_harmonics !== 0)) { // if rpmFilterEnabled is not the same value as saved in the fc
@@ -442,8 +467,10 @@ TABS.pid_tuning.initialize = function (callback) {
442467
dynamicNotchQ_e.val(FC.FILTER_CONFIG.dyn_notch_q);
443468
dynamicNotchWidthPercent_e.val(FC.FILTER_CONFIG.dyn_notch_width_percent);
444469
}
470+
445471
$('.rpmFilter span.suboption').toggle(checked);
446-
}).prop('checked', FC.FILTER_CONFIG.gyro_rpm_notch_harmonics != 0).change();
472+
473+
}).prop('checked', FC.FILTER_CONFIG.gyro_rpm_notch_harmonics !== 0).trigger('change');
447474

448475
} else {
449476
$('.itermRelaxCutoff').hide();
@@ -1325,7 +1352,7 @@ TABS.pid_tuning.initialize = function (callback) {
13251352
FC.FILTER_CONFIG.dyn_notch_q = parseInt($('.pid_filter input[name="dynamicNotchQ"]').val());
13261353
FC.FILTER_CONFIG.dyn_notch_min_hz = parseInt($('.pid_filter input[name="dynamicNotchMinHz"]').val());
13271354

1328-
let rpmFilterEnabled = $('.pid_filter #rpmFilterEnabled').is(':checked');
1355+
const rpmFilterEnabled = $('.pid_filter #rpmFilterEnabled').is(':checked');
13291356
FC.FILTER_CONFIG.gyro_rpm_notch_harmonics = rpmFilterEnabled ? parseInt($('.pid_filter input[name="rpmFilterHarmonics"]').val()) : 0;
13301357
FC.FILTER_CONFIG.gyro_rpm_notch_min_hz = parseInt($('.pid_filter input[name="rpmFilterMinHz"]').val());
13311358
}
@@ -1356,7 +1383,9 @@ TABS.pid_tuning.initialize = function (callback) {
13561383
FC.ADVANCED_TUNING.vbat_sag_compensation = $('input[id="vbatSagCompensation"]').is(':checked') ? parseInt($('input[name="vbatSagValue"]').val()) : 0;
13571384
FC.ADVANCED_TUNING.thrustLinearization = $('input[id="thrustLinearization"]').is(':checked') ? parseInt($('input[name="thrustLinearValue"]').val()) : 0;
13581385
FC.FILTER_CONFIG.dyn_lpf_curve_expo = parseInt($('.pid_filter input[name="dtermLowpassExpo"]').val());
1359-
FC.FILTER_CONFIG.dyn_notch_count = parseInt($('.pid_filter input[name="dynamicNotchCount"]').val());
1386+
1387+
const dynamicNotchEnabled = $('.pid_filter input[id="dynamicNotchEnabled"]').is(':checked');
1388+
FC.FILTER_CONFIG.dyn_notch_count = dynamicNotchEnabled ? parseInt($('.pid_filter input[name="dynamicNotchCount"]').val()) : 0;
13601389

13611390
FC.TUNING_SLIDERS.slider_pids_mode = TuningSliders.sliderPidsMode;
13621391
//round slider values to nearest multiple of 5 and passes to the FW. Avoid dividing calc by (* x 100)/5 = 20
@@ -3072,7 +3101,7 @@ TABS.pid_tuning.updateFilterWarning = function() {
30723101
} else {
30733102
warningE.hide();
30743103
}
3075-
if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_42)) {
3104+
if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_42) && semver.lt(FC.CONFIG.apiVersion, API_VERSION_1_44)) {
30763105
if (FC.FEATURE_CONFIG.features.isEnabled('DYNAMIC_FILTER')) {
30773106
warningDynamicNotchE.hide();
30783107
} else {

src/tabs/pid_tuning.html

Lines changed: 42 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -1423,7 +1423,7 @@
14231423
</td>
14241424
</tr>
14251425

1426-
<tr>
1426+
<tr class="newFilter rpmFilter">
14271427
<th class="rpmFilter" colspan="2">
14281428
<div class="pid_mode rpmFilter">
14291429
<div i18n="pidTuningRpmFilterGroup"></div>
@@ -1455,95 +1455,63 @@
14551455
</td>
14561456
</tr>
14571457

1458-
<tr>
1458+
<tr class="newFilter dynamicNotch">
14591459
<th class="dynamicNotch" colspan="2">
14601460
<div class="pid_mode dynamicNotch">
14611461
<div i18n="pidTuningDynamicNotchFilterGroup"></div>
14621462
<div class="helpicon cf_tip dynamicNotchHelp" i18n_title="pidTuningDynamicNotchFilterHelp"></div>
14631463
</div>
14641464
</th>
14651465
</tr>
1466-
<tr class="newFilter dynamicNotch dynamicNotchRange">
1466+
1467+
<tr class="newFilter dynamicNotch">
1468+
14671469
<td>
1468-
<select name="dynamicNotchRange">
1469-
<!-- Populated on execution -->
1470-
</select>
1470+
<span class="inputSwitch"><input type="checkbox" id="dynamicNotchEnabled" class="toggle" /></span>
14711471
</td>
1472-
<td>
1473-
<div>
1474-
<label>
1475-
<span i18n="pidTuningDynamicNotchRange"></span>
1476-
</label>
1472+
1473+
<td colspan="2">
1474+
<span i18n="pidTuningDynamicNotchFilterGroup"></span>
1475+
1476+
<span class="suboption dynamicNotchRange">
1477+
<select name="dynamicNotchRange">
1478+
<!-- Populated on execution -->
1479+
</select>
1480+
<label><span i18n="pidTuningDynamicNotchRange"></span></label>
14771481
<div class="helpicon cf_tip" i18n_title="pidTuningDynamicNotchRangeHelp"></div>
1478-
</div>
1479-
</td>
1480-
</tr>
1481-
<tr class="newFilter dynamicNotch dynamicNotchWidthPercent">
1482-
<td>
1483-
<input type="number" name="dynamicNotchWidthPercent" step="1" min="0" max="20"/>
1484-
</td>
1485-
<td>
1486-
<div>
1487-
<label>
1488-
<span i18n="pidTuningDynamicNotchWidthPercent"></span>
1489-
</label>
1482+
</span>
1483+
1484+
<span class="suboption dynamicNotchWidthPercent">
1485+
<input type="number" name="dynamicNotchWidthPercent" step="1" min="0" max="20"/>
1486+
<label><span i18n="pidTuningDynamicNotchWidthPercent"></span></label>
14901487
<div class="helpicon cf_tip" i18n_title="pidTuningDynamicNotchWidthPercentHelp"></div>
1491-
</div>
1492-
</td>
1493-
</tr>
1494-
<tr class="newFilter dynamicNotch dynamicNotchQ">
1495-
<td>
1496-
<input type="number" name="dynamicNotchQ" step="1" min="1" max="1000"/>
1497-
</td>
1498-
<td>
1499-
<div>
1500-
<label>
1501-
<span i18n="pidTuningDynamicNotchQ"></span>
1502-
</label>
1503-
<div class="helpicon cf_tip" i18n_title="pidTuningDynamicNotchQHelp"></div>
1504-
</div>
1505-
</td>
1506-
</tr>
1507-
<tr class="newFilter dynamicNotch dynamicNotchCount">
1508-
<td>
1509-
<input type="number" name="dynamicNotchCount" step="1" min="0" max="5"/>
1510-
</td>
1511-
<td>
1512-
<div>
1513-
<label>
1514-
<span i18n="pidTuningDynamicNotchCount"></span>
1515-
</label>
1488+
</span>
1489+
1490+
<span class="suboption dynamicNotchCount">
1491+
<input type="number" name="dynamicNotchCount" step="1" min="1" max="5"/>
1492+
<label><span i18n="pidTuningDynamicNotchCount"></span></label>
15161493
<div class="helpicon cf_tip" i18n_title="pidTuningDynamicNotchCountHelp"></div>
1517-
</div>
1518-
</td>
1519-
</tr>
1520-
<tr class="newFilter dynamicNotch">
1521-
<td>
1522-
<input type="number" name="dynamicNotchMinHz" step="1" min="60" max="1000"/>
1523-
</td>
1524-
<td>
1525-
<div>
1526-
<label>
1527-
<span i18n="pidTuningDynamicNotchMinHz"></span>
1528-
</label>
1494+
</span>
1495+
1496+
<span class="suboption dynamicNotchQ">
1497+
<input type="number" name="dynamicNotchQ" step="1" min="1" max="1000"/>
1498+
<label><span i18n="pidTuningDynamicNotchQ"></span></label>
1499+
<div class="helpicon cf_tip" i18n_title="pidTuningDynamicNotchQHelp"></div>
1500+
</span>
1501+
1502+
<span class="suboption dynamicNotchMinHz">
1503+
<input type="number" name="dynamicNotchMinHz" step="1" min="60" max="1000"/>
1504+
<label><span i18n="pidTuningDynamicNotchMinHz"></span></label>
15291505
<div class="helpicon cf_tip" i18n_title="pidTuningDynamicNotchMinHzHelp"></div>
1530-
</div>
1531-
</td>
1532-
</tr>
1533-
<tr class="newFilter dynamicNotch dynamicNotchMaxHz">
1534-
<td>
1535-
<input type="number" name="dynamicNotchMaxHz" step="1" min="200" max="1000"/>
1536-
</td>
1537-
<td>
1538-
<div>
1539-
<label>
1540-
<span i18n="pidTuningDynamicNotchMaxHz"></span>
1541-
</label>
1506+
</span>
1507+
1508+
<span class="suboption dynamicNotchMaxHz">
1509+
<input type="number" name="dynamicNotchMaxHz" step="1" min="200" max="1000"/>
1510+
<label><span i18n="pidTuningDynamicNotchMaxHz"></span></label>
15421511
<div class="helpicon cf_tip" i18n_title="pidTuningDynamicNotchMaxHzHelp"></div>
1543-
</div>
1512+
</span>
15441513
</td>
15451514
</tr>
1546-
15471515
</table>
15481516
</div>
15491517
<div class="gui_box grey topspacer pid_filter two_columns_second">

0 commit comments

Comments
 (0)