qmi.instruments.teraxion.tfn

Instrument driver for TeraXion TFN.

Classes

Teraxion_TFN(context, name, transport)

Instrument driver for TeraXion TFN.

Teraxion_TFNChannelPlan(first_frequency, ...)

Channel plan of TFN.

Teraxion_TFNCommand([command_id, ...])

Base class for Teraxion TFN commands.

Teraxion_TFNCommand_DisableDevice([...])

Command to disable the TFN.

Teraxion_TFNCommand_EnableDevice([...])

Command to enable the TFN.

Teraxion_TFNCommand_GetChannelPlan([...])

Command to get the channel plan.

Teraxion_TFNCommand_GetFirmwareVersion([...])

Command to get the firmware version.

Teraxion_TFNCommand_GetFrequency([...])

Command to get the frequency.

Teraxion_TFNCommand_GetManufacturerName([...])

Command to get the manufacturer name.

Teraxion_TFNCommand_GetManufacturingDate([...])

Command to get the manufacturing date.

Teraxion_TFNCommand_GetModelNumber([...])

Command to get the model number.

Teraxion_TFNCommand_GetNominalSettings([...])

Command to get the nominal settings.

Teraxion_TFNCommand_GetRTDTemperature([...])

Command to get the RTD temperature.

Teraxion_TFNCommand_GetSerialNumber([...])

Command to get the serial number.

Teraxion_TFNCommand_GetStartupByte([...])

Command to get the startup byte of the TFN.

Teraxion_TFNCommand_GetStatus([command_id, ...])

Command to get the status of the TFN.

Teraxion_TFNCommand_Reset([command_id, ...])

Command to software reset the TFN.

Teraxion_TFNCommand_SaveNominalSettings([...])

Command to save the nominal settings.

Teraxion_TFNCommand_SetFrequency([...])

Command to set the frequency.

Teraxion_TFNCommand_SetI2CAddress([...])

Command to get the channel plan.

Teraxion_TFNCommand_SetStartupByte([...])

Command to set the startup byte of the TFN.

Teraxion_TFNElement(value)

TeraXion TFN elements.

Teraxion_TFNSettings(frequency, dispersion)

Settings of TFN.

Teraxion_TFNStatus(busy_error, ...)

Status of TFN.

class qmi.instruments.teraxion.tfn.Teraxion_TFNElement(value)

TeraXion TFN elements.

class qmi.instruments.teraxion.tfn.Teraxion_TFNStatus(busy_error: bool, overrun_error: bool, command_error: bool, tfn_active: bool, tfn_ready: bool, invalid_eeprom_error: bool, tec_4_temp_limit: bool, tec_3_temp_limit: bool, tec_2_temp_limit: bool, tec_1_temp_limit: bool, tec_4_in_range: bool, tec_3_in_range: bool, tec_2_in_range: bool, tec_1_in_range: bool)

Status of TFN.

class qmi.instruments.teraxion.tfn.Teraxion_TFNSettings(frequency: float, dispersion: float)

Settings of TFN.

frequency

The current frequency in GHz.

Type:

float

dispersion

The dispersion in ps/nm.

Type:

float

class qmi.instruments.teraxion.tfn.Teraxion_TFNChannelPlan(first_frequency: float, last_frequency: float, num_cal_channels: int)

Channel plan of TFN.

first_frequency

The first frequency in GHz.

Type:

float

last_frequency

The last frequency in GHz.

Type:

float

num_cal_channels

Number of calibrated channels.

Type:

int

class qmi.instruments.teraxion.tfn.Teraxion_TFNCommand(command_id: int = -1, num_received_bytes: int | None = None, module_address: int = 48)

Base class for Teraxion TFN commands.

class qmi.instruments.teraxion.tfn.Teraxion_TFNCommand_GetStatus(command_id: int = -1, num_received_bytes: int | None = None, module_address: int = 48)

Command to get the status of the TFN.

class qmi.instruments.teraxion.tfn.Teraxion_TFNCommand_Reset(command_id: int = -1, num_received_bytes: int | None = None, module_address: int = 48)

Command to software reset the TFN.

class qmi.instruments.teraxion.tfn.Teraxion_TFNCommand_GetFrequency(command_id: int = -1, num_received_bytes: int | None = None, module_address: int = 48)

Command to get the frequency.

class qmi.instruments.teraxion.tfn.Teraxion_TFNCommand_SetFrequency(command_id: int = -1, num_received_bytes: int | None = None, module_address: int = 48)

Command to set the frequency.

class qmi.instruments.teraxion.tfn.Teraxion_TFNCommand_GetRTDTemperature(command_id: int = -1, num_received_bytes: int | None = None, module_address: int = 48)

Command to get the RTD temperature.

class qmi.instruments.teraxion.tfn.Teraxion_TFNCommand_EnableDevice(command_id: int = -1, num_received_bytes: int | None = None, module_address: int = 48)

Command to enable the TFN.

class qmi.instruments.teraxion.tfn.Teraxion_TFNCommand_DisableDevice(command_id: int = -1, num_received_bytes: int | None = None, module_address: int = 48)

Command to disable the TFN.

class qmi.instruments.teraxion.tfn.Teraxion_TFNCommand_GetStartupByte(command_id: int = -1, num_received_bytes: int | None = None, module_address: int = 48)

Command to get the startup byte of the TFN.

class qmi.instruments.teraxion.tfn.Teraxion_TFNCommand_SetStartupByte(command_id: int = -1, num_received_bytes: int | None = None, module_address: int = 48)

Command to set the startup byte of the TFN.

class qmi.instruments.teraxion.tfn.Teraxion_TFNCommand_GetFirmwareVersion(command_id: int = -1, num_received_bytes: int | None = None, module_address: int = 48)

Command to get the firmware version.

class qmi.instruments.teraxion.tfn.Teraxion_TFNCommand_GetManufacturerName(command_id: int = -1, num_received_bytes: int | None = None, module_address: int = 48)

Command to get the manufacturer name.

class qmi.instruments.teraxion.tfn.Teraxion_TFNCommand_GetModelNumber(command_id: int = -1, num_received_bytes: int | None = None, module_address: int = 48)

Command to get the model number.

class qmi.instruments.teraxion.tfn.Teraxion_TFNCommand_GetSerialNumber(command_id: int = -1, num_received_bytes: int | None = None, module_address: int = 48)

Command to get the serial number.

class qmi.instruments.teraxion.tfn.Teraxion_TFNCommand_GetManufacturingDate(command_id: int = -1, num_received_bytes: int | None = None, module_address: int = 48)

Command to get the manufacturing date.

class qmi.instruments.teraxion.tfn.Teraxion_TFNCommand_GetNominalSettings(command_id: int = -1, num_received_bytes: int | None = None, module_address: int = 48)

Command to get the nominal settings.

class qmi.instruments.teraxion.tfn.Teraxion_TFNCommand_SaveNominalSettings(command_id: int = -1, num_received_bytes: int | None = None, module_address: int = 48)

Command to save the nominal settings.

class qmi.instruments.teraxion.tfn.Teraxion_TFNCommand_GetChannelPlan(command_id: int = -1, num_received_bytes: int | None = None, module_address: int = 48)

Command to get the channel plan.

class qmi.instruments.teraxion.tfn.Teraxion_TFNCommand_SetI2CAddress(command_id: int = -1, num_received_bytes: int | None = None, module_address: int = 48)

Command to get the channel plan.

class qmi.instruments.teraxion.tfn.Teraxion_TFN(context: QMI_Context, name: str, transport: str)

Instrument driver for TeraXion TFN. It uses serial communication.

open() None

Connect to the instrument hardware.

When this method returns, the instrument must be ready for interaction via calls to instrument-specific methods.

Subclasses can extend this method to implement instrument-specific initialization. If they do, they should call super().open() as a last statement.

close() None

Close the connection to the instrument hardware and release associated resources.

When this method returns, the instrument must not be used again unless it is first re-opened by calling the open() method.

Subclasses can extend this method if they have specific resources to close. If they do, they should call super().close() as a last statement.

get_firmware_version() str

Get firmware version of the TFN.

Returns:

The firmware version.

get_manufacturer_name() str

Get manufacturer name of the TFN.

Returns:

The name of the manufacturer.

get_model_number() str

Get model number of the TFN.

Returns:

The model number.

get_serial_number() str

Get serial number of the TFN.

Returns:

The serial number.

get_idn() QMI_InstrumentIdentification

Get instrument identification of the TFN.

Returns:

An instance of QMI_InstrumentIdentification.

get_manufacturing_date() date

Get manufacturing date of the TFN.

Returns:

The manufacturing date.

get_status() Teraxion_TFNStatus

Get status of the TFN.

Returns:

An instance of Teraxion_TFNStatus.

reset() None

Perform a software reset.

set_frequency(frequency: float) None

Set frequency setpoint of the TFN.

Parameters:

frequency – The frequency setpoint in GHz.

get_frequency() float

Get frequency setpoint of the TFN.

Returns:

The frequency setpoint in GHz.

get_rtd_temperature(element: Teraxion_TFNElement) int

Get the RTD temperature of the provided element.

Parameters:

element – The element to get the temperature for.

Returns:

RTD temperature in hundreths of a degree Celcius.

enable_device() None

Enable the device and turn on TEC control.

disable_device() None

Disable the device and turn off TEC control.

get_startup_byte() bool

Get the startup byte of the TFN.

Returns:

The status of the TECs on startup. True for all enable and False for all disabled.

enable_tecs_on_startup() None

Enable TECs on startup of TFN.

disable_tecs_on_startup() None

Disable TECs on startup of TFN.

get_nominal_settings() Teraxion_TFNSettings

Get nominal settings of the TFN.

Returns:

An instance of Teraxion_TFNSettings.

save_nominal_settings() None

Save nominal settings of the TFN. These settings are the current frequency and dispersion values.

get_channel_plan() Teraxion_TFNChannelPlan

Get channel plan for specified grid.

Returns:

An instance of Teraxion_TFNChannelPlan.

set_i2c_address(address: int) None

Set the I2C address of the TFN module. This all will need a power cycle to take effect.

Parameters:

address – New I2C address for module.

force_unlock() None

Forcefully unlock the remote object.

This unlocks the object, regardless of who owns the lock. This allows you to unlock an object if the locking proxy has been destroyed without unlocking.

Use this with care.

Do not override this stub method in subclasses. It has already been implemented in QMI_RpcProxy.

classmethod get_category() str | None

Return the optional name of the category this object belongs to.

A category name is a free-form string that has no special significance. Its purpose is to distinguish between groups of RPC objects that fulfill similar roles.

get_name() str

Return the name of this object.

Returns:

name attribute.

get_signals() list[SignalDescription]

Return a list of signals that can be published by this object.

Returns:

List consisting of qmi_signals attributes.

is_locked() bool

Query if the remote object is locked.

Do not override this stub method in subclasses. It has already been implemented in QMI_RpcProxy.

is_open() bool

Return True if the instrument is open (ready for interaction).

lock(timeout: float = 0.0, lock_token: str | None = None) bool

Lock the remote object. If timeout is given, try every 0.1s within the given timeout value. The remote object can be locked with an optional custom lock token by giving a string into lock_token keyword argument.

If successful, this proxy is the only proxy that can invoke RPC methods on the remote object; other proxies will receive an “object is locked” response. The return value indicates if the lock was granted; a denied lock means the object was already locked by another proxy.

Do not override this stub method in subclasses. It has already been implemented in QMI_RpcProxy.

release_rpc_object() None

Give a warning if the instrument is removed while still open.

unlock(lock_token: str | None = None) bool

Unlock the remote object.

Without optional parameters, this is only allowed by the proxy that initially locked the object. By giving the lock token as an input parameter, the specific object locked by this token can be unlocked. The return value indicates if the unlocking was successful.

Do not override this stub method in subclasses. It has already been implemented in QMI_RpcProxy.