From a9f75a868db5baff41f1ad96f3412f6b65e9f6d5 Mon Sep 17 00:00:00 2001 From: ykcheungab Date: Mon, 14 Sep 2026 11:10:28 +0800 Subject: [PATCH] =?UTF-8?q?=E7=95=8C=E9=9D=A2=E4=B8=8D=E6=91=86=E8=BF=98?= =?UTF-8?q?=E6=B2=A1=E6=8E=A5=E7=BA=BF=E7=9A=84=E5=BC=80=E5=85=B3=EF=BC=9A?= =?UTF-8?q?=E5=85=88=E6=92=A4=E6=8E=89=E2=80=9C=E5=90=8C=E6=97=B6=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E6=9C=AA=E6=BB=A4=E6=B3=A2=E6=9B=B2=E7=BA=BF=E2=80=9D?= =?UTF-8?q?=20-=20What:=20plot=5Fsettings=5Fdialog=20=E5=8E=BB=E6=8E=89"?= =?UTF-8?q?=E5=90=8C=E6=97=B6=E6=98=BE=E7=A4=BA=E6=9C=AA=E6=BB=A4=E6=B3=A2?= =?UTF-8?q?=E6=9B=B2=E7=BA=BF"=E5=A4=8D=E9=80=89=E6=A1=86=EF=BC=88?= =?UTF-8?q?=E8=BF=9E=E5=90=8C=20reset=20=E9=87=8C=E7=9A=84=E6=B8=85?= =?UTF-8?q?=E4=BD=8D=E3=80=81retranslate=20=E7=9A=84=E4=B8=A4=E8=A1=8C?= =?UTF-8?q?=E6=96=87=E6=A1=88=E3=80=81filter=5Fvalues()=20=E9=87=8C?= =?UTF-8?q?=E7=9A=84=E8=AF=BB=E5=8F=96=EF=BC=89=EF=BC=8Cfilter=5Fvalues()?= =?UTF-8?q?=20=E9=87=8C=E5=86=99=E6=98=8E=20show=5Funfiltered=20=E6=9A=82?= =?UTF-8?q?=E6=97=B6=E5=9B=BA=E5=AE=9A=20False=20=E5=8F=8A=E5=8E=9F?= =?UTF-8?q?=E5=9B=A0=EF=BC=9B=E4=B8=A4=E4=B8=AA=20locale=20=E5=88=A0?= =?UTF-8?q?=E6=8E=89=20filter=5Fshow=5Funfiltered=20/=20filter=5Fshow=5Fun?= =?UTF-8?q?filtered=5Ftip=20=E4=B8=A4=E4=B8=AA=E9=94=AE=E3=80=82FilterSett?= =?UTF-8?q?ings.show=5Funfiltered=20=E5=AD=97=E6=AE=B5=E4=BF=9D=E7=95=99?= =?UTF-8?q?=EF=BC=88session.json=20=E7=9A=84=20filters=20=E5=9D=97?= =?UTF-8?q?=E4=BB=8D=E5=9C=A8=E8=AE=B0=E5=AE=83=EF=BC=8C=E7=AD=89=E7=AC=AC?= =?UTF-8?q?=E4=BA=8C=20buffer=20=E6=8E=A5=E4=B8=8A=E5=90=8E=E5=86=8D?= =?UTF-8?q?=E6=8A=8A=E5=BC=80=E5=85=B3=E6=94=BE=E5=9B=9E=E5=AF=B9=E8=AF=9D?= =?UTF-8?q?=E6=A1=86=EF=BC=89=E3=80=82=20-=20Why:=20=E4=B8=8A=E4=B8=80?= =?UTF-8?q?=E7=89=88=E6=8A=8A=E8=BF=99=E4=B8=AA=E5=A4=8D=E9=80=89=E6=A1=86?= =?UTF-8?q?=E6=94=BE=E8=BF=9B=E4=BA=86=E5=AF=B9=E8=AF=9D=E6=A1=86=EF=BC=8C?= =?UTF-8?q?=E4=BD=86"=E6=9C=AA=E6=BB=A4=E6=B3=A2=E6=9B=B2=E7=BA=BF"?= =?UTF-8?q?=E8=BF=98=E6=B2=A1=E6=9C=89=E6=95=B0=E6=8D=AE=E9=80=9A=E8=B7=AF?= =?UTF-8?q?=E2=80=94=E2=80=94=E5=8A=9B=E5=80=BC=E5=8D=A1=E7=89=87=E4=B8=8D?= =?UTF-8?q?=E7=94=BB=E3=80=81CSV=20=E4=B9=9F=E6=B2=A1=E6=9C=89=20*=5Funfil?= =?UTF-8?q?tered=20=E5=88=97=EF=BC=8C=E7=AD=89=E4=BA=8E=E7=95=8C=E9=9D=A2?= =?UTF-8?q?=E4=B8=8A=E6=91=86=E4=BA=86=E4=B8=80=E4=B8=AA=E6=89=BF=E8=AF=BA?= =?UTF-8?q?=E4=BA=86=E5=8D=B4=E4=B8=8D=E5=81=9A=E4=BA=8B=E7=9A=84=E5=BC=80?= =?UTF-8?q?=E5=85=B3=EF=BC=9B=E8=BF=99=E6=AD=A3=E6=98=AF=E8=BF=99=E4=B8=80?= =?UTF-8?q?=E8=BD=AE=E4=B8=80=E7=9B=B4=E5=9C=A8=E6=B8=85=E7=90=86=E7=9A=84?= =?UTF-8?q?=E9=82=A3=E7=B1=BB=E9=97=AE=E9=A2=98=EF=BC=88=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E8=AF=B4=E7=9A=84/=E7=95=8C=E9=9D=A2=E8=AF=B4=E7=9A=84?= =?UTF-8?q?=E4=B8=8E=E5=AE=9E=E9=99=85=E5=81=9A=E7=9A=84=E4=B8=8D=E4=B8=80?= =?UTF-8?q?=E8=87=B4=EF=BC=89=E3=80=82=E5=AE=81=E5=8F=AF=E5=85=88=E4=B8=8D?= =?UTF-8?q?=E7=BB=99=E5=85=A5=E5=8F=A3=EF=BC=8C=E4=B9=9F=E4=B8=8D=E8=A6=81?= =?UTF-8?q?=E7=BB=99=E4=B8=80=E4=B8=AA=E5=81=87=E7=9A=84=E3=80=82=20-=20Ve?= =?UTF-8?q?rification:=20.repro/locale=5Fcheck.py=EF=BC=9A287=20=E4=B8=AA?= =?UTF-8?q?=E5=AD=97=E9=9D=A2=E9=94=AE=E5=85=A8=E9=83=A8=E5=91=BD=E4=B8=AD?= =?UTF-8?q?=E3=80=81=E4=B8=A4=E4=B8=AA=20locale=20=E9=94=AE=E9=9B=86?= =?UTF-8?q?=E5=90=88=E7=9B=B8=E5=90=8C=EF=BC=88341/341=EF=BC=89=EF=BC=9Bst?= =?UTF-8?q?udio=20=E5=85=A8=E9=87=8F=2089=20passed=EF=BC=9Bui=5Fcheck=2055?= =?UTF-8?q?4=20=E9=A1=B9=E6=A3=80=E6=9F=A5=200=20=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E3=80=82=20-=20Not=20in=20this=20change:=20CSV=20=E7=9A=84=201?= =?UTF-8?q?7=20=E5=88=97=E4=B8=8E=E6=9C=AA=E6=BB=A4=E6=B3=A2=E7=AC=AC?= =?UTF-8?q?=E4=BA=8C=20buffer=20=E4=BB=8D=E6=9C=AA=E6=8E=A5=E7=BA=BF?= =?UTF-8?q?=EF=BC=88=E8=BF=99=E6=98=AF=E6=8A=8A=E5=BC=80=E5=85=B3=E6=94=BE?= =?UTF-8?q?=E5=9B=9E=E6=9D=A5=E7=9A=84=E5=89=8D=E6=8F=90=EF=BC=89=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/studio/config/locales/en_US.json | 2 -- apps/studio/config/locales/zh_CN.json | 2 -- .../src/orisys_studio/ui/plot_settings_dialog.py | 16 ++++++---------- 3 files changed, 6 insertions(+), 14 deletions(-) diff --git a/apps/studio/config/locales/en_US.json b/apps/studio/config/locales/en_US.json index 7a4025b..c09a113 100644 --- a/apps/studio/config/locales/en_US.json +++ b/apps/studio/config/locales/en_US.json @@ -72,8 +72,6 @@ "filter_rate_tip": "The rate the low-pass coefficients are designed for (Hz)", "filter_rate_auto": "Follow the measured frame rate", "filter_rate_auto_tip": "Design the low-pass for the device's measured rate; clear it to pin a number", - "filter_show_unfiltered": "Also show the unfiltered curves", - "filter_show_unfiltered_tip": "Draw the pre-filter readings beside the filtered ones, so what the filter did can be judged. Display only — the record is unaffected", "filter_measurement_note": "The flow EMA is a *measurement* setting: changing it makes this recording incomparable with earlier ones.", "filter_locked": "Filters cannot change while recording; this applies to the next session.", "filter_nyquist": "Note: a {cutoff} Hz cutoff is at or above the Nyquist frequency of {nyquist} Hz (sample rate {rate} Hz) — the device would not filter. Lower the cutoff or pin a higher sample rate.", diff --git a/apps/studio/config/locales/zh_CN.json b/apps/studio/config/locales/zh_CN.json index e9650f3..54d344b 100644 --- a/apps/studio/config/locales/zh_CN.json +++ b/apps/studio/config/locales/zh_CN.json @@ -72,8 +72,6 @@ "filter_rate_tip": "低通系数按哪个采样率设计(Hz)", "filter_rate_auto": "自动跟随帧率", "filter_rate_auto_tip": "按设备实测帧率设计低通系数;取消可固定一个数值", - "filter_show_unfiltered": "同时显示未滤波曲线", - "filter_show_unfiltered_tip": "在力值卡片上把滤波前的读数一并显示,便于判断滤波到底做了什么。只影响显示,不影响记录", "filter_measurement_note": "光流 EMA 属于“测量”设置:改了它,本次录制与之前的不可比。", "filter_locked": "录制中不能更改滤波;下一次采集生效。", "filter_nyquist": "注意:低通 {cutoff} Hz 已达到或超过奈奎斯特频率 {nyquist} Hz(采样率 {rate} Hz)——设备不会滤。请调低截止频率或固定更高的采样率。", diff --git a/apps/studio/src/orisys_studio/ui/plot_settings_dialog.py b/apps/studio/src/orisys_studio/ui/plot_settings_dialog.py index a62d8e0..2fddb8d 100644 --- a/apps/studio/src/orisys_studio/ui/plot_settings_dialog.py +++ b/apps/studio/src/orisys_studio/ui/plot_settings_dialog.py @@ -196,9 +196,6 @@ class PlotSettingsDialog(QDialog): lambda checked: self.rate_spin.setEnabled(not checked) ) - self.show_unfiltered_check = QCheckBox() - self.show_unfiltered_check.setChecked(bool(filters.show_unfiltered)) - self.filter_preset_label = QLabel() self.flow_ema_label = QLabel() self.median_label = QLabel() @@ -212,11 +209,9 @@ class PlotSettingsDialog(QDialog): group_form.addRow(self.lowpass_label, self.lowpass_spin) group_form.addRow(self.lowpass_order_label, self.lowpass_order_spin) group_form.addRow(self.rate_auto_check, self.rate_spin) - group_form.addRow(self.show_unfiltered_check) for widget in (self.flow_ema_spin, self.median_spin, self.lowpass_spin, - self.rate_spin, self.rate_auto_check, - self.show_unfiltered_check): + self.rate_spin, self.rate_auto_check): widget.setToolTip("") # filled in by retranslate() self.flow_ema_spin.valueChanged.connect(self._on_filter_value_edited) self.median_spin.valueChanged.connect(self._on_filter_value_edited) @@ -291,13 +286,17 @@ class PlotSettingsDialog(QDialog): rate: float | str = "auto" if not self.rate_auto_check.isChecked(): rate = float(self.rate_spin.value()) + # ``show_unfiltered`` is deliberately not offered here yet: the second + # (unfiltered) buffer is not wired to the cards or the CSV, and a switch + # that promises a curve it does not draw is worse than no switch. The + # field is kept in the settings (and in the record) until it lands. return FilterSettings( flow_ema_alpha=float(self.flow_ema_spin.value()), median_window=int(self.median_spin.value()), lowpass_hz=float(self.lowpass_spin.value()), lowpass_order=int(self.lowpass_order_spin.value()), sample_rate_hz=rate, - show_unfiltered=self.show_unfiltered_check.isChecked(), + show_unfiltered=False, preset=self.selected_preset(), ).normalised() @@ -352,7 +351,6 @@ class PlotSettingsDialog(QDialog): self.lowpass_spin.setValue(0.0) self.lowpass_order_spin.setValue(2) self.rate_auto_check.setChecked(True) - self.show_unfiltered_check.setChecked(False) self._show_preset("off") self._refresh_filter_note() @@ -385,8 +383,6 @@ class PlotSettingsDialog(QDialog): self.rate_auto_check.setToolTip(t("dialog.filter_rate_auto_tip")) self.rate_label.setText(t("dialog.filter_rate")) self.rate_spin.setToolTip(t("dialog.filter_rate_tip")) - self.show_unfiltered_check.setText(t("dialog.filter_show_unfiltered")) - self.show_unfiltered_check.setToolTip(t("dialog.filter_show_unfiltered_tip")) self._refresh_filter_note() ok_btn = self.button_box.button(QDialogButtonBox.Ok) cancel_btn = self.button_box.button(QDialogButtonBox.Cancel)