Skip to content

nikhartman/qdotweb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

qdotweb

At its core, qdotweb is a Flask wrapper for the PyVISA communication package.

The goal is to build a system where all instrument control is done via HTTP methods.

The requirements are fairly loose; the number of instruments is relatively small (<10), no more than a few clients need access to the instruments, and the request rates are no more than 100Hz.

Benefits

  1. Clients can write instrument control software in any language with access to HTTP.
  2. Multiple clients can access the same hardware without conflict over which client controls the resource.
  3. Multiple requests can be sent asyncronously on the client side to speed up data collection.

What works:

Basic communication (connect, close, read, write, query) and client access using the Flask Development server.

What needs to be done:

  1. Blocking using file creation/process IDs to prevent multiple clients from trying to access the same VISA resource.
  2. Deployment using something other than the Flask development server. The Flask server is only able to handle one request at a time, while leaving others waiting. In the end, you should only have to wait if the instrument you want to use (or GPIB interface you want to use) is blocked by a lock file.
  3. Security. Since these instruments are connected to thousands of dollars of equipment and irreplaceable samples, we need some decent security. Maybe some sort of username, password, session id type of system.
  4. Functions to handle reading of lists from instruments (wrap those that already exist in VISA).

About

a flask wrapper for pyvisa

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published