gui/server: Patch sweeping amplitude display

- 1V Max Sweeping Amplitude -> 0.25V Max Sweeping Amplitude
This commit is contained in:
linuswck 2025-01-16 13:03:10 +08:00
parent 75e17c754f
commit 3cf8f0c977
2 changed files with 66 additions and 3 deletions

View File

@ -65,11 +65,11 @@ index 3d8b8bf..72f6159 100644
</property>
<property name="minimum">
- <double>-1.000000000000000</double>
+ <double>-0.500000000000000</double>
+ <double>-0.250000000000000</double>
</property>
<property name="maximum">
- <double>1.000000000000000</double>
+ <double>0.500000000000000</double>
+ <double>0.250000000000000</double>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
@ -78,7 +78,7 @@ index 3d8b8bf..72f6159 100644
</property>
<property name="maximum">
- <double>1.000000000000000</double>
+ <double>0.500000000000000</double>
+ <double>0.250000000000000</double>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
@ -126,3 +126,16 @@ index 6d8af14..29c8a63 100644
</property>
<property name="singleStep">
<double>0.100000000000000</double>
diff --git a/linien-gui/linien_gui/ui/sweep_control.py b/linien-gui/linien_gui/ui/sweep_control.py
index 7d2bb2d..e98c169 100644
--- a/linien-gui/linien_gui/ui/sweep_control.py
+++ b/linien-gui/linien_gui/ui/sweep_control.py
@@ -109,6 +109,6 @@ class SweepSlider(superqt.QDoubleRangeSlider):
def ready(self):
# set control boundaries
- self.setMinimum(-1.0)
- self.setMaximum(1.0)
+ self.setMinimum(-0.25)
+ self.setMaximum(0.25)
self.setSingleStep(0.001)

View File

@ -20,3 +20,53 @@ index 12f16ed..287f304 100644
)
"""
Frequency of the modulation in internal units. Use MHz for conversion to
diff --git a/linien-server/linien_server/parameters.py b/linien-server/linien_server/parameters.py
index fe482d7..04a3c24 100644
--- a/linien-server/linien_server/parameters.py
+++ b/linien-server/linien_server/parameters.py
@@ -292,14 +292,14 @@ class Parameters:
# ------------------- SWEEP PARAMETERS -----------------------------------------
- self.sweep_amplitude = Parameter(min_=0.001, max_=1, start=1, loggable=True)
+ self.sweep_amplitude = Parameter(min_=0.001, max_=0.25, start=0.25, loggable=True)
"""
Amplitude of the sweep in units of 0.5 * Vpp of the output (2 V for fast outputs
(range +/- 1 V) and 0.9 V for slow outputs (range 0 V to 1.8 V)). That means an
amplitude of 1.0 corresponds to the full sweep range in both cases.
"""
- self.sweep_center = Parameter(min_=-1, max_=1, start=0, loggable=True)
+ self.sweep_center = Parameter(min_=-0.25, max_=0.25, start=0, loggable=True)
"""
The center position of the sweep. If a fast output is used for the sweep this is
the sweep center position in volts. If the slow output is used the interval
diff --git a/linien-server/linien_server/registers.py b/linien-server/linien_server/registers.py
index 2b8f697..65e9732 100644
--- a/linien-server/linien_server/registers.py
+++ b/linien-server/linien_server/registers.py
@@ -94,12 +94,12 @@ class Registers:
logic_sweep_pause=int(self.parameters.sweep_pause.value),
logic_sweep_step=int(
DEFAULT_SWEEP_SPEED
- * self.parameters.sweep_amplitude.value
+ * self.parameters.sweep_amplitude.value * 4
/ (2**self.parameters.sweep_speed.value)
),
# NOTE: Sweep center is set by `logic_out_offset`.
- logic_sweep_min=-1 * max_(self.parameters.sweep_amplitude.value * 8191),
- logic_sweep_max=max_(self.parameters.sweep_amplitude.value * 8191),
+ logic_sweep_min=-1 * max_(self.parameters.sweep_amplitude.value * 32767),
+ logic_sweep_max=max_(self.parameters.sweep_amplitude.value * 32767),
logic_mod_freq=(
self.parameters.modulation_frequency.value
if not self.parameters.pid_only_mode.value
@@ -121,7 +121,7 @@ class Registers:
logic_chain_b_offset=twos_complement(
int(self.parameters.offset_b.value), 14
),
- logic_out_offset=int(self.parameters.sweep_center.value * 8191),
+ logic_out_offset=int(self.parameters.sweep_center.value * 32767),
logic_combined_offset=twos_complement(
self.parameters.combined_offset.value, 14
),