Note

General device communication concepts are described on the corresponding page.

Basics of sensors communication

Basic example

Basic sensors usually only implement a handful of functions related to reading out the measurements (possibly on different channels) and setting up measurements modes:

>> gauge = Pfeiffer.TPG260("COM1")  # connect to the gauge
>> gauge.enable(1)  # enable the first channel (usually it's already enabled)
>> gauge.get_pressure()  # read pressure at the default channel (1)
100E3
>> gauge.close()

Application notes and examples

Here we talk more practically about using pylablib to perform commons sensor tasks.

Readout

The main readout methods almost always start with get_ prefix, e.g., get_pressure, get_temperature, or get_level. In some cases there would be two different measurement modes: one which just reads the latest measurement result, and one which initializes the measurement, waits until it’s done, and returns the result. These two approaches may be implemented differently in different devices, and it is addressed in their description:

>> meter = Cryomagnetics.LM500("COM1")
>> meter.get_level(1)  # immediately return the latest reading
20.0
>> meter.get_level(1)  # return the same reading
20.0
>> meter.measure_level(1)  # initialize a new measurement; takes some time
19.8

Non-numerical values

In some cases the readout method would return a non-numerical values. This usually happens when the sensor readings are outside of its range, or if it is in a wrong state (off, warming up, error, etc.) These cases are documented in the querying method description:

>> meter = Ophir.VegaPowerMeter("COM1")
>> meter.get_power()  # power is higher than the current range
'over'
>> meter.set_range_idx(0)  # set the maximal power range
>> meter.get_power()  # now the reading is numerical
10E-3

Units

Unless absolutely necessary and obvious, all the readout values are specified in SI units (even, e.g., laser frequency in Hz, or pressure in Pa). In rare cases when the devices allows for selection of readout units (e.g., Pfeiffer TPG260 gauges), it only affects the displayed value, but not the results returned by the corresponding methods:

>> gauge = Pfeiffer.TPG260("COM1")
>> gauge.set_units("pa")
>> gauge.get_pressure()
100E3
>> gauge.set_units("mbar")
>> gauge.get_pressure()  # pressure still in Pa
100E3
>> gauge.get_pressure(display_units=True)  # pressure in display units
1000

Channel selection

Some gauges support simultaneous readout on several channels. In this case, all of their methods take an additional channel (in most cases) argument, which specify the read channel.

The channels are usually specified by their index starting from 0 or 1, although some devices adopt more complicated labeling schemes (e.g., Lakeshore 218 temperature sensor can only assign a sensor type to a group of 4 sensors, which is labeled "A" or "B"). The exact specification is given in the specific class description.

Currently supported sensors