take the correction checkboxes into account for estimating the time

This commit is contained in:
2023-09-21 13:48:02 +02:00
parent a2cce44d8c
commit a84ff0cf99
7 changed files with 24 additions and 8 deletions
+1 -1
View File
@@ -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)
+1 -1
View File
@@ -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)
+1 -1
View File
@@ -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)
+1 -1
View File
@@ -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)
+1 -1
View File
@@ -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)
+1 -1
View File
@@ -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)
+18 -2
View File
@@ -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")