Renamed devices to components
This commit is contained in:
parent
6b99873d53
commit
4003e4e65c
11 changed files with 60 additions and 50 deletions
|
|
@ -1,4 +1,4 @@
|
||||||
from openflexure_microscope.common.flask_labthings.find import find_device
|
from openflexure_microscope.common.flask_labthings.find import find_component
|
||||||
from openflexure_microscope.common.flask_labthings.extensions import BaseExtension
|
from openflexure_microscope.common.flask_labthings.extensions import BaseExtension
|
||||||
from openflexure_microscope.common.flask_labthings.resource import Resource
|
from openflexure_microscope.common.flask_labthings.resource import Resource
|
||||||
from openflexure_microscope.common.flask_labthings.decorators import (
|
from openflexure_microscope.common.flask_labthings.decorators import (
|
||||||
|
|
@ -294,7 +294,7 @@ def fast_up_down_up_autofocus(
|
||||||
|
|
||||||
class MeasureSharpnessAPI(Resource):
|
class MeasureSharpnessAPI(Resource):
|
||||||
def post(self):
|
def post(self):
|
||||||
microscope = find_device("org.openflexure.microscope")
|
microscope = find_component("org.openflexure.microscope")
|
||||||
|
|
||||||
if not microscope:
|
if not microscope:
|
||||||
abort(503, "No microscope connected. Unable to measure sharpness.")
|
abort(503, "No microscope connected. Unable to measure sharpness.")
|
||||||
|
|
@ -310,7 +310,7 @@ class AutofocusAPI(Resource):
|
||||||
|
|
||||||
def post(self):
|
def post(self):
|
||||||
payload = JsonResponse(request)
|
payload = JsonResponse(request)
|
||||||
microscope = find_device("org.openflexure.microscope")
|
microscope = find_component("org.openflexure.microscope")
|
||||||
|
|
||||||
if not microscope:
|
if not microscope:
|
||||||
abort(503, "No microscope connected. Unable to autofocus.")
|
abort(503, "No microscope connected. Unable to autofocus.")
|
||||||
|
|
@ -337,7 +337,7 @@ class FastAutofocusAPI(Resource):
|
||||||
|
|
||||||
def post(self):
|
def post(self):
|
||||||
payload = JsonResponse(request)
|
payload = JsonResponse(request)
|
||||||
microscope = find_device("org.openflexure.microscope")
|
microscope = find_component("org.openflexure.microscope")
|
||||||
|
|
||||||
if not microscope:
|
if not microscope:
|
||||||
abort(503, "No microscope connected. Unable to autofocus.")
|
abort(503, "No microscope connected. Unable to autofocus.")
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ from functools import reduce
|
||||||
|
|
||||||
from openflexure_microscope.camera.base import generate_basename
|
from openflexure_microscope.camera.base import generate_basename
|
||||||
from openflexure_microscope.common.flask_labthings.find import (
|
from openflexure_microscope.common.flask_labthings.find import (
|
||||||
find_device,
|
find_component,
|
||||||
find_extension,
|
find_extension,
|
||||||
)
|
)
|
||||||
from openflexure_microscope.common.flask_labthings.extensions import BaseExtension
|
from openflexure_microscope.common.flask_labthings.extensions import BaseExtension
|
||||||
|
|
@ -360,7 +360,7 @@ class TileScanAPI(Resource):
|
||||||
)
|
)
|
||||||
@marshal_task
|
@marshal_task
|
||||||
def post(self, args):
|
def post(self, args):
|
||||||
microscope = find_device("org.openflexure.microscope")
|
microscope = find_component("org.openflexure.microscope")
|
||||||
|
|
||||||
if not microscope:
|
if not microscope:
|
||||||
abort(503, "No microscope connected. Unable to autofocus.")
|
abort(503, "No microscope connected. Unable to autofocus.")
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ import zipfile
|
||||||
import tempfile
|
import tempfile
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
from openflexure_microscope.common.flask_labthings.find import find_device
|
from openflexure_microscope.common.flask_labthings.find import find_component
|
||||||
from openflexure_microscope.common.flask_labthings.resource import Resource
|
from openflexure_microscope.common.flask_labthings.resource import Resource
|
||||||
from openflexure_microscope.common.flask_labthings.extensions import BaseExtension
|
from openflexure_microscope.common.flask_labthings.extensions import BaseExtension
|
||||||
from openflexure_microscope.common.flask_labthings.decorators import (
|
from openflexure_microscope.common.flask_labthings.decorators import (
|
||||||
|
|
@ -100,7 +100,7 @@ class ZipBuilderAPIView(Resource):
|
||||||
def post(self):
|
def post(self):
|
||||||
|
|
||||||
ids = list(JsonResponse(request).json)
|
ids = list(JsonResponse(request).json)
|
||||||
microscope = find_device("org.openflexure.microscope")
|
microscope = find_component("org.openflexure.microscope")
|
||||||
|
|
||||||
task = taskify(default_zip_manager.build_zip_from_capture_ids)(microscope, ids)
|
task = taskify(default_zip_manager.build_zip_from_capture_ids)(microscope, ids)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -93,7 +93,7 @@ class TestDoAPIView(Resource):
|
||||||
|
|
||||||
|
|
||||||
# Using the dynamic form
|
# Using the dynamic form
|
||||||
dynamic_test_extension_v2 = BaseExtension("dynamic_test_extension")
|
dynamic_test_extension_v2 = BaseExtension("org.openflexure.examples.dynamic-gui")
|
||||||
dynamic_test_extension_v2.add_view(
|
dynamic_test_extension_v2.add_view(
|
||||||
TestAPIView, "/get", endpoint="dynamic_test_extension_get"
|
TestAPIView, "/get", endpoint="dynamic_test_extension_get"
|
||||||
)
|
)
|
||||||
|
|
@ -107,7 +107,7 @@ dynamic_test_extension_v2.add_meta(
|
||||||
|
|
||||||
|
|
||||||
# Using the static form
|
# Using the static form
|
||||||
static_test_extension_v2 = BaseExtension("static_test_extension")
|
static_test_extension_v2 = BaseExtension("org.openflexure.examples.static-gui")
|
||||||
static_test_extension_v2.add_view(
|
static_test_extension_v2.add_view(
|
||||||
TestAPIView, "/get", endpoint="static_test_extension_get"
|
TestAPIView, "/get", endpoint="static_test_extension_get"
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
from openflexure_microscope.api.utilities import get_bool, JsonResponse
|
from openflexure_microscope.api.utilities import get_bool, JsonResponse
|
||||||
from openflexure_microscope.common.flask_labthings.resource import Resource
|
from openflexure_microscope.common.flask_labthings.resource import Resource
|
||||||
from openflexure_microscope.common.flask_labthings.find import find_device
|
from openflexure_microscope.common.flask_labthings.find import find_component
|
||||||
from openflexure_microscope.common.flask_labthings.decorators import (
|
from openflexure_microscope.common.flask_labthings.decorators import (
|
||||||
use_args,
|
use_args,
|
||||||
marshal_with,
|
marshal_with,
|
||||||
|
|
@ -48,7 +48,7 @@ class CaptureAPI(Resource):
|
||||||
"""
|
"""
|
||||||
Create a new capture
|
Create a new capture
|
||||||
"""
|
"""
|
||||||
microscope = find_device("org.openflexure.microscope")
|
microscope = find_component("org.openflexure.microscope")
|
||||||
|
|
||||||
resize = args.get("resize", None)
|
resize = args.get("resize", None)
|
||||||
if resize:
|
if resize:
|
||||||
|
|
@ -100,7 +100,7 @@ class GPUPreviewStartAPI(Resource):
|
||||||
"""
|
"""
|
||||||
Start the onboard GPU preview.
|
Start the onboard GPU preview.
|
||||||
"""
|
"""
|
||||||
microscope = find_device("org.openflexure.microscope")
|
microscope = find_component("org.openflexure.microscope")
|
||||||
|
|
||||||
window = args.get("window")
|
window = args.get("window")
|
||||||
logging.debug(window)
|
logging.debug(window)
|
||||||
|
|
@ -124,7 +124,7 @@ class GPUPreviewStopAPI(Resource):
|
||||||
"""
|
"""
|
||||||
Stop the onboard GPU preview.
|
Stop the onboard GPU preview.
|
||||||
"""
|
"""
|
||||||
microscope = find_device("org.openflexure.microscope")
|
microscope = find_component("org.openflexure.microscope")
|
||||||
microscope.camera.stop_preview()
|
microscope.camera.stop_preview()
|
||||||
# TODO: Make schema for microscope status
|
# TODO: Make schema for microscope status
|
||||||
return jsonify(microscope.status)
|
return jsonify(microscope.status)
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
from openflexure_microscope.api.utilities import JsonResponse
|
from openflexure_microscope.api.utilities import JsonResponse
|
||||||
from openflexure_microscope.common.flask_labthings.resource import Resource
|
from openflexure_microscope.common.flask_labthings.resource import Resource
|
||||||
from openflexure_microscope.common.flask_labthings.find import find_device
|
from openflexure_microscope.common.flask_labthings.find import find_component
|
||||||
from openflexure_microscope.common.flask_labthings.decorators import (
|
from openflexure_microscope.common.flask_labthings.decorators import (
|
||||||
use_args,
|
use_args,
|
||||||
marshal_with,
|
marshal_with,
|
||||||
|
|
@ -32,7 +32,7 @@ class MoveStageAPI(Resource):
|
||||||
"""
|
"""
|
||||||
Move the microscope stage in x, y, z
|
Move the microscope stage in x, y, z
|
||||||
"""
|
"""
|
||||||
microscope = find_device("org.openflexure.microscope")
|
microscope = find_component("org.openflexure.microscope")
|
||||||
|
|
||||||
# Handle absolute positioning (calculate a relative move from current position and target)
|
# Handle absolute positioning (calculate a relative move from current position and target)
|
||||||
if (args.get("absolute")) and (microscope.stage): # Only if stage exists
|
if (args.get("absolute")) and (microscope.stage): # Only if stage exists
|
||||||
|
|
@ -68,7 +68,7 @@ class ZeroStageAPI(Resource):
|
||||||
Zero the stage coordinates.
|
Zero the stage coordinates.
|
||||||
Does not move the stage, but rather makes the current position read as [0, 0, 0]
|
Does not move the stage, but rather makes the current position read as [0, 0, 0]
|
||||||
"""
|
"""
|
||||||
microscope = find_device("org.openflexure.microscope")
|
microscope = find_component("org.openflexure.microscope")
|
||||||
microscope.stage.zero_position()
|
microscope.stage.zero_position()
|
||||||
|
|
||||||
# TODO: Make schema for microscope status
|
# TODO: Make schema for microscope status
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ from openflexure_microscope.common.flask_labthings.utilities import (
|
||||||
)
|
)
|
||||||
from openflexure_microscope.common.flask_labthings.decorators import marshal_with
|
from openflexure_microscope.common.flask_labthings.decorators import marshal_with
|
||||||
|
|
||||||
from openflexure_microscope.common.flask_labthings.find import find_device
|
from openflexure_microscope.common.flask_labthings.find import find_component
|
||||||
|
|
||||||
from marshmallow import pre_dump
|
from marshmallow import pre_dump
|
||||||
|
|
||||||
|
|
@ -71,7 +71,7 @@ class CaptureList(Resource):
|
||||||
|
|
||||||
@marshal_with(CaptureSchema(many=True))
|
@marshal_with(CaptureSchema(many=True))
|
||||||
def get(self):
|
def get(self):
|
||||||
microscope = find_device("org.openflexure.microscope")
|
microscope = find_component("org.openflexure.microscope")
|
||||||
image_list = microscope.camera.images
|
image_list = microscope.camera.images
|
||||||
return image_list
|
return image_list
|
||||||
|
|
||||||
|
|
@ -83,7 +83,7 @@ class CaptureResource(Resource):
|
||||||
|
|
||||||
@marshal_with(CaptureSchema())
|
@marshal_with(CaptureSchema())
|
||||||
def get(self, id):
|
def get(self, id):
|
||||||
microscope = find_device("org.openflexure.microscope")
|
microscope = find_component("org.openflexure.microscope")
|
||||||
capture_obj = microscope.camera.image_from_id(id)
|
capture_obj = microscope.camera.image_from_id(id)
|
||||||
|
|
||||||
if not capture_obj:
|
if not capture_obj:
|
||||||
|
|
@ -92,7 +92,7 @@ class CaptureResource(Resource):
|
||||||
return capture_obj
|
return capture_obj
|
||||||
|
|
||||||
def delete(self, id):
|
def delete(self, id):
|
||||||
microscope = find_device("org.openflexure.microscope")
|
microscope = find_component("org.openflexure.microscope")
|
||||||
capture_obj = microscope.camera.image_from_id(id)
|
capture_obj = microscope.camera.image_from_id(id)
|
||||||
|
|
||||||
if not capture_obj:
|
if not capture_obj:
|
||||||
|
|
@ -110,7 +110,7 @@ class CaptureDownload(Resource):
|
||||||
|
|
||||||
def get(self, id, filename):
|
def get(self, id, filename):
|
||||||
|
|
||||||
microscope = find_device("org.openflexure.microscope")
|
microscope = find_component("org.openflexure.microscope")
|
||||||
capture_obj = microscope.camera.image_from_id(id)
|
capture_obj = microscope.camera.image_from_id(id)
|
||||||
|
|
||||||
if not capture_obj:
|
if not capture_obj:
|
||||||
|
|
@ -146,7 +146,7 @@ class CaptureTags(Resource):
|
||||||
|
|
||||||
def get(self, id):
|
def get(self, id):
|
||||||
|
|
||||||
microscope = find_device("org.openflexure.microscope")
|
microscope = find_component("org.openflexure.microscope")
|
||||||
capture_obj = microscope.camera.image_from_id(id)
|
capture_obj = microscope.camera.image_from_id(id)
|
||||||
|
|
||||||
if not capture_obj:
|
if not capture_obj:
|
||||||
|
|
@ -156,7 +156,7 @@ class CaptureTags(Resource):
|
||||||
|
|
||||||
def put(self, id):
|
def put(self, id):
|
||||||
|
|
||||||
microscope = find_device("org.openflexure.microscope")
|
microscope = find_component("org.openflexure.microscope")
|
||||||
capture_obj = microscope.camera.image_from_id(id)
|
capture_obj = microscope.camera.image_from_id(id)
|
||||||
|
|
||||||
if not capture_obj:
|
if not capture_obj:
|
||||||
|
|
@ -173,7 +173,7 @@ class CaptureTags(Resource):
|
||||||
|
|
||||||
def delete(self, capture_id):
|
def delete(self, capture_id):
|
||||||
|
|
||||||
microscope = find_device("org.openflexure.microscope")
|
microscope = find_component("org.openflexure.microscope")
|
||||||
capture_obj = microscope.camera.image_from_id(id)
|
capture_obj = microscope.camera.image_from_id(id)
|
||||||
|
|
||||||
if not capture_obj:
|
if not capture_obj:
|
||||||
|
|
@ -196,7 +196,7 @@ class CaptureMetadata(Resource):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def get(self, id):
|
def get(self, id):
|
||||||
microscope = find_device("org.openflexure.microscope")
|
microscope = find_component("org.openflexure.microscope")
|
||||||
capture_obj = microscope.camera.image_from_id(id)
|
capture_obj = microscope.camera.image_from_id(id)
|
||||||
|
|
||||||
if not capture_obj:
|
if not capture_obj:
|
||||||
|
|
@ -205,7 +205,7 @@ class CaptureMetadata(Resource):
|
||||||
return jsonify(capture_obj.metadata)
|
return jsonify(capture_obj.metadata)
|
||||||
|
|
||||||
def put(self, id):
|
def put(self, id):
|
||||||
microscope = find_device("org.openflexure.microscope")
|
microscope = find_component("org.openflexure.microscope")
|
||||||
capture_obj = microscope.camera.image_from_id(id)
|
capture_obj = microscope.camera.image_from_id(id)
|
||||||
|
|
||||||
if not capture_obj:
|
if not capture_obj:
|
||||||
|
|
|
||||||
|
|
@ -148,22 +148,31 @@ tag = Tag
|
||||||
|
|
||||||
|
|
||||||
class doc_response(object):
|
class doc_response(object):
|
||||||
def __init__(self, code, description=None, **kwargs):
|
def __init__(self, code, description=None, mimetype=None, **kwargs):
|
||||||
self.code = code
|
self.code = code
|
||||||
self.description = description
|
self.description = description
|
||||||
self.kwargs = kwargs
|
self.kwargs = kwargs
|
||||||
|
self.mimetype = mimetype
|
||||||
|
|
||||||
|
self.response_dict = {
|
||||||
|
"responses": {
|
||||||
|
self.code: {
|
||||||
|
"description": self.description or HTTPStatus(self.code).phrase,
|
||||||
|
**self.kwargs,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if self.mimetype:
|
||||||
|
self.response_dict.update({
|
||||||
|
"responses": {
|
||||||
|
self.code: {
|
||||||
|
"content": {self.mimetype: {}}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
def __call__(self, f):
|
def __call__(self, f):
|
||||||
# Pass params to call function attribute for external access
|
# Pass params to call function attribute for external access
|
||||||
update_spec(
|
update_spec(f, self.response_dict)
|
||||||
f,
|
|
||||||
{
|
|
||||||
"responses": {
|
|
||||||
self.code: {
|
|
||||||
"description": self.description or HTTPStatus(self.code).phrase,
|
|
||||||
**self.kwargs,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
)
|
|
||||||
return f
|
return f
|
||||||
|
|
|
||||||
|
|
@ -49,6 +49,14 @@ class BaseStage(metaclass=ABCMeta):
|
||||||
"""The current position, as a list"""
|
"""The current position, as a list"""
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@property
|
||||||
|
def position_map(self):
|
||||||
|
return {
|
||||||
|
"x": self.position[0],
|
||||||
|
"y": self.position[1],
|
||||||
|
"z": self.position[2],
|
||||||
|
}
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def backlash(self):
|
def backlash(self):
|
||||||
|
|
|
||||||
|
|
@ -20,13 +20,10 @@ class MockStage(BaseStage):
|
||||||
def status(self):
|
def status(self):
|
||||||
"""The general status dictionary of the board."""
|
"""The general status dictionary of the board."""
|
||||||
status = {
|
status = {
|
||||||
"position": {
|
"position": self.position_map,
|
||||||
"x": self.position[0],
|
|
||||||
"y": self.position[1],
|
|
||||||
"z": self.position[2],
|
|
||||||
},
|
|
||||||
"board": None,
|
"board": None,
|
||||||
"version": "0",
|
"firmware": None,
|
||||||
|
"version": None
|
||||||
}
|
}
|
||||||
return status
|
return status
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -34,11 +34,7 @@ class SangaStage(BaseStage):
|
||||||
def status(self):
|
def status(self):
|
||||||
"""The general status dictionary of the board."""
|
"""The general status dictionary of the board."""
|
||||||
status = {
|
status = {
|
||||||
"position": {
|
"position": self.position_map,
|
||||||
"x": self.position[0],
|
|
||||||
"y": self.position[1],
|
|
||||||
"z": self.position[2],
|
|
||||||
},
|
|
||||||
"board": self.board.board,
|
"board": self.board.board,
|
||||||
"firmware": self.board.firmware,
|
"firmware": self.board.firmware,
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue