Reference#

Device Classes#

class SECoPNodeDevice(sec_node_uri: str = '', name: str = '', loglevel=logging.INFO, logdir: str | None = None)#

Bases: secop_ophyd.SECoPDevices.SECoPDevice

hinted_signals: list[str] = []#
async connect(mock=False, timeout=DEFAULT_TIMEOUT, force_reconnect=False)#
descriptiveDataChange(module, description)#
nodeStateChange(online, state)#

called when the state of the connection changes

‘online’ is True when connected or reconnecting, False when disconnected or connecting ‘state’ is the connection state as a string

class_from_instance(path_to_module: str | None = None)#
class SECoPCommunicatorDevice(sri: str = '', name: str = '', connector: secop_ophyd.SECoPDevices.SECoPDeviceConnector | None = None, loglevel=logging.INFO, logdir: str | None = None)#

Bases: secop_ophyd.SECoPDevices.SECoPDevice

hinted_signals: list[str] = []#
class SECoPReadableDevice(sri: str = '', name: str = '', connector: secop_ophyd.SECoPDevices.SECoPDeviceConnector | None = None, loglevel=logging.INFO, logdir: str | None = None)#

Bases: secop_ophyd.SECoPDevices.SECoPDevice, bluesky.protocols.Triggerable, bluesky.protocols.Subscribable

Standard readable SECoP device, corresponding to a SECoP module with the interface class “Readable”

Initialization

Initializes the SECoPReadableDevice

Parameters:
  • secclient (AsyncFrappyClient) – SECoP client providing communication to the SEC Node

  • module_name (str) – Name of the SEC Node module that is represented by this device

hinted_signals: list[str] = ['value']#
async connect(mock=False, timeout=DEFAULT_TIMEOUT, force_reconnect=False)#
async wait_for_idle()#

asynchronously waits until module is IDLE again. this is helpful, for running commands that are not done immediately

observe_status_change(monitored_status_code: int)#
trigger() ophyd_async.core.AsyncStatus#
subscribe(function: ophyd_async.core._utils.Callback[dict[str, bluesky.protocols.Reading]]) None#

Subscribe to updates in the reading

clear_sub(function: ophyd_async.core._utils.Callback) None#

Remove a subscription.

class SECoPTriggerableDevice(sri: str = '', name: str = '', connector: secop_ophyd.SECoPDevices.SECoPDeviceConnector | None = None, loglevel=logging.INFO, logdir: str | None = None)#

Bases: secop_ophyd.SECoPDevices.SECoPReadableDevice, bluesky.protocols.Stoppable

Standard triggerable SECoP device, corresponding to a SECoP module with the0s interface class “Triggerable”

Initialization

Initialize SECoPTriggerableDevice

Parameters:
  • secclient (AsyncFrappyClient) – SECoP client providing communication to the SEC Node

  • module_name (str) – ame of the SEC Node module that is represented by this device

hinted_signals: list[str] = ['value']#
class SECoPWritableDevice(sri: str = '', name: str = '', connector: secop_ophyd.SECoPDevices.SECoPDeviceConnector | None = None, loglevel=logging.INFO, logdir: str | None = None)#

Bases: secop_ophyd.SECoPDevices.SECoPReadableDevice

hinted_signals: list[str] = ['target', 'value']#
class SECoPMoveableDevice(sri: str = '', name: str = '', connector: secop_ophyd.SECoPDevices.SECoPDeviceConnector | None = None, loglevel=logging.INFO, logdir: str | None = None)#

Bases: secop_ophyd.SECoPDevices.SECoPReadableDevice, bluesky.protocols.Locatable, bluesky.protocols.Stoppable

Standard movable SECoP device, corresponding to a SECoP module with the interface class “Drivable”

Initialization

Initialize SECoPMovableDevice

Parameters:
  • secclient (AsyncFrappyClient) – SECoP client providing communication to the SEC Node

  • module_name (str) – ame of the SEC Node module that is represented by this device

hinted_signals: list[str] = ['target', 'value']#
async connect(mock=False, timeout=DEFAULT_TIMEOUT, force_reconnect=False)#
set(new_target, timeout: Optional[float] = None) ophyd_async.core.AsyncStatus#

Sends new target to SEC Nonde and waits until module is IDLE again

Parameters:
  • new_target (_type_) – new taget/setpoint for module

  • timeout (Optional[float], optional) – timeout for set operation, defaults to None

Returns:

Asyncstatus that gets set to Done once module is IDLE again

Return type:

AsyncStatus

async stop(success=True)#

Calls stop command on the SEC Node module

Parameters:

success (bool, optional) – True: device is stopped as planned False: something has gone wrong (defaults to True)

async locate() bluesky.protocols.Location#