PSI sics-cvs-psi-complete-tree-post-site-support
This commit is contained in:
@@ -76,39 +76,76 @@ recommended.
|
||||
\end{description}
|
||||
|
||||
\subsection{Building SICS}
|
||||
This document describes how to build the SICS software and where to find it.
|
||||
There are two sections: Building the SICS applications and building the Java
|
||||
clients. For both categories tarballs with all necessary files can be
|
||||
found in the /data/lnslib/src/sics directory. There are two tar files:
|
||||
sics.tar which contains the sources for the SICS server and additional C or
|
||||
F77 applications and java.tar which contains the code for the Java clients.
|
||||
A SICS distribution is best be obtained from the cvs
|
||||
repository. Access details are available on demand from Mark.Koennecke@psi.ch.
|
||||
A source distribution can be downloaded with:
|
||||
\begin{verbatim}
|
||||
cvs checkout sics
|
||||
\end{verbatim}
|
||||
This creates a new directory, sics, and copies a lot of files.
|
||||
|
||||
\subsubsection{Building the SICS Server and Applications}
|
||||
The first step is to untar the sics.tar file. As a result a directory sics
|
||||
with several subdirectories will be created. These subdirectories are:
|
||||
\subsubsection{SICS Directory Layout}
|
||||
Underneath the sics directory there are further sub directories:
|
||||
\begin{description}
|
||||
\item[hardsup] contains David Madens and other hardware drivers.
|
||||
\item[motor] contains the unix version of David Madens el734\_test program.
|
||||
\item[doc/programmer]holds programming documentation for SICS.
|
||||
\item[doc/user] The html sources for the user documentation. Also everything
|
||||
necessary for creating the printed documentation.
|
||||
\item[bin] Holds the final binary files.
|
||||
\item[tcl] Some Tcl helper code.
|
||||
\item[doc/manager]The SICS managers documentation.
|
||||
\item[difrac] The DIFRAC four circle diffraction subsystem.
|
||||
\end{description}
|
||||
For most programs makefiles are provided.
|
||||
Makefiles may need a little editing to correct the location of libraries.
|
||||
All necessary headers should be available in /data/lnslib/include and the
|
||||
libraries in /data/lnslib/lib.
|
||||
Building things within this hierarchy basically require to steps:
|
||||
\begin{enumerate}
|
||||
\item cd into the hardsup and difrac directories and type make in
|
||||
each. This builds required libraries for linking other applications.
|
||||
\item cd into the directory of the program you wish to compile and type make.
|
||||
For instance for building the SICServer, move into the main sics directory and
|
||||
type make.
|
||||
\end{enumerate}
|
||||
\item[doc] Contains documentation. Further subdirectories to doc:
|
||||
\begin{description}
|
||||
\item[user] User documentation.
|
||||
\item[manager] Manager documentation
|
||||
\item[programmer] Reference documentation for SICS programmers.
|
||||
\end{description}
|
||||
\item[matrix]A package for matrix manipulations
|
||||
\item[tcl]Tcl scripts
|
||||
\item[dummy]An example directory for a new site
|
||||
\item[psi]PSI specific parts of SICS
|
||||
\begin{description}
|
||||
\item[hardsup] Hardware support routines
|
||||
\item[sinqhm]The vxWorks histogram memory software
|
||||
\item[tecs]The tecs environment control software
|
||||
\item[motor]Utilities for the motor controller
|
||||
\item[utils]various utilities
|
||||
\begin{description}
|
||||
\item[check]The Tcl syntax checker for SICS
|
||||
\end{description}
|
||||
\end{description}
|
||||
\end{description}
|
||||
The sics directory is meant to contain the generic parts of
|
||||
SICS. Then there are site specific directories (dummy, psi) which hold
|
||||
code special for particular instruments or hardware. The selection for
|
||||
which configuration SICS is being compiled is made in the makefile, by
|
||||
linking against the appropriate site specific libraries.
|
||||
|
||||
\subsubsection{SICS Makefiles}
|
||||
The SICS makefile system is not perfect but is far better then
|
||||
compiling the whole stuff manually. There are various makefiles:
|
||||
\begin{description}
|
||||
\item[linux\_def, alpha\_def] contains the path to the HDF libraries,
|
||||
the flags necessary to run sub makefiles in sub directories etc. This
|
||||
is included by all other makefiles.
|
||||
\item[make\_gen] and children contains most of the makefile content and
|
||||
is included by the other makefiles.
|
||||
\item[makefile\_linux, makefile\_alpha] are makefiles for their
|
||||
respective platforms.
|
||||
\end{description}
|
||||
Some editing of makefiles will always be necessary. The path to the
|
||||
HDF libraries has usually to be adapted in the \_def files. If there
|
||||
is a different platfrom a new makefile has to be cloned from the
|
||||
existing ones. In order to support a new site a new make\_gen and a new
|
||||
makefile are have to be cloned. This system is similar in the
|
||||
subdirectories to the SICS directory. Once this has been setup typing:
|
||||
\begin{verbatim}
|
||||
make -f makefile_alpha clean
|
||||
\end{verbatim}
|
||||
will clean all object files etc. and
|
||||
\begin{verbatim}
|
||||
make -f makefile_alpha
|
||||
\end{verbatim}
|
||||
will build everything. May be you need to replace alpha by linux on
|
||||
some platforms. Please note, that I have been to lazy to generate
|
||||
dependencies for all the SICS files. This means that if you make
|
||||
changes to the major SICS header files (especially the kernel files)
|
||||
it is better do recompile everything. Otherwise you might find
|
||||
yourself chasing obscure bugs.
|
||||
|
||||
|
||||
\subsubsection{Building Java Clients}
|
||||
Again the first step is the untaring of tha java.tar file. This creates a
|
||||
@@ -134,6 +171,12 @@ Again the first step is the untaring of tha java.tar file. This creates a
|
||||
\item[spread] Another layout manager package.
|
||||
\item[topsi] The topsi and general scan status display.
|
||||
\item[amor] The AMOR user interface program.
|
||||
\item[tas] The Triple Axis user interface program.
|
||||
\item[trics] The TRICS user interface program.
|
||||
\item[JQF] A state machine framework used for implementing a new I/O
|
||||
system.
|
||||
\item[psi] The start of a new hierarchy of SICS applications and
|
||||
library classes.
|
||||
\end{description}
|
||||
Furthermore there are some Java source file in the main directory together
|
||||
with some htm files and makefiles. For each of the Java clients a makefile
|
||||
@@ -149,11 +192,11 @@ Furthermore there are some Java source file in the main directory together
|
||||
\item[Jar-File] make -f make.powder jar
|
||||
\end{description}
|
||||
|
||||
|
||||
\section{Kernel Objects and Modules}
|
||||
This section describes the modules defining the SICS kernel.
|
||||
\include{task}
|
||||
\include{nserver}
|
||||
\include{site}
|
||||
\include{ini}
|
||||
\include{passwd}
|
||||
\include{network}
|
||||
@@ -171,6 +214,9 @@ This section describes the modules defining the SICS kernel.
|
||||
\include{interrupt}
|
||||
\include{ofac}
|
||||
\include{servlog}
|
||||
\include{help}
|
||||
\include{Busy}
|
||||
\include{hmcontrol}
|
||||
\subsection{The commandlog}
|
||||
This is yet another logging facility of SICS. The idea is that all I/O
|
||||
going to connections with user or manager level rights is logged.
|
||||
@@ -187,6 +233,7 @@ writing to it. The rest is implemented as file statics in commandlog.c.
|
||||
This section describes the SICS objects implementing commands and objects
|
||||
common to all SICS instruments.
|
||||
\include{scan}
|
||||
\include{userscan}
|
||||
\include{center}
|
||||
\include{danu}
|
||||
\include{drive}
|
||||
@@ -202,6 +249,13 @@ common to all SICS instruments.
|
||||
\include{token}
|
||||
\include{udpquieck}
|
||||
\include{xytable}
|
||||
\include{lin2ang}
|
||||
\include{lomax}
|
||||
\include{nxscript}
|
||||
\include{nxupdate}
|
||||
\include{sicsdata}
|
||||
\include{simsync}
|
||||
\include{anticollider}
|
||||
|
||||
\section{SICS Hardware Objects}
|
||||
This section deals with objects and modules representing instrument
|
||||
@@ -228,24 +282,31 @@ right as utility functions. However, the preferred and supported way of
|
||||
accessing SICS hardware objects is through the interface functions.
|
||||
|
||||
\include{velo}
|
||||
\include{velodorn}
|
||||
\include{evcontroller}
|
||||
\include{itc4}
|
||||
\include{bruker}
|
||||
\include{tclev}
|
||||
\include{evdrivers}
|
||||
|
||||
\include{motor}
|
||||
\include{pimotor}
|
||||
|
||||
\include{counter}
|
||||
\include{hmdata}
|
||||
\include{histogram}
|
||||
\include{sinqhmdriv}
|
||||
\include{histsim}
|
||||
\include{choco}
|
||||
\include{switchedmotor}
|
||||
\include{tcldriveable}
|
||||
\include{rs232controller}
|
||||
\include{gpib}
|
||||
|
||||
\section{PSI Specific Hardware}
|
||||
\include{velodorn}
|
||||
\include{itc4}
|
||||
\include{bruker}
|
||||
\include{pimotor}
|
||||
\include{sinqhmdriv}
|
||||
\include{serial}
|
||||
\include{serialwait}
|
||||
\include{sps}
|
||||
\include{frame}
|
||||
\include{ecb}
|
||||
|
||||
\section{Powder Diffraction Specific Objects}
|
||||
\include{dmc}
|
||||
@@ -275,6 +336,9 @@ The files nxsans.h and nxsans.c implement the NeXus writing functions for SANS.
|
||||
\include{tricsnex}
|
||||
\include{difrac}
|
||||
|
||||
\section{Triple Axis Specific Code}
|
||||
\include{tas}
|
||||
|
||||
\section{Helper Objects}
|
||||
This section describes helper objects which implement useful data
|
||||
structures or utilities.
|
||||
|
||||
Reference in New Issue
Block a user