Commit graph

1151 commits

Author SHA1 Message Date
Julian Stirling
4dfb252439 Add functionality to switch OpenCV camera without restarting the server. 2026-02-19 16:46:41 +00:00
Julian Stirling
484c7a757e Apply suggestions from code review of branch numerical-input-limits
Co-authored-by: Joe Knapper <joe.knapper@glasgow.ac.uk>
2026-02-19 15:36:44 +00:00
Julian Stirling
e66fe5a35a Add way to set spinner step without changing HTTP API 2026-02-19 13:35:14 +00:00
Julian Stirling
cd14f470f6 Use lt.property/setting validatiors to set numerical input range and step 2026-02-19 13:34:41 +00:00
Julian Stirling
eb21ca9aef Apply suggestions from code review of branch simulator-zoom
Co-authored-by: Joe Knapper <joe.knapper@glasgow.ac.uk>
2026-02-19 10:37:57 +00:00
Julian Stirling
80c78fbc5e Refactor image simulation for speed 2026-02-18 20:20:00 +00:00
Joe Knapper
94a9c2be8f Use options argument in UI for objective 2026-02-18 16:59:29 +00:00
Joe Knapper
01012f52a3 Crop canvas based on objective property 2026-02-18 16:59:27 +00:00
Julian Stirling
6f997cc990 Merge branch 'stage-setting-buttons' into 'v3'
Add recentre and ROM test buttons to stage settings

Closes #502

See merge request openflexure/openflexure-microscope-server!482
2026-02-18 16:46:20 +00:00
Joe Knapper
a6b95f0948 Merge branch 'dropdown-gui' into 'v3'
Optional options in UI property control become dropdown

See merge request openflexure/openflexure-microscope-server!477
2026-02-18 16:43:45 +00:00
Joe Knapper
3f7de554d9 Merge branch 'jogging' into 'v3'
Generalised Jogging

Closes #680

See merge request openflexure/openflexure-microscope-server!476
2026-02-18 16:20:42 +00:00
Joe Knapper
a01813f053 Cleaner logging in stage-measure 2026-02-18 15:21:13 +00:00
Julian Stirling
41c9c58f42 Merge branch 'action-modal-w-stream' into 'v3'
CSM modal shows stream

Closes #678

See merge request openflexure/openflexure-microscope-server!483
2026-02-18 15:10:44 +00:00
Joe Knapper
decbbfd14b Apply suggestions from code review of branch dropdown-gui 2026-02-18 14:46:17 +00:00
Joe Knapper
219861cbac Stream progress in UI.py, resize modal 2026-02-18 14:08:18 +00:00
Julian Stirling
88c087b8dd Options for server specified property control allow different values and display names 2026-02-18 12:50:49 +00:00
Joe Knapper
5ae0f903d8 Use dropdown separated from dataType in Vue 2026-02-18 12:50:49 +00:00
Joe Knapper
ae81520494 Optional options in UI property control become dropdown 2026-02-18 12:50:49 +00:00
Julian Stirling
f337bda289 Merge branch 'slow-dummy-z' into 'v3'
Reduce the blur for a given z movement in simulation, to improve autofocus.

See merge request openflexure/openflexure-microscope-server!484
2026-02-18 11:04:58 +00:00
Julian Stirling
00a96fec4e Merge branch 'sangaboard-wiki' into 'v3'
Add URL to wiki if Sangaboard firmware out of date

Closes #624

See merge request openflexure/openflexure-microscope-server!486
2026-02-17 17:56:39 +00:00
Julian Stirling
ea3de5f45d Apply suggestions from code review of branch jogging
Co-authored-by: Joe Knapper <joe.knapper@glasgow.ac.uk>
2026-02-17 17:56:26 +00:00
Joe Knapper
3329d8f672 Merge branch 'stitching-error-handling' into 'v3'
Manually handle out of storage and JPEG too big errors

Closes #570

See merge request openflexure/openflexure-microscope-server!472
2026-02-17 13:54:55 +00:00
jaknapper
143bbdfea1 Add URL to wiki if firmware out of date 2026-02-17 13:42:11 +00:00
Julian Stirling
56f68db5ca Move all dummy stage movement into a thread 2026-02-17 02:11:01 +00:00
Julian Stirling
752ef3a80c Reduce the blur for a given z movement in simulation, to improve autofocus. 2026-02-17 02:07:06 +00:00
Julian Stirling
96ff243239 Remove an method from BaseStage that is not hardware specific 2026-02-16 22:08:28 +00:00
Julian Stirling
8a77c09305 Add some basic tests for base stage implementation 2026-02-16 21:37:05 +00:00
Julian Stirling
10f73cfb76 Read Sangaboard step time from board 2026-02-16 17:47:25 +00:00
Julian Stirling
7ed718cbae Estimate move duraction added to each stage class 2026-02-16 17:31:40 +00:00
Julian Stirling
f4d11b3c83 Simplify JogCommand class structure, and remove unneeded event logic 2026-02-16 17:31:39 +00:00
Julian Stirling
eb79905581 Removed the received Event as waiting for forces every jog to be queued and dequeued 2026-02-16 17:31:39 +00:00
Julian Stirling
728880e49d Fix jog queue blocking waiting to put new commands. 2026-02-16 17:31:39 +00:00
Julian Stirling
f1d974c922 Improve some jogging docstrings 2026-02-16 17:31:39 +00:00
Julian Stirling
61666a116b Simulation jog 2026-02-16 17:13:27 +00:00
Julian Stirling
70dd7bd994 Generalise jog 2026-02-16 17:13:27 +00:00
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