FACT++
1.0
|
FACT++ - The FACT slow control software
FACT++ can be downloaded from the svn by
svn checkout https://www.fact-project.org/svn/trunk/FACT++ [localdir]
it includes a dim version which is automatically compiled.
For compilation use
./configure make
Check the ./configure options with –help. It might look confusing, but some features like FITS or QT4 can be switched off, if the necessary library is not at hand and the feature is not needed. For example, if the GUI is not needed its compilation can be switched off by disabling QT4 support with –without-qt4.
If you use a custom built root version on your system without QT support, but have a distribution packe (e.g. debian package) with QT support available, you can give the path to root executables, for example, with –with-rootsys=/usr/bin. All other paths are extracted from subsequent calls to root-config.
Running ./configure will take some time. It tries to really check carefully that everything needed is available on your system, so that you get errors before you start compilation.
If ./configure fails and you send a bug report please attach the file config.log.
If make fails and you send a bug report please attach the complete output of make V=1.
Reminder: These programs use shared libraries, i.e. whenever you re-compile part of the project some of them might be re-compiled as well. As a result already running programs might crash unexpectedly! This is not a bug.
In principle configure also supports
make install
which would install the package and the libraries in your system, although at the moment this is not recommended
During compilation of the GUI you get some warning from root's TQtWidget.h. These warnings are completely harmless and can be ignored. However, it is sometimes advicable to get rid of them to get a clean compiler run which makes development easier.
Therefore replace
inline void resize(const QSize &size) { QPixmap newSize(size); *(QPixmap *)this = newSize; }
by
inline void resize(const QSize &sz) { QPixmap newSize(sz); *(QPixmap *)this = newSize; }
in TQtWidget.h
The following section gives a list of packages which were necessary after a fresh Ubuntu 11.04 installation. In addition to all the development packages the corresponding package with the library is needed.
Note that a recent C++ compiler is needed supporting the latest C++0x standard.
Required (configure will fail without them)
FITS file support (datalogger, event builder)
MySQL support (command line options, scheduler)
If you want 'did'
For JavaScrip support
To compile the GUIs
To compile the raw data viewer
To compile smartfact with astronomy support and moon
To compile tngweather
To compile skypeclient
To create your own documentation
To create JavaScript documentation
For developers
If you intend to change only Makefile.am but not configure.ac the automake package instead of the autoconf package should be enough.
Some nice to have (FACT++)
Some nice to have (system)
Documentation (usually accessible through http://localhost/ for the tools above:
cd /usr/local sudo ln -s x86_64-linux-gnu/libX* .
./configure --enable-qt --with-cc=gcc-4.4 --with-cxx=g++-4.4 --with-xrootd-opts=--syslibs=/usr/lib/x86_64-linux-gnu --prefix=/usr/local
First start the two dserver2s. Then start a dclient5 (if you want it with console use one of the -c options) and a test3 console (with one of the console options if you like) you can now control the hardware boards with the START, STOP and TIME commands or stop (Ctrl-C) and start one of the programs to see what's happening. In the test3 case you first have to cd to the server to which you want to talk by DATA_LOGGER. Don't forget to start dns if you want to control dclient5 from test3 via Dim.
To be able to write all received data directly to the FITS files, padding has been disabled calling dic_diable_padding() and dis_disable_padding(). This is done in our own error handler DimErrorRedirecter. Since this should be one of the first objects created in any environment it is quite save. However, every Dim client or server in our network which does not use the DimErrorRedirecter must call these two functions as early as possible.
At startup most programs try to resolve the name of the dim-dns as well as their local IP address. After this Dim is initialized and tries to contact the dns. These are so far the only blocking operations. Be patient at program startup. They will usually timeout after a while and give you proper informations.
Do the following steps in exactly this order:
Each program has an extensive help text (except the examples). This help text can be displayed with the –help option. For each program a man-page is automatically created (from the help-output), which (at the moment) can be accessed with man ./program.man (Don't forget the ./ before the filename). With make program.html and make program.pdf a HTML page and a pdf document can be created from the man-page.
With make doxygen-doc the HTML documentation as well as a pdf with the whole code documentation can be created.
Each documentation is also available with program –help or man ./program.man.
In alphabetic order:
There are a few example programs
**/