Commit graph

1116 commits

Author SHA1 Message Date
Julian Stirling
2f205a35e9 Fix docstrings 2026-02-16 17:13:27 +00:00
Julian Stirling
5af8ad5192 Split jog dequing from calling commands 2026-02-16 17:13:27 +00:00
Richard Bowman
9ed850cc68 Switch move buttons to use jog
This implements a nicer version of jogging, with a defined interval of 1/3 second. This can be tuned depending on what we think makes sense.

It might be good to re-use this for handling keypresses.
2026-02-16 17:13:27 +00:00
Richard Bowman
abda60adf6 Prevent accidental queueing of jog commands 2026-02-16 17:12:17 +00:00
Richard Bowman
4d445396b2 Update position property during and after jog 2026-02-16 17:12:17 +00:00
Richard Bowman
04e7fa30bd Format fixes 2026-02-16 17:12:17 +00:00
Joe Knapper
79e8230ac5 Merge branch 'Extend-autofocus-in-scan' into 'v3'
Increase dz range to 400 to 3000

Closes #675

See merge request openflexure/openflexure-microscope-server!478
2026-02-16 17:11:03 +00:00
Richard Bowman
3753341893 First working version of jog
I've fixed a few issues, used the right exception for queue timeouts, and added a __repr__ to jog commands for nicer debug output.

This now works - it's not flawlessly smooth, but it's pretty close. The limiting factor seems to be the repeat rate of the keypresses in javascript.
2026-02-16 16:50:10 +00:00
Richard Bowman
e9b4d73084 First implementation of interruptable jog moves.
This introduces a new move command, "jog", which is a relative move that may be interrupted. The idea is that a client may send repeated requests to invoke "jog" actions, and each action replaces the previous one. This should mean that a continuous stream of "jog" requests results in continuous motion of the stage.

Motion may be stopped by cancelling an ongoing `jog` action, or by waiting for the move to complete.

My rationale for implementing it this way is that we have a built in fail-safe, because the stage will automatically stop after the current `jog` move completes, unless it gets another request. Using a short move (e.g. 0.5s) means it should never overrun by more than that.
2026-02-16 16:50:10 +00:00
Joe Knapper
a027111022 Apply suggestions from code review of branch Extend-autofocus-in-scan
Co-authored-by: Julian Stirling <julian@julianstirling.co.uk>
2026-02-16 13:38:53 +00:00
Julian Stirling
015d6c5f03 Developer Mode set from environment variable 2026-02-15 17:11:56 +00:00
Julian Stirling
d4f26e8536 Fix static file check and associated tests 2026-02-15 16:03:06 +00:00
Antonio Anaya
e438b642bd ui_migration lint(fix): ruff format 2026-02-15 02:57:41 -06:00
Antonio Anaya
1b16917542 ui_migration lint(fix): ruff fix 2026-02-15 02:47:04 -06:00
Antonio Anaya
5a62b92f45 ui_migration fix(deps): --preliminary-- --python-- added developer options that add cors options to enable connecting ui from another IP 2026-02-13 19:24:06 -06:00
Joe Knapper
3d83d0ee71 Apply and format error message suggestions 2026-02-13 18:52:58 +00:00
Joe Knapper
2b0af30019 Apply suggestions from code review of branch stitching-error-handling
Co-authored-by: Julian Stirling <julian@julianstirling.co.uk>
2026-02-13 18:48:15 +00:00
Joe Knapper
03a8e2ab79 Increase dz range to 500 to 3000 2026-02-13 16:40:56 +00:00
Joe Knapper
704fc5569f Merge branch 'flash-led-sim' into 'v3'
Illumination Thing

See merge request openflexure/openflexure-microscope-server!468
2026-02-12 16:37:53 +00:00
Joe Knapper
bb5cce3d4e Only generate frame if LED is on 2026-02-12 13:54:12 +00:00
Joe Knapper
fdf33ce4a8 Apply suggestions from code review of branch flash-led-sim
Co-authored-by: Julian Stirling <julian@julianstirling.co.uk>
2026-02-12 13:48:12 +00:00
Julian Stirling
18477a663d Define flash in illumination base class 2026-02-12 13:40:20 +00:00
Joe Knapper
f6ae4807ff Manually handle out of storage and JPEG too big errors 2026-02-12 11:46:14 +00:00
Julian Stirling
2a38375040 Consolidate moves_between and total_moves_between into 1 function with switchable metrics 2026-02-12 11:00:03 +00:00
jaknapper
8081dc9426 Split moves_between to support Manhattan or Chebyshev distance 2026-02-11 15:13:47 +00:00
Julian Stirling
511b37176e Add clarifying docstring 2026-02-11 11:03:08 +00:00
Julian Stirling
5d5bae7f79 Apply suggestions from code review of branch More-workflow-layers
Co-authored-by: Joe Knapper <joe.knapper@glasgow.ac.uk>
2026-02-11 11:03:08 +00:00
Julian Stirling
af5c8f01da Update scan_planner module docstring 2026-02-11 11:03:08 +00:00
Julian Stirling
351a66a42c Cleaning up workflows and fixing tests. 2026-02-11 11:03:08 +00:00
Julian Stirling
86fa48fb9b Update select_nearby_focus_site to use moves between 2026-02-11 11:03:07 +00:00
Julian Stirling
9e477a26d8 Simplify planners a little to consolidate snake and raster 2026-02-11 10:39:30 +00:00
Joe Knapper
16458db85b Fix simulated imports 2026-02-11 10:26:04 +00:00
Joe Knapper
676d34842a Apply suggestions from code review of branch flash-led-sim
Co-authored-by: Julian Stirling <julian@julianstirling.co.uk>
2026-02-11 10:19:19 +00:00
Joe Knapper
4d788a2817 Remove flash from stage baseclass, add to sim config 2026-02-10 22:19:49 +00:00
jaknapper
5682b4d28d Illumination Things for sangaboard and simulator 2026-02-10 18:42:59 +00:00
Joe Knapper
8435f6ae98 Move illumination to new IlluminationThing 2026-02-10 18:06:21 +00:00
Julian Stirling
1221b6ca02 Apply suggestions from code review of branch More-workflow-layers
Co-authored-by: Joe Knapper <joe.knapper@glasgow.ac.uk>
2026-02-10 16:40:11 +00:00
Julian Stirling
0e5f9f46ca Fix docstring error 2026-02-10 16:37:32 +00:00
Julian Stirling
15798d9b7d Further layering of the classes for scan workflows 2026-02-10 16:02:18 +00:00
Joe Knapper
1de4366df7 Flash LED endpoint in simulator for parity 2026-02-10 15:59:18 +00:00
jaknapper
1f01717a1b Fix UI workflow test as order changed 2026-02-10 14:24:41 +00:00
jaknapper
f1845c3039 RectangleWorkflow as a baseclass 2026-02-10 14:05:38 +00:00
jaknapper
6294cde471 Fully subclass Rectangle basescanner for raster and snake 2026-02-09 19:35:19 +00:00
Joe Knapper
1a0dd71f30 Intermediate level RectangleScan class for all three scanners 2026-02-09 18:48:49 +00:00
Joe Knapper
3beb8e1147 Auto-populate workflow dropdown 2026-02-09 18:48:49 +00:00
Joe Knapper
0177596fb6 Add raster scan, with generic typing to allow subclassed settings 2026-02-09 18:48:49 +00:00
Joe Knapper
eb88e1f1c0 Apply suggestions from code review of branch snake-scan
Co-authored-by: Julian Stirling <julian@julianstirling.co.uk>
2026-02-09 16:05:49 +00:00
Joe Knapper
1c17b27c05 Apply suggestions from code review of branch snake-scan
Co-authored-by: Julian Stirling <julian@julianstirling.co.uk>
2026-02-09 16:05:22 +00:00
Joe Knapper
7413aa57f8 Docstring and typehints suggestions from @julianstirling 2026-02-09 15:08:53 +00:00
Joe Knapper
f230eef2dc New scan workflow for snake scans, move next pos into scan baseclass
Update tests that were testing wrong method, update all to new select_nearby_focus_site
2026-02-09 13:19:10 +00:00