From 93966e093ab049f69557e274efdfb161479981aa Mon Sep 17 00:00:00 2001 From: Joel Collins Date: Fri, 20 Sep 2019 16:22:53 +0100 Subject: [PATCH] Added stream snapshot route --- .../api/v1/blueprints/base.py | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/openflexure_microscope/api/v1/blueprints/base.py b/openflexure_microscope/api/v1/blueprints/base.py index 81c64ca5..3853ca9c 100644 --- a/openflexure_microscope/api/v1/blueprints/base.py +++ b/openflexure_microscope/api/v1/blueprints/base.py @@ -25,6 +25,25 @@ class StreamAPI(MicroscopeView): ) +class SnapshotAPI(MicroscopeView): + def get(self): + """ + Single snapshot from the camera stream + + .. :quickref: State; Camera snapshot + + :>header Accept: image/jpeg + :>header Content-Type: image/jpeg + :status 200: stream active + """ + # Restart stream worker thread + self.microscope.camera.start_worker() + + return Response( + self.microscope.camera.get_frame(), + mimetype="image/jpeg", + ) + class StateAPI(MicroscopeView): def get(self): """ @@ -220,6 +239,10 @@ def construct_blueprint(microscope_obj): "/stream", view_func=StreamAPI.as_view("stream", microscope=microscope_obj) ) + blueprint.add_url_rule( + "/snapshot", view_func=SnapshotAPI.as_view("snapshot", microscope=microscope_obj) + ) + blueprint.add_url_rule( "/state", view_func=StateAPI.as_view("state", microscope=microscope_obj) )