Subrack Driver
This module provides for monitoring and control of a PSI-Low subrack.
- class SubrackDriver(host, port, logger, communication_state_callback, component_state_callback, update_rate=5.0)
A component manager for the PSI-Low subrack.
- __init__(host, port, logger, communication_state_callback, component_state_callback, update_rate=5.0)
Initialise a new instance.
- Parameters:
host (
str
) – the host name or IP address of the subrack management board.port (
int
) – the port of the subrack management board.logger (
Logger
) – a logger for this component manager to use for loggingcommunication_state_callback (
Callable
) – callback to be called when the status of communications between the component manager and its component changes.component_state_callback (
Callable
) – callback to be called when the state of the component changes.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()
Return the reads, writes and commands to be executed in the next poll.
- Return type:
- Returns:
reads, writes and commands to be executed in the next poll.
- off(task_callback=None)
Turn the component off.
- Parameters:
task_callback (
Optional
[Callable
]) – callback to be called when the status of the command changes- Raises:
NotImplementedError – because this command is not yet implemented
- Return type:
- on(task_callback=None)
Turn the component on.
- Parameters:
task_callback (
Optional
[Callable
]) – callback to be called when the status of the command changes- Raises:
NotImplementedError – because this command is not yet implemented
- Return type:
- 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 (
HttpPollRequest
) – specification of the reads and writes to be performed in this poll.- Raises:
ConnectionError – if an error is raised from the lower layer
- Return type:
- 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 (
HttpPollResponse
) – response to the pool, including any values read.- Return type:
- polling_stopped()
Respond to polling having stopped.
This is a hook called by the poller when it stops polling.
- Return type:
- reset(task_callback=None)
Reset the component (from fault state).
- Parameters:
task_callback (
Optional
[Callable
]) – callback to be called when the status of the command changes- Raises:
NotImplementedError – because this command is not yet implemented
- Return type:
- set_power_supply_fan_speed(fan_number, speed, task_callback=None)
Set the target speed of a power supply fan.
- Parameters:
- Return type:
- Returns:
the task status and a human-readable status message
- set_subrack_fan_mode(fan_number, mode, task_callback=None)
Set the target speed mode of a subrack fan.
- Parameters:
- Return type:
- Returns:
the task status and a human-readable status message
- set_subrack_fan_speed(fan_number, speed, task_callback=None)
Set the target speed of a subrack fan.
- Parameters:
- Return type:
- Returns:
the task status and a human-readable status message
- standby(task_callback=None)
Put the component into low-power standby mode.
- Parameters:
task_callback (
Optional
[Callable
]) – callback to be called when the status of the command changes- Raises:
NotImplementedError – because this command is not yet implemented
- Return type:
- turn_off_tpm(tpm_number, task_callback=None)
Turn a TPM off.
- turn_off_tpms(task_callback=None)
Turn all TPMs off.
- turn_on_tpm(tpm_number, task_callback=None)
Turn a TPM on.
- turn_on_tpms(task_callback=None)
Turn all TPMs on.
- write_attribute(**kwargs)
Update subrack attribute value(s).
This doesn’t actually immediately write to the subrack. It only stores the details of the requested write where it will be picked up by the next iteration of the polling loop.