2.1
Object architecture
This page is part of the ING document INS-DAS-31
Design
notes for UltraDAS
This section introduces some of the relationships between objects in
the udas_camera programme.
Creation of Fixed Plant objects
Figure 2.1.1 shows the composition of the programme, considered as an object,
in terms of the Fixed Plant objects. The objects in the left-hand column
are Singletons, and those in the right-hand column are Planned Families.
(In fact, in the current release, Camera-i/f and Pixel-stream are Singletons
too, but this may have to change in future if ING ever gets a camera that
needs more than one detector-controller.) The Camera-facade Singleton
is special in that it is created once when the programme starts and is
never destroyed until the programme exists. The other Fixed-Plant objects
are all destroyed and replaced if the programe is reset.
Figure 2.1.1: composition of the programme from Fixed-plant objects.
Objects that can talk to the camera
Figure 2.1.2 shows command paths from the Facade down to the Camera-i/f.
Each of these paths represents the execution of one DRAMA action that affects
the camera.
Figure 2.1.2: objects that talk to the camera.
Cryostat, Integrator and Run objects are active (i.e. employ worker
threads), so may use the camera-i/f to poll for telemetry independently
of any command from the Facade.
Telemetry
Figure 2.1.3 shows the passing of telemetry to the Facade. Note how the
sub-classing of Facade affects the interactions: the Fixed Plant objects
know how to talk to a generic Facade, and do so, but only the specialised
Camera-facade knows how to extract the telemetry. The objects producing
the telemetry are a sub-set of the Fixed plant objects plus the Run objects
held at ranks zero and one in the Run-file object (i.e. the two most-recent
runs; see the Run-file class for details). The Camera-facade can find the
Fixed-plant objects because they are all Singletons and can be accessed
through a selector method. The Camera-facade can find the Run objects via
the Run-file object by quoting the ranks of hte runs; only the two lowest
ranks are of interest.
Figure 2.1.3: telemetry.