Code Monkey home page Code Monkey logo

engineering_tools's Introduction

engineering_tools

A repository of scripts, configuration useful for the PCDS team

Push updates

git push -u origin master

Add Tag

git tag -a R{tag} -m '{comment}'

git push -u origin R{tag}

Creating a new release

# Clone the source code into a new folder
git clone https://github.com/pcdshub/engineering_tools.git R{tag}
# Enter repository
cd R{Tag}
# checkout tag number
git checkout tags/R{tag}

Updating latest

# Go to latest checkout
cd engineering_tools
# Pull latest from master branch
git pull origin master

The scripts

ami_offline_psana usage: ami_offline_psana options

We will run ami_offline

OPTIONS:
-u user (needs to be able to log into the psananeh/feh, if not on psana already)
-e EXPNUMBER
-R rebinning (binned to 640x640)
-n no timetool plugin
archive-status usage: archive-status [-h] PV

Return the status of the specified PV in the archiver.

OPTIONS:
-h, --help: Show the help message and exit.
camViewer usage: /reg/g/pcds/engineering_tools/latest/scripts/camViewer options

start the viewer for controls cameras

OPTIONS:
-c camera name as in camera list or gige #
-m bring up the edm screen
-r reboot the IOC
-l print list of cameras
-w # (wait for # hours to ask to renew, default 2 and 12 for GIGEs)
-u # update rate limit (default 5)
-H hutch: use a specific hutches camviewer config file
-e enable camera ioc
-d disable camera ioc
check_host Usage: /reg/g/pcds/engineering_tools/latest/scripts/check_host HOSTNAME

Display host info and run some checks.
configdb_readxtc usage: configdb_readxtc options

We will run configdb_readxtc

OPTIONS:
-u user (needs to be able to log into the psananeh/feh)
-e expnumber
daq_control daq_control COMMAND TARGET
COMMAND : { start, stop, restart, status }
TARGET : { daq, ami }
COMMAND : ami
TARGET : { [0], 1 }
daq_waitwin Waits for the LCLS-I daq windows to load, then exits.
dev_conda Source this to activate a pcds conda environment.
By default, this activates the latest environment.
Use export PCDS_CONDA_VER=VERSION before running to pick a different env.
Pick up EPICS environment variable settings just in case user did not
eloggrabber usage: eloggrabber options

start the eloggrabber, by default look at current exp

OPTIONS:
-e pass in an experiment to look at
-x instrument logbook
-c controls logbook
-u username
epicsArchChecker usage: epicsArchChecker [-h] [-w] [-s] filepath

Checks epicsArch files for mismatches of PVs and aliases, missing files, and unconnected PVs.

positional arguments:
filepath Full filepath of the file to check e.g /reg/g/pcds/dist/pds/xpp/misc/epicsArch.txt

optional arguments:
-h, --help show this help message and exit
-w, --warnings Displays: -Pvs and Aliases duplicated. -Pvs with no alias and aliases no Pvs.
-s, --status Displays Pvs not connected.
get_curr_exp usage: get_curr_exp options

OPTIONS:
-l add live status
-i/H information for hutch (override autodetection)
get_hutch_name Returns the hutch name based on the host it is run on. See `get_info` for more information.
get_info usage: get_info [-h] [--run] [--exp] [--live] [--ended] [--hutch HUTCH]
[--station STATION] [--getHutch] [--gethutch] [--getstation]
[--getbase] [--getinstrument] [--getcnf]
[--files_for_run FILES_FOR_RUN]
[--nfiles_for_run NFILES_FOR_RUN] [--setExp SETEXP]

optional arguments:
-h, --help show this help message and exit
--run get last run
--exp get experiment name
--live ongoing?
--ended ended
--hutch HUTCH get experiment for hutch xxx
--station STATION optional station for hutch with two daqs, e.g. cxi and mfx
--getHutch get hutch (uppercase)
--gethutch get hutch (lowercase)
--getstation get hutch station (for multiple daqs)
--getbase get base daq name (hutch_station if multiple daqs, otherwise hutch)
--getinstrument get instrument (HUTCH_station if multiple daqs, otherwise hutch)
--getcnf get cnf file name
--files_for_run FILES_FOR_RUN
get xtc files for run
--nfiles_for_run NFILES_FOR_RUN
get xtc files for run
--setExp SETEXP set experiment name
get_lastRun usage: get_lastRun options

OPTIONS:
-l add live status
-i/H information for hutch (override autodetection)
gige Deprecated; do not use.
grep_ioc usage: grep_ioc KEYWORD [hutch]
hutch can be any of:
xpp, xcs, cxi, mfx, mec, xrt, aux, det, fee, hpl, icl, las, lfe, tst, thz, all
If no hutch is specified, all hutches will be searched
grep_pv GREP SEARCHES THROUGH ALL IOCs IN /reg/d/iocData/
FOR PVs THAT MATCH GIVEN KEYWORD/HANDLE.
iocmanager iocmanager [hutch]

Control status of all IOCs running in a particular hutch in an interactive GUI.
Current hutch is used if not provided.
ioctool usage: ioctool <ioc>|<pv> [option]

Script that returns information about an ioc given its name or a PV it hosts

default option is 'name', list of options:
status : print power status of machine, try to ping interfaces
name : returns the name of the ioc
dir : returns the path to the directory the ioc is running from
cddir :opens the directory the ioc is running from (start with "source" before calling script with this option)
cfg : returns the the file name of the ioc .cfg (or st.cmd)
less: opens the ioc .cfg (or st.cmd) in less
data : returns the path of the appropriate iocData directory if it exists
telnet : starts a telnet session with the ioc
ipmConfigEpics usage: ipmConfigEpics [-b boxname] [-H hutch] [-d] [-h] [-l]
-b: specify boxname to view
-H: specify a hutch to use, overriding the automated selection
-d: fix issues with Bld Damage (likely camera IOC w/plugins on same machine)
-h: display this help text
-l: list available boxnames
makepeds usage: makepeds options

Make a pedestal file for offline use

OPTIONS:
-u user (needs to be able to log into the psananeh/feh)
-r runnumber for pedestal
-e EXPNAME in case you do not want pedestals for the ongoing experiment
-J make pedestals for Jungfrau (default only cspad/EPIX detectors)
-j make pedestals for Jungfrau - 3 run version(default only cspad/EPIX detectors)
-O make pedestals for Opals (default only cspad/EPIX detectors)
-Z make pedestals for Zyla (default only cspad/EPIX detectors)
-p TEXT: add to elog post
-c EVTCODE X use events with eventcode X set
-n # : if you have created a noise file, then write pixel mask file for pixels with noise above #sigma
-N # : use this number of events (default 1000)
-D : dark run for XTCAV
-L : lasing off run for XTCAV
-v STR: validity range (if not run#-end, e.g. 123-567 or 123-end)
-l: do NOT send to batch queue
-F : use the FFB (default if no experiment is passed)
-g : run on an FFB batch node
-f : full epix10k charge injection run
-C # : if noise filecreated, write pixel mask file for pixels with noise below xxx (currently integer only...)
-m # : write pixel mask file for pixels with pedestal below xxx (currently integer only...)
-x # : write pixel mask file for pixels with pedestal above xxx (currently integer only...)
-i start calibman. -r 0: show all darks, -r n: show runs (n-25) - 25
-d give path for alternative calibdir
makepeds_psana usage: makepeds_psana options

Make a pedestal file

OPTIONS:
-r runnumber for pedestal
-e EXPNAME in case you do not want pedestals for the ongoing experiment
-H HUTCH in case you do not pass an experiment name
-Z pedestal for zyla
-O make pedestals for Opals
-J pedestal for jungfrau (needs first of set of 3 runs!)
-D : dark run for XTCAV
-L : lasing off run for XTCAV (-b specifies the number of assumed bunches, def 1)
-l : donot send to batch queue
-F : use FFB
-f : full epix10k charge injection run
-v STR: validity range (if not run#-end, e.g. 123-567 or 123-end)
-N # : use this number of events (default 1000)
-n # : if noise filecreated, write pixel mask file for pixels with noise above xxx (currently integer only...)
-C # : if noise filecreated, write pixel mask file for pixels with noise below xxx (currently integer only...)
-m # : write pixel mask file for pixels with pedestal below xxx (currently integer only...)
-x # : write pixel mask file for pixels with pedestal above xxx (currently integer only...)
-c EVTCODE X use events with eventcode X set
-i start calibman. -r 0: show all darks, -r n: show runs (n-25) - 25
-d give path for alternative calibdir
-t : test, do not deploy.
-y : when specify cuts for status mask, apply those for epix100.
motor-expert-screen usage: motor-expert-screen options MOTOR_PV_BASENAME

Start an EDM for the specified motor.
Attempts to choose the correct type.

OPTIONS:
-h shows the usage information
motor-typhos usage: motor-typhos options MOTOR_PV_BASENAME

Start a typhos screen for the specified motor.
Attempts to choose the correct type.

OPTIONS:
-h shows the usage information
motorInfo usage: motorInfo MOTOR_PV (motor_pv_2/autosave/archive/pmgr_diff/pmgr_save) OPT

If given two motors, compare their settings
If given autosave as second argument, compare the current settings to the autosaved values: differences will be printed
If given archive, the archive values will be printed for the last week. If only the base PV is given, extra arguments will be needed

OPTIONS:
-h shows the usage information
-f fields to use as a comma separated list (default: use all autosave values)
-s start time for archiver info (YYYY/MM/DD HH:MM:SS)
-e end time for archiver info (YYYY/MM/DD HH:MM:SS)
pcds_conda Source this to activate a pcds conda environment.
By default, this activates the latest environment.
Use export PCDS_CONDA_VER=VERSION before running to pick a different env.
Pick up EPICS environment variable settings just in case user did not
pkg_release Checks out a package from the pcdshub github at a particular tag.
Does not update "latest" softlinks, these are inconsistent between packages.
Make sure your tag exists before running.
pmgr pmgr [hutch] [--debug] [--applyenable]
--debug : Displays the debug button, which prints out any edits made
--applyenable : Displays the apply all button, which applies settings to all motors
pydev_env Source this file to activate a development environment based on the latest
shared environment and on past calls to pydev_register
pydev_register Use this script to register development packages so that they will be
available when you source pydev_env
pyps-deploy usage: pyps-deploy [-h] -r RELEASE -c CONDA [--repo REPO] [--app-bin APP_BIN] app

Sets up a pyps/apps deployment for a particular github python package. This
will create an executable under .../pyps/apps/APP-NAME/RELEASE/APP-NAME
and repoint the symbolic link at .../pyps/apps/APP-NAME/latest to the new
release folder.

positional arguments:
app Name of the app to deploy

optional arguments:
-h, --help show this help message and exit
-r RELEASE, --release RELEASE
App version
-c CONDA, --conda CONDA
Conda environment name
--repo REPO Clone this repo and mask the environment package. Use
this when you have only a small change that does not
need a full environment release.
--app-bin APP_BIN Use in conjunction with --repo arg when the launcher
is not in the bin directory
questionnaire_tools usage: questionnaire_tools [-h] [-f FROMEXP] [-t TOEXP] [-r READEXP] [-c]
[-d ADD_DEVICE] [-l] [-p PRINT_DEVICE] [--dev]
[--experimentList] [--propList]

optional arguments:
-h, --help show this help message and exit
-f FROMEXP, --fromExp FROMEXP
experiment to copy from
-t TOEXP, --toExp TOEXP
experiment to copy to
-r READEXP, --readExp READEXP
experiment to read CDS tag from
-c, --copy_CDS copy data from CDS tab
-d ADD_DEVICE, --add_device ADD_DEVICE
name of device to be added
-l, --list_devices list device to be added
-p PRINT_DEVICE, --print_device PRINT_DEVICE
print data for device
--dev connect to dev database
--experimentList list of experiments
--propList list of proposals
restartdaq usage: restartdaq options

OPTIONS:
-w sort windows after start
-p select partition (same as used last)
-s silent (do not email jana)
serverStat usage: serverStat servername options

Script to check status of servers & reboot/power cycle them

SIGNATURE:
serverStat SERVERNAME [command]

default command is 'status', list of commands:
status : print power status of machine, try to ping interfaces
on : power machine on
off : power machine off
cycle : power cycle machine, wait a few second in off state
reset : reset machine (ideally try that before power cycling)
console: open the ipmi console where possible
expert : display info and run checks on server
startami usage: startami options

we are starting another ami session here

OPTIONS:
-s: stop the ami client current running on this machine
-c: config file you'd like to use (i.e. cxi_test.cnf)
stopami Kill an AMI process running in the current hutch.
stopdaq Stop the daq in the current hutch.
takepeds usage: takepeds
Takes a run with dark images for use in pedestals, and posts to the elog.
wheredaq Discover what host is running the daq in the current hutch, if any.
wherepsana Usage: where_psana [-h] [-c CONFIG] [-d DETAIL]
Checks where we have shared memory servers for psana running and could run psana jobs.
Optional arguments:
-h Show usage
-c Pick a specific DAQ config file rather than automatically selecting current hutch's file
-d Also show information about dss node mapping

engineering_tools's People

Contributors

silkenelson avatar zrylettc avatar spenc333 avatar zllentz avatar peacelovesapples avatar rajanplumley avatar juliethwallace avatar christina-pino avatar aegger13 avatar juliethoterorodriguez avatar koglin avatar klauer avatar aoluwade avatar slactjohnson avatar ddamiani avatar mcb64 avatar vespos avatar hhslepicka avatar slacmshankar avatar bhill-slac avatar mbosum avatar slacawallace avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.