Return to ING home page2 Generalities

This page is part of the ING document INS-DAS-31 Design notes for UltraDAS

Udas_camera is an object-oriented programme written in C. It uses a degraded version of object-oriented programming to encapsulate the major data-objects within the programme and to control the complexity of interactions between those objects.

Udas_camera is real-time software. It consists mainly in soft-real-time code in which the average speed of execution must be maintained above some (poorly defined) minimum level. There are a few hard-real-time sequences, firstly where pixels must be read from a camera-interface device within a fixed window (to avoid losing pixels in a buffer overflow) and secondly where the an operation on the camera must be timestamped (i.e. the act of reading the clock must follow the operation to which the timestamp applies within some small tolerane in elapsed time).

Udas_camera is threaded. It used Posix threads (hereinafter "Pthreads") to express concurrency. Worker threads, following either the Casual Worker pattern or the Tenured Worker pattern (q.v.) are used where operations in real time need to overlap. The multi-threading reduces the complexities of the code.

Udas_camera is Unix software. The current implementation will run only on Solaris (Solaris 7 or later), and it uses specialised hardware for which only Solaris device-drivers exist at present. With some effort, udas_camera could perhaps be ported to some other POSIX-conforming system, perhaps Linux. However, it would be particularly hard to port the hard-real-time functions, since they depend on the real-time scheduling of Pthreads, something that few other systems provide.

Udas_camera is a server programme. It interacts with the rest of the observing system mainly through DRAMA connections. There is no direct user-interface, and the udas_camera software-package is useless unless installed alongside other UltraDAS packages. Please refer to INS-DAS-23 Architecture for UltraDAS for details of the external interfaces.

Udas_camera is not an embedded programme. For that grace we should be eternally thankful.
 

Topics of detail