Commit graph

2580 commits

Author SHA1 Message Date
Richard Bowman
9b52865f95 Added an implementation of snapImage() to API
Co-authored-by: Kaspar Emanuel <kaspar@monostable.co.uk>
2021-02-23 12:08:20 +00:00
Richard Bowman
bc0995d0cf Added poe serve
To save some typing ``poe serve`` now runs a debug server.
2021-02-18 18:03:42 +00:00
Richard Bowman
3b435ab2ee Deleted obsolete functions 2021-02-18 15:56:11 +00:00
Richard Bowman
414fd55c5b Upgrade numpy
numpy/scipy were mismatched in version, which led to a confusing
import error.  I've removed the numpy version specification entirely
and left it to scipy to ensure numpy
is installed.  This could do with
review in the future...
2021-02-18 14:33:07 +00:00
Richard Bowman
20001e4946 Force installation only from piwheels
Forcing the use of piwheels avoids trying
to install numpy/scipy from source,
which is the Right Answer.

Unfortunately, sometimes packages fail on piwheels, but poetry still
tries to install them.  I've had to fix
pyyaml at 5.4.0 for that reason.
2021-02-18 13:29:02 +00:00
Richard Bowman
1e45640195 Added control to reset LST
You can now recalibrate the LST without running auto-gain.
2021-02-15 20:19:39 +00:00
Richard Bowman
b06dd187ec Fixed args in endpoints 2021-02-15 20:18:34 +00:00
Richard Bowman
069d27bf15 Lock access to picamera
The picamera object isn't thread safe; I have now wrapped all access
in context managers that acquire the BaseCamera.lock

I also added an endpoint to reset the LST without auto-gain.
2021-02-15 20:15:55 +00:00
Richard Bowman
a9709b14ea Added locking to recalibrate functions
When testing the UI I noticed that the different recalibrate routines
don't use locks properly, so they try to run
concurrently.

This commit isn't tested yet...
2021-02-15 19:21:27 +00:00
Richard Bowman
36284c10be UI Improvements
I've added buttons to perform the separate calibrations (gain, AWB)
under the full recalibrate link.
It would be really nice to have a modal dialog though.
2021-02-15 19:17:20 +00:00
Richard Bowman
2f6049610f Added controls for AWB gains,
I also increased the precision of the numbers, which makes the step
buttons annoyingly useless but allows floating point
values without validation errors.
2021-02-15 17:50:39 +00:00
Richard Bowman
0f1a400979 Fixed type hint 2021-02-15 17:04:44 +00:00
Richard Bowman
e6bfc9342b Merge branch 'support-imagej' into 'imjoy-support'
Support open in ImageJ.JS plugin

See merge request rwb27/openflexure-microscope-server!1
2021-02-15 13:49:59 +00:00
oeway
1c8ebfce32 Add todo note 2021-02-14 22:45:18 +01:00
oeway
52c40791a9 Support Engine 2021-02-14 22:40:37 +01:00
oeway
6436034ccb Fix time 2021-02-14 22:21:01 +01:00
oeway
f80500fbb5 Improve showStatus/Message/Progress 2021-02-14 22:20:00 +01:00
oeway
e460c0faff Add template for microscope api and script editor 2021-02-14 21:17:15 +01:00
oeway
3b002d59a5 Add ImageJ.JS and Kaibu to the plugin menu 2021-02-14 20:04:59 +01:00
oeway
a692b90ede Load ITK VTK viewer 2021-02-14 18:16:50 +01:00
oeway
61c49e520f Support ImageJ.JS 2021-02-14 17:40:39 +01:00
Richard Bowman
ff322decfc updated poetry lockfile 2021-02-11 19:37:40 +00:00
Richard Bowman
4c27d88b37 Fixed description and linted 2021-02-11 15:54:58 +00:00
Richard Bowman
5527c4eb7b Fix auto-exposure and AWB
The previous "auto calibrate" button for the camera relied on a
combination of the built-in autoexposure/AWB and
some JPEG-based tweaks to get the exposure settings right.
This often led to confusing results, e.g. oscillating between green and
 pink images.

 I have rewritten the auto-exposure code to adjust gain and shutter
 speed based on the raw image.  This seems to be
 very reliable, at the expense of being quite slow.  That's a price I'm
 happy to pay.

 I have replaced both the camera's auto white balance and my
 JPEG-based AWB hack with a single-shot AWB method that
 looks at the raw image.
2021-02-11 14:30:20 +00:00
Richard Bowman
cfa5297a23 Added an "open in kaibu" link 2021-02-09 12:45:48 +00:00
Richard Bowman
0a0687cdd6 Added imjoy support
We now have an imjoy tab and the ability to load plugins
2021-02-09 11:46:29 +00:00
Richard Bowman
fc86745006 Fix whitespace 2021-02-09 10:19:56 +00:00
Richard Bowman
864e4c9c41 Merge branch 'improve-local-development' into 'master'
Persistent API override setting.

See merge request openflexure/openflexure-microscope-server!116
2021-02-09 10:13:54 +00:00
Richard Bowman
2b3c0a9bac Make the origin override persistent
The dev tools pane now remembers the last address you entered in
"override origin" to save a few clicks  when doing local Vue development
2021-02-09 09:46:52 +00:00
Richard Bowman
792e782968 Validate scan shape on the server
The scan API view now uses a schema with validation
constraints to enforce a minimum size of 1 in any dimension.
This requires better error handling in the app, which I've added.
It also needs a fix in LabThings so the error propagates correctly
2021-02-09 09:21:56 +00:00
Richard Bowman
df5d0dab68 Add minimum scan dimension
It doesn't make sense to allow fewer than 1 image in any dimension
of a scan.  Currently, supplying 0 gives a division by zero error.
I've added min="1" to each control.
2021-02-08 20:26:16 +00:00
Richard Bowman
f4e3f1f277 Merge branch 'update-readme' into 'master'
Update build instructions

See merge request openflexure/openflexure-microscope-server!115
2021-02-08 09:32:12 +00:00
Richard Bowman
d72240ef03 Update build instructions 2021-02-08 09:19:46 +00:00
Richard Bowman
a9ef605c33 Merge branch 'fix-tour-placement' into 'master'
Fix tour placement

Closes #199

See merge request openflexure/openflexure-microscope-server!114
2021-02-06 15:32:27 +00:00
Richard Bowman
afbb71607d Fix placement of tour messages for icons
The tour pop-ups were getting stuck in the tab icon container.
Explicitly specifying that they could overflow said container,
and setting them to show to the right, seems to have fixed this issue.
2021-02-06 15:32:27 +00:00
Richard Bowman
de9b34e332 Merge branch 'allow-dummy-stage' into 'master'
Allow MissingStage to be explicitly selected

See merge request openflexure/openflexure-microscope-server!112
2021-02-04 20:31:22 +00:00
Richard Bowman
9c069ef372 Allow MissingStage to be explicitly selected
You can now set the stage type to "MissingStage" in
microscope_configuration.json to stop the server looking for the stage.
A warning is logged to make it obvious what's happening.
2021-02-04 20:31:20 +00:00
Joe Knapper
3d47591cc9 Explicitly state IHI scan style as raster rather than server default 2021-02-03 12:18:57 +00:00
Joel Collins
8e4d34205f Isort 2021-01-08 12:34:41 +00:00
Joel Collins
18b2dabbd2 Merge branch 'mypy-coverage' into 'master'
Mypy coverage report

See merge request openflexure/openflexure-microscope-server!110
2021-01-08 11:08:05 +00:00
Joel Collins
5f48be3807 Merge branch 'master' into 'mypy-coverage'
# Conflicts:
#   poetry.lock
2021-01-08 10:51:15 +00:00
Joel Collins
bb7d543ecd Actually removed pynpm and updated sphinx 2021-01-08 10:22:04 +00:00
Joel Collins
5232b36644 Test cobertura mypy coverage report 2021-01-08 10:05:31 +00:00
Joel Collins
180d73f9c4 Upgraded to LabThings ^1.2.2 2021-01-07 10:23:46 +00:00
Joel Collins
bd7833c20f Test app object initialises 2021-01-07 10:23:27 +00:00
Joel Collins
ef0f74838a Removed unused import 2021-01-07 10:09:43 +00:00
Joel Collins
e8560a1d5d Removed unused ERROR_SOURCES 2021-01-06 17:31:58 +00:00
Joel Collins
61554af270 Restructured camera rescue 2021-01-06 17:31:45 +00:00
Joel Collins
3501a5b624 Merge branch 'picamera-rescue' into 'master'
Picamerax error recovery

See merge request openflexure/openflexure-microscope-server!86
2021-01-05 17:11:03 +00:00
Joel Collins
f877c4f745 Added Spiral scan to standard options 2021-01-05 14:30:49 +00:00