Design of Gboccia
Programming Languages
Libraries
Additional Programs
- LaTeX (Logfiles and
Users Manual)
- DS9 (Display of
.FITS Files)
- Sextractor
(Calculation of FWHMs)
- GSL (Image
Statistics)
Data Acquisition
We are using the Cypress FX2 Chip, see homepage of Jens Dopke
- FX2programmer
(upload of the firmware for the Cypress FX2 data acquisition chip)
- A special Kernel driver (not published, based on usb-skeleton.c
by Greg Kroah Hartman)
- A special Firmware (not published, based on
the technical reference manual)
- An operating system based on the work of Richard Matthew Stallman
Design of the Software at the Telescope:
There are three packages installed the telescope the HOLICS
mount
control and pointing program. The FRAD filter and mirror control
program and the Gboccia program, which controls the CCD camera
directly and provides the services of the HOLICS and FRAD programs to
the user. FRAD as well as HOLICS are currently closed source.
Design of Gboccia:
Gboccia started as a GTK based
project, written in plain C. Now
the GTK
user interface has been rewritten in Python. The communication
between these two processes is achieved using the INDI protocol over
TCP/IP, which permits
remote operation. The
C
side is linked to the INDI
API as an "indi driver", this communicates with the INDI server
using
pipes which in turn communicates with the INDI Client using TCP/IP. The
generic Python Client DCD
including a documented API
was developed and the specific client was written in based thereon.
The user interface was designed using Glade
which allowed to reuse the
user interface originally designed for C in Python. The Python code
turned out to very easily portable to other operating systems.
Current Status:
Currently Gboccia is used to control the telescope locally. A permanent
Internet connection has been established. First tests have shown
that remote operation is possible within the 16KByte/s bandwidth of our
provider.
Future developments:
We are currently rewriting FRAD in Python in order to link it to
Gboccia directly as well as a security solution for remote observing.
Similar Projects:
The control software of the 1.5m hexapot
telescope at the university of Bochum is written in C++
using the ALMA
Common Software framework, and QT.
Related Documents:
Further documentation regarding Gboccia can be found on the homepage of
the current main developer: Dirk Hünniger.
Most relevant are the Slides of our
presentation as well as the Users Manual.
Conclusion:
We have learned that Python is a great programming language that allows
for imperative, ,object oriented as well as functional programming.
Furthermore its typing scheme makes structural changes of
the design very easy and also allows unexperienced programmers to take
part in useful projects. Memory allocation and garbage collection is
automatically handled by reference counting. Python is fully
introspective and gives very detailed and useful error messages. Its
only
disadvantage is speed, although this is easily overcome by calling C
libraries from Python. C is the one of the fasted if not the fasted
high
level language, it provides absolute control of detail and is great for
numerical calculations, which need a lot of computing, it even
outreachs C++ in this
point. C modules can be linked to Python rather easily. Python Code is
very portable. Even included C modules and use of commonly available
libraries like GTK do not cause any problems. We were able
to port from Linux to an other commonly
used
operating system within a day. We do recommend to use Python for
most of the code and C only for small tasks, that need a lot of
computing, since C code usually takes more time to write and to debug.
Developers:
Dirk Hünniger
(Gboccia camera control, current main developer)
Klaus Reif (Manager)
Manuel Metz
(HOLICS mount control, current main developer)
Pascal
Hirsch (HOLICS mount control, initial version)
Oliver Mark Cordes
(Gboccia camera control, initial version)
Henning
Poschmann (Hardware development)
This project is hosted by sourceforge: