Commit 4450ee13 authored by Joel Collins's avatar Joel Collins
Browse files

Moved autofocus plugin to its own module

parent a6791d55
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
from .plugin import Plugin
 No newline at end of file
+1 −0
Original line number Diff line number Diff line
from .plugin import AutofocusPlugin
 No newline at end of file
+0 −14
Original line number Diff line number Diff line
@@ -7,20 +7,6 @@ from flask import request, Response, escape, jsonify

import logging


class IdentifyAPI(MicroscopeViewPlugin):
    """
    A simple example API plugin, attached through the main microscope plugin.
    """
    def get(self):
        """
        Default plugin to return a plaintext representation of the camera and stage objects.

        .. :quickref: Default plugin; Identify hardware
        """
        data = self.microscope.plugin.default.identify()  # Call a method from our plugin, using the full route
        return Response(escape(data))

class MeasureSharpnessAPI(MicroscopeViewPlugin):
    def post(self):
        payload = JsonPayload(request)
+3 −12
Original line number Diff line number Diff line
@@ -5,28 +5,19 @@ from openflexure_microscope.plugins import MicroscopePlugin
from openflexure_microscope.utilities import set_properties

from .focus_utils import sharpness_sum_lap2
from .api import IdentifyAPI, MeasureSharpnessAPI, AutofocusAPI
from .api import MeasureSharpnessAPI, AutofocusAPI


class Plugin(MicroscopePlugin):
class AutofocusPlugin(MicroscopePlugin):
    """
    A set of default plugins
    Basic autofocus plugin
    """

    api_views = {
        '/identify': IdentifyAPI,
        '/measure_sharpness': MeasureSharpnessAPI,
        '/autofocus': AutofocusAPI,
    }

    def identify(self):
        """
        Demonstrate access to Microscope.camera, and Microscope.stage
        """

        response = "My parent camera is {}, and my parent stage is {}.".format(self.microscope.camera, self.microscope.stage)
        return response

    def autofocus(self, dz, settle=0.5, metric_fn=sharpness_sum_lap2):
        """Perform a simple autofocus routine.
        The stage is moved to z positions (relative to current position) in dz,