Fork with FAFO patches
Find a file
2018-12-06 15:43:41 +00:00
docs Updated docs to include plugins 2018-11-23 17:34:20 +00:00
openflexure_microscope PEP8 stuff 2018-12-06 15:43:41 +00:00
tests Explicitally pass config argument 2018-11-29 15:50:17 +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-11-27 17:15:48 +00:00
readthedocs.yaml Readthedocs config 2018-11-20 22:38:07 +00:00
requirements.txt Updated requirements to the correct fork of picamera 2018-11-29 14:47:01 +00:00
setup.py Initial commit 2018-11-06 11:35:07 +00:00
start_interface Created API V1 2018-11-08 15:02:04 +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.v1: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

Example API request (through CURL) (Deprecated. Needs to be updated to API v1.)

  • Capture a still image from the video port
    • curl --header "Content-Type: application/json" --request POST --data '{"use_video_port": true}' raspberrypi.local:5000/capture
  • Get the image for download from a browser
    • http://raspberrypi.local:5000/capture?download=true

Credits

Video streaming

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