Skip to content

A collection of useful scripts to use with CODA

Notifications You must be signed in to change notification settings

JeffersonLab/coda_scripts

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

74 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 [email protected]: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

About

A collection of useful scripts to use with CODA

Resources

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 95.2%
  • Tcl 4.8%