47 lines
1.3 KiB
Python
47 lines
1.3 KiB
Python
import numpy as np
|
|
import logging
|
|
|
|
from openflexure_microscope.devel import (
|
|
MicroscopeViewPlugin,
|
|
JsonResponse,
|
|
request,
|
|
jsonify,
|
|
taskify,
|
|
)
|
|
|
|
|
|
class MeasureSharpnessAPI(MicroscopeViewPlugin):
|
|
def post(self):
|
|
payload = JsonResponse(request)
|
|
return jsonify({"sharpness": self.plugin.measure_sharpness()})
|
|
|
|
|
|
class AutofocusAPI(MicroscopeViewPlugin):
|
|
def post(self):
|
|
payload = JsonResponse(request)
|
|
|
|
# Figure out the range of z values to use
|
|
dz = payload.param("dz", default=np.linspace(-300, 300, 7), convert=np.array)
|
|
|
|
logging.info("Running autofocus...")
|
|
task = taskify(self.plugin.autofocus)(dz)
|
|
|
|
# return a handle on the autofocus task
|
|
return jsonify(task.state), 202
|
|
|
|
|
|
class FastAutofocusAPI(MicroscopeViewPlugin):
|
|
def post(self):
|
|
payload = JsonResponse(request)
|
|
|
|
# Figure out the parameters to use
|
|
dz = payload.param("dz", default=2000, convert=int)
|
|
backlash = payload.param("backlash", default=0, convert=int)
|
|
if backlash < 0:
|
|
backlash = 0
|
|
|
|
logging.info("Running autofocus...")
|
|
task = taskify(self.plugin.fast_autofocus)(dz, backlash=backlash)
|
|
|
|
# return a handle on the autofocus task
|
|
return jsonify(task.state), 202
|