Skip to content

Latest commit

 

History

History
25 lines (15 loc) · 1.53 KB

README.md

File metadata and controls

25 lines (15 loc) · 1.53 KB

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).