Commit graph

1088 commits

Author SHA1 Message Date
Julian Stirling
9ed488e37d Complete first pass of capture mode implementation 2026-06-05 16:58:35 +01:00
Julian Stirling
83ceb82ea8 Use a path object that supports setting a Thing for the data directory.
This allows us to ensure that arbitrary paths are not selected via the API.
2026-06-05 16:58:35 +01:00
Julian Stirling
c18d43a3a5 Start to move rest of python onto refactored camera API 2026-06-05 16:58:35 +01:00
Julian Stirling
e3361ebec8 Update cameras inline with base camera rebase 2026-06-05 16:58:35 +01:00
Julian Stirling
feea7135b1 First pass at rebasing for camera modes 2026-06-05 16:58:35 +01:00
Julian Stirling
aff860a086 Refactor camera streaming into modes 2026-05-27 08:43:10 +01:00
Joe Knapper
4e58d613d0 Merge branch 'stitch-all-logging' into 'v3'
Log during stitch all and handle errors

Closes #710

See merge request openflexure/openflexure-microscope-server!593
2026-05-15 16:36:15 +00:00
jaknapper
0f842c622b Test stitch all with mocking 2026-05-15 17:07:10 +01:00
Joe Knapper
bea1e35d61 Merge branch 'sharpness-monitor-none' into 'v3'
Sharpness monitor accepting 0 as None

Closes #776

See merge request openflexure/openflexure-microscope-server!592
2026-05-15 15:27:52 +00:00
Joe Knapper
336e052fce Merge branch 'verify-ui-elements' into 'v3'
Verify properties and actions exist before making controls and buttons.

Closes #640

See merge request openflexure/openflexure-microscope-server!556
2026-05-15 15:11:52 +00:00
jaknapper
a278b700ef Change check for record 2026-05-15 15:45:04 +01:00
jaknapper
bd796f98a1 Log during stitch all and handle errors 2026-05-15 15:40:15 +01:00
Julian Stirling
49ae6fcd70 Merge branch 'save-rom-data' into 'v3'
Save useful ROM data to data directory

See merge request openflexure/openflexure-microscope-server!590
2026-05-15 14:16:04 +00:00
Julian Stirling
c0158a7a6c Provide feeback to user on broken UI components. 2026-05-15 15:03:20 +01:00
Julian Stirling
050c2b7672 Verify properties and actions exist before making controls and buttons. 2026-05-15 15:03:20 +01:00
Julian Stirling
40a9e25e02 Merge branch 'v3-labthings-rename-api-prefix' into 'v3'
Update code to use public `api_prefix` property

See merge request openflexure/openflexure-microscope-server!587
2026-05-15 13:56:19 +00:00
Julian Stirling
94a3fead9c Apply suggestions from code review of branch save-rom-data 2026-05-15 14:49:40 +01:00
jaknapper
78c01de6d5 Sharpness monitor accepting 0 as None 2026-05-15 14:43:23 +01:00
Richard Bowman
a66428b1b2 Fix a typo when calling _save_capture
I renamed `jpeg_path` to `path` as it's no longer just used for jpegs.
2026-05-15 13:14:28 +01:00
Richard Bowman
ee6911f4a7 PNG Capture
This adds an additional action to BaseCamera to capture and return a PNG Blob. It makes the PNG using Pillow, in a very similar way to `capture_jpeg`.

I have parametrized the test for `capture_jpeg` so it now tests both jpeg and png with the same code.
2026-05-15 13:14:27 +01:00
Julian Stirling
714435f2d4 Fix unit tests for stage_measrue as an OFMThing 2026-05-14 16:49:29 +01:00
Chish36
5c128c1467 Removed settings, fixed saving issue and refactored 2026-05-14 15:58:26 +01:00
Chish36
03dc0a065f Save useful ROM data to data directory 2026-05-14 14:24:48 +01:00
jaknapper
cbfbd84fa9 Changes from review 2026-05-14 10:52:33 +01:00
jaknapper
5be8b0ecab Update tests, including picamera 2026-05-13 18:07:29 +01:00
jaknapper
1ea308a42d Move analysis and saving out of async 2026-05-13 17:54:36 +01:00
Joe Knapper
3bbea44eaf Move saving data out of async, save as json 2026-05-13 17:54:29 +01:00
jaknapper
ab25705edc Move framerate to basecamera, using data_dir 2026-05-13 17:54:29 +01:00
jaknapper
800aea21dc Move to async monitoring 2026-05-13 17:54:29 +01:00
jaknapper
44300eafd6 Measure framerate in non-blocking way 2026-05-13 17:54:29 +01:00
Joe Knapper
7450a0e47c Merge branch 'fom-af' into 'v3'
Record fom as other sharpness metric

Closes #615

See merge request openflexure/openflexure-microscope-server!578
2026-05-13 16:53:28 +00:00
Joe Knapper
07caa1f05f Looser typing of stage positions in autofocus 2026-05-13 17:14:42 +01:00
Joe Knapper
b1791833e2 Clean up data_to_array to not use get attr 2026-05-13 17:14:42 +01:00
jaknapper
563bfcf7be Update move_and_measure, add unit tests 2026-05-13 17:14:42 +01:00
jaknapper
e93d9777a2 Type checking help for libcamera requests 2026-05-13 17:14:37 +01:00
jaknapper
0e1d9cca18 Improvements to properties and docstrings 2026-05-13 17:14:37 +01:00
Joe Knapper
1f5adbb1a5 Ruff 2026-05-13 17:14:37 +01:00
jaknapper
bea7447f26 Clean up from suggestions 2026-05-13 17:14:37 +01:00
Joe Knapper
cab960fe2c Apply suggestions from code review of branch fom-af
Co-authored-by: Julian Stirling <julian@julianstirling.co.uk>
2026-05-13 17:14:36 +01:00
jaknapper
664bb00c12 Allow users to specify method for autofocus 2026-05-13 17:14:36 +01:00
jaknapper
881970ce34 Record fom as other sharpness metric 2026-05-13 17:14:36 +01:00
Richard Bowman
7163823bf7 Remove the leading underscore from ThingServer._api_prefix. 2026-05-13 15:50:29 +01:00
Richard Bowman
a47a569868 Update usage of hold_global_lock
The argument to `ThingServerInterface.hold_global_lock` was changed, so that `True` is now the default behaviour.
This commit updates that in the one place where it's used.
2026-05-13 12:58:50 +01:00
Richard Bowman
b6f4c9972e Exempt stitching and downloading scans from the global lock. 2026-05-13 12:58:50 +01:00
Richard Bowman
608f4ec0d5 Enable global locking.
This commit:
* switches to the LabThings branch
* enables locking when config files are loaded
* Updates jogging so jog moves aren't subject to the lock, but the jog loop is.
2026-05-13 12:58:50 +01:00
Richard Bowman
b00f90aada Remove settings from SmartStackMixin
As properties now take validation settings from the final class, we no
longer need to redefine settings here, so I've removed them.
2026-05-13 11:34:22 +01:00
Richard Bowman
622fa17634 Enable validation for all Things and pick correct branch
This commit updates the branch to use Thing._class_settings instead of FEATURE_FLAGS for a safer way to implement new features.
2026-05-13 11:34:21 +01:00
Richard Bowman
05f92b9b33 Specify the feature branch of LabThings and enable the feature flag.
I've put the feature flag in `openflexure_microscope_server.things.__init__` so that we only need it once, rather than next to every Thing definition.

I decided it was better here than, for example, in the server or cli modules because this way we still get the feature flags even if the Things are served from a different LabThings server.
2026-05-13 11:33:47 +01:00
Joe Knapper
04b7d0d4fa Merge branch 'v3-default-factory-for-dictionaries' into 'v3'
Use a default_factory for dict default values

Closes #750 and #751

See merge request openflexure/openflexure-microscope-server!561
2026-05-13 08:03:52 +00:00
Joe Knapper
31210be9ac Merge branch 'objective-sim' into 'v3'
Scale blur in simulator based on objective

Closes #745

See merge request openflexure/openflexure-microscope-server!567
2026-05-13 08:02:44 +00:00