Home

Documentation

Project Support

Changes in Version 9 of GraspSw

Author:
crae
Timestamp:
Tue Apr 23 16:20:40 2024
Comment:
Initial documentation for tarball 4.00 release

Legend:

Unmodified
Added
Removed
Modified
  • GraspSw

    v8 v9
    1 1  '''II. [wiki:Grasp STARGRASP Software Overview]''' 
    2 2  [[TracNav(GraspContents)]] 
    3 3  = STARGRASP Software = 
    4 4  See also [wiki:GraspSwCommandSyntax Command syntax notes] 
    5 5  These are the five layers of interfaces to the STARGRASP controller system.  Each is built on only the next lower layer: 
    6 6  A. [wiki:GraspSwDemoScripts Demo Scripts] 
    7 7    Our example/template script commands run on the STARGRASP pixel server. 
    8 8    They are implemented in Bourne Shell and are primarily for 
    9 9    demonstration -- a suggested way to integrate a camera 
    10 10    or set of detectors controlled by STARGRASP into a larger system. 
    11 11    The scripts use toolkit level commands, described below, 
    12 12    to control a group of controller boardsets. 
    13 13  B. [wiki:GraspSwToolkit Toolkit Level] 
    14 14    The STARGRASP toolkit consists of C programs which a user or 
    15 15    script can invoke on the pixel server host.  Toolkit programs 
    16 16    can be invoked on any host with the ability to connect to the 
    17 17    controller using IP over Ethernet.  The most important tools 
    18 18    in the toolkit are those which receive log messages, boot the 
    19 19    controller, send arbitrary commands, and retrieve FITS images. 
    20 20    Additional engineering tools exist to visualize and optimize 
    21 21    noise performance and generate clocking patterns. 
    22 22  C. [wiki:GraspSwClibraries STARGRASP C Libraries] 
    23 23    Each of the toolkit tools are built on five main C Libraries. 
    24 24    Users wishing to replace the Demo Scripts, or make their own 
    25 25    customized tools that work in a similar fashion to the 
    26 26    toolkit level can build their own programs by using the 
    27 27    APIs at this level and linking with these libraries.  Some 
    28 28    of the APIs at this level are still evolving, so we recommend 
    29 29    using the Toolkit tools instead, if possible. 
    30 30  D. [wiki:GraspSwControllerCmd Controller Socket Commands] 
    31 31    The STARGRASP C libraries must accomplish all controller 
    32 32    communication through a TCP socket on the controller's 
    33 33    port 915 (by default.)  The majority of these commands are sent 
    34 34    by using grasp_cmd() (the C function, or the toolkit tool.) 
    35 35    grasp_cmd is a pass-through to the extensive list of commands 
    36 36    that the controller supports at the socket level.  For diagnostics, 
    37 37    many of these commands can also be typed manually if a serial 
    38 38    console is connected to the controller, and most can be sent 
    39 39    interactively with a tool such as "telnet" or "nc".  A command 
    40 40    exists to control each analog and digital function of the controller. 
    41 41  E. [wiki:GraspSwRegisters Registers and Clocking Instructions] 
    42 42    Registers and Clocking Instructions are the lowest level API, 
    43 43    used only by someone adding a new controller socket level command. 
    44 44    All controller socket level commands are implemented in C code 
    45 45    (downloaded as the stage2.srec to the controller) which modifies 
    46 46    registers or address space, and/or writes instructions to the 
    47 47    clocking engine. 
    48    == What's New in 3.04 == 
      48  == What's New in 4.00 == 
    49    The stargrasp-3.04 source tarball has been tested on Ubuntu 14.04LTS (desktop, amd64) and should also build on MacOSX and most 32-bit and 64-bit Linux distributions.  Here is a quick summary of what's been done between 3.03 and 3.04: 
      49  The stargrasp-4.00 source tarball has been tested on Ubuntu 22.04 LTS, and should be usable both on earlier versions (down to 18.04, possibly earlier) and also the imminent 24.04 release. It should also build on MacOSX and most 32-bit and 64-bit Linux distributions, including Microsoft's WSL. 
      50  The 4.00 release mainly includes fixes to work with modern compiler suites, especially where fortran is concerned. 
    50     * Tweak CCID20 "safe" voltages to allow DR of 21V (with a warning.) 
    51     * Fix "successfully powered ON" message when actually powering OFF. 
    52     * In grasp_save_ccid20, add MJD-OBS, and shutter UTC+MJD close/open times. 
    53     * In grasp_save_ccid20, move DARKTIME to the primary header unit. 
    54     * Fix some small compilation problems on Centos 6.4 (-lcrypt, ulong). 
    55     * More updates to daqsim, include command queue code from the real thing. 
    56     * GPC2 otatool updates, CCID71 support, and grasp_save_ota TDI mode fix. 
    57     * Noisetone compiles again, but may only be working on Linux at the moment. 
    58    Many Linux distributions unfortunately do not come by default with development files necessary to build traditional Unix applications such as those based on '''libX11''' and '''ncurses.'''  You may also need to install compilers for C++ and FORTRAN to build the STARGRASP source code.  Under CentOS, this is achieved by doing the initial install as a "development workstation."  For ubuntu 14.04, the following were needed on a default "desktop" install: 
      51  Many Linux distributions unfortunately do not come by default with development files necessary to build traditional Unix applications such as those based on '''libX11''' and '''ncurses.'''  You may also need to install compilers for C++ and FORTRAN to build the STARGRASP source code.  Under CentOS, this is achieved by doing the initial install as a "development workstation."  For ubuntu 22.04, the following were needed on a default "server" install: 
    59 52  {{{ 
      53  sudo apt install autoconf g++ gfortran libasound2-dev libncurses5-dev librrd-dev libssl-dev libtool libx11-dev make pkgconf 
    60    sudo apt-get install g++ 
    61    sudo apt-get install gfortran 
    62    sudo apt-get install libncurses5-dev 
    63    sudo apt-get install libx11-dev 
    64    sudo apt-get install libasound2-dev 
    65    sudo apt-get install librrd-dev 
    66 54  }}} 
      55  Past releases were tested against Centos. However, since the decision to largely abandon the old model of following RHEL in favour of "Stream" (which tracks ahead of RHEL), there's been little to no interest in using this any more. 
      56   
    67    For RedHat-based Linux distributions not initially installed for software development, the following may work: 
      57  In the past, for RedHat-based Linux distributions not initially installed for software development, the following may have worked: 
    68 58  {{{ 
    69 59  yum -y groupinstall 'Development Tools' 
    70 60  yum -y install gcc-gfortran # gfortran not necessarily included in dev tools package. 
    71 61  yum -y install libX11-devel 
    72 62  yum -y install rrdtool-devel 
    73 63  yum -y install glibc-static 
    74 64  yum -y install openssl-devel 
    75 65  }}}