Fork with FAFO patches
Find a file
2019-01-07 15:09:42 +00:00
docs Created quickstart documentation page 2018-12-20 15:45:21 +00:00
openflexure_microscope Clarified default config paths 2018-12-20 16:06:09 +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 pyenv files 2019-01-06 18:37:13 +00:00
poetry.lock Updated pyproject.toml with beta semver and updated dependencies 2019-01-07 13:08:46 +00:00
pyproject.toml Updated Julians email address 2019-01-07 14:32:57 +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 Generated requirements.txt from Poetry for documentation build 2019-01-07 15:04:45 +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.