ibex_bluesky_core.devices

ISIS-specific bluesky devices and device-related utilities.

The devices in this module are implemented using the ophyd_async library, which in turn reads or writes to the underlying EPICS PVs to control equipment.

Submodules

block

bluesky devices and utilities for communicating with IBEX blocks.

dae

Low-level bluesky device interface to the DAE.

muon

Muon-specific bluesky devices and utilities.

polarisingdae

Specialised DAE interface for polarisation measurements.

reflectometry

Reflectometry-specific bluesky devices and utilities.

simpledae

High-level bluesky device interface to the DAE for 'typical' measurements.

Members

NoYesChoice

No-Yes enum for an mbbi/mbbo or bi/bo with capitalised "No"/"Yes" options.

compress_and_hex

Compress the inputted string and encode it as hex.

dehex_and_decompress

Decompresses the inputted string, assuming it is in hex encoding.

isis_epics_signal_rw

Make a RW signal with ISIS' PV naming standard.

class ibex_bluesky_core.devices.NoYesChoice(*values)[source]

Bases: StrictEnum

No-Yes enum for an mbbi/mbbo or bi/bo with capitalised “No”/”Yes” options.

ibex_bluesky_core.devices.compress_and_hex(value: str) bytes[source]

Compress the inputted string and encode it as hex.

Parameters:

value – The string to be compressed

Returns:

A compressed and hexed version of the inputted string

ibex_bluesky_core.devices.dehex_and_decompress(value: bytes) bytes[source]

Decompresses the inputted string, assuming it is in hex encoding.

Parameters:

value – The string to be decompressed, encoded in hex

Returns:

A decompressed version of the inputted string

ibex_bluesky_core.devices.isis_epics_signal_rw(datatype: type[T], read_pv: str, name: str = '') SignalRW[T][source]

Make a RW signal with ISIS’ PV naming standard.

For a PV like IN:INSTNAME:SOME_PARAMETER:

  • The read_pv will be set to IN:INSTNAME:SOME_PARAMETER

  • The write_pv will be set to IN:INSTNAME:SOME_PARAMETER:SP