Represent and communicate with instruments

We call “instruments” all devices that can be more or less directly plug to a computer. This packages provides instrument drivers and utilities to write them.

In FluidLab, the drivers have an attribute interface that contains relatively low-level functions to communicate with the device. Some base interface class are defined in the module fluidlab.instruments.interfaces.

The drivers have also attributes representing values that are saved or can be set in or get from the instruments. Some of these “features” are defined in fluidlab.instruments.features.

For many instruments, the communication with the computer is made directly through simple messages understandable by humans. For these instruments, the communication can be done using VISA (Virtual Instrument Software Architecture), independently of how the communication is done in practice (e.g. with GPIB, RS232, USB, Ethernet).

A mechanism to easily write such drivers is implemented in:

drivers Instrument drivers (fluidlab.instruments.drivers)
interfaces Interfaces with the instruments (fluidlab.instruments.interfaces)
features Features for defining drivers (fluidlab.instruments.features)
iec60488 IEC60488 drivers (fluidlab.instruments.iec60488)

Some drivers of particular “VISA instruments” are organized in the packages:

scope Oscilloscopes (fluidlab.instruments.scope)
funcgen Function generators (fluidlab.instruments.funcgen)
powersupply Power supply (fluidlab.instruments.powersupply)
multimeter Multimeters (fluidlab.instruments.multimeter)
multiplexer Multiplexers (fluidlab.instruments.multiplexer)
sourcemeter Sourcemeters (fluidlab.instruments.sourcemeter)
chiller Chilers (fluidlab.instruments.chiller)
pressure_transducer Pressure transducer (fluidlab.instruments.pressure_transducer)

Other very common communication standards are Modbus and Firewire:

modbus Modbus instruments (fluidlab.instruments.modbus)
firewire Firewire instruments (fluidlab.instruments.firewire)

For other instruments, the communication is done with libraries:

sound Data acquisition using sound input (fluidlab.instruments.sound)

The drivers for the data acquisition boards are also gather in this package:

daq Data acquisition boards (fluidlab.instruments.daq)