BaseDevice

class lsst.ts.ess.common.device.BaseDevice(name: str, device_id: str, sensor: BaseSensor, baud_rate: int, callback_func: Callable, log: Logger)

Bases: ABC

Base class for the different types of Sensor Devices.

This class holds all common code for the hardware devices. Device specific code (for instance for a serial or an FTDI device) needs to be implemented in a sub-class.

Parameters:
namestr

The name of the device.

device_idstr

The hardware device ID to connect to. This can be a physical ID (e.g. /dev/ttyUSB0), a serial port (e.g. serial_ch_1) or any other ID used by the specific device.

sensorBaseSensor

The sensor that produces the telemetry.

baud_rateint

The baud rate of the sensor.

callback_funcCallable

Callback function to receive the telemetry.

loglogging.Logger

The logger to create a child logger for.

Methods Summary

basic_close()

Close the Sensor Device.

basic_open()

Open the Sensor Device.

close()

Generic close function.

open()

Generic open function.

readline()

Read a line of telemetry from the device.

Methods Documentation

abstract async basic_close() None

Close the Sensor Device.

abstract async basic_open() None

Open the Sensor Device.

async close() None

Generic close function.

Stop the telemetry loop. Then check if the device is open and, if yes, call basic_close.

async open() None

Generic open function.

Check if the device is open and, if not, call basic_open. Then start the telemetry loop.

Raises:
RuntimeError

In case the device already is open.

abstract async readline() str

Read a line of telemetry from the device.

Returns:
linestr

Line read from the device. Includes terminator string if there is one. May be returned empty if nothing was received or partial if the readline was started during device reception.