Joel Collins
e0c09b2845
Fixed plugin path
2019-01-30 18:22:54 +00:00
Joel Collins
f2a3261b03
Overhauled config loader to allow split configs
2019-01-30 17:45:11 +00:00
Joel Collins
f720e67700
Updated path to new autofocus plugin
2019-01-30 13:59:39 +00:00
Joel Collins
4450ee132e
Moved autofocus plugin to its own module
2019-01-30 13:51:20 +00:00
Joel Collins
a6791d55ac
Plugin routes are now fully qualified
2019-01-30 13:51:09 +00:00
Joel Collins
0c156128fc
Minor formatting changes
2019-01-30 12:02:35 +00:00
Joel Collins
7ad1e7507f
Use a sensible error handler
2019-01-30 12:02:27 +00:00
Joel Collins
e6ddeaeb3a
Create lock even when stage is disconnected
2019-01-30 12:00:30 +00:00
Joel Collins
73eda19acc
Merge branch 'recalibration_plugin' into 'master'
...
A plugin to allow recalibration via the web API
See merge request openflexure/openflexure-microscope-server!4
2019-01-30 09:47:25 +00:00
Richard Bowman
416b74cb4a
A plugin to allow recalibration via the web API
...
This adds a plugin with a single endpoint, "recalibrate".
The recalibrate methods are deliberately simple and not aware
of the StreamingCamera because I want to share the maximum
amount of code with non-microscope projects that also want
to flatten the lens shading.
The plugin is microscope-specific, and therefore handles
shutting down the stream and managing the resolution of
the camera, to allow the calibration to run without
restarting the microscope server.
Currently it **DOES NOT SAVE SETTINGS**.
TODO: save the settings after recalibration.
Arguably this isn't a job for this plugin, what we would
need is:
* A method to sync the StreamingCamera's settings with the
underlying PiCamera object
* A method to save the StreamingCamera's settings to disk.
I think it would be neatest to provide the first of these as
a method of the StreamingCamera class, and call it from the
plugin. Saving the settings to disk (e.g. to the microscope
rc file, or to somewhere else) should be a separate endpoint
(although most interfaces will probably call it immediately
after recalibration).
2019-01-30 09:10:33 +00:00
Joel Collins
6743882bf1
Corrected the abort code for missing resource
2019-01-29 14:43:22 +00:00
Joel Collins
d7e19c40e2
Included Richards autofocus plugin in defaults
2019-01-29 13:54:47 +00:00
Joel Collins
cc36aa7593
Fixed a bug where malformed JSON payloads prevented default param values from returning
2019-01-29 13:54:32 +00:00
Joel Collins
bda946bcc9
Errors in plugins no longer caught as if the module just didn't exist
2019-01-29 13:42:32 +00:00
Joel Collins
485ebe9fb1
Added string representation of LocError
2019-01-29 13:41:46 +00:00
Joel Collins
b4d9840ed0
Added set_properties context manager
2019-01-29 13:41:35 +00:00
Joel Collins
a11d2145d9
Fixed broken error handling for long-running tasks
2019-01-28 17:49:44 +00:00
Joel Collins
465ed647d3
Fixed docstrings
2019-01-24 16:24:14 +00:00
Joel Collins
80cc74bd3d
Fixed plugin blueprint method name clashing
2019-01-24 14:14:25 +00:00
Joel Collins
e5fca6c8a0
Fixed broken type hint
2019-01-24 14:09:54 +00:00
Joel Collins
9860ace394
Fixed broken legacy import
2019-01-24 14:09:47 +00:00
Joel Collins
363094170e
Added/updated docs
2019-01-24 14:05:57 +00:00
Joel Collins
cb441201c6
Explicitally acquire camera lock
2019-01-24 14:05:45 +00:00
Joel Collins
5c86c7f350
Updated to use CompositeLock
2019-01-24 14:05:25 +00:00
Joel Collins
27043240f3
Added explicit lock ecquisition
2019-01-24 14:05:05 +00:00
Joel Collins
fb26bcb7f3
Added CompositeLock
2019-01-24 14:04:41 +00:00
Joel Collins
25aeae0233
Updated LockError location and added docs
2019-01-24 14:04:30 +00:00
Joel Collins
488b94eee6
Updated LockError location
2019-01-24 14:04:12 +00:00
Joel Collins
59b634498b
Moved LockError into exceptions.py
2019-01-24 14:03:55 +00:00
Joel Collins
4be89866ee
Added lock to stage positioning
2019-01-24 13:28:46 +00:00
Joel Collins
18dec56c80
Fixed composite lock error
2019-01-24 13:13:08 +00:00
Joel Collins
8292ebf7c7
Implement hardware locks
2019-01-24 12:11:01 +00:00
Joel Collins
a40cb9b9f6
Implemented basic threaded tasks for long-running functionality
2019-01-23 16:48:49 +00:00
Joel Collins
0dff9b6b39
Enable web UI to run when no stage is connected
2019-01-22 14:47:11 +00:00
Joel Collins
a6332f4f30
Updated self-served client to new version
2019-01-22 13:46:46 +00:00
Joel Collins
0e23ce8d0b
Added web routes for tagging captures
2019-01-22 12:09:42 +00:00
Joel Collins
7a72b45b29
Added tags to capture metadata
2019-01-22 11:35:35 +00:00
Joel Collins
4e985fe80d
Capture list now persists through server restart
2019-01-22 11:23:15 +00:00
Joel Collins
0cde8b717d
Added fov into microscope RC
2019-01-21 10:49:59 +00:00
Joel Collins
748c9b8b20
Routes now return position as a microscope stage sub-section
2019-01-21 10:49:46 +00:00
Joel Collins
f7c6596bef
Added dictionary filter function
2019-01-21 10:49:22 +00:00
Joel Collins
8170726430
Enabled CORS on /api routes
2019-01-18 16:49:21 +00:00
Joel Collins
ba4599d4a3
Changed download button to YAML link
2019-01-18 16:15:11 +00:00
Joel Collins
a15e797ce4
Removed redundant as_attachment response
2019-01-18 16:07:50 +00:00
Joel Collins
533f5d9857
Added routes to download metadata yaml files
2019-01-18 15:27:11 +00:00
Joel Collins
63ffc0057a
Added routes for new metadata methods
2019-01-18 14:50:08 +00:00
Joel Collins
2c2932f5aa
Added methods to add, update, and save capture metadata in a yaml file
2019-01-18 14:49:44 +00:00
Joel Collins
8a4be49d46
Fixed resize docstring
2019-01-17 14:13:34 +00:00
Joel Collins
0fe9f4c42b
Brute-force clean out tmp at exit
2019-01-17 13:45:39 +00:00
Joel Collins
646dc24a91
Fixed captures trying to restart recording for a stopped stream
2019-01-17 12:23:54 +00:00