diff --git a/scanslicer/controller_detection.py b/scanslicer/controller_detection.py index c0023c6..925a795 100644 --- a/scanslicer/controller_detection.py +++ b/scanslicer/controller_detection.py @@ -40,3 +40,25 @@ class AutotuneTaskSignals(QObject): status = Signal(str) finished = Signal(object) failed = Signal(str) + + +# AutotuneTask: class definition for ScanSlicer behavior. +class AutotuneTask(QRunnable): + # __init__: function definition for ScanSlicer behavior. + def __init__(self, autoslicer, profile_name): + super().__init__() + self.autoslicer = autoslicer + self.profile_name = profile_name + self.signals = AutotuneTaskSignals() + + # run: function definition for ScanSlicer behavior. + def run(self): + try: + result = self.autoslicer.autotune_for_current_image( + self.signals.status.emit, + profile_name=self.profile_name, + ) + self.signals.finished.emit(result) + except Exception as exc: + details = f"{exc}\n\n{traceback.format_exc()}" + self.signals.failed.emit(details)