Pool overview

The Pool object is the sardana server object which manages all other hardware level sardana objects related with motion control and data acquisition. This object is exposed to the world as a Tango device. It’s API consists of a series of methods (Tango commands) and members (Tango attributes) which allow external applications to create/remove/rename and monitor the different hardware level sardana objects.

The Pool could be seen as a kind of intelligent device container to control the experiment hardware. It has two basic features which are:

  1. Hardware access using dynamically created/deleted devices according to the experiment needs

  2. Management of some very common and well defined actions regularly done on a laboratory/factory (motion control, data acquisition, etc.)

Hardware access

Core hardware access

Most of the times, it is possible to define a list of very common objects found in most of the experiments. Objects commonly used to drive an experiment usually fit in one of the following categories:

  • Moveables
    • Motor

    • Pseudo motor

    • Group of moveables

    • IORegister (a.k.a. discrete motor)

  • Experimental channels
    • Counter/Timer

    • 0D (Multimeter like)

    • 1D (MCA like)

    • 2D (CCD like)

    • Pseudo Counter

  • Communication channels

Each different controlled hardware object will also be exposed as an independent Tango class. The sardana device server will embed all these Tango classes together. The pool Tango device is the “container interface” and allows the user to create/delete classical Tango devices which are instances of these embedded classes.