Commit graph

376 commits

Author SHA1 Message Date
Richard Bowman
1b6e2686be Format and linting of recentre and smart scan 2023-12-14 16:06:05 +00:00
Richard Bowman
a54c972891 Merge branch 'new_things' into 'v3'
Scanning and recentring

See merge request openflexure/openflexure-microscope-server!162
2023-12-14 15:19:02 +00:00
jaknapper
1d50dcb3f8 Scanning and centring things 2023-12-14 15:08:43 +00:00
Richard Bowman
d0eb9fa2c1 Format/comment improvements 2023-12-13 16:35:13 +00:00
Richard Bowman
3b2fd29fb0 Log to a file and make it visible via the API 2023-12-13 01:54:42 +00:00
Richard Bowman
3059683186 Enable logging
`logging.basicConfig` doesn't work when run via `uvicorn`.
I now explicitly get the root logger and set its level to INFO,
which means we now see logs on the terminal.
2023-12-13 00:51:41 +00:00
Richard Bowman
94e1619056 Use safer metadata dependency
Retrieving metadata pre-action risks stale metadata being
returned if DirectThingClients are used. I've switched to
the safer callable dependency, which is guaranteed to be fresh.
2023-12-12 23:40:12 +00:00
Richard Bowman
d9711522d5 Detect static directories
Simplified code and removed hard-coded list of static dirs.
2023-12-12 22:55:50 +00:00
Richard Bowman
753514c24b Added v2 API routes and hard-coded static files to support Connect
Connect looks for /routes and /api/v2/streams/snapshot
These are now present and working.

I've also hard coded the static files directory - fixing this
properly is a work in progress.
2023-12-11 23:59:11 +00:00
Richard Bowman
60f854b7db Return None if calibration matrix is missing
Previously, we raised an exception (and thus HTTP error
code) if the CSM matrix was requested and not yet set.
Now, we just return None, and I've added a (not-network-exposed)
function that will raise an HTTPException if it's missing.
2023-12-01 21:29:14 +00:00
Richard Bowman
a6e8c7ab93 Return HTTP error properly if CSM is uncalibrated 2023-12-01 02:18:28 +00:00
Richard Bowman
e5e5be7369 Added settings manager to store arbitrary metadata 2023-11-29 23:38:28 +00:00
Richard Bowman
b6ed55caba Fixed module docstring 2023-11-29 23:38:12 +00:00
Richard Bowman
b9605fa2a0 Added module docstring 2023-11-29 23:37:54 +00:00
Richard Bowman
20a7fd52b1 Reinstate move_and_measure 2023-11-28 23:47:53 +00:00
Richard Bowman
291bbde9cf Don't raise an exception if thing_state called before calibration
It's helpful to raise an exception if we access the calibration
before it's been set - but thing state should not raise exceptions,
just return an empty dict if the data is not there yet.
2023-11-28 21:06:42 +00:00
Richard Bowman
27c74bff6e Add shutdown/restart actions 2023-11-02 21:18:59 +00:00
Richard Bowman
7bbc105fc6 Expose last calibration and thing_state 2023-11-02 20:29:22 +00:00
Richard Bowman
92ba79ef7a Improved docstrings 2023-11-02 10:27:27 +00:00
Richard Bowman
6eefa4f25b Add image resolution to CSM metadata
The camera stage mapper should now note the resolution
used when it was last calibrated - this is helpful for tiling,
because we may need to scale it if the images recorded are
a different resolution from the images used for calibration.

This addresses https://gitlab.com/openflexure/microscope-extensions/camera-stage-mapping/-/issues/11
2023-11-02 10:05:54 +00:00
Richard Bowman
4caba58d6c Revert to Sangaboard, rather than proscan 2023-11-01 18:02:16 +00:00
Richard Bowman
b9804cdc2d Serve static web app at / 2023-09-06 11:56:20 +01:00
Richard Bowman
e82acf2941 Add thing_state metadata 2023-09-04 11:43:32 +01:00
Richard Bowman
63d7a6eb4d WIP: camera stage mapping
This still has some bugs, mostly related to numpy and serialisation.
2023-08-31 19:37:09 +01:00
Richard Bowman
6e04618051 Autofocus module!
Currently only has fast_autofocus, and there
may be some work to do on timing, but it works :)

Getting timestamps from the camera rather than
time.time() would be ideal, but it would take some thought to tie that up with
the encoder.

I'm using a low-res stream, as it seems impossible to
turn the bitrate control of the MJPEG stream off,
at least within the picamera2 API.
2023-08-30 21:34:06 +01:00
Richard Bowman
081654533f First images on labthings-fastapi
We now have very basic camera and stage support.
2023-08-29 17:02:16 +01:00