poolsynchronization

This module is part of the Python Pool library. It defines the classes for the synchronization

Classes

PoolSynchronization

Inheritance diagram of PoolSynchronization
class PoolSynchronization(main_element, name='Synchronization')[source]

Bases: sardana.pool.poolaction.PoolAction

Synchronization action.

It coordinates trigger/gate elements and software synchronizer.

add_listener(listener)[source]
start_action(ctrls, synchronization, moveable=None, sw_synch_initial_domain=None, *args, **kwargs)[source]

Start synchronization action.

Parameters:
  • ctrls (list) – list of enabled trigger/gate controllers
  • synchronization (SynchronizationDescription) – synchronization description
  • moveable (PoolMotor or PoolPseudoMotor) – (optional) moveable object used as the synchronization source in the Position domain
  • sw_synch_initial_domain – (optional) - initial domain for software synchronizer, can be either Time or Position
is_triggering(states)[source]

Determines if we are synchronizing or not based on the states returned by the controller(s) and the software synchronizer.

Parameters:states (dict<PoolElement, tuple(tuple(int, str), str))) – a map containing state information as returned by read_state_info: ((state, status), exception_error)
Returns:returns True if is triggering or False otherwise
Return type:bool
action_loop(**kwargs)[source]

action_loop method

SynchronizationDescription

Inheritance diagram of SynchronizationDescription
class SynchronizationDescription[source]

Bases: list

Synchronization description. It is composed from groups - repetitions of equidistant synchronization events. Each group is described by SynchParam parameters which may have values in SynchDomain domains.

repetitions
active_time
total_time
passive_time