take the correction checkboxes into account for estimating the time
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user