SICSsource

Search SINQ Wiki:
SINQ LIN

SINQ Wiki
- Main Page
- Search SINQ Wiki
- Sample Environment
- Probenumg. Intern
- Troubleshooting SICS

This Page
- Page Info
- Printer Friendly

Referenced by
SICSTrouble

Wiki Info
- Unused pages
- Undefined pages
- RecentChanges
- Page Index
- System Info
- JSPWiki Docu
- SandBox
- OneMinuteWiki
- Create a New Page




JSPWiki v2.0.52


Finding SICS Source Code and Manuals

Source codes for SICS etc. can be found in two places: on AFS and in the git repository. SICS sources are managed with a revision control system. As of 2014, we use git.

SICS on AFS

The important directory is /afs/psi.ch/project/sinqdev. Here various directories are found:

analysis
Source code for data analysis programs. At the time of writing only SINQ mantid dosurces are here.
hwmanuals
This is the collection of online manuals for SINQ hardware. Beware: we do not have manuals for
everything. Missing items may be found on the WWW or by consulting the people who built the hardware at PSI.
java
Source codes for the SINQ java clients: gtse and the other ones in separate trees
mksics
SICS source codes. This is more or less Mark Koenneckes development area.
sinqhm_linux_rtai
source codes for the histogram memory software. Please note, that compiling the HM software
requires a special cross compilation toolchain for PowerPC called elinos-4.1 which is installed on lnsl15.

There is more interesting stuff under mksics:

sics
the main SICS ANSII-C source code, documentation and such
sicspsi
the PSI specific library of ANSII-C SICS stuff, including auxiliary tools
sicscommon
common, shared Tcl codes used across instruments
inst_sics directories
directories with instrument specific Tcl programs.
ccdwww
The sources for the CCDWWW server used at BOA and else for CCD cameras
nexus
The NeXus APi source codes
nexusdef
The NeXus manual and base class sources
tmp
rubbish, files generated by SICS when run
daqtest
automatic tests for SICS for use with the behave tool

Access to all these areas is managed by and free for the usual LDM computing suspects.

It is OK to mess with the sources on AFS in order to do a quick fix when the main developers are not reachable. Especially as they can always revert what you messed up through the magic of revision control. However, for larger projects, it is recommended to get an own development area on your account or on AFS, create a branch and happily work privately until you are satisfied with your changes. See the next section on git.

SICS under Revision Control

ALL the SICS and other SINQ source code is managed by git. To this purpose the PSI gitorious server is used. This server ist gitorious.psi.ch. On that server is a project sinqdev where everything is kept. You may interact with this server through git (surprise!) and a WWW-interface. At this point it is advisable to get up to speed with git through external documentation and to look at the sinqdev project at gitorious.psi.ch.

If you desire to commit to the siqndev gitorious repository you will have to generate a ssh key and have that ssh key be added to the list of authorized keys on gitorious. The LDM computing gang can do that.

Here is a walk through what needs to be done to setup your private environment for developing SICS with HRPT as the instrument example:

  1. Create yourself a nice directory where you do your work. CD into that directory
  2. Get the main SICS sources: git clone ssh://git@gitorious.psi.ch/sinqdev/sics.git
  3. Get the PSI specific SICs sources: git clone ssh://git@gitorious.psi.ch/sinqdev/sicspsi.git
  4. Get the common instrument Tcl files: git clone ssh://git@gitorious.psi.ch/sinqdev/sinqcommon.git
  5. Get the hrpt specific Tcl files: git clone ssh://git@gitorious.psi.ch/sinqdev/sinqhrpt.git hrpt_sics
  6. Create a tmp directory, write a DataNumber file into it which contains 0 as its only content

If you make sweeping changes to SICS, it is advisable to use git branches.

For compiling and running SICS, see the next section.

Compiling and Running SICS

It is advisable not to do this on an instrument computer but rather on your own machine or on lnsl15.

  1. Cd into your development directory
  2. Set the environment variable SICSROOT to point to your development directory
  3. cd into the sics directory
  4. Run: make -f makefile_slinux. This will compile SICS. Most libraries required by SICS are located on AFS. May be you need to install some additional ones through yum.
  5. cd into the instrument directory hrpt_sics. Make sure that the flag in the hrpt.tcl file is set to simulation. If you mess with the real instrument without proper care, you will be rewarderd with angry user faces. And it will not work anyway. The firewall will keep you away....
  6. cd back to the development root
  7. Run sics/SICServer hrpt_sics/hrpt.tcl
  8. From another terminal, connect to your SICS server running on localhost

There is not much more in terms of development infrastructure: no autoconf, no bug tracker etc. Given the size of the SICS development team, the effort to maintain all that was deemed to be not worth the effort.



Printer Friendly  Page Info
This page last changed on 10-Jul-2014 13:22:17 UTC by MarkKoennecke.