From 76e8a5a299cf58e6cbcc698cf1cf4bdcfb8e9127 Mon Sep 17 00:00:00 2001 From: Matthew Newville Date: Mon, 30 Sep 2019 10:27:27 -0500 Subject: [PATCH] fixes for setting microscope calibration --- epicsapps/microscope/calibrationframe.py | 18 ++++++++---------- epicsapps/microscope/microscope.py | 15 +++++++++++++-- 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/epicsapps/microscope/calibrationframe.py b/epicsapps/microscope/calibrationframe.py index e8598ed5..98eb8290 100644 --- a/epicsapps/microscope/calibrationframe.py +++ b/epicsapps/microscope/calibrationframe.py @@ -66,16 +66,14 @@ def txt(label, size=-1): def onCalibSelection(self, event=None, **kws): name = self.calname.GetValue() - try: - if name not in self.calibrations: - x, y = self.calib_x.GetValue(), self.calib_y.GetValue() - self.calibrations[name] = [float(x), float(y)] - else: - calib = self.calibrations[name] - self.calib_x.SetValue(calib[0]) - self.calib_y.SetValue(calib[1]) - except AttributeError: - pass + # print(" On Calib selection ", name) + if name not in self.calibrations: + x, y = self.calib_x.GetValue(), self.calib_y.GetValue() + self.calibrations[name] = [float(x), float(y)] + else: + calib = self.calibrations[name] + self.calib_x.SetValue(calib[0]) + self.calib_y.SetValue(calib[1]) def onCalibXY(self, event=None, **kws): try: diff --git a/epicsapps/microscope/microscope.py b/epicsapps/microscope/microscope.py index 6e4f8d21..2b7c1e90 100755 --- a/epicsapps/microscope/microscope.py +++ b/epicsapps/microscope/microscope.py @@ -531,8 +531,18 @@ def onConfigCalibration(self, evt=None, **kws): callback=self.onSetCalibration) def onSetCalibration(self, calibrations, current): + self.calibrations = calibrations self.calib_current = current + + self.config['calibration'] = [] + for cname, cval in calibrations.items(): + self.config['calibration'].append([cname, "%.4f" % cval[0], "%.4f" % cval[1]]) + self.confpanel.calib.Clear() + for cname in calibrations: + self.confpanel.calib.Append(cname) + self.confpanel.calibrations = calibrations + self.confpanel.calib.SetStringSelection(current) self.get_calibration() self.onSetOverlays() @@ -604,6 +614,7 @@ def get_calibration(self, name=None): name = self.calib_current if name in self.calibrations: self.current_calib = name + cal = self.calibrations[name] self.cam_calibx = abs(float(cal[0])) self.cam_caliby = abs(float(cal[0])) @@ -889,8 +900,8 @@ def onCaptureVideo(self, event=None): def onSaveConfig(self, event=None): fname = FileSave(self, 'Save Configuration File', - wildcard='INI (*.ini)|*.ini|All files (*.*)|*.*', - default_file='SampleStage.ini') + wildcard='Config files (*.yaml)|*.yaml|All files (*.*)|*.*', + default_file='microscope.yaml') if fname is not None: self.configfile.save(fname=fname) self.write_message('Saved Configuration File %s' % fname)