KeysightElectrometerController

class lsst.ts.electrometer.KeysightElectrometerController(csc, log=None)

Bases: ElectrometerController

Class that provides high level control for the Keithley electrometer. It inherits methods from the general electrometer controller

Attributes Summary

connected

Methods Summary

check_error(from_command)

Check the error. Parameter --------- from_command : str | None Tells us where the check error is being called from.

configure(config)

connect()

continuous_scan(scan_duration)

Part of start scan dt for Keysight.

disconnect()

get_avg_filter_status()

Get the average filter status.

get_config_schema()

get_integration_time()

Get the integration time value.

get_intensity()

Get the intensity.

get_med_filter_status()

Get the median filter status.

get_mode()

Get the mode/unit.

get_range()

Get the range value.

get_voltage_level()

get_voltage_limit()

get_voltage_range()

get_voltage_source_status()

make_primary_header()

Make primary header for fits file that follows Rubin Obs.

parse_buffer(response[, num_categories])

Parse the buffer values.

perform_zero_calibration([mode, auto, ...])

This enables the zero check and sets the mode and range before every measurement.

prepare_scan()

Prepare the keithley for scanning.

send_command(command[, has_reply, timeout])

set_digital_filter(activate_filter, ...)

Set the digital filter(s).

set_integration_time(int_time)

Set the integration time.

set_mode(mode)

Set the mode/unit.

set_range(set_range)

Set the range.

set_voltage_level(level)

set_voltage_limit(limit)

set_voltage_range(range)

setup_scan()

Sets up the electrometer to prepare for scan.

start_scan([group_id])

Start storing values in the Keithley electrometer's buffer.

start_scan_dt(scan_duration[, group_id])

Start storing values in the Keithley electrometer's buffer, for a set duration.

stop_scan()

Stop storing values in the electrometer.

toggle_voltage_source(toggle)

write_fits_file(raw_data, data_format)

Write fits file of the intensity, time, and temperature values.

Attributes Documentation

connected

Methods Documentation

async check_error(from_command: str | None)

Check the error. Parameter ——— from_command : str | None

Tells us where the check error is being called from

configure(config)
async connect()
async continuous_scan(scan_duration)

Part of start scan dt for Keysight.

async disconnect()
async get_avg_filter_status()

Get the average filter status.

classmethod get_config_schema()
async get_integration_time()

Get the integration time value.

async get_intensity()

Get the intensity.

async get_med_filter_status()

Get the median filter status.

async get_mode()

Get the mode/unit.

async get_range()

Get the range value.

async get_voltage_level()
async get_voltage_limit()
async get_voltage_range()
async get_voltage_source_status()
make_primary_header()

Make primary header for fits file that follows Rubin Obs. format.

parse_buffer(response, num_categories=2)

Parse the buffer values.

Parameters:
responsestr

The response from the read buffer command.

Returns:
intensitylist

The intensity values

timelist

The time values

temperaturelist

The temperature values.

unitlist

The unit values.

voltagelist

The voltage values.

async perform_zero_calibration(mode=None, auto=None, set_range=None, integration_time=None)

This enables the zero check and sets the mode and range before every measurement.

Parameters:
modestr | None

Mode of measurement, CURR, CHAR, VOLT, RES

autobool | None

Whether or not in auto range

set_rangefloat | None

The measurement range

integration_timefloat | None

The integration time. This is not used in this and will be removed in future xml changes

async prepare_scan()

Prepare the keithley for scanning.

async send_command(command, has_reply=False, timeout=None)
async set_digital_filter(activate_filter, activate_avg_filter, activate_med_filter)

Set the digital filter(s).

Parameters:
activate_filterbool

Whether any filter should be activated.

activate_avg_filterbool

Whether the average filter should be activated.

activate_med_filterbool

Whether the median filter should be activated.

async set_integration_time(int_time)

Set the integration time.

Parameters:
int_timefloat

The integration time.

async set_mode(mode)

Set the mode/unit.

Parameters:
modeint

The mode of the electrometer.

async set_range(set_range)

Set the range.

Parameters:
set_rangefloat

The new range value.

async set_voltage_level(level)
async set_voltage_limit(limit)
async set_voltage_range(range)
async setup_scan()

Sets up the electrometer to prepare for scan.

async start_scan(group_id=None)

Start storing values in the Keithley electrometer’s buffer.

Parameters:
group_idstr | None

The group id generated by the image server. This is passed into this method as it is called in the CSC, but it is used in write_fits_file

async start_scan_dt(scan_duration, group_id=None)

Start storing values in the Keithley electrometer’s buffer, for a set duration.

Parameters:
scan_durationfloat

The amount of time to store values for.

group_idstr | None

The group id generated by the image server. This is passed into this method as it is called in the CSC, but it is used in write_fits_file

async stop_scan()

Stop storing values in the electrometer.

async toggle_voltage_source(toggle)
async write_fits_file(raw_data, data_format)

Write fits file of the intensity, time, and temperature values.

Parameters:
signallist of float

The amount of photons in a given reading, unit depends on mode of electrometer. * Curr: Ampere - Measure current * Volt: V - Measure volts * Char: Coulomb - Measure charge

timeslist of float

The time (TAI) of the signal data taken.

temperaturelist of float

A consistent temperature value (deg_C) obtained from the temperature probe over the period of signal acquisition.

unitlist of str

The unit of the signal data. (constant)

voltagelist of float

The source input in Volts maintained during signal acquisition.