DCS Tutorial
back to: Detector Control System
This page explains the different components and tools which exist in the FeeCom chain and how to run them. Those are in particular:
DIM Name Server
A dedicated DIM name-server takes control over all the running clients, servers and their services available in the system. Each server registers at startup all its services and command channels. For a client the location of a server is transparent.
How to get the software
Take the latest package from the dim web page and follow the instructions to build the package for your platform. If you are running Linux and have problems to compile the package, the following might help you.
Compile the DIM package for Linux
Recently we encountered problems when compiling the DIM package. Although the environment variables had been set as proposed in the README*.txt, the setup script didn't work. The following recipe is working on Scientific Linux CERN, but for sure it should be the same for other distributions.
- go to the directory of the dim package:
cd <path to dim package>
- set a couple of environment variables
setenv DIMDIR `pwd`/linux setenv OS Linux setenv ODIR linux
- compile the DIM library
make -f makefile_dim
Starting the Name server
You might need to set the LD_LIBRARY_PATH variable to allow the system to find the dim shared library.
cd <your path to the dim package> setenv LD_LIBRARY_PATH `pwd`/linux ./linux/dns
You will get a message like
PID 25703 - Wed Feb 15 13:51:15 2006 - DNS (pid 25703) starting up on kjekspc3.ift.uib.no
DIM Information Display
The DIM Information Display is a tool available for Linux which allows to monitor a DIM system. It is contained in the package you downloaded from the dim web page.
- if you want to compile DID follow the instructions in the previous section and do in addition
make -f makefile_did
NOTE:The DID needs some libraries to link against which come usually with the X11 system, but on some distributions they are missing. Note that you can start the DID from another machine which might provide all the necessary libraries. Or think about a system update on your machine. Make sure that the Motif library is installed on your system.
Running the DIM Information Display
Again, you might need to set the LD_LIBRARY_PATH variable to allow the system to find the dim shared library. In addition, the DIM_DNS_NODE variable has to be set. This variable specifies the location where the DIM framework will look for the DIM Name Server.
cd <your path to the dim package> setenv LD_LIBRARY_PATH `pwd`/linux setenv DIM_DNS_NODE <your dns host> ./linux/did
Choose View -> All Servers, now you should at least see the Name Server and your DIM servers if there are any. The documentation is not very extended, but you can get at least a glimpse at the dim web page.
FeeServer
Compilation
Download the latest version from then download page. The package relies on the usual Linux installation procedure configure, make and make install. Unpack the package and have a look into the README file. ./configure --help and ./configure --help=short provides information on the available options. Read more about the compilation process here.
Compilation for the DCS board
You need a cross compiler and have to specify the following options to ./configure
- --host=arm(mandatory)
- --prefix=<dir>(optional) specify the location where the executable will be copied with make install.
You should consider to make this directory available to the DCS board via NFS. The default prefix is set to /nfs_export/dcscard/${USER} if this directory exists, otherwise to the current directory. Note that the files will be "installed" in <prefix>/bin or <prefix>/bin respectively. - --enable-<detector> for detector specific implementations
Compilation for normal PC Linux
configure - options
- --enable-rcudummy(optional) this switches off all hardware access which might make life easier since you will not be bothered with bunches of error messages. A correct state handling will be implemented soon.
- --enable-<detector> for detector specific implementations
- --prefix=<dir>(optional) specify the location where the executable will be copied with make install.
The default prefix is set to the current directory. Note that the files will be "installed" in <prefix>/bin or <prefix>/bin respectively.