|
813 | 813 | <USwitch v-model="antiGravityEnabled" size="sm" /> |
814 | 814 | </SettingRow> |
815 | 815 | <div v-if="antiGravityEnabled" class="flex flex-wrap items-end gap-3 pl-4"> |
816 | | - <div class="flex flex-col gap-1"> |
| 816 | + <div v-if="isPreApi145" class="flex flex-col gap-1"> |
817 | 817 | <span class="text-xs text-dimmed" v-html="$t('pidTuningAntiGravityMode')"></span> |
818 | 818 | <USelect |
819 | 819 | v-model="advancedTuning.antiGravityMode" |
|
838 | 838 | class="w-16" |
839 | 839 | /> |
840 | 840 | </div> |
841 | | - <div class="flex flex-col gap-1"> |
| 841 | + <div v-if="isPreApi145" class="flex flex-col gap-1"> |
842 | 842 | <span class="text-xs text-dimmed" v-html="$t('pidTuningAntiGravityThres')"></span> |
843 | 843 | <UInputNumber |
844 | 844 | v-model="advancedTuning.itermThrottleThreshold" |
@@ -1119,6 +1119,8 @@ const cellCountItems = computed(() => [ |
1119 | 1119 | { value: 8, label: t("pidTuningCellCount8S") }, |
1120 | 1120 | ]); |
1121 | 1121 |
|
| 1122 | +// For API < 1.45, iterm throttle threshold was removed in API 1.45+ |
| 1123 | +const isPreApi145 = computed(() => semver.lt(FC.CONFIG.apiVersion, API_VERSION_1_45)); |
1122 | 1124 | // For API < 1.47, derivative and dmax column headers are swapped (PR #4173) |
1123 | 1125 | const isPreApi147 = computed(() => semver.lt(FC.CONFIG.apiVersion, API_VERSION_1_47)); |
1124 | 1126 | const derivativeLabel = computed(() => (isPreApi147.value ? "pidTuningDMax" : "pidTuningDerivative")); |
@@ -1357,14 +1359,33 @@ const itermRelaxEnabled = computed({ |
1357 | 1359 | }); |
1358 | 1360 |
|
1359 | 1361 | const antiGravityEnabled = computed({ |
1360 | | - get: () => FC.ADVANCED_TUNING.antiGravityGain !== 0, |
1361 | | - set: (val) => (FC.ADVANCED_TUNING.antiGravityGain = val ? FC.ADVANCED_TUNING.antiGravityGain || 80 : 0), |
| 1362 | + get: () => |
| 1363 | + isPreApi145.value |
| 1364 | + ? FC.ADVANCED_TUNING.itermAcceleratorGain !== 0 |
| 1365 | + : FC.ADVANCED_TUNING.antiGravityGain !== 0, |
| 1366 | + set: (val) => { |
| 1367 | + if (isPreApi145.value) { |
| 1368 | + FC.ADVANCED_TUNING.itermAcceleratorGain = val ? FC.ADVANCED_TUNING.itermAcceleratorGain || 1000 : 0; |
| 1369 | + } else { |
| 1370 | + FC.ADVANCED_TUNING.antiGravityGain = val ? FC.ADVANCED_TUNING.antiGravityGain || 80 : 0; |
| 1371 | + } |
| 1372 | + }, |
1362 | 1373 | }); |
1363 | 1374 |
|
1364 | | -// Anti-gravity gain display value (divided by 10 for display) |
| 1375 | +// Anti-gravity gain display value (divided by 10 for API 1.45+, divided by 1000 for older) |
1365 | 1376 | const antiGravityGainValue = computed({ |
1366 | | - get: () => FC.ADVANCED_TUNING.antiGravityGain / 10, |
1367 | | - set: (val) => (FC.ADVANCED_TUNING.antiGravityGain = Math.round(Number.parseFloat(val) * 10)), |
| 1377 | + get: () => |
| 1378 | + isPreApi145.value |
| 1379 | + ? FC.ADVANCED_TUNING.itermAcceleratorGain / 1000 |
| 1380 | + : FC.ADVANCED_TUNING.antiGravityGain / 10, |
| 1381 | + set: (val) => { |
| 1382 | + const parsed = Number.parseFloat(val); |
| 1383 | + if (isPreApi145.value) { |
| 1384 | + FC.ADVANCED_TUNING.itermAcceleratorGain = Math.round(parsed * 1000); |
| 1385 | + } else { |
| 1386 | + FC.ADVANCED_TUNING.antiGravityGain = Math.round(parsed * 10); |
| 1387 | + } |
| 1388 | + }, |
1368 | 1389 | }); |
1369 | 1390 |
|
1370 | 1391 | const itermRotationEnabled = computed({ |
|
0 commit comments