pool

Device Pool part of the kernel consist of one Pool object which acts as:

Main categories of objects managed by Device Pool:

        classDiagram
    PoolObject <|-- PoolBaseElement
    PoolBaseElement <|-- PoolBaseController
    Controller <|-- MotorController
    MotorController <|-- MyCustomController
    PoolBaseController <|-- PoolController
    PoolBaseController "1" *-- Controller
    PoolController <|-- PoolPseudoMotorController
    PoolBaseController "0..*" *-- PoolElement
    PoolBaseElement <|-- PoolElement
    PoolElement <|-- PoolMotor
    PoolBaseGroup <|-- PoolPseudoMotor
    PoolBaseGroup "1..*" o-- PoolElement
    PoolElement <|-- PoolPseudoMotor
    PoolBaseGroup <|-- PoolGroupElement
    PoolBaseElement <|-- PoolGroupElement
    PoolGroupElement <|-- PoolMotorGroup

    cssClass "Controller,MotorController,MyCustomController" pluginNode
    cssClass "PoolObject,PoolBaseElement,PoolBaseController" coreNode
    cssClass "PoolController,PoolPseudoMotorController" coreNode
    cssClass "PoolBaseElement,PoolElement,PoolMotor" coreNode
    cssClass "PoolPseudoMotor,PoolBaseGroup,PoolGroupElement" coreNode
    cssClass "PoolMotorGroup" coreNode
    

Class diagram of motion related main classes

Note

The objects currently under Pool management are communicated to the clients with the Elements attribute.

state of pseudo axis elements or groups is composed from state’s of their associated elements e.g.

  • group state turns Moving when one of its associated elements reports Moving

  • group state turns On when all of its associated elements reports On

State changes are notified with the publisher-subscriber implementation.

Motion and acquisition are handled with PoolMotion and PoolAcquisition respectively (the latter one is composed from specific sub-actions). Each axis elements and pseudo axis elements aggregates one action instance for exclusive use during an independent motion or acquisition. Groups aggregate a different action instance for grouped motion or acquisition which involves all elements associated to the group.

Modules

Classes

Constants