Preset capture values

Hi there. Is there a way to present the values for the capture fields?
For example: have the X-step size=5000, Y-step size=5000, and Z-step size=500


This is for the ‘Stack and Scan’ settings?
Currently those values are volatile and are set to some central version of default. It must be possible to make them nonvolatile. @jc2450 made the x-y-z step sizes stay set in the ‘navigate’ page which must have been similar.

Hi William. Yes, for the stack and scan settings.

Hi @dgrosen when you say “preset” do you mean you’d like them to remember their previous values, or you’d like to have a number of ready-made settings that you can swap between? The former should be quite simple, the latter would take a bit more effort but ought to be possible in time.

If you’re just keen to have the step size and number of steps remembered, could you open an issue on the software repository?



Thanks Richard. I find myself having to type all the settings again everytime I turn on the machine. it will be nice if it could remember the values

The underlying assumption of the Openflexure Server is that it is always on. The Pi is kept running, but you may or may not be connected with a local or remote Openflexure Connect or web browser interface.
Any volatile settings, like scan settings, are lost when you close and open a connection. Non volatile settings, like Backlash, x,y,z move step size and direction, remain when you close and open a new connection, but are reset if the server is stopped.
Some things are more like Configuration. The camera and stage calibration remain when the server is restarted.
The current motor position is also not reset, but it is not stored by the server (I think). That is in nonvolatile memory on the Sangaboard/Arduino. It will remain even when the operating system is replaced.
I think it would be useful to have more of the user settings stored, and not just stored for new connections but also when the microscope is off. My understanding is that that would be a fairly big change as the information needs to go somewhere. Probably a new JSON.
(Edit numerous typos)

@WilliamW I think it’s not quite that tricky. There are currently 4 places that infromation persists:

  • Config files on the server
  • Variables in the Python server (volatile, lost when you restart)
  • Variables/form fields in the Javascript client (volatile, lost when you close the interface)
  • “Local Storage” on the Javascript client (non-volatiel but not shared between clients)

Pretty much all the important variables on the server are already persisted through config files, so the server’s configuration is more or less non-volatile, as are e.g. the camera settings.

The settings @dgrosen is talking about are currently not persisted anywhere. I’m not sure if we’d want to store these on the server, as really they are a client-specific thing. However, saving them to local storage is a minor change to the client. This is how lots of websites remember your login, for example. I think it’s arguably closer to the behaviour you might expect, and doesn’t require any server modifications.