Commit graph

1114 commits

Author SHA1 Message Date
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
Richard Bowman
cb9270c9e8 Use a default_factory for dict default values
`backlash_steps` and `axis_inverted` were `lt.setting`s with default values that were dictionaries. This means they had mutable default values, which caused crosstalk in the test suite.

This commit swaps them to default factory functions. This should isolate instances from each other and stop the offending behaviour.
2026-05-13 08:26:52 +01:00
jaknapper
ec83556da7 Convert server prefix to str for Mock tests 2026-05-12 15:42:50 +01:00
jaknapper
645a6dd136 Update endpoints for logs 2026-05-12 14:23:33 +01:00
Julian Stirling
92619e2131 Merge branch 'calibration_thing' into 'v3'
Calibrate settling times after moves

See merge request openflexure/openflexure-microscope-server!207
2026-05-11 12:32:30 +00:00
jaknapper
c171e5bdde Remove hold from sharpness monitor 2026-05-11 12:49:20 +01:00
jaknapper
ffa023dfa9 Correct data types in sharpness monitors 2026-05-11 11:04:55 +00:00
jaknapper
500e08555c Measure settling time action and hold in sharpness monitor 2026-05-11 11:04:55 +00:00
Julian Stirling
b6efb73cba Fix data directory save location and mount path 2026-05-11 11:07:38 +01:00
Joe Knapper
906b8be82c Merge branch 'start-gallery-thing' into 'v3'
Start implementing GalleryThing

See merge request openflexure/openflexure-microscope-server!576
2026-05-07 09:51:47 +00:00
Julian Stirling
c7bb3e3c11 Improve some attribute/method names 2026-05-07 09:48:49 +01:00
Julian Stirling
aeb337f9d1 Merge branch 'choose_int_downsample' into 'v3'
Choose a correlation resize factor rounded to an int

See merge request openflexure/openflexure-microscope-server!541
2026-05-07 08:14:41 +00:00
Julian Stirling
a16d47ed61 ScanList gets scans from GalleryThing, no ongoing scans shown. 2026-05-06 16:01:09 +01:00
Julian Stirling
4583151345 Add runtime checkable protocol for checking gallery compatibility. 2026-05-06 14:42:44 +01:00
Julian Stirling
93d7d75b0d Create basic gallery class that finds Things that want to show data 2026-05-06 10:05:34 +01:00
Julian Stirling
cc681a666c Change shutdown command depending on OS versions 2026-04-30 14:48:35 +01:00
Julian Stirling
5b14f8d820 Add method for checking OS version. 2026-04-30 14:14:24 +01:00
Richard Bowman
9334e99551 Fix typing of JPEGSharpnessMonitor attributes
appends should be done on the underlying `_`-prefixed attributes, not on the `Sequence` typed properties.
2026-04-28 14:58:55 +01:00
Richard Bowman
d2aebf8b10 Make properties of JPEGSharpnessMonitor read-only
For thread-safety reasons we should not modify the lists used by
`JPEGSharpnessMonitor`. This commit marks them as read-only properties
and types them as `Sequence` so `mypy` should flag if they get modified.
2026-04-28 14:50:04 +01:00
Joe Knapper
924676ff5d Merge branch 'stack-trends' into 'v3'
Stack trends

Closes #752

See merge request openflexure/openflexure-microscope-server!564
2026-04-16 12:20:01 +00:00
Joe Knapper
4da8172a16 Updates from review, mark tests as allowed to fail 2026-04-16 11:49:04 +01:00
Joe Knapper
271c45b873 Scale blur in simulator based on objective 2026-04-09 16:16:59 +01:00
jaknapper
bc6ea9a1ca Manually test for increasing or decreasing stacks 2026-04-02 17:43:52 +01:00
Beth Probert
7106ce1302 Set debug default value to False 2026-04-02 15:09:55 +01:00
Beth Probert
01954167ab Merge branch 'v3' into labthings-debug-logging-config 2026-04-02 10:50:06 +01:00