source: trunk/FACT++/MAINPAGE @ 10550

Last change on this file since 10550 was 10550, checked in by tbretz, 9 years ago
Added some comments about shared libraries.
File size: 8.9 KB
Line 
1// **************************************************************************
2/** @mainpage
3
4@brief FACT++ - The FACT slow control software
5
6@author thomas.bretz@epfl.ch et al.
7@version 1.0
8 
9@section install_sec Installation
10
11FACT++ can be downloaded from the svn by
12
13\verbatim
14   svn checkout https://fact.isdc.unige.ch/svn/trunk/FACT++ [localdir]
15\endverbatim
16
17it includes a dim version which is automatically compiled.
18
19For compilation use
20
21\verbatim
22   ./configure
23   make
24\endverbatim
25
26Check the \b ./configure options with \b --help. It might look
27confusing, but some features like FITS or QT4 can be switched off,
28if the necessary library is not at hand and the feature is not needed.
29For example, if the GUI is not needed its compilation can be switched
30off by disabling QT4 support with \b --without-qt4.
31
32If you use a custom built root version on your system without QT
33support, but have a distribution packe (e.g. debian package) with
34QT support available, you can give the path to root executables,
35for example, with <B>--with-rootsys=/usr/bin</B>. All other paths
36are extracted from subsequent calls to \b root-config.
37
38Hint: Sometimes installing root from packages doesn't work as
39expected (at least on my Ubuntu). It might be necessary to
40find some of the root packages with the libraries giving trouble
41and reinstall them after the root package was already installed.
42
43Remark: root 5.24 und root 5.26 seem to have issues. Although there
44are some X errors when starting, it seems to work quite nice with
455.18/00b and 5.26/00e
46
47Running \b ./configure will take some time. It tries to really check
48carefully that everything needed is available on your system, so that you
49get errors before you start compilation.
50
51If \b ./configure fails please and you send a bug report please attach
52the file config.log.
53
54If \b make fails please and you send a bug report please attach
55the complete output of <B>make V=1</B>.
56
57\b Reminder: These programs use shared libraries, i.e. whenever you re-compile
58part of the project some of them might be re-compiled as well. As a result
59already running programs might crash unexpectedly! This is \b not a bug.
60
61In principle configure also supports
62
63\verbatim
64   make install
65\endverbatim
66
67which would install the package and the libraries in your system,
68although at the moment this is not recommended
69
70@subsection packages Required packages
71
72If you find a new package needed for installation please don't
73hesitate to report it, so that it can be added to the list below.
74
75Packages known to be needed to configure and compile FACT++
76
77<B>Dim:</B>
78- lesstif2, lesstif2-dev (Xm.h, needed to compile did)
79
80<B>Libraries:</B>
81- libreadline, libreadline-dev
82- boost, boost-dev (>=V1.40, all)
83- mysql++, mysql++-dev
84- libcfits, libcfitsio-dev
85- libccfits, libccfits-dev                                       
86
87<B>For GUI support:</B>
88- libqt4-core
89- libqt4-dev
90- root
91
92<B>Documentation:</B>
93- doxygen
94- graphviz
95- help2man
96- groff
97- ps2pdf
98
99<B>Only for maintainers:</B>
100- autoconf (automake, autotools-dev, m4)
101- autoconf-archive
102- libtool (contains libtoolize
103- colorsvn (recommended)
104- colorgcc (recommended)
105- qt4-designer
106
107@section Demo Current demonstration programs
108
109- \b dserver2: A virtual board (A TCP/IP server). It is sending a
110  "hello" message after accepting a communication and then in 3s
111  intervals the current UTC time. The board can be set to state 1 or back
112  to state 0 (just as a demonstration)
113- \b dclient5: A control program. It accesses two viratual boards (start them
114  with 'dserver2 5000' and 'dserver2 4001') If both boards are connected the START
115  command can be issued to get them to state 'Running'. In this state
116  an asynchronous time stamp can be requested sending the TIME command.
117  to get back from Running to Connected use STOP.
118- \b test3: a dim console which allows to control all dim servers
119  by sending commands via the dim network.
120- Both, \b dclient5 and \b test3 accept the command line options -c0, -c1, -c2
121  to switch between different console types (or no console in the case of
122  \b dclient5). In the console you get help with 'h' and the available
123  command with 'c' You get the avilable command-line options with --help
124
125First start the two dserver2s. Then start a dclient5 (if you want it
126with console use one of the -c options) and a test3 console (with one
127of the console options if you like) you can now control the hardware
128boards with the START, STOP and TIME commands or stop (Ctrl-C) and
129start one of the programs to see what's happening. In the test3 case
130you first have to \e cd to the server to which you want to talk by \b
131DATA_LOGGER. Don't forget to start \b dns if you want to control dclient5
132from test3 via Dim.
133
134@section dimremarks Remarks about Dim usage
135
136To be able to write all received data directly to the FITS files,
137padding has been disabled calling dic_diable_padding() and
138dis_disable_padding(). This is done in our own error handler
139DimErrorRedirecter. Since this should be one of the first
140objects created in any environment it is quite save. However, every
141Dim client or server in our network which does not use the
142DimErrorRedirecter \b must call these two functions as early as
143possible.
144
145@section exitcodes Exit Code
146@section newcommand How to add a new command?
147@section description How to add help textes to services and commands?
148
149@section addtab How to add a new tab in the gui?
150
151Do the following steps in exactly this order:
152- Insert the new page from the context menu of the QTabWidget
153- Copy the QDockWidget from one of the other tabs to the clipboard
154- Paste the copied QDockWidget and add it to the new tab (only the tab should be highlited)
155- Now click on the context menu of the region in the tab (QWidget) and change the layout to grid layout
156
157
158@section Documentation
159
160Each program has an extensive help text (except the examples). This help text can
161be displayed with the \b --help option. For each program a man-page is automatically
162created (from the help-output), which (at the moment) can be accessed with <B>man
163FILE</B>.
164
165@section References
166
167@subsection generalref General references
168- <A HREF="http://www.cplusplus.com/reference">The C++ reference</A>
169- <A HREF="http://www.boost.org">boost.org: The boost C++ libraries</A>
170- <A HREF="http://www.highscore.de/cpp/boost/titelseite.html">Boris Sch&auml;ling: Die Boost C++ Bibliotheken</A>
171- <A HREF="http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html">GNU Readline</A>
172- <A HREF="http://www.gnu.org/software/ncurses">GNU Ncurses</A>
173- <A HREF="http://dim.web.cern.ch/">Distributed Information Management (DIM)</A>
174- <A HREF="http://dim.web.cern.ch/dim/cpp_doc/DimCpp.html">Distributed Information Management (DIM) - C++ reference</A>
175- <A HREF="http://qt.nokia.com/">Qt homepage</A>
176- <A HREF="http://qt.nokia.com/downloads/">Qt downloads</A>
177
178@subsection boostref Boost references
179- <A HREF="http://www.boost.org/doc/libs/1_45_0/libs/bind/bind.html">boost::bind (V1.45.0)</A>
180- <A HREF="http://www.boost.org/doc/libs/1_45_0/doc/html/boost_asio.html">boost asio (V1.45.0)</A>
181- <A HREF="http://www.boost.org/doc/libs/1_45_0/doc/html/date_time.html">boost date_time (V1.45.0)</A>
182- <A HREF="http://www.boost.org/doc/libs/1_45_0/doc/html/program_options.html">boost program_options (V1.45.0)</A>
183- <A HREF="http://www.boost.org/doc/libs/1_45_0/libs/filesystem/v3/doc/index.htm">boost filesystem (V1.45.0)</A>
184- <A HREF="http://www.boost.org/doc/libs/1_45_0/libs/regex/doc/html/index.html">boost regex (V1.45.0)</A>
185- <A HREF="http://www.boost.org/doc/libs/1_45_0/libs/system/doc/index.html">boost system (error codes) (V1.45.0)</A>
186- <A HREF="http://www.boost.org/doc/libs/1_45_0/doc/html/thread.html">boost thread (V1.45.0)</A>
187- <A HREF="http://www.boost.org/doc/libs/1_45_0/libs/conversion/lexical_cast.htm">boost lexical_cast (V1.45.0)</A>
188
189@subsection fitsref FITS references
190- <A HREF="http://heasarc.gsfc.nasa.gov/docs/heasarc/fits.html">The FITS data format</A>
191- <A HREF="http://heasarc.gsfc.nasa.gov/fitsio/">FITS homepage</A>
192- <A HREF="http://heasarc.gsfc.nasa.gov/fitsio/CCfits/">CCfits - A C++ wrapper to cfitsio</A>
193- <A HREF="http://heasarc.gsfc.nasa.gov/docs/software/ftools/fv/">fv - A very simple viewer to FITS file contents</A>
194
195@subsection qtroot How to integrate root in QT?
196
197- <A HREF="http://doc.trolltech.com/4.3/designer-creating-custom-widgets.html">QT4: Creating custom widgets</A>
198- <A HREF="http://root.cern.ch/download/doc/26ROOTandQt.pdf">root: QT integration (pdf)</A>
199
200
201@section Available programs
202
203- dns: Dim's domain-name-server (needed for any communication between Dim servers and clients)
204- did: A simple graphical interface to analyse everything in a Dim network
205
206@section Examples
207
208There are a few example programs
209- \b ./argv: Example for usage of the class Configure (command line options, configuration file)
210- \b ./time: Example for the usage of the class Time (time input/output, conversion)
211- \b ./log, \b ./logtime: A simple Dim-Service/-Client combination using MessageDimRX/MessageDimTX
212
213**/
214// **************************************************************************
Note: See TracBrowser for help on using the repository browser.