Fork with FAFO patches
Find a file
2018-12-20 15:45:02 +00:00
docs Started proper plugin documentation 2018-12-20 15:45:02 +00:00
openflexure_microscope Restructured builtin plugins and docstrings 2018-12-20 15:44:43 +00:00
tests Updated plugin tester 2018-12-12 15:01:10 +00:00
utilities Moved user configs to hidden directory 2018-12-05 12:03:22 +00:00
.gitignore Ignore UML diagrams 2018-11-07 11:03:08 +00:00
README.md Update README.md 2018-12-20 10:07:28 +00:00
readthedocs.yaml Readthedocs config 2018-11-20 22:38:07 +00:00
requirements.txt Added gunicorn to requirements 2018-12-14 12:14:51 +00:00
setup.py Initial commit 2018-11-06 11:35:07 +00:00
start_interface Fixed API module links 2018-12-06 15:43:50 +00:00

OpenFlexure Microscope Software

Installation

This module is currently in very early development, and is perhaps best installed in developer mode.

  • (Recommended) create a virtual environment
    • In the openflexure-microscope-software directory, create a venv with python3 -m venv env
    • Activate with source env/bin/activate
    • Install dependencies with sudo apt-get install libatlas-base-dev libjasper-dev libjpeg-dev
    • Install requirements with pip install -r requirements.txt
  • Install module in developer mode by running python3 setup.py develop
    • Installing in developer mode allows the module to be modified by editing files directly in the openflexure-microscope-software directory.

Developer usage examples

Running the web API in Gunicorn (port 5000)

  • Ensure Gunicorn is installed to the current environment (pip install gunicorn)
  • Run gunicorn --threads 5 --workers 1 --bind 0.0.0.0:5000 openflexure_microscope.api.app:app
    • Alternatively, run source start_interface from the openflexure-microscope-software directory.

Running tests through the PTVSD remote debugger (port 3000)

  • From the openflexure-microscope-software directory, run python3 -m ptvsd --host 0.0.0.0 --port 3000 --wait tests/test_camera.py

REST(ish) API

The Flask app serves a (reasonably) RESTful web API. For most user-facing functionality, this is the preferred interface. API documentation, with example requests, is available here.

Microscope plugins

The Microscope module, and Flask app, both support plugins for extending lower-level functionality not well suited to web API calls. This plugin system is still in fairly early development, and is not yet properly documented. The current documentation can be found here.

Credits

Video streaming

Based on supporting code for the article video streaming with Flask and its follow-up Flask Video Streaming Revisited.