You are here: CLASSE Wiki>ACC/Bunch Web>CBPMSoftware (07 Sep 2009, mcr)Edit Attach
  Cornell/CESR Beam Instrumentation Control (CBIC) Application
                       User Manual

  5-September-2009 (Draft)       M. Rendina (

The CBIC application is the primary control program for managing beam
measurement instruments and requesting various kinds and quantities of 

[[ As of 5-September-2009, the application only supports control of
   CBPM-II instruments deployed as the standard orbit/betatron phase
   acquisition system from locations 12W - 12E, (with a single-instrument 
   gap or two) and EXTra instruments at a handful of other scattered
   ring locations. ]]

The same program is designed to be general enough to serve multiple needs.
The primary but separate responsibilities of the application are:

 1) To provide on-demand beam position data in two distinct request modes:
    a) Local-application mode - Provides a menu-driven interface allowing
       the user to request various types of data acquisitions from a
       configurable set of deployed beam measurement instruments.  
       This mode also allows maintenance tasks to be performed on the 
       assorted files and instruments used during operation as well as
       allowing for the adjustment of application behavior/configuration.

    b) BPM server mode        - Provides a non-interactive BPM data server
       that responds to requests delivered through the 'CBPM CONTROL' MPM
       database node.  The measurment types and parameters are pre-defined
       and will be detailed below.  CESRV depends on a server or servers
       running in this mode to provide it with BPM data for orbit and 
       betatron phase measurements of a stored beam.

 2) To provide continuous monitoring of bunch by bunch beam currents under
    4ns feedback conditions.
    This mode uses a single beam monitoring instrument assigned specifically 
    to this task.

This manual is divided into several sections.
   I - Setting up for use
  II - Starting the application

(I)  - Setting up for use:
The application's behavior can be configured by editing a file in the local working directory
called 'cbic.conf'.  This is the only hardcoded path and filename that the application expects.
An example of this file is provided below.

#        CBIC Application Configuration File
#  Please note: All parameters below are CASE SENSITIVE

   #  Application/Server  ID
   .CBPM_SERVER_ID    55

   # DSP Sofware Flashing
   #  The instrument loader 
   # (exe) file to use when 
   # a flash command is 
   # issued from the main menu.
   .CBI_PT_INST_EXE_PATH   /home/mcr/devel/instr/CBPM-TSHARC/dsp/bin/cbi_PT_INST_exe.ldr

   # Data file output directories
   # (Do not provide a trailing '/' character)
   .PHASE_DATA_DIR         /nfs/cesr/instr/cbpm_data/tsharc/phase
   .PROC_DATA_DIR          /nfs/cesr/instr/cbpm_data/tsharc/proc
   .RAW_DATA_DIR           /nfs/cesr/instr/cbpm_data/tsharc/raw
   .TSCAN_DATA_DIR         /nfs/cesr/instr/cbpm_data/tsharc/tscan
   .PARAM_INDEX_DIR        /nfs/cesr/instr/cbpm_data/tsharc/config

   # File containing List of instruments to bring online
   .INSTRUMENT_LIST        /nfs/cesr/instr/allocation/BPM_instrument_list

   # Instrument Operational Parameters File Path
   .PARAM_FILE             /nfs/cesr/instr/cbpm_data/tsharc/config/configuration_parameters.cfg

   # Instrument Defaults
   # Timing Setup
   #  Valid options are:
   #    4ns_P
   #    4ns_E
   #    6ns_P
   #    6ns_E
   #    10ns_P
   #    10ns_E
   #    14ns
   #    4ns_P_FIX_G
   #    4ns_E_FIX_G
   #    6ns_P_FIX_G
   #    6ns_E_FIX_G
   #    10ns_P_FIX_G
   #    10ns_E_FIX_G
   #    14ns_FIX_G

   # Gain Setting
   # Valid options are: 0 - 10

   #  Communications
   # Valid options are:  ETHERNET,  XBUS


Starting the application in a working directory where no cbic.conf file exists will create
a template cbic.conf file in that directory similar to the above.  This must be 
editied/populated with configuration details before the program will function as expected.

.APPLICATION_ID   Is a text label that can be associated with an instrument or group of
                  instruments.  It allows one to bring a certain subset of instruments

.CBPM_SERVER_ID   A positive integer associated with a given instance of a CBPM data server
                  This value gets published in the 'CBPM CONTROL' mailbox when a BPM data
                  server is started and must be unique among all running BPM servers.
                  If a server is already running with the given ID number, a cbic instance
                  configured with the same ID number will not be permitted to enter server

.DEFAULT_GAIN_SETTING   [See the section Instrument Gain Settings below for details.]

.PHASE_DATA_DIR   Output data file directory used for betatron phase measurement files.

.PROC_DATA_DIR    Output data file directory used for processed data files.  These files
                  are produced when orbits are taken.  They contain button values averaged
                  over some number of turns. These values may also be scaled based on gain
                  setting and/or have pedestals subtracted.

.RAW_DATA_DIR     Ouput data file directory used for raw (turn by turn) button data.
                  Values provided are in ADC counts.

.INSTRUMENT_LIST  The full file path of the instrument list to reference when starting
                  the program.  This file provides
[[ As of 5-September-2009, a valid excerpt of this file looks like the example here: ]]

# Hostname   XBUS-PKT-Node  Element  Server-Type/ID    PS-Relay-Element    Annotation
ctacf033    CBPM PKT TST      3       BPM-TEST       BENCH TEST

ctacf074    CBPM PKT EXT      1       BPM-123     8AW
ctacf076    CBPM PKT EXT      2       CURRMON     12W2
ctacf097    CBPM PKT EXT     12       BPM-123     47AE
ctacf038    CBPM PKT EXT      3       BPM-123     12W3

  #ctacf101    CBPM PKT STD     10       BPM     NO comm, NO timing

                  The default is the master instrument list which is stored in 
                  but another file following the same formatting conventions may be 
                  specified here for special sessions or testing.
                  [ See the header of that master BPM instrument list file for
                    details on the file specification or filespec document 'XXXXX' ]

.PARAM_FILE       The full file path of the instrument operational parameters file to 
                  read in when the application starts.  This file contains all the timing
                  parameters, gain parameters, and MPM database addressing information
                  pertinent to instruments that may publish data into the traditional
                  orbit and betatron phase database locations such that third-party
                  applications like ORF or CESRV may receive orbit and betatron phase
                  [ See the header of the master operational parameters file
                    in /nfs/cesr/instr/cbpm_data/tsharc/config/configuration_parameters.cfg
                    for additional information on file syntax and content. ]

(II) - Starting the application:

The application is typically named 'cbic' unless renamed for informative purposes.
The various command-line options that the application honors are:

  -h     : HELP                 Prints the list of available command-line options.

  -v     : VERSION              Prints the application version, build ID, and communication
                                 structure ID stamps for all supported instrument platforms.

  -d #   : DEBUG PRINTOUT MODE  During runtime, prints out varying levels of additional
                                debugging information based on the verbosity level requested
                                by the numeric parameter provided.
                                  0 - No extra debugging output
                                  1 - Non-communications status statements for non-obvious
                                      State-confirmations (timing setup, timing mode, etc...)
                                  5 - Maximum detail level of debugging output
                                      Individual communications transfers, packet word-counts
                                      and other high-volume minutae are provided.
                                      NOTE: The maximum level prints a LOT of additional
                                            information and may in fact clutter useful 
                                            information or scroll it off the screen more rapidly 
                                            than it may be productively used.  It is recommended
                                            that the application is run in a terminal window 
                                            with a large scrollback buffer so that runtime 
                                            details are not lost.
                                [As of 5-September-2009, this option is hardcoded to a maximum
                                 value to provide the most debugging output possible when

  -g     : GUI MODE             Graphical User Interface mode.  An alternative to console-based
                                application control, draws windows on the screen allowing 
                                keyboard and/or mouse-based input of certain commands and

  -m #   : MAINTENANCE MODE     Starts up the application in one of the collection of available
                                'maintenance modes' that allow for the follwing options:
                                  1 - Brings instruments online with the usual communications
                                      and version checks, but skips reading in all but the
                                      location and naming instrument-specific parameters.

                                       [[ As of 5-September-2009, this is the only maintenance mode
                                          supported. It is invoked with a solitary '-m'. ]]

                                  2 - Brings instruments online but with no software component
                                      version checks.
                                  3 - Brings instruments online but with no communication,
                                      software component version checks, or instrument-specific
                                      timing parameters.  Useful for bringing a brand-new
                                      instrument with no instrument EXE, or a very 
                                      out-of-date instrument EXE loaded, as it skips all the
                                      checks that would normally prevent an instrument
                                      from being brought online.

  -a     : ALL INSTRUMENTS      Bring all instruments that are not commented out in the 
                                specified 'cbic.conf' file online, ignoring all 
                                APPLICATION_ID labels.

  -c     : CURRENT MONITOR      A specialized mode that brings a SINGLE, specially-allocated
                                instrument online to provide continuous monitoring of 
                                bunch-by-bunch beam currents.  
                                [The Instrument List file must have a single instrument
                                 designated 'CURRMON'. See section 'Current Monitor Mode'
                                 below for details.]

Topic revision: r1 - 07 Sep 2009, mcr
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding CLASSE Wiki? Send feedback