Commit 91595888 authored by Joel Collins's avatar Joel Collins
Browse files

Added temporary support to scans

parent f9fb6dc7
Loading
Loading
Loading
Loading
+2 −40
Original line number Diff line number Diff line
@@ -10,6 +10,7 @@ class TileScanAPI(MicroscopeViewPlugin):

        # Get params
        filename = payload.param('filename')
        temporary = payload.param('temporary', default=False, convert=bool)

        step_size = payload.param('step_size', default=[2000, 1500, 100], convert=list)
        step_size = [int(i) for i in step_size]
@@ -36,6 +37,7 @@ class TileScanAPI(MicroscopeViewPlugin):
        task = self.microscope.task.start(
            self.plugin.tile,
            basename=filename,
            temporary=temporary,
            step_size=step_size,
            grid=grid,
            style=style,
@@ -49,43 +51,3 @@ class TileScanAPI(MicroscopeViewPlugin):

        # return a handle on the autofocus task
        return jsonify(task.state), 202


class ZStackAPI(MicroscopeViewPlugin):
    def post(self):
        payload = JsonPayload(request)

        # Get params
        name = payload.param('name')
        step_size = payload.param('step_size', default=100, convert=int)
        steps = payload.param('steps', default=5, convert=int)
        center = payload.param('center', default=True, convert=bool)

        use_video_port = payload.param('use_video_port', default=False, convert=bool)
        resize = payload.param('size', default=None)
        if resize:
            if ('width' in resize) and ('height' in resize):
                resize = (int(resize['width']), int(resize['height']))  # Convert dict to tuple
            else:
                abort(404)

        bayer = payload.param('bayer', default=True, convert=bool)
        metadata = payload.param('metadata', default={}, convert=dict)
        tags = payload.param('tags', default=[], convert=list)

        print("Running tile scan...")
        task = self.microscope.task.start(
            self.plugin.stack,
            basename=name,
            step_size=step_size,
            steps=steps,
            center=center,
            use_video_port=use_video_port,
            resize=resize,
            bayer=bayer,
            metadata=metadata,
            tags=tags
        )

        # return a handle on the autofocus task
        return jsonify(task.state), 202
+7 −2
Original line number Diff line number Diff line
@@ -48,12 +48,12 @@ class ScanPlugin(MicroscopePlugin):

    api_views = {
        '/tile': TileScanAPI,
        '/stack': ZStackAPI,
    }

    def capture(self,
                basename,
                scan_id,
                temporary: bool = False,
                use_video_port: bool = False,
                resize: Tuple[int, int] = None,
                bayer: bool = False,
@@ -67,7 +67,7 @@ class ScanPlugin(MicroscopePlugin):
        # Create output object
        output = self.microscope.camera.new_image(
            write_to_file=True,
            temporary=False,
            temporary=temporary,
            filename=filename,
            folder=foldername)

@@ -94,6 +94,7 @@ class ScanPlugin(MicroscopePlugin):
    def tile(
            self,
            basename: str = None,
            temporary: bool = False,
            step_size: int = [2000, 1500, 100],
            grid: list = [3, 3, 5],
            style='raster',
@@ -159,6 +160,7 @@ class ScanPlugin(MicroscopePlugin):
                    self.capture(
                        basename,
                        scan_id,
                        temporary=temporary,
                        use_video_port=use_video_port,
                        resize=resize,
                        bayer=bayer,
@@ -169,6 +171,7 @@ class ScanPlugin(MicroscopePlugin):
                    logging.debug("Entering z-stack")
                    self.stack(
                        basename=basename,
                        temporary=temporary,
                        scan_id=scan_id,
                        step_size=step_size[2],
                        steps=grid[2],
@@ -186,6 +189,7 @@ class ScanPlugin(MicroscopePlugin):
    def stack(
            self,
            basename: str = None,
            temporary: bool = False,
            scan_id: str = None,
            step_size: int = 100,
            steps: int = 5,
@@ -224,6 +228,7 @@ class ScanPlugin(MicroscopePlugin):
                self.capture(
                    basename,
                    scan_id,
                    temporary=temporary,
                    use_video_port=use_video_port,
                    resize=resize,
                    bayer=bayer,