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, synch_description, moveable=None, sw_synch_initial_domain=None, *args, **kwargs)[source]

Start synchronization action.

Parameters
  • ctrls (list) – list of enabled trigger/gate controllers

  • synch_description (SynchDescription) – 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()[source]

action_loop method

SynchDescription

Inheritance diagram of SynchDescription
class SynchDescription(iterable=(), /)[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.

property repetitions
property active_time
property total_time
property passive_time