Skip to content

Commit a4dfc00

Browse files
committed
Tidy up UI
1 parent f9e1196 commit a4dfc00

File tree

3 files changed

+25
-77
lines changed

3 files changed

+25
-77
lines changed

source/NSD.UI/MainWindow.axaml

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
<NumericUpDown x:Name="intColumnIndex" Value="{Binding CsvColumnIndex}" Increment="1" Padding="0" VerticalAlignment="Stretch" VerticalContentAlignment="Center" IsEnabled="{Binding Enabled}"/>
5555
</StackPanel>
5656

57-
<Label Grid.Row="3" Grid.Column="0" VerticalAlignment="Stretch" VerticalContentAlignment="Center" Margin="0,3,0,3">Acquisition time</Label>
57+
<Label Grid.Row="3" Grid.Column="0" VerticalAlignment="Stretch" VerticalContentAlignment="Center" Margin="0,3,0,3">Acquisition</Label>
5858
<StackPanel Orientation="Horizontal" Grid.Row="3" Grid.Column="1" Margin="0,3,0,3">
5959
<TextBox Watermark="Acquisition time..." Text="{Binding AcquisitionTime}" IsEnabled="{Binding Enabled}" MinWidth="120"/>
6060
<ComboBox x:Name="cbTime" SelectedIndex="0" SelectedItem="{Binding SelectedAcquisitionTimebaseItem, Mode=OneWayToSource}" IsEnabled="{Binding Enabled}" HorizontalAlignment="Stretch" VerticalContentAlignment="Center" MinWidth="100" Margin="2,0,0,0">
@@ -64,14 +64,9 @@
6464
<ComboBoxItem>ms</ComboBoxItem>
6565
<ComboBoxItem>μs</ComboBoxItem>
6666
<ComboBoxItem>ns</ComboBoxItem>
67-
</ComboBox>
68-
<Button IsVisible="false" Content="--&gt;" VerticalAlignment="Stretch" Click="btnTimeToRate_Click" Margin="12,0,0,0"></Button>
69-
<Button IsVisible="false" Content="&lt;--" VerticalAlignment="Stretch" Click="btnRateToTime_Click" Margin="2,0,0,0"></Button>
70-
<Label IsVisible="false" VerticalAlignment="Center" Margin="6,0,0,0">Data rate</Label>
71-
<TextBox IsVisible="false" Watermark="Data rate..." Text="{Binding DataRate}" IsEnabled="{Binding Enabled}" MinWidth="120"></TextBox>
72-
<ComboBox IsVisible="false" x:Name="cbRate" SelectedIndex="0" SelectedItem="{Binding SelectedDataRateUnitItem, Mode=OneWayToSource}" IsEnabled="{Binding Enabled}" HorizontalAlignment="Stretch" VerticalContentAlignment="Center" MinWidth="100" Margin="2,0,0,0">
73-
<ComboBoxItem>Samples per second</ComboBoxItem>
74-
<ComboBoxItem>Seconds per sample</ComboBoxItem>
67+
<ComboBoxItem>SPS</ComboBoxItem>
68+
<ComboBoxItem>kSPS</ComboBoxItem>
69+
<ComboBoxItem>MSPS</ComboBoxItem>
7570
</ComboBox>
7671
</StackPanel>
7772

source/NSD.UI/MainWindow.axaml.cs

Lines changed: 8 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
using System.Globalization;
99
using System.IO;
1010
using System.Linq;
11+
using System.Text.RegularExpressions;
1112
using System.Threading.Tasks;
1213

1314
namespace NSD.UI
@@ -71,6 +72,9 @@ public async void btnRun_Click(object sender, RoutedEventArgs e)
7172
"ms" => acquisitionTime / 1e3,
7273
"μs" => acquisitionTime / 1e6,
7374
"ns" => acquisitionTime / 1e9,
75+
"SPS" => 1.0 / acquisitionTime,
76+
"kSPS" => 1.0 / (acquisitionTime * 1000.0),
77+
"MSPS" => 1.0 / (acquisitionTime * 1000000.0),
7478
_ => throw new ApplicationException("Acquisition time combobox value not handled")
7579
};
7680
//if (!double.TryParse(viewModel.DataRate, out double dataRateTime))
@@ -189,14 +193,14 @@ await Task.Run(() =>
189193
var pointsPerDecadeScaling = double.Parse(viewModel.LogNsdPointsDecadeScaling);
190194
var minAverages = int.Parse(viewModel.LogNsdMinAverages);
191195
//var minLength = int.Parse(viewModel.LogNsdMinLength);
192-
var minLength = int.Parse((string)viewModel.SelectedLogNsdMinLength.Content);
196+
var minLength = int.Parse((string)viewModel.SelectedLogNsdMinLength.Content);
193197
var nsd = await Task.Factory.StartNew(() => NSD.Log(
194198
input: records.ToArray(),
195199
sampleRateHz: 1.0 / acquisitionTimeSeconds,
196200
freqMin: viewModel.XMin,
197-
freqMax: viewModel.XMax,
198-
pointsPerDecade,
199-
minAverages,
201+
freqMax: viewModel.XMax,
202+
pointsPerDecade,
203+
minAverages,
200204
minLength,
201205
pointsPerDecadeScaling));
202206
spectrum = nsd;
@@ -253,45 +257,6 @@ await Task.Run(() =>
253257
}
254258
}
255259

256-
public void btnRateToTime_Click(object sender, RoutedEventArgs e)
257-
{
258-
if (!double.TryParse(viewModel.DataRate, out double dataRateTime))
259-
{
260-
viewModel.Status = "Error: Invalid data rate value";
261-
return;
262-
}
263-
double dataRateTimeSeconds = (string)viewModel.SelectedDataRateUnitItem.Content switch
264-
{
265-
"Samples per second" => 1.0 / dataRateTime,
266-
"Seconds per sample" => dataRateTime,
267-
_ => throw new ApplicationException("Data rate combobox value not handled")
268-
};
269-
270-
viewModel.AcquisitionTime = dataRateTimeSeconds.ToString();
271-
cbTime.SelectedIndex = 2;
272-
}
273-
274-
public void btnTimeToRate_Click(object sender, RoutedEventArgs e)
275-
{
276-
if (!double.TryParse(viewModel.AcquisitionTime, out double acquisitionTime))
277-
{
278-
viewModel.Status = "Error: Invalid acquisition time value";
279-
return;
280-
}
281-
double acquisitionTimeSeconds = (string)(viewModel.SelectedAcquisitionTimebaseItem).Content switch
282-
{
283-
"NPLC (50Hz)" => acquisitionTime * (1.0 / 50.0),
284-
"NPLC (60Hz)" => acquisitionTime * (1.0 / 60.0),
285-
"s" => acquisitionTime,
286-
"ms" => acquisitionTime / 1e3,
287-
"μs" => acquisitionTime / 1e6,
288-
"ns" => acquisitionTime / 1e9,
289-
_ => throw new ApplicationException("Acquisition time combobox value not handled")
290-
};
291-
viewModel.DataRate = (1.0 / acquisitionTimeSeconds).ToString();
292-
cbRate.SelectedIndex = 0;
293-
}
294-
295260
public class NsdSample
296261
{
297262
public double Frequency { get; set; }

source/NSD.UI/MainWindowViewModel.cs

Lines changed: 13 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ public partial class MainWindowViewModel : ObservableObject
1313
// Loaded from settings file
1414
[ObservableProperty] string? processWorkingFolder;
1515
[ObservableProperty] string? acquisitionTime;
16-
[ObservableProperty] string? dataRate;
1716

1817
[ObservableProperty] string status = "Status: Idle";
1918
[ObservableProperty] bool enabled = true;
@@ -28,10 +27,9 @@ public partial class MainWindowViewModel : ObservableObject
2827
[ObservableProperty] string logNsdPointsDecade = "5";
2928
[ObservableProperty] string logNsdPointsDecadeScaling = "2.0";
3029
[ObservableProperty] string logNsdMinAverages = "1";
31-
[ObservableProperty] string logNsdMinLength = "128";
30+
[ObservableProperty] string logNsdMinLength = "128";
3231

3332
public ComboBoxItem? SelectedAcquisitionTimebaseItem { get; set; }
34-
public ComboBoxItem? SelectedDataRateUnitItem { get; set; }
3533

3634
private ComboBoxItem? selectedNsdAlgorithm;
3735
public ComboBoxItem? SelectedNsdAlgorithm
@@ -85,29 +83,19 @@ public MainWindowViewModel(Settings settings, MainWindow window)
8583
processWorkingFolder = settings.ProcessWorkingFolder;
8684
acquisitionTime = settings.AcquisitionTime;
8785

88-
switch (settings.AcquisitionTimeUnit)
86+
window.cbTime.SelectedIndex = settings.AcquisitionTimeUnit switch
8987
{
90-
case "NPLC (50Hz)":
91-
window.cbTime.SelectedIndex = 0;
92-
break;
93-
case "NPLC (60Hz)":
94-
window.cbTime.SelectedIndex = 1;
95-
break;
96-
case "s":
97-
window.cbTime.SelectedIndex = 2;
98-
break;
99-
case "ms":
100-
window.cbTime.SelectedIndex = 3;
101-
break;
102-
case "μs":
103-
window.cbTime.SelectedIndex = 4;
104-
break;
105-
case "ns":
106-
window.cbTime.SelectedIndex = 5;
107-
break;
108-
}
109-
//dataRate = settings.DataRate;
110-
//SelectedDataRateUnitItem = settings.DataRateUnit;
88+
"NPLC (50Hz)" => 0,
89+
"NPLC (60Hz)" => 1,
90+
"s" => 2,
91+
"ms" => 3,
92+
"μs" => 4,
93+
"ns" => 5,
94+
"SPS" => 6,
95+
"kSPS" => 7,
96+
"MSPS" => 8,
97+
_ => throw new Exception("Invalid AcquisitionTimeUnit")
98+
};
11199
}
112100

113101
partial void OnProcessWorkingFolderChanged(string? value)

0 commit comments

Comments
 (0)