From a84ff0cf99831d03cdcac60cf8e420dc882e6345 Mon Sep 17 00:00:00 2001 From: Sven Augustin Date: Thu, 21 Sep 2023 13:48:02 +0200 Subject: [PATCH] take the correction checkboxes into account for estimating the time --- slic/gui/daqpanels/run.py | 2 +- slic/gui/daqpanels/scan.py | 2 +- slic/gui/daqpanels/scan2d.py | 2 +- slic/gui/daqpanels/sfx.py | 2 +- slic/gui/daqpanels/special.py | 2 +- slic/gui/daqpanels/static.py | 2 +- slic/gui/daqpanels/tools.py | 20 ++++++++++++++++++-- 7 files changed, 24 insertions(+), 8 deletions(-) diff --git a/slic/gui/daqpanels/run.py b/slic/gui/daqpanels/run.py index 6f4246a5..f61939e8 100644 --- a/slic/gui/daqpanels/run.py +++ b/slic/gui/daqpanels/run.py @@ -32,7 +32,7 @@ class RunPanel(wx.Panel): self.le_fname = le_fname = LabeledFilenameEntry(self, label="Filename", value="test") pvname_reprate = get_pvname_reprate(instrument) - self.eta = eta = ETADisplay(self, "Estimated time needed", pvname_reprate, le_npulses) + self.eta = eta = ETADisplay(self, config, pvname_reprate, le_npulses) self.btn_go = btn_go = TwoButtons(self) btn_go.Bind1(wx.EVT_BUTTON, self.on_go) diff --git a/slic/gui/daqpanels/scan.py b/slic/gui/daqpanels/scan.py index 584bb386..3144fcb1 100644 --- a/slic/gui/daqpanels/scan.py +++ b/slic/gui/daqpanels/scan.py @@ -42,7 +42,7 @@ class ScanPanel(wx.Panel): self.le_fname = le_fname = LabeledFilenameEntry(self, label="Filename", value="test") pvname_reprate = get_pvname_reprate(instrument) - self.eta = eta = ETADisplay(self, "Estimated time needed", pvname_reprate, adj_range.nsteps, le_npulses, le_nrepeat) + self.eta = eta = ETADisplay(self, config, pvname_reprate, adj_range.nsteps, le_npulses, le_nrepeat) self.btn_go = btn_go = TwoButtons(self) btn_go.Bind1(wx.EVT_BUTTON, self.on_go) diff --git a/slic/gui/daqpanels/scan2d.py b/slic/gui/daqpanels/scan2d.py index 697d02f1..e1f0e0ba 100644 --- a/slic/gui/daqpanels/scan2d.py +++ b/slic/gui/daqpanels/scan2d.py @@ -31,7 +31,7 @@ class Scan2DPanel(wx.Panel): self.le_fname = le_fname = LabeledFilenameEntry(self, label="Filename", value="test") pvname_reprate = get_pvname_reprate(instrument) - self.eta = eta = ETADisplay(self, "Estimated time needed", pvname_reprate, adjbox1.adj_range.nsteps, adjbox2.adj_range.nsteps, le_npulses, le_nrepeat) + self.eta = eta = ETADisplay(self, config, pvname_reprate, adjbox1.adj_range.nsteps, adjbox2.adj_range.nsteps, le_npulses, le_nrepeat) self.btn_go = btn_go = TwoButtons(self) btn_go.Bind1(wx.EVT_BUTTON, self.on_go) diff --git a/slic/gui/daqpanels/sfx.py b/slic/gui/daqpanels/sfx.py index 37b8cf5e..af4a8796 100644 --- a/slic/gui/daqpanels/sfx.py +++ b/slic/gui/daqpanels/sfx.py @@ -60,7 +60,7 @@ class SFXPanel(wx.Panel): self.lc_cell_name = lc_cell_name = LabeledChoice(self, label="Cell Name", choices=choices) pvname_reprate = get_pvname_reprate(instrument) - self.eta = eta = ETADisplay(self, "Estimated time needed", pvname_reprate, le_npulses) + self.eta = eta = ETADisplay(self, config, pvname_reprate, le_npulses) self.btn_go = btn_go = TwoButtons(self) btn_go.Bind1(wx.EVT_BUTTON, self.on_go) diff --git a/slic/gui/daqpanels/special.py b/slic/gui/daqpanels/special.py index e785736d..e6bc9320 100644 --- a/slic/gui/daqpanels/special.py +++ b/slic/gui/daqpanels/special.py @@ -42,7 +42,7 @@ class SpecialScanPanel(wx.Panel): self.le_fname = le_fname = LabeledFilenameEntry(self, label="Filename", value="test") pvname_reprate = get_pvname_reprate(instrument) - self.eta = eta = ETADisplay(self, "Estimated time needed", pvname_reprate, le_nsteps, le_npulses, le_nrepeat) + self.eta = eta = ETADisplay(self, config, pvname_reprate, le_nsteps, le_npulses, le_nrepeat) self.btn_go = btn_go = TwoButtons(self) btn_go.Bind1(wx.EVT_BUTTON, self.on_go) diff --git a/slic/gui/daqpanels/static.py b/slic/gui/daqpanels/static.py index 13db7a60..7b186a79 100644 --- a/slic/gui/daqpanels/static.py +++ b/slic/gui/daqpanels/static.py @@ -29,7 +29,7 @@ class StaticPanel(wx.Panel): self.le_fname = le_fname = LabeledFilenameEntry(self, label="Filename", value="test") pvname_reprate = get_pvname_reprate(instrument) - self.eta = eta = ETADisplay(self, "Estimated time needed", pvname_reprate, le_npulses, le_nrepeat) + self.eta = eta = ETADisplay(self, config, pvname_reprate, le_npulses, le_nrepeat) self.btn_go = btn_go = TwoButtons(self) btn_go.Bind1(wx.EVT_BUTTON, self.on_go) diff --git a/slic/gui/daqpanels/tools.py b/slic/gui/daqpanels/tools.py index 0eee0207..7e909e7d 100644 --- a/slic/gui/daqpanels/tools.py +++ b/slic/gui/daqpanels/tools.py @@ -126,7 +126,8 @@ class PVDisplay(wx.BoxSizer): class ETADisplay(PVDisplay): - def __init__(self, parent, label, pvname, *textctrls, **kwargs): + def __init__(self, parent, config, pvname, *textctrls, label="Estimated time needed",**kwargs): + self.config = config self.textctrls = textctrls #TODO why does only this order work? super().__init__(parent, label, pvname, **kwargs) @@ -134,8 +135,19 @@ class ETADisplay(PVDisplay): for tc in textctrls: tc.Bind(wx.EVT_TEXT, self.update) + cbs = [ + config.cb_correct_rate, + config.cb_correct_rm + ] + + for cb in cbs: + cb.Bind(wx.EVT_CHECKBOX, self.update) + + + def update(self, event): + if event: + event.Skip() # allow further processing in other checkboxes/textctrls - def update(self, _event): factor = 1 for tc in self.textctrls: try: @@ -159,6 +171,10 @@ class ETADisplay(PVDisplay): rate = self.value units = self.units + rate = rate if self.config.is_checked_correct_by_rate() else NOMINAL_REPRATE + rm = self.config.acquisition.client.config.rate_multiplicator if self.config.is_checked_correct_by_rm() else 1 + rate /= rm + if units != "Hz": log.warning(f"Units of repetition rate PV are {units} and not Hz")