accml_lib.core.interfaces.utils package

Submodules

accml_lib.core.interfaces.utils.command_rewritter module

convert the values from one state space

class accml_lib.core.interfaces.utils.command_rewritter.CommandRewriterBase[source]

Bases: object

alternative: TranslationService

abstractmethod forward(command)[source]
Return type:

Sequence[Command]

Parameters:

command (Command)

abstractmethod forward_read_command(command)[source]

Typically an answer of liaison manager

Return type:

Sequence[ReadCommand]

Parameters:

command (ReadCommand)

abstractmethod inverse(command)[source]
Return type:

Sequence[Command]

Parameters:

command (Command)

abstractmethod inverse_read_command(command)[source]

Typically an answer of liaison manager

Return type:

Sequence[ReadCommand]

Parameters:

command (ReadCommand)

accml_lib.core.interfaces.utils.devices_facade module

class accml_lib.core.interfaces.utils.devices_facade.DevicesFacade[source]

Bases: object

abstractmethod get(name)[source]
Parameters:

name (*) – the name of the device

returns the device needed

accml_lib.core.interfaces.utils.liaison_manager module

class accml_lib.core.interfaces.utils.liaison_manager.LiaisonManagerBase[source]

Bases: object

transforms pairs of (id, property)

Warning

it returns a sequence of device / properties More than one device can be necessary to be updated

abstractmethod forward(id_)[source]
Return type:

DevicePropertyID

Parameters:

id_ (LatticeElementPropertyID)

Todo

for symmetry: should return a sequence too!

abstractmethod inverse(id_)[source]

needs to return a sequence: e.g. power converters often power more than one magnet

Return type:

Sequence[LatticeElementPropertyID]

Parameters:

id_ (DevicePropertyID)

accml_lib.core.interfaces.utils.measurement_execution_engine module

class accml_lib.core.interfaces.utils.measurement_execution_engine.MeasurementExecutionEngine[source]

Bases: object

abstractmethod async execute(commands_collection, *args, **kwargs)[source]
Return type:

str

Returns:

identifier to the data

Parameters:

commands_collection (Sequence[TransactionCommand])

Measurement engine is responsible to store data as appropriate

abstractmethod async set(cmds)[source]

execute these commands together

Parameters:

cmds (Sequence[Command])

abstractmethod async trigger_read(cmds)[source]

Following ophyd-async / ophyd design

Todo

Is this a good idea?

Return type:

ReadTogether

Parameters:

cmds (Sequence[ReadCommand])

accml_lib.core.interfaces.utils.state_conversion module

class accml_lib.core.interfaces.utils.state_conversion.StateConversion[source]

Bases: object

convert one state to an other

Other wide spread names: * unit conversion * coordinate system transformation

Please note initialisation is not handled here

abstractmethod forward(state)[source]

from “physics” to machine

Follows bluesky convention

Return type:

object

Parameters:

state (object)

abstractmethod inverse(state)[source]

from machine to “physics”

Follows bluesky convention

Return type:

object

Parameters:

state (object)

accml_lib.core.interfaces.utils.storage module

class accml_lib.core.interfaces.utils.storage.StorageInterface[source]

Bases: object

abstractmethod add(key)[source]

return identifier for the object stored

Return type:

str

abstractmethod get(key)[source]
Return type:

object

accml_lib.core.interfaces.utils.translator_service module

class accml_lib.core.interfaces.utils.translator_service.TranslatorServiceBase[source]

Bases: object

Actor says: * I know:

  • I want to change property “A” of lattice element “B”

  • I know that device “C” needs to change property “D”

  • please give me the translation object that converts between these

abstractmethod get(id_)[source]
Return type:

StateConversion

Parameters:

id_ (ConversionID)

accml_lib.core.interfaces.utils.yellow_pages module

Info on which device belongs to which other

Todo

provide enum of standard family names?

class accml_lib.core.interfaces.utils.yellow_pages.YellowPagesBase[source]

Bases: object

Handling lattice element and their family belonging

Two ways to see it: * family as seen by a lattice:

typically some magnets that are split all over the place

Imagine for some lattice e.g. some quadrupoles could be identically as they are produced. But they could still belong to different families

abstractmethod get(family_name)[source]

Return a sequence with all identifiers belonging to base class

Return type:

Sequence[str]

Parameters:

family_name (str)

Module contents