Instruments
Communication and helper functions for lab equipment
If you're reading this, this is a WIP new class-based system of autodetecing instruments and exposing common APIs
Creating instruments
- individual files in neoginstruments will be seperate instruments
- folders designate interchangeable instruments with common apis
- Each folder will result in automatic selection of a instrument
- Each folder will use and document an API
- Each valid instruments file must have a
- name
- hwid: array of valid hardware IDs (for linux)
- use lsusb to get them. IE:"0403:FAF0"
- use "software" to create a virtual instrument
- instrument class
- Must accept the port as its only argument in
__init__
. You can get the serial with port.serial_number
Using instruments
Example:
import neogiinstruments
rotator = neogiinstruments.rotator("rotator1") #creates rotator named rotator1
rotator.instrument_selected = '55114654 - ttyUSB7 - K10CR1'
rotator.instrument.home() #homes the rotator
rotator.update_to_serial()
Each module will return its respective instrument. Multiple distinct verisons of the same instrument can exist.
You can either manually change instrument_selected or use .view()
to make an interactive GUI.
All functions of each instrument are avalible through the .instrument
sub-object.
Utilities
you can call port_table() to print a port table