Skip to content

Latest commit

 

History

History
157 lines (121 loc) · 4.2 KB

README.org

File metadata and controls

157 lines (121 loc) · 4.2 KB

coda_scripts

Author:

  • Bryan Moffit
    • TJNAF Fast Electronics and Data Acquisition

What is this for?

A collection scripts for use with DAQs running CODA 3

What do I do with it?

Install and Configuration

Setup host ssh key for automated login to CODA component clients.

Install scripts on CODA 3 Platform host, ROC and PEB clients.

If you’re not sharing this directory with the CODA Components (e.g. with NFS), repeat all of the steps for each component.

  • With git
git clone git@github.com:JeffersonLab/coda_scripts.git ~/coda/coda_scripts
  • From zip
unzip coda_scripts-master.zip ~/coda/
mv coda_scripts-master coda_scripts

Configure environment variables in setupCODA3.tcsh or setupCODA3.bash

The setup file depends on your CODA Component’s default shell

setupCODA3.bash

# if undefined, use /site
: ${CODA:=/site/coda/3.10_devel}

# CODA/.setup overwrites SESSION and EXPID, save them, or set the default values
SAVE_SESSION=${SESSION:-session}
SAVE_EXPID=${EXPID:-expid}

# Default COOL_HOME and JAVA_HOME
: ${COOL_HOME:=${HOME}/coda/cool}
: ${JAVA_HOME:=${HOME}/jdk1.8.0_152}


# Default REMEX variables
: ${REMEX_CMSG_HOST:=thishost.jlab.org}
: ${REMEX_CMSG_PASSWORD:=${EXPID}}

# Default CODA_COMPONENT_TABLE
: ${CODA_COMPONENT_TABLE:=${CODA_SCRIPTS}/config/${EXPID}/coda_component_table.cfg}

setupCODA3.tcsh

setenv CODA_SCRIPTS ${HOME}/coda/coda_scripts

setenv CODA /site/coda/3.10_devel

setenv SESSION session
setenv EXPID expid

setenv COOL_HOME ${HOME}/coda/cool
setenv JAVA_HOME ${HOME}/jdk1.8.0_152

setenv REMEX_CMSG_HOST thishost.jlab.org
setenv REMEX_CMSG_PASSWORD ${EXPID}

setenv CODA_COMPONENT_TABLE ${CODA_SCRIPTS}/config/${EXPID}/coda_component_table.cfg

Source the setupCODA3.{tcsh,bash} in shell setup file for each DAQ component

.bashrc

export CODA_SCRIPTS=~/coda/coda_scripts
source $CODA_SCRIPTS/setupCODA3.bash

.tcshrc

setenv CODA_SCRIPTS=~/coda/coda_scripts
source $CODA_SCRIPTS/setupCODA3.tcsh

Note

Similar lines may need to be set in the corresponding .bash_profile and / or .profile. One way to accomplish this is to softlink them to your .bashrc / .tcshrc

  • e.g. BASH
cd ${HOME}
ln -s .bashrc .bash_profile

Modify the config file adding each DAQ component on the host

The file defined by $CODA_COMPONENT_TABLE specifies the components that will interact with these scripts

File format:

HOSTNAME   COMPONENT_TYPE    COMPONENT_NAME   OPTIONAL_ARG
Examples
  • I have a PEB named PEB1 running on daqpc1:
daqpc1   PEB   PEB1
  • I have a ROC named ROC2 running on daqroc2 and needs to run a tcl script to set it’s randy factor on startup:
daqroc2  ROC   ROC2  -t setrf.tcl

Start the platform

As a systemd service

  • In $CODA_SCRIPTS/platform.service, modify the ExecStart to point to the script location and User to the daq user. e.g.
User=thisuser
ExecStart=/home/thisuser/coda/coda_scripts/coda_platform.sh
  • Modify the $CODA_SCRIPTS/platform.sh script for the location of setupCODA3.bash. e.g.
source /home/thisuser/coda/coda_scripts/setupCODA3.bash
  • Enable the platform service (as root).
systemctl enable /home/thisuser/coda/coda_scripts/platform.service
  • Start the platform service
systemctl start platform

Run CODA

Setup a new COOL_HOME (stores CODA configurations)

  • Run jcedit
  • Create new COOL database
  • Expert -> Session -> New
    • Enter SESSION name (matches that defined in environment)

Launch CODA3 and its components

startCoda

Restart ONLY the PEB and ROC components

restartStuff

Kill ALL CODA components started by startCoda

kcoda