Loading
Commits on Source 94
-
Kaspar Emanuel authored
-
Kaspar Emanuel authored
-
Kaspar Emanuel authored
-
Kaspar Emanuel authored
-
Joel Collins authored
-
Joel Collins authored
-
Joel Collins authored
-
Joel Collins authored
Picamerax error recovery See merge request !86
-
Joel Collins authored
-
Joel Collins authored
-
Joel Collins authored
-
Joel Collins authored
-
Joel Collins authored
-
Joel Collins authored
-
Joel Collins authored
-
Joel Collins authored
# Conflicts: # poetry.lock
-
Joel Collins authored
Mypy coverage report See merge request !110
-
Joel Collins authored
-
Joe Knapper authored
-
Richard Bowman authored
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.
-
Richard Bowman authored
Allow MissingStage to be explicitly selected See merge request !112
-
Richard Bowman authored
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.
-
Richard Bowman authored
Fix tour placement Closes #199 See merge request !114
-
Richard Bowman authored
-
Richard Bowman authored
Update build instructions See merge request !115
-
Richard Bowman authored
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.
-
Richard Bowman authored
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
-
Richard Bowman authored
The dev tools pane now remembers the last address you entered in "override origin" to save a few clicks when doing local Vue development
-
Richard Bowman authored
Persistent API override setting. See merge request !116
-
Richard Bowman authored
-
Richard Bowman authored
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.
-
Richard Bowman authored
-
Richard Bowman authored
-
Richard Bowman authored
-
Richard Bowman authored
I also increased the precision of the numbers, which makes the step buttons annoyingly useless but allows floating point values without validation errors.
-
Richard Bowman authored
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.
-
Richard Bowman authored
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...
-
Richard Bowman authored
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.
-
Richard Bowman authored
-
Richard Bowman authored
You can now recalibrate the LST without running auto-gain.
-
Richard Bowman authored
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.
-
Richard Bowman authored
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...
-
Richard Bowman authored
-
Richard Bowman authored
To save some typing ``poe serve`` now runs a debug server.
-
Richard Bowman authored
Specifying overrideOrigin in the URL now sets up the store with the modified origin. This is intended for development, and makes it much less annoying to develop with a Vue dev server.
-
Richard Bowman authored
Reset tour button resets the local storage used to mark the tour as done. Overriding the origin can now be done with a query string. This will load the store with the new origin from the start, so might be better for testing some things. I'm not worried about unexpected bugs, as it is quite obvious from the URL what's going on.
-
Richard Bowman authored
vuex-map-fields cleans up code when mapping store state to local computed properties.
-
Richard Bowman authored
-
Richard Bowman authored
-
Richard Bowman authored
More or less everything is now done by setup.py Pipfile simply installs the module in editable mode, which recursively resolves dependencies as defined in setup.py.
-
Richard Bowman authored
-
Richard Bowman authored
-
Richard Bowman authored
We now install with --dev to make sure development dependencies are included. I've also removed "poetry run" from the "poe" commands, as we are already in an active virtual environment, so it's unnecessary (and also broken). Finally, I added a tarball of the vue app to the output distribution.
-
Richard Bowman authored
-
Richard Bowman authored
poe was assuming we were using poetry - I have configured it not to use poetry now. This required using a newer version.
-
Kaspar Emanuel authored
IHI scan style raster See merge request !113
-
Richard Bowman authored
numpy 1.20 deprecates np.float, which was only ever an alias for ``float``. I've replaced all occurrences of np.float with float, as recommended. There should be no change in functionality.
-
Richard Bowman authored
I don't know why these didn't fail before - possibly because of incomplete type information from old numpy... I removed a few annotations because they were failing (e.g. np.sum can return a scalar or an array), but I don't think this should be a problem - the function inputs and return values are still typed.
-
Richard Bowman authored
-
Richard Bowman authored
-
Richard Bowman authored
-
Richard Bowman authored
-
Richard Bowman authored
-
Richard Bowman authored
-
Richard Bowman authored
-
Richard Bowman authored
Move away from poetry Closes #218 See merge request !124
-
Richard Bowman authored
-
Richard Bowman authored
We've switched to pipenv, poetry.lock is now superfluous
-
Richard Bowman authored
-
Richard Bowman authored
-
Richard Bowman authored
-
Richard Bowman authored
None values should be treated the same as missing ones - previously it would just crash.
-
Richard Bowman authored
I've changed the default values in MoveStageAPI so that it correctly handles absolute moves with missing axes. I've also simplified it so it isn't using axes_to_array as that resulted in a confusing code path.
-
Richard Bowman authored
I have now disabled W1203 globally, see comment in pyproject.toml
-
Richard Bowman authored
Fix absolute moves See merge request !126
-
Richard Bowman authored
-
Richard Bowman authored
GPU preview and MJPEG stream settings are now persisted using localStorage. The old code that disabled the stream for local connections now just sets the initial/default value. The initialisation of stream settings is now done in the created() method of streamContent.vue. I've eliminated the "globalsafetogglepreview" event in favour of watching the store.
-
Richard Bowman authored
-
Richard Bowman authored
This was primarily done to disable the warning about f strings in logging statements, globally rather than per-file.
-
Richard Bowman authored
adjust_shutter_and_gain_from_raw now uses a simpler algorithm. The code is longer overall but hides some details in fuctions. I've also split the loop into one for shutter speed and one for gain. This isn't the algorithm that I originally wrote, but it seems to work and is more readable.
-
Richard Bowman authored
-
Richard Bowman authored
-
Richard Bowman authored
Fix auto-exposure and AWB Closes #191 See merge request !119
-
Richard Bowman authored
The code checks for the camera-stage mapper matrix by looking at its truth value. However, this is ambiguous because the matrix has many elements. That means that if it's missing, we get the expected result, but if it's present we get an error. I have avoided dict.get() and instead look it up with [] notation. This will raise a KeyError if it's missing, which I handle helpfully. If the key is present but the value is not castable to an array, we'll get an exception anyway.
-
Richard Bowman authored
-
Richard Bowman authored
I've swapped the ValueError for a RuntimeError subclass to make it clearer what's gone wrong.
-
Richard Bowman authored
Fix handling of missing CSM matrix See merge request !127
-
Richard Bowman authored
After some refactoring, I lost the code that actually saved stream settings to local storage. This commit restores that functionality.
-
Richard Bowman authored
I'm not using vuex-map-fields, so have removed it.
-
Richard Bowman authored
-
Richard Bowman authored
Add minimum scan dimension See merge request !123
-
Richard Bowman authored
Local development improvements See merge request !125
-
Richard Bowman authored
-
Richard Bowman authored