Giter Site home page Giter Site logo

autolab-project / autolab Goto Github PK

View Code? Open in Web Editor NEW
25.0 4.0 7.0 5.55 MB

Python package for laboratory instruments control and scientific experiments automation

Home Page: https://autolab.readthedocs.io/

License: GNU General Public License v3.0

Python 100.00%
automation devices experiments gui interface laboratory measures scan scanning scientific

autolab's People

Contributors

bgarbin avatar bruno066 avatar pymatj avatar python-simulation avatar qcha41 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

autolab's Issues

Example driver using serial

Hey guys,

Do you have an example of a driver that uses a serial port? and the way to properly write the Local Configuration file for it?

Thanks,
R

[issue] Devices not closing when closing GUI

After discussing w/ @bgarbin I will open a few issues and feature requests, and start to work on PRs.
Starting with this one, even though I see this appears somehow in the todolist ("autolab.close_all_devices()") :
When using the GUI and closing, the close() function of each driver should be called before the GUI actually closes, ensuring that all devices are returned to a safe state and all connection ports are available again.

EDIT:
This issue is already solved by PR #3 (specifically commit 06237e4 )
If this PR contains too many changes at once, consider doing a separate one for this issue.

[issue] set_local_config and get_local_config force parameter names in lowercase

When saving a local configuration using the autolab.set_local_config() function, the arguments are written to the local_config.ini file in lowercase regardless of the one in the Driver_ class.
Same, if the local_config.ini file is set up by hand with the proper case, loading through the GUI passes these parameters in lowercase (and thus the init call fails).

So far the only workaround is to leave all arguments in the Driver_ class in lowercase.

Todo list

[Ideas to discuss / to approve]

  • remove get_driver shortcut function
  • In user home folder, organize devices in folders containing a profile.ini file rather than setting everything in a general devices_config.ini file

[To do in ~order]

  • add additional custom drivers path feature. Provide path in \home\autolab\drivers\additional_paths.txt
  • make DriverInfos self sufficient (no need to go deeper into Releases objects) = add shortcut methods in class DriverInfos (connect, help) last version by default but version can be specified
  • implement Devices
  • Implement Experiments
  • Implement GUI

[OLD, to clean]

  • Find a way to create the local folder during the package installation with pip
  • autolab.close_all_devices()
  • Fix the error appearing sometimes when the GUI is launched with the shell command 'autolab'.
  • Develop 3D display in GUI Scanner
  • Develop GUI Histograms
  • Develop multidimensions scans
  • Add curve style options

Query on how to load my own written driver

Hi, Thank you for this excellent package. I have written a Driver class for my own Driver, as instructed on your Documentation. But, I do not understand how to load my custom Driver. Is it possible to include a short example in the official documentation? Thank you

[enhancement] [GUI] Automatically read some variables when instantiating

I would like to have the option to read some of the variables created in the get_driver_model upon initialization.

Some variables might be unsafe to read, so this cannot be a default solution, but some might be important: as an example, I have a laser that gets 'armed' upon initialization, but the checkbox in the GUI is created with a default 'False' state. I thus need a first 'read' to set it in the correct state, otherwise I end up in a situation where the display is the inverse of the actual state.

Two possibilitie:

  1. only read the boolean variables (by default). I think this should be safe and helps to start with the GUI in a correct state
  2. add an option to read the value immediately upon instantiation.

[issue] Instantianting an instrument block the main GUI

When instantiating an instrument, the main GUI is not responsive.
This can be annoying for some instruments that are long to instantiate (e.g. a laser that needs arming etc.).

Would it be possible to run the instantiation in a dedicated thread (maybe showing on the main GUI that something is happening using a color code/flashing/whatever) and update the GUI (with the QTreeWidgetItems) only after the init has finished ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.