Maser subpackage

This subpackage implements maser functionality for SAT.LMC.

class MaserDriver(logger, maser_host, maser_port, communication_state_changed=None, component_state_changed=None, update_rate=1.0)

Device Server for the T4Science i3000 Maser for SAT.LMC.

__init__(logger, maser_host, maser_port, communication_state_changed=None, component_state_changed=None, update_rate=1.0)

Initialise the attributes and properties of the SatMaser.

Parameters:
  • logger (Logger) – a logger for this object to use

  • maser_host (str) – the host of the hardware maser

  • maser_port (int) – the port of the hardware maser

  • communication_state_changed (Optional[Callable[[CommunicationStatus], None]]) – callback to be called when the status of the communications channel between the component manager and its component changes

  • component_state_changed (Optional[Callable[[bool], None]]) – callback to be called when the component faults (or stops faulting)

  • update_rate (float) – how often updates to attribute values should be provided. This is not necessarily the same as the rate at which the instrument is polled. For example, the instrument may be polled every 0.1 seconds, thus ensuring that any invoked commands or writes will be executed promptly. However, if the update_rate is 5.0, then routine reads of instrument values will only occur every 50th poll (i.e. every 5 seconds).

get_request()

Check whether the attributes should be read on the next poll.

Return type:

bool

Returns:

true if attributes are read on the next poll.

poll(poll_request)

Poll the hardware.

Connect to the hardware, write any values that are to be written, and then read all values.

Parameters:

poll_request (bool) – whether to perform in this poll.

Return type:

dict[str, Any]

Returns:

responses to queries in this poll

poll_succeeded(poll_response)

Handle the receipt of new polling values.

This is a hook called by the poller when values have been read during a poll.

Parameters:

poll_response (dict[str, Any]) – response to the poll, including any values read.

Return type:

None

polling_stopped()

Respond to polling having stopped.

This is a hook called by the poller when it stops polling.

Return type:

None

start_communicating()

Establish communication with the maser.

Return type:

None

stop_communicating()

Stop communicating with the maser.

Return type:

None

class MaserHealthModel(health_changed_callback, **kwargs)

A health model for a maser.

At present this uses the base health model; this is a placeholder for a future, better implementation.

class SatMaser(*args, **kwargs)

An implementation of a Maser Tango device for SatLmc.

GetVersionInfo()

Get the version the device.

Return type:

str

Returns:

Version details of the device.

class InitCommand(*args, **kwargs)

Implement the device initialisation for the Maser device.

do(*args, **kwargs)

Initialise the attributes and properties.

Parameters:
  • args (Any) – unspecified positional arguments. This should be empty and is provided for type hinting only

  • kwargs (Any) – unspecified keyword arguments. This should be empty and is provided for type hinting only

Return type:

tuple[ResultCode, str]

Returns:

A tuple containing a return code and a string message indicating status. The message is for information purpose only.

Off()

Put the device into off mode.

The Maser is always on so this does nothing

Return type:

tuple[list[ResultCode], list[Optional[str]]]

Returns:

A tuple containing a return code and a string message indicating status. The message is for information purpose only.

On()

Put the device into on mode.

The Maser is always on so this does nothing

Return type:

tuple[list[ResultCode], list[Optional[str]]]

Returns:

A tuple containing a return code and a string message indicating status. The message is for information purpose only.

Reset()

Reset the device.

The Maser is always on so this does nothing

Return type:

tuple[list[ResultCode], list[Optional[str]]]

Returns:

A tuple containing a return code and a string message indicating status. The message is for information purpose only.

Standby()

Put the device into standby mode.

The Maser is always on so this does nothing

Return type:

tuple[list[ResultCode], list[Optional[str]]]

Returns:

A tuple containing a return code and a string message indicating status. The message is for information purpose only.

__init__(*args, **kwargs)

Initialise a new instance.

Parameters:
  • args (Any) – positional arguments.

  • kwargs (Any) – keyword arguments.

ambient_temperature()

Report the ambient temperature.

Return type:

float

Returns:

ambient temperature

amplitude_405khz_voltage()

Report the 405 kHz Amplitude.

Return type:

float

Returns:

the 405 kHz Amplitude

battery_current_a()

Report the current of battery A.

Return type:

float

Returns:

battery current A

battery_current_b()

Report the current of battery B.

Return type:

float

Returns:

battery current B

battery_voltage_a()

Report the voltage of battery A.

Return type:

float

Returns:

battery voltage A

battery_voltage_b()

Report the voltage of battery B.

Return type:

float

Returns:

battery voltage B

boxes_current()

Report the boxes current.

Return type:

float

Returns:

boxes current

boxes_temperature()

Report the boxes temperature.

Return type:

float

Returns:

boxes temperature

cfield_voltage()

Report the C-field voltage.

Return type:

float

Returns:

C-field voltage

create_component_manager()

Create and return a component manager for this device.

Return type:

MaserDriver

Returns:

a component manager for this device.

dissociator_current()

Report the dissociator current.

Return type:

float

Returns:

dissociator current

dissociator_light()

Report the dissociator light.

Return type:

float

Returns:

dissociator light

external_bottom_heater_voltage()

Report the external bottom heater voltage.

Return type:

float

Returns:

external bottom heater voltage

external_high_current_value()

Report the external high current value.

Return type:

float

Returns:

external high current value

external_high_voltage_value()

Report the external high voltage value.

Return type:

float

Returns:

external high voltage value

external_side_heater_voltage()

Report the external side heater voltage.

Return type:

float

Returns:

external side heater voltage

hydrogen_pressure_measured()

Report the measured hydrogen pressure.

Return type:

float

Returns:

hydrogen pressure measurement

hydrogen_pressure_setting()

Report the hydrogen pressure setting.

Return type:

float

Returns:

hydrogen pressure setting

hydrogen_storage_heater_voltage()

Report the hydrogen storage heater voltage.

Return type:

float

Returns:

hydrogen storage heater voltage

hydrogen_storage_pressure()

Report the hydrogen storage pressure.

Return type:

float

Returns:

hydrogen storage pressure

init_command_objects()

Initialise the command handlers for commands supported by this device.

Return type:

None

init_device()

Initialise the device.

Return type:

None

internal_bottom_heater_voltage()

Report the internal bottom heater voltage.

Return type:

float

Returns:

internal bottom heater voltage

internal_high_current_value()

Report the internal high current value.

Return type:

float

Returns:

internal high current value

internal_high_voltage_value()

Report the internal high voltage value.

Return type:

float

Returns:

internal high voltage value

internal_side_heater_voltage()

Report the internal side heater voltage.

Return type:

float

Returns:

internal side heater voltage

internal_top_heater_voltage()

Report the internal top heater voltage.

Return type:

float

Returns:

internal top heater voltage

is_attribute_allowed(attr_req_type)

Protect attribute access before being updated otherwise it reports alarm.

Parameters:

attr_req_type (AttReqType) – tango attribute type READ/WRITE

Return type:

bool

Returns:

True if the attribute can be read else False

isolator_heater_voltage()

Report the isolator heater voltage.

Return type:

float

Returns:

isolator heater voltage

lock100mhz()

Report the lock 100MHz status.

Return type:

float

Returns:

the lock 100MHz status

negative15vdc()

Report the -15 V supply voltage.

Return type:

float

Returns:

-15 V supply voltage

negative5vdc()

Report the -5 V supply voltage.

Return type:

float

Returns:

-5 V supply voltage

oscillator_100mhz_voltage()

Report the oscillator_voltage 100MHz.

Return type:

float

Returns:

oscillator_voltage 100MHz

oscillator_voltage()

Report the OCXO varicap voltage.

Return type:

float

Returns:

the OCXO varicap voltage

phase_lock_loop_lockstatus()

Report the main PLL lock status.

Return type:

bool

Returns:

main PLL lock status

pirani_heater_voltage()

Report the pirani heater voltage.

Return type:

float

Returns:

pirani heater voltage

positive15vdc()

Report the +15 V supply voltage.

Return type:

float

Returns:

+15 V supply voltage

positive18vdc()

Report the +18 V supply voltage.

Return type:

float

Returns:

+18 V supply voltage

positive24vdc()

Report the +24 V supply voltage.

Return type:

float

Returns:

+24 V supply voltage

positive5vdc()

Report the +5 V supply voltage.

Return type:

float

Returns:

+5 V supply voltage

positive8vdc()

Report the +8 V supply voltage.

Return type:

float

Returns:

+8 V supply voltage

purifier_current()

Report the purifier current.

Return type:

float

Returns:

purifier current

thermal_control_unit_heater_voltage()

Report the thermal control unit heater voltage.

Return type:

float

Returns:

thermal control unit heater voltage

tube_heater_voltage()

Report the tube heater voltage.

Return type:

float

Returns:

tube heater voltage

varactor_diode_voltage()

Report the varactor voltage.

Return type:

float

Returns:

varactor voltage