Skip to content

Commit b83a65a

Browse files
committed
Removed dynamic notch from features
1 parent 474ff80 commit b83a65a

File tree

3 files changed

+66
-27
lines changed

3 files changed

+66
-27
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, so only push it if 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: 50 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -377,51 +377,82 @@ 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

383+
// Dynamic Notch Filter
386384
if (FC.FEATURE_CONFIG.features.isEnabled('DYNAMIC_FILTER')) {
387385
$('.dynamicNotch').show();
388-
} else {
386+
} else if (semver.lt(FC.CONFIG.apiVersion, API_VERSION_1_44)) { // DYNAMIC_FILTER got removed from FEATURES in BF 4.3, so only hide dynNotch if API < 1.44
389387
$('.dynamicNotch').hide();
390388
}
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);
389+
390+
const dynamicNotchRange_e = $('.pid_filter select[name="dynamicNotchRange"]');
391+
const dynamicNotchWidthPercent_e = $('.pid_filter input[name="dynamicNotchWidthPercent"]');
392+
const dynamicNotchQ_e = $('.pid_filter input[name="dynamicNotchQ"]');
393+
const dynamicNotchCount_e = $('.pid_filter input[name="dynamicNotchCount"]');
394+
const dynamicNotchMinHz_e = $('.pid_filter input[name="dynamicNotchMinHz"]');
395+
const dynamicNotchMaxHz_e = $('.pid_filter input[name="dynamicNotchMaxHz"]');
396+
397+
dynamicNotchRange_e.val(FC.FILTER_CONFIG.dyn_notch_range);
393398
dynamicNotchWidthPercent_e.val(FC.FILTER_CONFIG.dyn_notch_width_percent);
394399
dynamicNotchQ_e.val(FC.FILTER_CONFIG.dyn_notch_q);
395400
dynamicNotchCount_e.val(FC.FILTER_CONFIG.dyn_notch_count);
396-
$('.pid_filter input[name="dynamicNotchMinHz"]').val(FC.FILTER_CONFIG.dyn_notch_min_hz);
401+
dynamicNotchMinHz_e.val(FC.FILTER_CONFIG.dyn_notch_min_hz);
402+
397403
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);
404+
dynamicNotchMinHz_e.attr("max","250");
405+
dynamicNotchMaxHz_e.val(FC.FILTER_CONFIG.dyn_notch_max_hz);
400406
} else {
401407
$('.dynamicNotchMaxHz').hide();
402408
}
409+
410+
$('.dynamicNotchRange').toggle(semver.lt(FC.CONFIG.apiVersion, API_VERSION_1_43));
411+
403412
if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_44)) {
413+
404414
$('.dynamicNotchHelp').attr('title', i18n.getMessage('pidTuningMultiDynamicNotchFilterHelp'));
405415
$('.dynamicNotchWidthPercent').hide();
416+
417+
$('.pid_filter #dynamicNotchEnabled').change(function() {
418+
419+
let count = dynamicNotchCount_e.val();
420+
let checked = $(this).is(':checked');
421+
422+
dynamicNotchCount_e.attr('disabled', !checked);
423+
dynamicNotchQ_e.attr('disabled', !checked);
424+
dynamicNotchMinHz_e.attr('disabled', !checked);
425+
dynamicNotchMaxHz_e.attr('disabled', !checked);
426+
427+
if (count == 0) {
428+
dynamicNotchCount_e.val(FILTER_DEFAULT.dyn_notch_count);
429+
}
430+
431+
}).prop('checked', FC.FILTER_CONFIG.dyn_notch_count != 0).change();
432+
406433
} else {
407434
$('.dynamicNotchCount').hide();
408435
}
409436

437+
// RPM Filter
410438
$('.rpmFilter').toggle(FC.MOTOR_CONFIG.use_dshot_telemetry);
411439

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);
440+
const rpmFilterHarmonics_e = $('.pid_filter input[name="rpmFilterHarmonics"]');
441+
const rpmFilterMinHz_e = $('.pid_filter input[name="rpmFilterMinHz"]');
442+
443+
rpmFilterHarmonics_e.val(FC.FILTER_CONFIG.gyro_rpm_notch_harmonics);
444+
rpmFilterMinHz_e.val(FC.FILTER_CONFIG.gyro_rpm_notch_min_hz);
414445

415446
$('.pid_filter #rpmFilterEnabled').change(function() {
416447

417-
let harmonics = $('.pid_filter input[name="rpmFilterHarmonics"]').val();
448+
let harmonics = rpmFilterHarmonics_e.val();
418449
let checked = $(this).is(':checked') && harmonics != 0;
419450

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

423454
if (harmonics == 0) {
424-
$('.pid_filter input[name="rpmFilterHarmonics"]').val(FILTER_DEFAULT.gyro_rpm_notch_harmonics);
455+
rpmFilterHarmonics_e.val(FILTER_DEFAULT.gyro_rpm_notch_harmonics);
425456
}
426457

427458
if (checked !== (FC.FILTER_CONFIG.gyro_rpm_notch_harmonics !== 0)) { // if rpmFilterEnabled is not the same value as saved in the fc
@@ -1350,7 +1381,9 @@ TABS.pid_tuning.initialize = function (callback) {
13501381
FC.ADVANCED_TUNING.vbat_sag_compensation = $('input[id="vbatSagCompensation"]').is(':checked') ? parseInt($('input[name="vbatSagValue"]').val()) : 0;
13511382
FC.ADVANCED_TUNING.thrustLinearization = $('input[id="thrustLinearization"]').is(':checked') ? parseInt($('input[name="thrustLinearValue"]').val()) : 0;
13521383
FC.FILTER_CONFIG.dyn_lpf_curve_expo = parseInt($('.pid_filter input[name="dtermLowpassExpo"]').val());
1353-
FC.FILTER_CONFIG.dyn_notch_count = parseInt($('.pid_filter input[name="dynamicNotchCount"]').val());
1384+
1385+
let dynamicNotchEnabled = $('.pid_filter #dynamicNotchEnabled').is(':checked');
1386+
FC.FILTER_CONFIG.dyn_notch_count = dynamicNotchEnabled ? parseInt($('.pid_filter input[name="dynamicNotchCount"]').val()) : 0;
13541387

13551388
FC.TUNING_SLIDERS.slider_pids_mode = TuningSliders.sliderPidsMode;
13561389
//round slider values to nearest multiple of 5 and passes to the FW. Avoid dividing calc by (* x 100)/5 = 20
@@ -3066,7 +3099,7 @@ TABS.pid_tuning.updateFilterWarning = function() {
30663099
} else {
30673100
warningE.hide();
30683101
}
3069-
if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_42)) {
3102+
if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_42) && semver.lt(FC.CONFIG.apiVersion, API_VERSION_1_44)) {
30703103
if (FC.FEATURE_CONFIG.features.isEnabled('DYNAMIC_FILTER')) {
30713104
warningDynamicNotchE.hide();
30723105
} else {
@@ -3331,7 +3364,6 @@ TABS.pid_tuning.changeRatesTypeLogo = function() {
33313364
}
33323365
};
33333366

3334-
33353367
TABS.pid_tuning.expertModeChanged = function(expertModeEnabled) {
33363368
TuningSliders.setExpertMode(expertModeEnabled);
33373369
};

src/tabs/pid_tuning.html

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1491,33 +1491,36 @@
14911491
</div>
14921492
</td>
14931493
</tr>
1494-
<tr class="newFilter dynamicNotch dynamicNotchQ">
1494+
<tr class="newFilter dynamicNotch dynamicNotchCount">
14951495
<td>
1496-
<input type="number" name="dynamicNotchQ" step="1" min="1" max="1000"/>
1496+
<span class="groupSwitchValue">
1497+
<span class="inputSwitch"><input type="checkbox" id="dynamicNotchEnabled" class="toggle" /></span>
1498+
<span class="inputValue"><input type="number" class="nonProfile" name="dynamicNotchCount" step="1" min="1" max="5"/></span>
1499+
</span>
14971500
</td>
14981501
<td>
14991502
<div>
15001503
<label>
1501-
<span i18n="pidTuningDynamicNotchQ"></span>
1504+
<span i18n="pidTuningDynamicNotchCount"></span>
15021505
</label>
15031506
<div class="helpicon cf_tip" i18n_title="pidTuningDynamicNotchQHelp"></div>
15041507
</div>
15051508
</td>
15061509
</tr>
1507-
<tr class="newFilter dynamicNotch dynamicNotchCount">
1510+
<tr class="newFilter dynamicNotch dynamicNotchQ">
15081511
<td>
1509-
<input type="number" name="dynamicNotchCount" step="1" min="0" max="5"/>
1512+
<input type="number" name="dynamicNotchQ" step="1" min="1" max="1000"/>
15101513
</td>
15111514
<td>
15121515
<div>
15131516
<label>
1514-
<span i18n="pidTuningDynamicNotchCount"></span>
1517+
<span i18n="pidTuningDynamicNotchQ"></span>
15151518
</label>
15161519
<div class="helpicon cf_tip" i18n_title="pidTuningDynamicNotchCountHelp"></div>
15171520
</div>
15181521
</td>
15191522
</tr>
1520-
<tr class="newFilter dynamicNotch">
1523+
<tr class="newFilter dynamicNotch dynamicNotchMinHz">
15211524
<td>
15221525
<input type="number" name="dynamicNotchMinHz" step="1" min="60" max="1000"/>
15231526
</td>

0 commit comments

Comments
 (0)