source: trunk/FACT++/MAINPAGE@ 10470

Last change on this file since 10470 was 10461, checked in by tbretz, 13 years ago
Little additions.
File size: 7.8 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
43Running \b ./configure will take some time. It tries to really check
44carefully that everything needed is available on your system, so that you
45get errors before you start compilation.
46
47In principle configure also supports
48
49\verbatim
50 make install
51\endverbatim
52
53which would install the package and the libraries in your system,
54although at the moment this is not recommended
55
56@subsection packages Required packages
57
58If you find a new package needed for installation please don't
59hesitate to report it, so that it can be added to the list below.
60
61Packages known to be needed to configure and compile FACT++
62
63<B>Dim:</B>
64- lesstif2, lesstif2-dev (Xm.h, needed to compile did)
65
66<B>Libraries:</B>
67- libreadline, libreadline-dev
68- boost, boost-dev (>=V1.40, all)
69- mysql++, mysql++-dev
70- libcfits, libcfitsio-dev
71- libccfits, libccfits-dev
72
73<B>For GUI support:</B>
74- libqt4-core
75- libqt4-dev
76- root
77
78<B>Documentation:</B>
79- doxygen
80- graphviz
81- help2man
82- groff
83- ps2pdf
84
85<B>Only for maintainers:</B>
86- autoconf (automake, autotools-dev, m4)
87- autoconf-archive
88- libtool (contains libtoolize
89- colorsvn (recommended)
90- colorgcc (recommended)
91- qt4-designer
92
93@section Demo Current demonstration programs
94
95- \b dserver2: A virtual board (A TCP/IP server). It is sending a
96 "hello" message after accepting a communication and then in 3s
97 intervals the current UTC time. The board can be set to state 1 or back
98 to state 0 (just as a demonstration)
99- \b dclient5: A control program. It accesses two viratual boards (start them
100 with 'dserver2 5000' and 'dserver2 4001') If both boards are connected the START
101 command can be issued to get them to state 'Running'. In this state
102 an asynchronous time stamp can be requested sending the TIME command.
103 to get back from Running to Connected use STOP.
104- \b test3: a dim console which allows to control all dim servers
105 by sending commands via the dim network.
106- Both, \b dclient5 and \b test3 accept the command line options -c0, -c1, -c2
107 to switch between different console types (or no console in the case of
108 \b dclient5). In the console you get help with 'h' and the available
109 command with 'c' You get the avilable command-line options with --help
110
111First start the two dserver2s. Then start a dclient5 (if you want it
112with console use one of the -c options) and a test3 console (with one
113of the console options if you like) you can now control the hardware
114boards with the START, STOP and TIME commands or stop (Ctrl-C) and
115start one of the programs to see what's happening. In the test3 case
116you first have to \e cd to the server to which you want to talk by \b
117DATA_LOGGER. Don't forget to start \b dns if you want to control dclient5
118from test3 via Dim.
119
120@section exitcodes Exit Code
121@section newcommand How to add a new command?
122@section description How to add help textes to services and commands?
123
124@section addtab How to add a new tab in the gui?
125
126Do the following steps in exactly this order:
127- Insert the new page from the context menu of the QTabWidget
128- Copy the QDockWidget from one of the other tabs to the clipboard
129- Paste the copied QDockWidget and add it to the new tab (only the tab should be highlited)
130- Now click on the context menu of the region in the tab (QWidget) and change the layout to grid layout
131
132
133@section Documentation
134
135Each program has an extensive help text (except the examples). This help text can
136be displayed with the \b --help option. For each program a man-page is automatically
137created (from the help-output), which (at the moment) can be accessed with <B>man
138FILE</B>.
139
140@section References
141
142@subsection generalref General references
143- <A HREF="http://www.cplusplus.com/reference">The C++ reference</A>
144- <A HREF="http://www.boost.org">boost.org: The boost C++ libraries</A>
145- <A HREF="http://www.highscore.de/cpp/boost/titelseite.html">Boris Sch&auml;ling: Die Boost C++ Bibliotheken</A>
146- <A HREF="http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html">GNU Readline</A>
147- <A HREF="http://www.gnu.org/software/ncurses">GNU Ncurses</A>
148- <A HREF="http://dim.web.cern.ch/">Distributed Information Management (DIM)</A>
149- <A HREF="http://dim.web.cern.ch/dim/cpp_doc/DimCpp.html">Distributed Information Management (DIM) - C++ reference</A>
150
151@subsection boostref Boost references
152- <A HREF="http://www.boost.org/doc/libs/1_45_0/libs/bind/bind.html">boost::bind (V1.45.0)</A>
153- <A HREF="http://www.boost.org/doc/libs/1_45_0/doc/html/boost_asio.html">boost asio (V1.45.0)</A>
154- <A HREF="http://www.boost.org/doc/libs/1_45_0/doc/html/date_time.html">boost date_time (V1.45.0)</A>
155- <A HREF="http://www.boost.org/doc/libs/1_45_0/doc/html/program_options.html">boost program_options (V1.45.0)</A>
156- <A HREF="http://www.boost.org/doc/libs/1_45_0/libs/filesystem/v3/doc/index.htm">boost filesystem (V1.45.0)</A>
157- <A HREF="http://www.boost.org/doc/libs/1_45_0/libs/regex/doc/html/index.html">boost regex (V1.45.0)</A>
158- <A HREF="http://www.boost.org/doc/libs/1_45_0/libs/system/doc/index.html">boost system (error codes) (V1.45.0)</A>
159- <A HREF="http://www.boost.org/doc/libs/1_45_0/doc/html/thread.html">boost thread (V1.45.0)</A>
160- <A HREF="http://www.boost.org/doc/libs/1_45_0/libs/conversion/lexical_cast.htm">boost lexical_cast (V1.45.0)</A>
161
162@subsection fitsref FITS references
163- <A HREF="http://heasarc.gsfc.nasa.gov/docs/heasarc/fits.html">The FITS data format</A>
164- <A HREF="http://heasarc.gsfc.nasa.gov/fitsio/">FITS homepage</A>
165- <A HREF="http://heasarc.gsfc.nasa.gov/fitsio/CCfits/">CCfits - A C++ wrapper to cfitsio</A>
166- <A HREF="http://heasarc.gsfc.nasa.gov/docs/software/ftools/fv/">fv - A very simple viewer to FITS file contents</A>
167
168@subsection qtroot How to integrate root in QT?
169
170- <A HREF="http://doc.trolltech.com/4.3/designer-creating-custom-widgets.html">QT4: Creating custom widgets</A>
171- <A HREF="http://root.cern.ch/download/doc/26ROOTandQt.pdf">root: QT integration (pdf)</A>
172
173
174@section Available programs
175
176- dns: Dim's domain-name-server (needed for any communication between Dim servers and clients)
177- did: A simple graphical interface to analyse everything in a Dim network
178
179@section Examples
180
181There are a few example programs
182- \b ./argv: Example for usage of the class Configure (command line options, configuration file)
183- \b ./time: Example for the usage of the class Time (time input/output, conversion)
184- \b ./log, \b ./logtime: A simple Dim-Service/-Client combination using MessageDimRX/MessageDimTX
185
186**/
187// **************************************************************************
Note: See TracBrowser for help on using the repository browser.