intro_acl
The Accelerator Command Language (ACL) is a simple scripting
language for reading and setting ACNET devices. This is intended
to be very simple to use, and as a result there are many synonyms
for commands as well as qualifiers. Hopefully, if you enter
commands that make sense to you, they will make sense to ACL.
Devices are specified by their names with a couple of additions.
You can specify the property with the second character in the name.
A colon (:) or question mark (?) indicates the reading property,
while an underscore (_) indicates the setting property, a pipe (|)
character indicates basic status, an ampersand (&) character
indicates basic control, an at (@) character indicates the analog
alarm, and a dollar sign ($) character indicates the digital alarm
property. An array index can be specified by appending the value
to the end of the device name enclosed in square brackets "[n]".
The array index value can be an integer constant, a variable,
a symbol, or a device reading. A range of array elements can be
specified in a similar way with the notation "[start:end]". If the
ending array index is omitted, the maximum array element for that
property is used. You can also specify what portion of a property
you want in bytes with the notation "{offset:length}". You can
further specify a device with the use of qualifiers.
Examples of device qualifiers:
/property=reading -> select the reading property (default)
/reading -> select the reading property (default)
/ftd=ftd_1hz -> set the reading frequency to 1 Hz
/ftd_1hz -> set the reading frequency to 1 Hz
/ftd_oneshot -> request a one shot reading
/ftd=evt02 -> request data on TCLK event 02
/ftd=2hz -> request data at a 2 Hz frequency
/raw_ftd=60 -> request data at a 1 Hz frequency
/event='p,1000,true' -> request data at a 1 Hz frequency
/period=2 -> request data every 2 seconds
/period_msec=500 -> request data every 500 milliseconds
/frequency=2 -> request data at a 2 Hz frequency
/length=n -> request n bytes of data
/num_elements=n -> request n array elements of data
/num_values=n -> request n array elements of data
/atomic_size -> request the atomic size for that property
/all -> request the maximum size for that property
/maximum_size -> request the maximum size for that property
/offset=n -> request data starting at a byte offset of n
/index=n -> request array element n (starts at 0)
/array_index=n -> request array element n (starts at 0)
/raw -> request raw (binary) data
/scaled -> request scaled data (default)
/primary -> request data in primary units
/volts -> request data in primary units
/common -> request scaled data (default)
/string -> request string data
/name -> request device name text
/text -> request device descriptive text
/bit_status -> request device bitwise status
/state -> request state text data (state devices only)
/state_text -> request state text data (state devices only)
/date -> request date string (raw data assumed to be
local time in seconds since Jan 1, 1970)
/date_gmt -> request date string (raw data assumed to be
GMT (UTC) time in seconds since Jan 1, 1970)
/date_clinks -> request date string (raw data assumed to be
local time in seconds since Jan 1, 1972)
/acnet_error -> request ACNET error string (raw data assumed
to be an ACNET error code)
/node -> request ACNET node string (raw data assumed
to be an ACNET node value)
/ip_address -> request IP address string
/ip_name -> request IP name string
/source=dp -> display data from the accelerator (default)
/source=db -> display data from the database
/source=sr:1 -> display data from save/restore file 1
/source=sda:1:"Inject Protons":1:ColliderShot -> display data from SDA
file 1, case Inject Protons,
subcase (set) 1,
usage ColliderShot
/source=dl:"01-JAN-2000 01:00" -> display data from a Lumberjack at
January 1, 2000 at 0100
/source=memory -> display data from a memory pool
Valid property strings:
reading -> reading property
read -> reading property
prread -> reading property
setting -> setting property
set -> setting property
prset -> setting property
basicStatus -> basic status property
basic_status -> basic status property
status -> basic status property
sts -> basic status property
prbsts -> basic status property
basicControl -> basic control property
basic_control -> basic control property
control -> basic control property
cntl -> basic control property
prbctl -> basic control property
analogAlarm -> analog alarm property
analog_alarm -> analog alarm property
analog -> analog alarm property
aa -> analog alarm property
pranab -> analog alarm property
digitalAlarm -> digital alarm property
digital_alarm -> digital alarm property
digital -> digital alarm property
da -> digital alarm property
prdabl -> digital alarm property
Property strings can also be expressed as device fields by using
dot notation ".{property}".
The fields of analog and digital alarm blocks can be
referenced through standard C/C++ structure notation with a
dot ('.') separating the device name and the alarm block
field name.
Valid alarm block field names:
.min[imum] -> analog alarm minimum value
.max[imum] -> analog alarm maximum value
.analog_nominal -> analog alarm nominal value
.tol[erance] -> analog alarm tolerance value
.nom[inal] -> digital alarm nominal value
.mask -> digital alarm mask value
.alarm_enable -> alarm enable status
.alarm_status -> alarm good/bad status
.tries_needed -> alarm tries needed
.tries_now -> alarm tries now
.alarm_ftd -> alarm scan rate
.abort -> alarm abort capability
.abort_inhibit -> alarm abort inhibit status
.limit_type -> analog alarm limit type
.flags -> alarm flags field
.block -> entire alarm block
Valid status field names:
.onOff -> device on/off status
.readyTripped -> device ready/tripped status
.remoteLocal -> device remote/local status
.polarity -> device polarity status
.rampDC -> device ramp/DC status
.isOn -> device on status
.isOff -> device off status
.isReady -> device ready status
.isTripped -> device tripped status
.isRemote -> device remote status
.isLocal -> device local status
.isPositive -> device positive status
.isNegative -> device negative status
.isRamp -> device ramp status
.isDC -> device DC status
.compositeStatus -> device composite (all attributes)
status
Valid database field names:
.name -> device name
.fullName -> device full name
.desc[ription] -> device description
.fullDescription -> device full description
.unitsText -> device engineering units text
.primaryUnitsText -> device primary units text
.deviceType -> device type
.shortDeviceType -> short device type text
.deviceMinimum -> device minimum possible scaled value
.deviceMaximum -> device maximum possible scaled value
.defaultSize -> device property default size in bytes
.atomicSize -> device property atomic size in bytes
.maximumSize -> device property maximum size in bytes
.numberOfElements -> device property maximum number of
array elements
.defaultFTD -> device property default FTD
.defaultDataEvent -> device property default data event
Valid device access field names:
.raw -> access raw device value
.primary -> access a device value in primary units
.scaled -> access scaled device value
.stateText -> access state text (state devices)
Some commands allow the caller to access multiple devices
through the specification of a family device or through the
use a list specifiers. List specifiers can be either an
ASCII text file name or a device database search specifier.
Valid list specifiers:
file={file name} -> read devices from ASCII file
db={table name} -> read devices from a database table
containing device indices
dbname={table name} -> read devices from a database table
containing device names
dbquery={SQL string} -> list all devices from an
arbitrary database query
on tables containing device
indices
dbqueryname={SQL string} -> list all devices from an
arbitrary database query
on tables containing device
names
devices='{device},{device}' -> access an explicit list of devices
node={node name} -> access all devices from the
requested node
node={wildcard node name} -> access all devices from nodes whose
names match the requested string
node={node}/crate={crate} -> access all devices from the
requested crate
node={node}/crate={crate}/slot={slot} -> access all devices from the
requested slot
node={node}/madc={madc number} -> access all devices from the
requested MADC
node={node}/property={property} -> access all devices from a node which
have the requested property
trunk={trunk number} -> access all devices from the
requested ACNET trunk
name={string} -> access all devices containing a
particular string in their name
full_name={string} -> access all devices containing a
particular string in their full name
name={string}/type={type} -> access all devices containing a
particular string in their name
with a given device type
family={string} -> access all devices in a family device
text={string} -> access all devices containing a
particular string in their
descriptive text
full_text={string} -> access all devices containing a
particular string in their
full descriptive text
device_type={type} -> access all devices with the
requested device type
device_type={type}/node={node} -> access all devices with the
requested device type from a
given node
device_type={type}/name={string} -> access all devices with the
requested device type which
a given string in their name
device_class={class} -> access all devices with the
requested device class
device_class={class}/node={node} -> access all devices with the
requested device class from
a given node
save_list={list} -> access all devices from the
requested save list
user_save_list={list} -> access all devices from the
requested user save list (usl)
driver={driver} -> access all devices with the
requested CAMAC driver type
driver={driver}/node={node} -> access all devices with the
requested CAMAC driver type
from a given node
virtual_machine={device} -> access all devices related to
a requested state device
units={units_text} -> access all devices having a given
units text
alarm_list={list} -> access all devices from the
requested alarm list
user_alarm_list={system[\list]} -> access all devices from the
requested user alarm list (ual)
alarm_handler={handler} -> access all devices having a
given alarm handler
controlling_device={device} -> access all devices controlled by
a given device
expr[ession]={string} -> access all devices containing
a given string in its
reading expression
expr_device={device} -> access all devices containing
a given device in its
reading expression
ssdn={SSDN pattern} -> access all devices having an SSDN
matching a pattern
download_list={node}[\{crate}] -> access all devices from the
requested node download list (dl)
save_file={file_number} -> list all devices saved in a
particular save file (sf)
sda_case={usage}[:{case}] -> list all devices configured for a
particular SDA case
sda_set={file}:{case}:{set} -> list all devices saved in a
particular SDA set
logger_list={node}[:{list}] -> list all devices on a given
data logger list
siblings={device} -> list all siblings descended from
a given device
param_page={page}[:{subpage}] -> list all devices on a given
parameter page
wg_list={list_name} -> list all devices from a
waveform generator list (I14/I15)
console_class={class} -> list all devices which are
settable by a console class
user={user name} -> list all devices modified by a
given user
user_created={user name} -> list all devices created
by a given user
Generic device names can also be entered wherever a valid ACNET
device name can be. These names have the form "G:DEVnnn". When
the code is parsed, the generic device names are replaced with
actual ACNET device names which are passed by the caller to
the parsing routine. The "nnn" is the index (starting at 0) of
the name in the caller's device list that should be used to
take the place of that generic device name.
Lists of devices can also be established with the device_list
command. These lists can be accessed through pseudo device
names of the form "Q:xxxxxx" where xxxxxx is the name given
the list.
There is also the concept of a "changeable" device. A changeable
device has a name of the form "G:CDVnn". The actual device that
is accessed by one of these pseudo devices can be set by the
"change_device" command.
Generic strings can also be entered for values in most commands.
These replacement strings are similar to the replacement device
names and have the form "stringnnn". The "nnn" is the index
(starting at 0) of the string in the caller' substitute string
list that should be used to take the place of that generic string.
This supports more generic scripts which have parameters that can
be changed from one execution of the script to the next. If a
replacement string is to be interpreted as a string by the script,
it should be enclosed in a string() function (ex. string(string0)).
Values in the script can be stored in either variables which are
destroyed when the script has completed or symbols which exist
across script executions until they are deleted by a call to
'acl_delete_symbol' or the calling program exits. Symbol values
can be read by the calling program through the routine
'acl_read_symbol_c' and set through 'acl_set_symbol_c'. Symbols
must begin with a "$" character. There are sixteen special symbols
which are created and updated by ACL itself. The symbol "$_value"
typically contains the value of the last assignment. The symbol
"$_status" typically contains the status of the last ACL command
executed. The "$_string" symbol contains the last string produced
by one of the string manipulation commands. The symbol
"$_error_string" contains the current verbose error string that will
ultimately be returned to the ACL caller unless an error handler is
invoked. The symbol named "$_error_status" is only updated when an
error handler is called and contains the error that caused the error
handler to be invoked. The symbol $_last_error_status is also
updated in an error handler and stores the last error status seen.
The symbol "$_error_device" contains the device index for the last
device having a read, set, or database access error. The symbol
$_generic_error_count indicates how many times the current error
has occurred consecutively. The symbol $_last_error_device contains
the device index for the previous device having a read, set, or
database access error. The symbol $_error_count indicates how many
times the current device has returned the present error status.
The symbol $_pending_count indicates how many consecutive times the
last read device has returned a status of pending. The symbol named
$_return_value contains the value returned by the last return statement. This
symbol is only valid during the execution of the statement following
the return. The symbol named $_eof is a logical value indicating
whether or not the most recent input request resulted in an end of
file error. The symbol named $_proc_status contains the status from
the last call_proc statement. The symbol named "$_num_device_args"
contains the number of device arguments passed to the current script.
The symbol named "$_num_string_args" contains the number of string
arguments passed to the current script. The symbol "$_num_devices"
contains the number of devices processed by the last command.
The symbol "$_num_values" contains the number of values processed by
the last command. Finally, the symbol named "$_script_name" contains
the name of the currently running script. Both variables and symbols
contain single values by default, but arrays of both types can be
created through the use of the "declare" command. Array indices use
the common square bracket style used by C/C++. Array indices can be
specified by integer constants, variables, symbols, or device values.
Multiple commands can be entered on a single line by separating
them with semicolons (;) or a a single command may span several
lines by inserting a back slash (\) at the end of each line to
be continued. Otherwise, it is assumed that each source line
defines one command. In any case, a single command line cannot
exceed 1008 characters including white spaces. Comments can be
inserted anywhere in a line indicated by an exclamation point (!)
or a pound (#) character. All text in a line following a comment
character is ignored.
Several commands plus some data source specifications take
dates as arguments. The default format for dates is
"dd-mmm-yyyy[ hh:mm]". There are also several special
formats. The "past" format specifies a time a certain
interval before the present time (e.g. "past_30min"). The
"store" format indicates the date that a particular shot
was started (e.g. "store_1000"). The "event" format indicates
the last time a given event occurred (e.g. "event_4e").
There are also various special date keywords. These include
"now" (present time), "today" (the start of the present day),
"yesterday" (midnight yesterday), "tomorrow" (midnight
tomorrow), "this_hour" (start of the present hour), "last_hour"
(start of the last hour), "this_week" (the start of this week),
"this_year" (the start of this year), plus several others.
There are also a few reserved strings that have special
interpretations:
console_number -> returns the caller's console number
slot -> returns the caller's console slot
node_name -> returns the caller's ACNET node name
node_number -> returns the caller's ACNET node (integer)
my_node_number -> returns the caller's ACNET node number
my_trunk -> returns the caller's ACNET trunk number
console_class -> returns the caller's console class mask
is_mcr_class -> returns 1 if the console is MCR class
user_name -> returns the current user name
process_name -> returns the current process name
executable_name -> returns the current executable image name
full_executable_name -> returns the current executable image name
including the path
program_name -> returns the current program name
generic_program_name -> returns the generic name of the
current program
page -> returns the current page name
clib_date -> returns the date of the current CLIB
{console color strings} -> return the corresponding color value
date (now) -> returns the current date
time -> returns the current time of day
current_time -> returns the current time of day
clinks[_now] -> returns the current date in clinks
ctime_now -> returns the current date in C time
gmt_now -> returns the current date in GMT (UTC) seconds
today -> returns the time for today at midnight
yesterday -> returns the time for yesterday at midnight
tomorrow -> returns the time for tommorow at midnight
this_minute -> returns the time for the start of the
present minute
last_minute -> returns the time for the start of the
last minute
next_minute -> returns the time for the start of the
next minute
this_hour -> returns the time for the start of the
present hour
last_hour -> returns the time for the start of the
last hour
next_hour -> returns the time for the start of the
next hour
this_shift -> returns the time for the start of the
present shift
last_shift -> returns the time for the start of the
last shift
next_shift -> returns the time for the start of the
next shift
this_week -> returns the time for the start of the
present week
last_week -> returns the time for the start of the
last week
next_week -> returns the time for the start of the
next week
this_month -> returns the time for the start of the
present month
last_month -> returns the time for the start of the
last month
next_month -> returns the time for the start of the
next month
this_year -> returns the time for the start of the
present year
last_year -> returns the time for the start of the
last year
next_year -> returns the time for the start of the
next year
year_now -> returns the current year number
month_now -> returns the current month string
day_now -> returns the current day of the month number
hour_now -> returns the current hour number
minute_now -> returns the current minute number
second_now -> returns the current second number
script_time -> returns the total script execution time
delta_script_time -> returns the script execution time since
the last reference to 'delta_script_time'
{ACNET error strings} -> return the corresponding ACNET error value
version -> returns the current ACL version
last_big_save -> last big save file number
last_shot_save -> last shot save file number
last_circular_save -> last circular save file number
current_store -> current store number
last_store -> last store number
current_pbar_shot -> current pbar shot number
last_pbar_shot -> last pbar shot number
current_recycler_shot -> current Recycler shot number
last_recycler_shot -> last Recycler shot number
mdat_time -> current time transmitted over MDAT
current_output -> returns the value of standard output
current_error -> returns the value of standard error
on_linux -> returns a value of 1 if ACL is being
executed on Linux, and value of 0 otherwise
newline -> newline string (useful in print command)
formfeed -> formfeed string (useful in print command)
tab -> tab string (useful in print command)
pi -> value of pi
ACL expressions contain values which may be constants, variables
or symbols, and device values. They support operators which
include the normal arithmetic operators (+, -, *, and /) as well
as '^' for exponentiation and '%' for integer modulus. They also
support logical operators '||' or 'or' and '&&' or 'and'. They
support the bitwise operators '|', '&', and 'xor'. In addition,
the special device-related operators 'is', 'is not', 'has', and
'doesnt have' are also supported. The regular expression string
string comparator operator 'like' is also supported. A number of
instrinsic functions which are listed below are also supported.
Expressions are used in the assignment, if, elseif, while, and
do_while commands.
Arithmetic operators:
addition : '+', 'plus'
increment : '++'
subtraction : '-', 'minus'
decrement : '--'
multiplication : '*', 'times'
division : '/'
integer modulus: '%'
remainder : '%%'
exponentiation : '^', '**'
left shift : '<<'
right shift : '>>'
Bitwise operators:
or : '|', 'bitor'
exclusive or : 'xor'
and : '&', 'bitand'
invert : '~', 'compl', 'complement'
Logical operators:
or : '||', 'or', '.or.'
exclusive or : '.xor.'
and : '&&', 'and', '.and.'
negate : '!', 'not', '.not.'
Comparison operators:
equals : '=', '==', 'equals', 'eq', '.eq.', 'is equal to'
not equal : '!=', '<>', 'ne', '.ne.', 'is not equal to', 'does not equal'
greater than : '>', 'gt', '.gt.', 'greater than'
greater/equal : '>=', 'ge', '.ge.', 'greater than or equal to'
less than : '<', 'lt', '.lt.', 'less than'
less/equal : '<=', 'le', '.le.', 'less than or equal to'
String operators:
equals : '=', '==', 'equals', 'eq', '.eq.', 'is equal to'
concatenation : '+', 'plus'
regexp compare : 'like', 'is like'
Special device operators:
is : device is in a particular status (on, off, etc.)
is not : device is NOT in a particular status (on, off, etc.)
has : device has a particular type of database information
doesnt have : device doesn't have a particular type of database
information
Intrinsic functions:
Arithmetic functions:
log : base 10 log
ln : natural log
sqrt : square root
sin : sine
sind : sine (argument in degrees)
cos : cosine
cosd : cosine (argument in degrees)
tan : tangent
tand : tangent (argument in degrees)
asin : arc sine
asind : arc sine (result in degrees)
acos : arc cosine
acosd : arc cosine (result in degrees)
atan : arc tangent
atand : arc tangent (result in degrees)
atan2 : arc tangent of the quotient of the arguments
atan2d : arc tangent of the quotient of the arguments
(result in degrees)
sinh : hyperbolic sine
cosh : hyperbolic cosine
tanh : hyperbolic tangent
asinh : arc hyperbolic sine
acosh : arc hyperbolic cosine
atanh : arc hyperbolic tangent
secant : secant
cosecant : cosecant
cotan : cotangent
cotand : cotangent (argument in degrees)
hypot : square root of the sum of the squares of the arguments
round : round (to a specified number of digits)
ceil : smallest integer greater than or equal to its argument
floor : largest integer less than or equal to its argument
trunc : truncate
fmod : remainder of the arguments
fract : fractional component
abs : absolute value
min : minimum of two values
max : maximum of two values
exp : base e exponentiation (e^n)
isInfinity : tests to see if a value is infinite
isNaN : tests to see if a value is a NaN
Bitwise functions:
or : bitwise or
and : bitwise and
xor : bitwise exclusive or
lshft : circular left shift
rshft : circular right shift
bit : bit test
setBit : set a bit in a value
clearBit : clear a bit in a value
bitField : extracts a bit field value
deviceBitField : extracts a bit field value from a device reading
setBitField : sets a bit field value
circularShift : bit field circular shift
bitCount : returns the number of bits set in a value
lowestBit : returns the lowest bit set in a value (or -1)
highestBit : returns the highest bit set in a value (or -1)
Array value functions:
sum : sum of an array of values
mean : mean of an array of values
median : median of an array of values
minimum : minimum of an array of values
maximum : maximum of an array of values
range : range of an array of values
stddev : standard deviation of an array of values
rms : RMS of an array of values
variance : variance of an array of values
mode : returns the most commonly occurring value in an array
(If there are multiple mode values, the smallest
value is returned.)
identical : checks to see if all values in an array are identical
String functions:
head : returns the beginning of a string
tail : returns the end of a string
substring : returns a substring of a string
strncmp : compares the first n characters of two strings
trim : removes leading and trailing blanks from a string
leftTrim : removes leading blanks from a string
rightTrim : removes trailing blanks from a string
case : changes the case of a string
toUpper : converts a string to upper case
toLower : converts a string to lower case
capitalize : capitalizes the first character in each word of
a string
toString : converts a value to its corresponding string
toTrimmedString : converts a value to a string with no spaces
stringCopy : copies one string to another
stringSetChar : overwrite a substring of one string with another
(similar to stringCopy)
stringGetChar : retrieve a substring from a string
(similar to substring but with different defaults)
stringCompare : compares one string to another (case sensitive)
stringCompareNocase : compares one string to another (case insensitive)
sprintf : formats output strings like sprintf with the
additional functionality of toString
formatDateString : format a date string using the format specifiers
in strftime
toNumeric : converts a string to its numeric value
stringLength : returns the length of a string
nonblankLength : returns the nonblank length of a string
findChar : returns the first location of one of a set
of characters in a string
findNotChar : returns the first location of a character which is
not a member of a set of characters in a string
findString : returns the position of one string within another
regexpFindString : returns the position of one string within another
using regular expressions for the search
insertString : inserts a string within another string
replaceString : replaces one string with another string in a string
regexpReplaceString: replaces one string with another string in a
string using regular expressions for the search
replaceChar : replaces any of a set of characers wih another
character
split : splits up a string based upon finding a delimiter
string
regexpSplit : splits up a string based upon finding a delimiter
string which is a regular expression
splitByCharSet : splits up a string based upon finding any of a
set of delimiter characters
stringToken : returns the next token from a string and removes
it from the original string
stringGetValue : returns the next token of the specified type from
a string and removes it from the original string
stringType : returns a string describing the argument string's
type
pos : pads with spaces/truncates a string to a specified
length
pad : pads a string with a specified character to a
specified length
justify : left justify, right justify, or center a string
center : center a string
leftJustify : left justify a string
rightJustify : right justify a string
strShift : left or right shift a string
leftShift : left shift a string
rightShift : right shift a string
reverse : reverses a string
repeatString : repeats a substring a number of times
decimal : returns a value as a decimal string
hex : returns a value as a hexadecimal string
binary : returns a value as a binary string
octal : returns a value as an octal string
radix : returns a value as an arbitrary radix (2-36) string
stripSpaces : strips any whitespace from a string
stripCharacters : strips a requested set of characters from a string
stripNonprintables : strips nonprintable characters from a string
stripHtml : strips HTML tags from a string
stripQuotes : strips beginning and ending quotes from a string
quoteString : adds beginning and ending quotes to a string
unescapeString : replaces escape characters in a string with
their original characters
escapeString : replaces characters in a string with their
corresponding escape characters
findTagString : finds and extracts delimited tags from a string
getTaggedValue : extracts a tag/value pair from a string
makePrintable : expand any tabs and remove or replace any
nonprintable characters in a string
isLowerCase : determines whether or not a string is in all
lower case characters
isUpperCase : determines whether or not a string is in all
upper case characters
isQuotedString : determines whether or not a string is quoted
isAlphabeticString : determines whether or not a string is composed
entirely of alphabetic characters (plus optional
white space)
isAlphanumericString : determines whether or not a string is composed
entirely of alphanumeric characters
(plus optional white space)
isBlankString : determines whether or not a string is composed
entirely of white space
isFloatString : determines whether or not a string represents
a floating point number
isIntegerString : determines whether or not a string represents
an integer number
isHexString : determines whether or not a string represents
a hexadecimal number
isPrintableString : determines whether or not a string is composed
entirely of printable characters
isStringFilledWithChar : determines whether or not a string is
composed entirely of a single character
isDeviceString : determines whether or not a string represents
a device specification
isPropertyString : determines whether or not a string is a
device property name
isNodeString : determines whether or not a string is a
node name
isErrorString : determines whether or not a string is
an error name
isEventString : determines whether or not a string
represents a clock event
isDateString : determines whether or not a string
represents a date
Device oriented functions:
device : converts an ACNET device to a value
name : returns a device name string
fullName : returns a device full name string
text : returns a device descriptive text string
fullText : returns a device full descriptive text string
units : returns a device units string
deviceValue : returns a numeric device value
deviceValueText : returns a device value as a string
hasProperty : determines whether or not a device has a
specified property
hasReading : determines whether or not a device has a
reading property
hasSetting : determines whether or not a device has a
setting property
hasStatus : determines whether or not a device has a
status property
hasControl : determines whether or not a device has a
control property
hasAnalogAlarm : determines whether or not a device has an
analog alarm property
hasDigitalAlarm : determines whether or not a device has a
digital alarm property
stateText : returns the text for the current state of a
state device
deviceDefaultLength : returns the default length of a device property
in bytes
deviceAtomicLength : returns the atomic length of a device property
in bytes
deviceMaximumLength : returns the maximum length of a device property
in bytes
deviceScalingLength : returns the scaling length of a device property
in bytes
numReadableProperties : returns the number of readable properties for
a device (optionally also returns the array
of properties)
numSettableProperties : returns the number of settable properties for
a device (optionally also returns the array
of properties)
bitText : returns the descriptive text for a specified bit
bitDataText : returns the data text for a specified bit
analogAlarmText : returns the analog alarm text for a device
analogAlarmPriority : returns the analog alarm priority for a device
digitalAlarmText : returns the digital alarm text for a device
ftpMaxFreq : returns the maximum fast time plot frequency
for a device or plot class
snapshotMaxFreq : returns the maximum snapshot plot frequency
for a device or plot class and optionally
the number of points as well
Device scaling functions:
deviceRawToScaled : scale a raw device value
deviceRawToScaledCustom : scale a raw device value using
caller-supplied scaling parameters
deviceScaledToRaw : convert a scaled device value to a raw value
deviceRawToStatusText : scale a raw status value to a text string
deviceRawToStatusValue : scale a raw status value to a boolean
attribute value
deviceRawToControlText : scale a raw control value to a text string
deviceRawToEnumText : scale a raw enumerated reading value
to a text string
Time functions:
stringToDate : converts a string to a date value
dateToString : converts a date value to a string
convertSeconds : converts dates in seconds between date types
julianDate : converts a date value to a julian date
julianDateToDate : converts a julian date value to a date
15hzCount : returns 15Hz count since the calling process
started
systemTime : returns system time in milliseconds since
ACL was initialized
cpuTime : returns CPU time in milliseconds since
ACL was initialized
timeAgo : returns date which is some number of
time units before a base time
Clock event functions:
eventOccurred : determines if a clock event has occurred
timeSinceEvent : returns the elapsed time since an event
has occurred
eventDate : returns the date in clinks when an event last
occurred
SDA functions:
currentSdaFile : returns the current SDA file number for a given
usage
dateToSdaFile : returns the SDA file number corresponding to
a given date
sdaFileDate : returns the starting or ending date for an
SDA file
isValidSdaFile : determines whether or not a value is a valid
SDA file number (file instance actually exists)
isValidSdaCase : determines whether or not a value is a valid
SDA case (case instance actually exists)
isValidSdaSet : determines whether or not a value is a valid
SDA set (set instance actually exists)
Console oriented functions:
consoleExists : determines whether or not a specified
console exists (is defined) (may not be running)
consoleIsUp : determines whether or not a specified
console is running
consoleSlotExists : determines whether or not a console slot exists
consoleProcessName : retrieves the name of a console process
running in a specified console and slot
File oriented functions:
fileExists : determines whether or not a file exists
fileLength : returns the length of a file in bytes
fileDate : returns the date of a file
fileOwner : returns the owner of a file
fileOwnerId : returns the owner ID for a file
filePermissions : returns the complete file permission set
for a file
fileHasPermission : returns a specific permission for a file
fileCopy : copies an existing file
(requires file copy privilege)
fileRename : renames an existing file
(requires file rename privilege)
fileDelete : deletes an existing file
(requires file delete privilege)
Miscellaneous functions:
exists : determines if a device or variable/symbol exists
sizeof : returns the number of elements in a device,
device list, input, or variable (static)
byteSizeof : returns the size of a device or variable
in bytes (static)
sizeofVariable : returns the number of elements in a variable
byteSizeofVariable : returns the size of a variable in bytes
numElements : returns the number of elements in a variable
or a device specification (dynamic)
byteCompare : performs a byte comparison of two values
byteCopy : performs a byte copy of one value to another
condif : returns the second argument if the first has a
value of true or the third argument if it has
a value of false
scondif : returns the second argument as a string if the
first has a value of true or the third argument
as a string if it has a value of false
lor : logical or
land : logical and
floatToBinary : converts a single precision floating point
value to its equivalent binary value
binaryToFloat : converts a binary value to its equivalent
single precision floating point value
bcdToString : convert a BCD-encoded value into decimal string
bcdToDecimal : convert a BCD-encoded value into decimal integer
random : returns pseudo random numbers from 0 to 2^31 - 1
prec : output precision
(eg. prec(value,fraction_digits))
stringToRad50 : convert a string to a radix 50 value
rad50ToString : converts a radix 50 value to a string
timer : returns the current value of a timer
node : converts a node name to a value
error : converts an ACNET error string to a value
userAlarmList : returns the state of a user alarm list
(enabled, bypassed, or empty) and can be used
in an "is" expression
settingsAreEnabled : determines if settings are enabled
(supports optional device name argument)
nodeIs : determines whether or not the specified
node has a particular status or type
nodeIsUp : determines whether or not the specified
node is up
getLogicalName : returns the string corresponding to a
logical name
setLogicalName : sets a logical name to a value
deleteLogicalName : deletes a logical name
getenv : returns the string corresponding to an
environment variable
setenv : sets an environment variable to a value
delenv : deletes an environment variable
oldestSrFile : returns the oldest save/restore file number
newestSrFile : returns the newest save/restore file number
oldestLoggerTime : returns the oldest timestamp for a logged device
consoleSlotToWindow : convert a console slot to a primary window ID
consoleWindowToSlot : convert a console window ID to a slot
playBeep : plays a beep sound
playSound : plays an existing sound file
A block of code can be marked so that it is always executed
regardless of errors or program execution flow. This is called
an "always" block. It must be situated at the end of the script,
and it is started with a label statement of "always". The always
block cannot contain on_error, exit, gosub, goto, or return
commands. The always block never affects the overall returned
status from the script.
-------------------------------------------------------------------------------
Alphabetic list of ACL commands:
-------------------------------------------------------------------------------
acnet_request - send an ACNET request
activate - activate a device
alarm_limit - read or set analog alarm limits
alarm_log - display alarm history log
assignment - assign a value to a variable or symbol
beam_switch - read the status of a beam switch
break - jump out of a simple program loop
bypass - bypass an alarm
call_proc - execute a non-ACL procedure
camac - execute individual CAMAC commands
ch13_message - display the current channel 13 message
change_device - change the device that a changeable device refers to
check_status - check the basic status of devices
clib_info - display CLIB information
cnswin - move, resize, or iconify a console window
cns_message - send a console message
comment_char - disable a comment character
compare - compare device readings
console_info - display console information
continue - jump to the bottom of a simple program loop
copy - copy one device to another
copy_variable - copy a value or an array of values into a variable
cpld_log - display CPLD program log entries
crate - access CAMAC crate information
data_event - set the default data event for future data requests
data_source - establish a data source for future data requests
dbset - set the database setting record for an ACNET device
deactivate - deactivate a device
declare - declare a variable or symbol
decrement - decrement an ACNET device
delete - delete cached database information or a file
delete_cache - delete cached database information
delta_set - apply a delta to the setting of an ACNET device
device_arg - specify a description and/or default value for a device
device_list - specify a list of devices for processing
digital_control - send a basic control command to a device
disable - disable a device, a clock event, or another parameter
download - download the most recent database setting for a device
downtime_log - display downtime log entries
do_while - begin a do/while loop
else - implement default case for a an if/elseif block
elseif - execute simple nested conditional structure
enable - enable a device, a clock event, or another parameter
endif - end a simple conditional structure
endloop - end a simple program loop
endwhile - end a simple while loop
end_do_while - end a do/while loop
error_text - display ACNET error text
event_info - display clock event information
event_log - display event log entries
execute - execute ACL code
exit - end the script
exitloop - jump out of a simple program loop
fft - perform an FFT on a set of points
file_info - display flat file information
fill - fill a device setting with a value
find_program - find running instances of a program
fit - perform a polynomial, exponential, or Gaussian fit on a set of points
fshare_info - display Filesharing file information
ftd - set the default Frequency Time Descriptor for future data requests
ftp - copy a file or files using file transfer protocol (FTP)
ftp_read - read ACNET device using the fast time plot protocol
gas - read or write GAS commands
gosub - jump to a labeled subroutine
goto - jump to a given label
gpib - execute GPIB commands
host_request - pass a request to the host program
if - execute simple conditional structure
image_draw - display a graphic image
increment - increment an ACNET device
input - define a data input
list - list device parameters
list_strings - displays control system lists of strings
lock - lock a script
logger_get - read datalogger values
log_device - log a device value
loop - execute a simple program loop
madc - access MADC information
mail - mail a file to a user
mdat_info - display MDAT frame information
measurement_spec - read or set a measurement specification
negative - set an ACNET device to negative polarity
node - perform operations on an ACNET node
node_info - display ACNET node information
nominal_mask - read or set digital alarm nominals/masks
off - turn off an ACNET device
off_list - turn off a list of ACNET devices
on - turn on an ACNET device
on_error - establish an error handling routine
on_list - turn on a list of ACNET devices
output - define the output for future commands
path - set the default file path
polarity - set the polarity of an ACNET device
positive - set an ACNET device to positive polarity
print - print a line of output
program_info - display program information
program_log - display program (shared) log entries
program_status - retrieve the status of a program instance
ramp - ramp a setting to a desired value
read - read an ACNET device and display the value
read_dir - read the contents of a file directory
read_field - read an individual field from an ACNET device
read_file - read all or part of a file
read_struct - read an ACNET device structure
reboot - reboot an ACNET node
reset - reset an ACNET device
reset_list - reset a list of ACNET devices
resize - resize (reallocate) an array variable or symbol
restore - restore an ACNET device setting
retry - retry a command which has invoked an error handler
return - return from a subroutine or error handler
run - run a program
save - save devices in a save/restore file
saverestore_get - read values across save/restore files
sda_config - display SDA configuration information
sda_dir - display SDA directory information
sda_get - read values across SDA samples
search - search device readings for a pattern
set - set an ACNET device
set_field - set an individual field in an ACNET device
set_list - set a list of ACNET devices
set_struct - set an ACNET device structure
setting_log - display setting log entries
shot_log - make an entry in the Shot Scrapbook
show - display database information for a device
slot - access CAMAC slot information
snap_read - read ACNET device using the snapshot plot protocol
sort - sort an array of values or an array device
sql - send a database modification command or read database values
sr_dir - display save/restore file directory information
sr_set - set the value for an ACNET device in a save file
state_log - display state log entries
stats - perform simple statistics on device readings or a variable
step_motor - set a stepping motor
string_arg - specify a description and/or default value for a string
str_case - change the case of a string
str_cat - concatenate two strings together
str_compare - compare two strings
str_convert - convert a string value
str_copy - copy one string to another
str_find - search for one string in another
str_format - build a formatted string
str_length - return the length of a string
str_replace - replace a substring with another
str_split - split a string into substrings
str_tail - extract the tail of a string
str_trim - trim spaces from a string
substring - extract a substring from a string
swap - swap a set of values in a variable or a device
switch_info - display network switch information
system - execute a system command
table_device - read or set table device values
tcp_request - send a TCP/IP request
timeout - set data acquisition timeout values
timer - determine time intervals
timer_event - read or set timer events
tlg_info - read information about events generated by the TLG
toggle - toggle a status attribute of an ACNET device
trigger - trigger a clock event
turn - turn an ACNET device on or off
unescape - replace escape characters in a string
unlock - unlock a script
url_display - display a URL in a web browser
user_info - display console user or console node information
version - display the version of ACL that is being run
wait - wait for a period of time, an event, a state, or a device
web_log - make an entry in a web-based log book
while - execute simple while loop
-------------------------------------------------------------------------------
ACL Command help:
-------------------------------------------------------------------------------
read : read an ACNET device and display the value
read[/{qualifier...}][/output={spec}] {device}{[n]}[/{qualifier...}] [{var}]
This command outputs the name of the requested device, it's current
value, and the corresponding units text. One or more elements of
an array device can be displayed. Note that a device index can be
supplied rather than a device name. This command also supports
an array index notation which allows you to specify the beginning
and ending array indices (ex. read t:ha11[3:5]). This command
also supports family devices and list specifiers (see above).
Examples of read qualifiers:
scaled -> read the scaled data (default)
raw -> read the raw data in hex
raw_bs -> read the raw data in hex (byte swapped)
raw_ws -> read the raw data in hex (word swapped)
dec[imal] -> read the raw data in decimal
dec_bs -> read the raw data in decimal (byte swapped)
dec_ws -> read the raw data in decimal (word swapped)
primary -> read the data in primary units (volts)
string (ascii) -> read raw data as a string (ASCII)
string_bs -> read raw data as a string (ASCII)
and byte swap it
ascii_no_nulls -> read raw data as a string with embedded
(but not trailing) nulls replaced with
a pipe (|) character
state -> read raw data and display as state text
date -> read raw data and display as a date string
(raw data assumed to be local time in
seconds since Jan 1, 1970)
date_gmt -> read raw data and display as a date string
(raw data assumed to be GMT (UTC) time in
seconds since Jan 1, 1970)
date_clinks -> read raw data and display as a date string
(raw data assumed to be local time in
seconds since Jan 1, 1972)
acnet_error -> read raw data and display as an ACNET
error string
node -> request ACNET node string (raw data assumed
to be an ACNET node value)
property=analog_alarm -> read whether or not the device is in alarm
setting -> read the setting value
ftd_oneshot -> request a one shot reading
length=2 -> request 2 bytes of data
atomic_size -> request the atomic size for this property
maximum_size -> request the maximum size for this property
num_elements=4 -> request 4 values
num_values=4 -> request 4 values
num_elements=all -> request all values for this property
all_elements -> request all values for this property
offset=0 -> request data starting at a byte offset of 0
index=2 -> request data starting at array index 2
array_index=2 -> request data starting at array index 2
bit_status -> request device bitwise status
state_text -> request state text data (state devices only)
source=dp -> display data from the accelerator (default)
source=db -> display data from the database
source=sr:1 -> display data from save/restore file 1
source=sda:1:"Inject Protons":1:ColliderShot -> display data from SDA
file 1, case Inject Protons,
subcase (set) 1,
usage ColliderShot
source=dl:"01-JAN-2000 01:00" -> display data from a Lumberjack at
January 1, 2000 at 0100
source=memory -> display data from a memory pool
family -> read an entire family
whole(all) -> indicates that you want to read the whole
property (only valid when used with 'family')
row -> display values in a single row
column -> display values in a single column
no_name -> don't display device name(s)
nodisplay -> don't display the reading, only errors
check_if_node_up -> check to see if the device's node is up
before attempting to read the device
waitnew -> wait for a new value to be returned (default)
nowaitnew -> don't wait for a new value to be returned
pendwait -> wait for a nonpending status
ignore_errors -> display the data even if it is in error
num_values={variable} -> saves the number of values read in a variable
values={array variable} -> saves the values read in a variable
dynamic[_arrays] -> dynamically reallocate output value variable
to match the number of values read
output={spec} -> specify output destination
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
binary:{file_name} -> send output to a binary file
variable:{variable_name} -> send output to a variable
symbol:{symbol_name} -> send output to a symbol
The supported properties for this command are:
reading, setting, basic status, analog alarm, digital alarm
Examples:
read z:acltst
read z:acltst/output=symbol:symbol1
read z:acltst/raw
read z:acltst/source=db
read 27235 # make reading from device index
read v:cldrst/state
read g:0b29v0/string/all
read t_ha11[3:5] # read elements 3, 4, and 5
read z:acltst[] # read an entire array device
read/family/all z:acltsz # read a family device
read node=tev/crate=A1/prread
read/pendwait m:outtmp/ftd=evt02 # wait for data on event 02
read m:outtmp/src=sr:last_big_save # read from last big save
read m:outtmp/src=dl:"01-JAN-2000 01:00" # read from data logger
read m:outtmp/src=sda:1:"Inject Protons":1:ColliderShot
read m:outtmp.min # read alarm minimum
Synonyms: get, readDevice, getDevice
Related commands:
set, alarm_limit, nominal_mask, list, show, compare
data_event, ftd, data_source, device_list
-------------------------------------------------------------------------------
set : set an ACNET device
set[/{qualifier}] {device}{[n]}[/{qualifier...}] {constant|variable|symbol}
The constant value is either a numeric constant in the case
of the setting property or a basic control string in the case
of the basic control property. For the setting property,
multiple scaled or raw values can be supplied. If multiple
values are entered, they should be separated by spaces or
commas. If a string value is supplied, it should be enclosed
in either single or double quotes. Setting values can also be
supplied in a delimited text file. This command also supports
an array index notation which allows you to specify the beginning
and ending array indices (ex. set z:acltst[1:2]=13,3.5). This
command also supports family devices and list specifiers (see above).
Use of this command may require special privileges. See Brian
Hendricks (hendricks@fnal.gov) for more information.
Examples of set qualifiers:
scaled (common) -> make a scaled (common) setting (default)
raw -> make a raw setting
primary (volts) -> make a setting in primary (volts) units
string -> make a setting with a string
state -> make a setting with state text
(state devices only)
length=2 -> set 2 bytes of data
atomic_size -> set the atomic size for this property
maximum_size -> set the maximum size for this property
num_elements=4 -> set 4 values
num_values=4 -> set 4 values
all -> set all values for this property
all_elements -> set all values for this property
offset=0 -> set data starting at a byte offset of 0
index=2 -> set data starting at array index 2
array_index=2 -> set data starting at array index 2
source=memory -> set data in a memory pool
[alarm_]minimum -> set the analog alarm minimum
[alarm_]maximum -> set the analog alarm maximum
min_max -> set the analog alarm minimum and maximum
analog_nominal -> set the analog alarm nominal
analog_alarm_nominal -> set the analog alarm nominal
[alarm_]tolerance -> set the analog alarm tolerance
nom_tol -> set the analog alarm nominal and tolerance
[alarm_]nominal -> set the digital alarm nominal
[alarm_]mask -> set the digital alarm mask
[alarm_]tries -> set the number of alarm tries
[alarm_]ftd -> set the alarm scan rate (for MOOC devices)
limit_type -> set analog alarm limit type
init_alarm_flags -> initialize alarm display/logging flags
motor -> set a motor device
hex -> setting value is in hexadecimal
decimal -> setting value is in decimal (default)
file -> read setting values from a file
(default file extension is ".dat")
byte_swap -> used with a raw setting to swap the setting
bytes on word boundaries
word_swap -> used with a raw setting to swap the setting
words
family -> set an entire family
Examples of control strings:
reset -> reset device
on -> turn on device
off -> turn off device
toggle_onoff -> toggle on/off status
positive -> set the device to positive polarity
negative -> set the device to negative polarity
toggle_polarity -> toggle polarity
ramp -> set the device to ramp mode
dc -> set the device to DC mode
toggle_rampdc -> toggle ramp/DC mode
enable_alarm -> enable an alarm
bypass_alarm -> bypass an alarm
enable_abort -> enable an alarm abort flag
abort_inhibit -> disable an alarm abort flag
enable_display -> enable an alarm display flag
disable_display -> disable an alarm display flag
enable -> enable a device (frig FSMs and loops only)
disable -> disable a device (frig FSMs and loops only)
activate -> activate a device (frig and GFSDA FSMs only)
deactivate -> deactivate a device (frig and GFSDA FSMs only)
Examples:
set z:acltst 5
set z:acltst $symbol1
set z:acltst/raw 0xA9
set z:acltst=1,2,3,4
set z:acltst[2]/raw 3 4
set z:acltst[3] 'abcd'
set t:ha11 reset
set t:ha11 on
set m@outtmp enable_alarm # enable analog alarm
set m@outtmp/minimum 32 # set alarm minimum
set m@outtmp/maximum 100 # set alarm maximum
set v:cdfmod/state 'Colliding Beams On'
set z:acltst[1:2]=16,3.5
set z:acltst[]=0,16,3.5,11 # set an entire array
set z:acltst[2:3]=z:aclts3[1:2] # set multiple array elements
set z:acltst[2:3]=array[1] # set multiple array elements
set/family z:acltsz[1:2] = 16, 17.5 # set a family device
set m:outtmp.min = 20 # set alarm minimum
Synonyms: setDevice
Related commands:
read, enable, disable, bypass, activate, deactivate
turn, reset, toggle, alarm_limit, nominal_mask
fill, copy, decrement, increment, delta_set, set_field,
device_list
-------------------------------------------------------------------------------
change_device : change the device that a changeable device refers to
change_device[/{qualifier}] {changeable device} [to] {new device}
This command allows the caller to change which actual device
that a "changeable" device actually points to. A changeable
device has a name of the form "G:CDVnn".
Examples of change_device qualifiers:
{property} -> set the property for the device
property={property} -> set the property for the device
alias={string} -> set an alias for this changeable device
verbose -> display verbose output
Examples:
change_device g:cdv0 to z:acltst
declare str string="m:outtmp"
change_device g:cdv0 to str
Related commands:
device_list, read, set
-------------------------------------------------------------------------------
decrement : decrement an ACNET device
decrement {device}{[n]}{/qualifier...} {constant|variable|symbol}
This command decrements a device's setting by a specified amount.
This command is only valid for a device's setting property.
This command also supports family devices and list specifiers
(see above). Use of this command may require special privileges.
See Brian Hendricks (hendricks@fnal.gov) for more information.
Examples of decrement qualifiers:
family -> decrement an entire family
verbose -> generate verbose output
Examples:
decrement z:acltst 2
decrement z:acltst $symbol1
decrement name=z:aclts% .1
Synonyms: dec
Related commands:
increment, delta_set, set, device_list
-------------------------------------------------------------------------------
delete_cache : delete cached database information
delete_cache [{device}]
This command will delete cached database information. If a
device name is specified, only information for that device
will be deleted. Otherwise, all cached database information
will be deleted.
(Note: Arguments enclosed in square brackets are optional.)
Examples:
delete_cache
delete_cache z:acltst
Related commands:
delete
-------------------------------------------------------------------------------
delta_set : apply a delta to the setting of an ACNET device
delta_set {device}{[n]}{/qualifier...} {constant|variable|symbol}
This command applies a specified delta to a device's setting.
This command is only valid for a device's setting property.
This command also supports family devices and list specifiers
(see above). Use of this command may require special privileges.
See Brian Hendricks (hendricks@fnal.gov) for more information.
Examples of delta_set qualifiers:
family -> apply a delta to an entire family
verbose -> generate verbose output
Examples:
delta_set z:acltst 2
delta_set z:acltst $symbol1
delta_set name=z:aclts% -.1
Synonyms: deltaset
Related commands:
increment, decrement, set, device_list
-------------------------------------------------------------------------------
device_list : specify a list of devices for processing
device_list/[/{qualifier}] {name} [{list}={list_specifier}]
This command allows the user to specify a list of devices
which can later be accessed one at a time through a pseudo
device name of "Q:xxxxxx" where xxxxxx is the name given
to the list. The lists of devices are established through
the use of any of the standard ACL list specifiers. List
names must consist of from 1 to 6 characters. This command
also allows the caller to increment or decrement through
the list. Care should be taken in the use of device lists
to make sure to specify property values in the event that
the list is used in a context where properties must be
specified. Either specify the property explicitly in this
command or choose the mutable_property option so that the
property can be selected by the context.
Examples of device_list qualifiers:
create -> creates a device list
inc[rement] -> increments to point to the next device
in the list
dec[rement] -> decrements to point to the previous device
in the list
rewind -> resets the list pointer to the beginning
of the list
set_index={index} -> sets the list pointer to a specific index
size (length) -> outputs the number of devices in the list
delete -> deletes an existing device list
{property} -> specifies the default property for devices
in the list
property={property} -> specifies the default property for devices
in the list
event={event value} -> specifies a time since event timer
autoinc -> specifies that the list pointer should be
automatically incremented each time the
list is accessed
dont_cull -> don't cull devices from the list which
don't have the requested property
cache={prop1,prop2,...} -> establish properties which should have
their database information cached for
more efficient execution
sort={sort type} -> sort the devices in a particular order
(name_asc, name_desc, di_asc, or di_desc)
output={spec} -> specify output destination
Special device qualifiers for device_list:
mutable_property -> indicates that the properties used for
the devices can be changed at use time
mutable_length_offset -> indicates that the lengths and/or offsets
used for the devices can be changed at
use time
mutable_data_source -> indicates that the data source used for
the devices can be changed at use time
mutable_access_type -> indicates that the access type used for
the devices can be changed at use time
Examples:
device_list/create fg devices='z_aclts2,z_aclts3' # create list
loop 2 cnt=0
print name(q:fg) ' = ' q:fg
device_list/inc fg
endloop
device_list/create/read fg name=m:out% # create list
device_list/size/output=variable:list_length fg
loop list_length
logger_get/start=thismin/node=fastest q:fg
device_list/inc fg
endloop
device_list/create/read fg file=device_file.txt # create list from file
Related commands:
read, set, show, logger_get, ramp
-------------------------------------------------------------------------------
download : download the most recent database setting for a device
download[/{qualifier}] {device}{[n]}[/{qualifier...}]
This command will restore a setting value to the value it
has in the settings database. This command can be used for the
setting, basic control, analog alarm, and digital alarm properties.
Properties can be downloaded regardless of whether or not they are
in the front end download list. This command also supports an array
index notation which allows you to specify the beginning and ending
array indices (ex. download z:acltst[1:2]). This command also
supports family devices and list specifiers (see above). Use of this
command may require special privileges. See Brian Hendricks
(hendricks@fnal.gov) for more information.
Examples of download qualifiers:
family -> download an entire family
verbose -> generate verbose output
props=all -> download all settable properties
props=prop1:prop2:prop3:prop4 -> download specific properties
init -> initial download (used for alarm blocks only to
make sure that they start out disabled and with
display enabled)
Examples:
download z:acltst # download the entire property
download z:acltst[1:2]
download m@outtmp # download an analog alarm block
download/props=pranab:prdabl z:acltst # download both alarm properties
download download_list=pnut01 # download devices in download list
download/init m@outtmp # download initialized analog alarm
download/init t$ha11 # download initialized digital alarm
Related commands:
node, reboot, restore, set, device_list
-------------------------------------------------------------------------------
increment : increment an ACNET device
increment {device}{[n]}{/qualifier...} {constant|variable|symbol}
This command increments a device's setting by a specified amount.
This command is only valid for a device's setting property.
This command also supports family devices and list specifiers
(see above). Use of this command may require special privileges.
See Brian Hendricks (hendricks@fnal.gov) for more information.
Examples of increment qualifiers:
family -> increment an entire family
verbose -> generate verbose output
Examples:
increment z:acltst 2
increment z:acltst $symbol1
increment name=z:aclts% .1
Synonyms: inc
Related commands:
decrement, delta_set, set, device_list
-------------------------------------------------------------------------------
fill : fill a device setting with a value
fill[/{qualifier}] {device}{[n]}[/{qualifier...}] {constant|variable|symbol}
This command will fill the requested number of values in a
setting property with the same value. This command also supports
an array index notation which allows you to specify the beginning
and ending array indices (ex. fill z:acltst[1:2]=16.1).
This command also supports family devices and list specifiers
(see above). Use of this command may require special privileges.
See Brian Hendricks (hendricks@fnal.gov) for more information.
Examples of fill qualifiers:
scaled (common) -> make a scaled (common) setting (default)
raw -> make a raw setting
primary (volts) -> make a setting in primary (volts) units
length=2 -> set 2 bytes of data
atomic_size -> set the atomic size for this property
maximum_size -> set the maximum size for this property
num_elements=4 -> set 4 values
num_values=4 -> set 4 values
all -> set all values for this property
all_elements -> set all values for this property
offset=0 -> set data starting at a byte offset of 0
index=2 -> set data starting at array index 2
array_index=2 -> set data starting at array index 2
hex -> setting value is in hexadecimal
decimal -> setting value is in decimal (default)
Examples:
fill z:acltst 5
fill z:acltst $symbol1
fill z:acltst/raw 0xA9
fill z:acltst[2]/raw 3
fill z:acltst[2]/num_values=2 16
fill z:acltst[1:2]=16.1
Related commands:
set, copy
-------------------------------------------------------------------------------
digital_control : send a basic control command to a device
digital_control[/{qualifier}] {device|devicelist} {command}
This command supports sending any basic control command to
one or more devices. It is only valid for a device's basic
control property. This command also supports family devices
and list specifiers (see above). Use of this command may
require special privileges. See Brian Hendricks
(hendricks@fnal.gov) for more information.
Examples of digital_control qualifiers:
family -> turn on an entire family
verbose -> generate verbose output
Examples:
digital_control i:q701 on
Related commands:
on, on_list, off, off_list, reset, reset_list, positive, negative,
polarity, set, turn, toggle, device_list
-------------------------------------------------------------------------------
negative : set an ACNET device to negative polarity
negative[/{qualifier}] {device}{[n]}{/qualifier...}
This command supports setting one or more devices to negative
polarity. It is only valid for a device's basic control property.
This command also supports family devices and list specifiers
(see above). Use of this command may require special privileges.
See Brian Hendricks (hendricks@fnal.gov) for more information.
Examples of negative qualifiers:
check[_status] -> only set the device to a negative polarity
if it's not already in negative polarity
family -> set an entire family to negative polarity
verbose -> generate verbose output
Examples:
negative i:q701
Related commands:
polarity, positive, on, off, reset, set, turn, toggle, digital_control,
device_list
-------------------------------------------------------------------------------
off : turn off an ACNET device
off[/{qualifier}] {device}{[n]}{/qualifier...}
This command supports turning off one or more devices. It is only
valid for a device's basic control property. This command also
supports family devices and list specifiers (see above).
Use of this command may require special privileges. See Brian
Hendricks (hendricks@fnal.gov) for more information.
Examples of off qualifiers:
check[_status] -> only turn off the device if it's not off
family -> turn off an entire family
verbose -> generate verbose output
Examples:
off i:q701
Related commands:
off_list, on, on_list, reset, reset_list, positive, negative,
polarity, set, turn, toggle, digital_control, device_list
-------------------------------------------------------------------------------
off_list : turn off a list of ACNET devices
off_list[/{qualifier}] {device}|device_list={list}{[n]}{/qualifier...}
This command supports turning off one or more devices. This command
supports family devices and list specifiers (see above). Use of this
command may require special privileges. See Brian Hendricks
(hendricks@fnal.gov) for more information.
Examples of off_list qualifiers:
family -> turn on an entire family
verbose -> generate verbose output
Examples:
device_list/create devs devices='z:acltst,z:aclts5,z:aclts6'/control
off_list device_list=devs
Related commands:
off, on, on_list, reset_list, positive, negative, polarity, set,
turn, toggle, digital_control, device_list
-------------------------------------------------------------------------------
on : turn on an ACNET device
on[/{qualifier}] {device}{[n]}{/qualifier...}
This command supports turning on one or more devices. It is only
valid for a device's basic control property. This command also
supports family devices and list specifiers (see above).
Use of this command may require special privileges. See Brian
Hendricks (hendricks@fnal.gov) for more information.
Examples of on qualifiers:
check[_status] -> only turn on the device if it's not on
reset -> reset the device before giving it an on command
family -> turn on an entire family
verbose -> generate verbose output
Examples:
on i:q701
Related commands:
on_list, off, off_list, reset, reset_list, positive, negative,
polarity, set, turn, toggle, digital_control, device_list
-------------------------------------------------------------------------------
on_list : turn on a list of ACNET devices
on_list[/{qualifier}] {device}|device_list={list}{[n]}{/qualifier...}
This command supports turning on one or more devices. This command
supports family devices and list specifiers (see above). Use of this
command may require special privileges. See Brian Hendricks
(hendricks@fnal.gov) for more information.
Examples of on_list qualifiers:
reset -> reset the device before giving it an on command
family -> turn on an entire family
verbose -> generate verbose output
Examples:
device_list/create devs devices='z:acltst,z:aclts5,z:aclts6'/control
on_list device_list=devs
Related commands:
on, off, off_list, reset_list, positive, negative, polarity, set,
turn, toggle, digital_control, device_list
-------------------------------------------------------------------------------
polarity : set the polarity of an ACNET device
polarity[/{qualifier}] {pos|neg} {device}{[n]}{/qualifier...} {pos|neg}
This command supports setting the polarity of one or more devices.
The specific command value can be placed before or after the device.
This command is only valid for a device's basic control property.
This command also supports family devices and list specifiers
(see above). Use of this command may require special privileges.
See Brian Hendricks (hendricks@fnal.gov) for more information.
Examples of polarity qualifiers:
toggle -> toggle the polarity
family -> control an entire family
verbose -> generate verbose output
Examples:
polarity t:ozf positive
polarity positive t:ozf
polarity t:ozf negative
polarity negative t:ozf
polarity toggle t:ozf
Related commands:
positive, negative, turn, on, off, set, toggle, reset, digital_control,
device_list
-------------------------------------------------------------------------------
positive : set an ACNET device to positive polarity
positive[/{qualifier}] {device}{[n]}{/qualifier...}
This command supports setting one or more devices to positive
polarity. It is only valid for a device's basic control property.
This command also supports family devices and list specifiers
(see above). Use of this command may require special privileges.
See Brian Hendricks (hendricks@fnal.gov) for more information.
Examples of positive qualifiers:
check[_status] -> only set the device to a positive polarity
if it's not already in positive polarity
family -> set an entire family to positive polarity
verbose -> generate verbose output
Examples:
positive i:q701
Related commands:
polarity, negative, on, off, reset, set, turn, toggle, digital_control,
device_list
-------------------------------------------------------------------------------
ramp : ramp a setting to a desired value
ramp[/time={secs}] {device}{[n]}[/{qualifier...}] {constant|variable|symbol}
This command will ramp a setting value from its present value
to the requested value. If no ramp duration is specified,
a ramp duration of zero will be used. In this case, the ramp
command functions like the set command. This command can also
be used to ramp a setting using a fixed step size and delay
between settings. This command can also be configured for
ramping back to the original value. Use of this command may
require special privileges. See Brian Hendricks (hendricks@fnal.gov)
for more information.
Examples of ramp qualifiers:
time={secs} -> ramp duration in seconds
duration={secs} -> ramp duration in seconds
step_size={size} -> constant ramp step size
step_delay={msecs} -> delay between successive settings in
milliseconds
flattop_length={secs} -> number of seconds to wait before ramping
back to the original setting value
ramp_back -> ramp back to the original setting value
max_step_size={maxstep} -> maximum allowable step size
(only used in ramp by time method)
monitor_device={device} -> device to monitor the status of the ramp
(primarily useful for certain types of
stepper motor devices)
scaled (common) -> make a scaled (common) setting (default)
raw -> make a raw setting
primary (volts) -> make a setting in primary (volts) units
offset=0 -> set data starting at a byte offset of 0
index=2 -> set data starting at array index 2
array_index=2 -> set data starting at array index 2
Examples:
ramp/time=2 z:acltst 5
ramp/time=2 z:acltst to 5
ramp z:acltst = 5 /time=2
ramp/time=2 z:acltst $symbol1
ramp/duration=2 z:acltst/raw 0xA9
ramp/duration=2 z:acltst[2] 16
ramp/duration=2/flattop_length=1 z:acltst[2] 16
ramp/step_size=0.01 z:aclts3 to 2
Related commands:
increment, decrement, delta_set, set, device_list
-------------------------------------------------------------------------------
read_field : read an individual field from an ACNET device
read_field[/{qualifier}] {device}{[n]}[/{qualifier...}]
This command is primarily used to read fields in a device's
setting property that are otherwise indivisible by the control
system. An example of this would be a time table entry in a
waveform generator. This command discards the portion of the
setting field that is not being read. This command also supports
an array index notation which allows you to specify the beginning
and ending array indices (ex. read_field z:acltst[1:2]). This
command also supports family devices and list specifiers (see above).
Examples of read_field qualifiers:
scaled (common) -> make a scaled (common) reading
(default and only available if field offset
is zero))
raw -> make a raw reading
(default if field offset is nonzero)
primary (volts) -> make a reading in primary (volts) units
offset={offset} -> field offset in bytes
length={length} -> field length in bytes
source=memory -> read data in a memory pool
hex -> display values in hexadecimal
dec[imal] -> display values in decimal (default)
byte_swap -> used with a raw reading to swap the reading
bytes on word boundaries
word_swap -> used with a raw reading to swap the reading
words
family -> read an entire family
row -> display values in a single row
column -> display values in a single column
nodisplay -> don't display the reading, only errors
waitnew -> wait for a new value to be returned (default)
nowaitnew -> don't wait for a new value to be returned
pendwait -> wait for a nonpending status
timeout={seconds} -> set reading timeout in seconds
ignore_errors -> display the data even if it is in error
read_value={variable} -> variable to hold reading data
dynamic[_arrays] -> dynamically reallocate output data variables
to match the number of values read
output={spec} -> specify output destination
Examples:
read_field/length=2 s_4530t[2]
read_field/offset=2/dec s_4530t[2]
read_field/offset=2/dec s_4530t[2:3] # read two values
Related commands:
set_field, read, read_struct, set, device_list
-------------------------------------------------------------------------------
read_struct : read an ACNET device structure
read_struct[/{qualifier}] {device}{[n]}[/{qualifier...}]
This command is used to read back ACNET device data as a structure.
The structure of the data can be explicitly defined in the command
itself or a named structure can be specified. This command also
supports an array index notation which allows you to specify the
beginning and ending array indices (ex. read_struct z:acltst[1:2]).
This command also supports family devices and list specifiers
(see above).
Examples of read_struct qualifiers:
struct[ure]={name} -> specify a named structure
reading={type}={value},... -> reading structure specification
read_string -> read data as a string
reading_length={bytes} -> specified the number of bytes to read
source=memory -> read data in a memory pool
ieee_to_dec -> convert IEEE floats to DEC
hex -> display values in hexadecimal
dec[imal] -> display values in decimal (default)
byte_swap -> used with a raw reading to swap the
reading bytes on word boundaries
word_swap -> used with a raw reading to swap the
reading words
family -> read an entire family
nodisplay -> don't display the reading,
only errors
waitnew -> wait for a new value to be returned
(default)
nowaitnew -> don't wait for a new value to be
returned
pendwait -> wait for a nonpending status
timeout={seconds} -> set reading timeout in seconds
ignore_errors -> display the data even if it is
in error
read_values={var,...} -> variable(s) to hold reading data
(one per field of the structure)
dynamic[_arrays] -> dynamically reallocate output data
variables to match the number
of values read
output={spec} -> specify output destination
Examples:
read_struct/struct='Recycler BPM Readout Spec' r_bp1cos
Related commands:
read_field, read, device_list, set_struct
-------------------------------------------------------------------------------
restore : restore an ACNET device setting
restore {device}{[n]}[/{qualifier...}] [from] {source}[:{arg1}:{arg2}:{arg3}:{arg4}]
This command will restore a setting value to the value it
had in either the database, a save/restore file, an SDA file,
a data logger (Lumberjack), or a memory pool. If no length or
offset is specified, the entire property will be restored.
This command can be used for the setting, basic status,
analog alarm, and digital alarm properties. This command also
supports an array index notation which allows you to specify
the beginning and ending array indices
(e.g.. restore z:acltst[1:2] from db). This command also supports
family devices and list specifiers (see above). Use of this
command may require special privileges. See Brian Hendricks
(hendricks@fnal.gov) for more information.
Type Syntax
---- ------
database db
save/restore sr:{file number}
SDA sda:{file number}:{case}[:{subcase}:{usage}]
data logger dl:{start date}[:{node}:{accuracy in seconds}]
memory memory[:{pool_name|pool_id}]
(Note: Arguments enclosed in square brackets are optional.)
Examples of restore qualifiers:
family -> restore an entire family
verbose -> generate verbose output
props=all -> restore all restorable properties
props=prop1:prop2:prop3:prop4 -> restore specific properties
save_properties_only -> used in conjunction with "props"
to limit each device to properties
that are indicated in its save
property
motor -> restore a motor's position
ignore_save_info -> ignore any database save information
and perform a default restore
Relevant special constants:
last_linac_save -> newest Linac save file
last_booster_save -> newest Booster save file
last_mi_save -> newest Main Injector save file
last_tev_save -> newest Tevatron save file
last_extbeams_save -> newest external beams save file
last_pbar_save -> newest Pbar save file
last_recycler_save -> newest Recycler save file
last_misc_save -> newest miscellaneous save file
last_big_save -> newest big save file
last_shot_save -> newest shot save file
last_circular_save -> newest circular save file
last_miniboone_save -> newest MiniBooNE save file
Examples:
restore z:acltst from db
restore z:acltst sr:1
restore z:acltst from sda:1:"Inject Protons":1:ColliderShot
restore z:acltst dl:"01-Jan-2000 00:00":fastest:3600
restore z:acltst[1:2] from sr:1
restore/props=all node=pnut01 from sr:last_big_save
restore/props=setting:status node=pnut01 from sr:last_big_save
Related commands:
save, download, copy, set, fill, device_list
-------------------------------------------------------------------------------
save : save devices in a save/restore file
save[/{qualifier}] {file number} ['{title}'] {parameters to save}
This command will save devices in a save/restore file or in a
memory pool. Individual devices, family devices, and/or any of
the list specifications (see above) that ACL supports can be saved.
If there are multiple items to be saved, they should be separated
by commas. Specific save files in the 900, 1100, and 1200 ranges
can not be selected since file numbers in these ranges are
automatically selected by the BIGSAV and SCHSAV processes. If a
title is not specified, a generic title will be used. Use of this
command may require special privileges. See Brian Hendricks
(hendricks@fnal.gov) for more information.
Examples of save qualifiers:
verbose -> generate verbose output
operator -> save file with operator protection
file={file number} -> specify save file number
title="{title}" -> specify file title
items={item1,item2,...} -> specify items to save
protect={protection} -> specify file protection
(none (default), operator, archive)
memory[={pool}|{id}] -> save values in a memory pool
props=all -> save all savable properties
(memory saves only)
props=prop1:prop2:prop3:prop4 -> save specific properties
(memory saves only)
save_properties_only -> used in conjunction with "props"
to limit each device to properties
that are indicated in its save
property
node={node} -> node to send save request to
wait_for_save -> wait for current save to complete
if one is in progress
no_send -> inhibit the actual save
check_status -> check to see if a save is in progress
($_value will be to a value of 1 if
a save is in progress or a value of
0 otherwise.)
cancel -> cancel the current save
verbose -> display verbose command status
Relevant special constants:
oldest_linac_file -> oldest Linac save file
oldest_booster_file -> oldest Booster save file
oldest_mi_file -> oldest Main Injector save file
oldest_tev_file -> oldest Tevatron save file
oldest_extbeams_file -> oldest external beams save file
oldest_pbar_file -> oldest Pbar save file
oldest_recycler_file -> oldest Recycler save file
oldest_misc_file -> oldest miscellaneous save file
oldest_miniboone_file -> oldest MiniBooNE save file
Examples:
save 821 "test save" z:acltst,z:aclts2
save oldest_booster_file "test save" user_save_list=booster\400_mev\vert
save 821 "test save" node=baker,node=ap1001
save 821 "test save" query=name="m:out%"
save/file=821/title="test save"/items="family=t:horzfg,query='name=t:h*'"
save/memory query='name=t:ha*'
Related commands:
restore, download, set
-------------------------------------------------------------------------------
saverestore_get : read values across save/restore files
saverestore_get[/qualifier][/start={date}/end={date}] {device}{[n]}{/qualifier...}
This command reads and displays save/restore device values
across files. This command supports family devices and list
specifiers (see above).
Examples of saverestore_get qualifiers:
start={date} -> starting date
end={date} -> ending date
interval={time_spec} -> set end date to interval after the start time
start_file={file number}-> starting file number
end_file={file number} -> ending file number
system={{sys 1}, ...} -> specify a system or systems to limit the
search to ("all", "global", "linac",
"booster", "main_injector", "tevatron",
"external_beams", "pbar", "cryo", "ecool",
"recycler", "archive", "shots", "circular",
"miniboone", "numi", "spare1")
device={device_name} -> device to display
value={value} -> matching value
cond={condition_value} -> used in conjunction with the value
argument to determine which entries
are displayed
text -> display basic status and state text
no_text -> don't display basic status or state text
units -> display units text
ignore_db_format -> don't use the device database value
formatting information
node -> display values as ACNET node values
error -> display values as ACNET error values
device -> display values as ACNET device name values
clinks -> display values as dates in clinks
date -> display values as dates in local time
gmt -> display values as dates in GMT/UTC
nodisplay -> don't display the values, only errors
count[_only] -> only display the number of matching entries
max_entries={n} -> maximum number of entries to display
first -> used in conjunction with "max_entries"
to retrieve the first n matches (default)
last -> used in conjunction with "max_entries"
to retrieve the last n matches
family -> display values for an entire family
num_points={variable} -> saves the number of points read in a
variable
num_values={variable} -> saves the number of values read in a
variable
values_per_point={var} -> saves the number of values read per point
in a variable
values={array variable} -> saves the values read in a variable
timestamps={date array} -> saves the timestamps read in a variable
file_numbers={int array}-> saves the file_numbers read in a variable
errors={int array} -> saves the error values read in a variable
lengths={int array} -> saves the length values read in a variable
sum={variable} -> saves the sum of all values read in
a variable
minimum={variable} -> saves the minimum of all values read in
a variable
maximum={variable} -> saves the maximum of all values read in
a variable
dynamic[_arrays] -> dynamically reallocate output data variables
to match the number of values read
bit_number={bit number} -> process status data to return a value of
1 if the requested bit number is set and
a value of 0 otherwise
bit_mask={value} -> mask to apply to raw data to check for
a match
masked_value={value} -> mask to apply to raw data
on_off -> process status data to return a value of
1 if the original value indicates a status
of on and a value of 0 otherwise
ready_tripped -> process status data to return a value of
1 if the original value indicates a status
of ready and a value of 0 otherwise
remote_local -> process status data to return a value of
1 if the original value indicates a status
of remote and a value of 0 otherwise
polarity -> process status data to return a value of
1 if the original value indicates a status
of positive and a value of 0 otherwise
ramp_dc -> process status data to return a value of
1 if the original value indicates a status
of ramp and a value of 0 otherwise
verbose -> generate verbose output
output={spec} -> specify output destination
The condition value strings are as follows:
all -> show all matches (default)
equal (eq) -> show entries that equal the requested
value (default if value is requested)
not_equal (ne) -> show entries that do not equal the
requested value
less_than (lt) -> show entries whose value is less
than the requested value
less_equal (le) -> show entries whose value is less
than or equal to the requested value
greater_than (gt) -> show entries whose value is greater
than the requested value
greater_equal (ge) -> show entries whose value is greater
than or equal to the requested value
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
Examples:
saverestore_get/start=today m:outtmp
saverestore_get/start=16-sep-2008/end=16-set-2009/output=mail:hendricks m:outtmp
saverestore_get/start=today/count_only m:outtmp
saverestore_get/start=today/value=60/cond=lt m:outtmp
saverestore_get/start=today/error t:chrlst
saverestore_get/start=today/max_count=10/output=mail:hendricks m:outtmp
Synonyms: srGet, sr_get, saveRestoreGet, save_restore_get
Related commands:
logger_get, sda_get, sr_dir, sr_set, device_list
-------------------------------------------------------------------------------
sda_get : read values across SDA samples
sda_get[/qualifier][/start={date}/end={date}] {device}{[n]}{/qualifier...}
This command reads and displays SDA device values across files,
case, and sets. This command supports family devices and list
specifiers (see above).
Examples of sda_get qualifiers:
sda_usage={usage string}-> SDA usage string (default is ColliderShot)
start={date} -> starting date
end={date} -> ending date
interval={time_spec} -> set end date to interval after the start time
file={file number} -> desired single file number
start_file={file number}-> starting file number
end_file={file number} -> ending file number
case={case value} -> desired single case value (string or number)
start_case={case value} -> starting case value (string or number)
end_case={case value} -> ending case value (string or number)
device_cases -> only search cases which are currently
configured to save the requested device
set={set number} -> desired single set number
start_set={set number} -> starting set number
end_set={set number} -> ending set number
device={device_name} -> device to display
value={value} -> matching value
cond={condition_value} -> used in conjunction with the value
argument to determine which entries
are displayed
text -> display basic status and state text
no_text -> don't display basic status or state text
units -> display units text
ignore_db_format -> don't use the device database value
formatting information
node -> display values as ACNET node values
error -> display values as ACNET error values
device -> display values as ACNET device name values
clinks -> display values as dates in clinks
date -> display values as dates in local time
gmt -> display values as dates in GMT/UTC
nodisplay -> don't display the values, only errors
count[_only] -> only display the number of matching entries
max_entries={n} -> maximum number of entries to display
first -> used in conjunction with "max_entries"
to retrieve the first n matches (default)
last -> used in conjunction with "max_entries"
to retrieve the last n matches
family -> display values for an entire family
num_points={variable} -> saves the number of points read in a
variable
num_values={variable} -> saves the number of values read in a
variable
values_per_point={var} -> saves the number of values read per point
in a variable
values={array variable} -> saves the values read in a variable
timestamps={date array} -> saves the timestamps read in a variable
file_numbers={int array}-> saves the file numbers read in a variable
case_numbers={int array}-> saves the case numbers read in a variable
set_numbers={int array} -> saves the set numbers read in a variable
errors={int array} -> saves the error values read in a variable
lengths={int array} -> saves the length values read in a variable
sum={variable} -> saves the sum of all values read in
a variable
minimum={variable} -> saves the minimum of all values read in
a variable
maximum={variable} -> saves the maximum of all values read in
a variable
dynamic[_arrays] -> dynamically reallocate output data variables
to match the number of values read
bit_number={bit number} -> process status data to return a value of
1 if the requested bit number is set and
a value of 0 otherwise
bit_mask={value} -> mask to apply to raw data to check for
a match
masked_value={value} -> mask to apply to raw data
on_off -> process status data to return a value of
1 if the original value indicates a status
of on and a value of 0 otherwise
ready_tripped -> process status data to return a value of
1 if the original value indicates a status
of ready and a value of 0 otherwise
remote_local -> process status data to return a value of
1 if the original value indicates a status
of remote and a value of 0 otherwise
polarity -> process status data to return a value of
1 if the original value indicates a status
of positive and a value of 0 otherwise
ramp_dc -> process status data to return a value of
1 if the original value indicates a status
of ramp and a value of 0 otherwise
verbose -> generate verbose output
output={spec} -> specify output destination
The condition value strings are as follows:
all -> show all matches (default)
equal (eq) -> show entries that equal the requested
value (default if value is requested)
not_equal (ne) -> show entries that do not equal the
requested value
less_than (lt) -> show entries whose value is less
than the requested value
less_equal (le) -> show entries whose value is less
than or equal to the requested value
greater_than (gt) -> show entries whose value is greater
than the requested value
greater_equal (ge) -> show entries whose value is greater
than or equal to the requested value
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
Examples:
sda_get/start=today m:outtmp
sda_get/start=16-sep-2008/end=16-set-2009/output=mail:hendricks m:outtmp
sda_get/start=today/count_only m:outtmp
sda_get/start=today/value=60/cond=lt m:outtmp
sda_get/start=today/error t:chrlst
sda_get/start=today/max_count=10/output=mail:hendricks m:outtmp
sda_get/start_file=7061/case='Inject Pbars' m:outtmp
sda_get/start_file=7061/case=6 m:outtmp
sda_get/start_file=7061/case='Inject Pbars'/set=3 m:outtmp
Synonyms: sdaGet
Related commands:
logger_get, saverestore_get, device_list
-------------------------------------------------------------------------------
set_field : set an individual field in an ACNET device
set_field[/{qualifier}] {device}{[n]}[/{qualifier...}] {constant|variable|symbol}
This command is primarily used to set fields in a device's
setting property that are otherwise indivisible by the control
system. An example of this would be a time table entry in a
waveform generator. This command preserves the portion of the
setting field that is not being changed. Multiple scaled or
raw values can be supplied for the setting. If multiple
values are entered, they should be separated by spaces or
commas. Setting values can also be supplied in a delimited
text file. This command also supports an array index notation
which allows you to specify the beginning and ending array indices
(ex. set z:acltst[1:2]=13,3.5). This command also supports family
devices and list specifiers (see above). Use of this command may
require special privileges. See Brian Hendricks (hendricks@fnal.gov)
for more information.
Examples of set_field qualifiers:
scaled (common) -> make a scaled (common) setting
(default and only available if field offset
is zero))
raw -> make a raw setting
(default if field offset is nonzero)
primary (volts) -> make a setting in primary (volts) units
offset={offset} -> field offset in bytes
length={length} -> field length in bytes
source=memory -> set data in a memory pool
hex -> setting value is in hexadecimal
dec[imal] -> setting value is in decimal (default)
file -> read setting values from a file
(default file extension is ".dat")
byte_swap -> used with a raw setting to swap the setting
bytes on word boundaries
word_swap -> used with a raw setting to swap the setting
words
family -> set an entire family
Examples:
set_field/length=2 s:4530t[2] 5
set_field/offset=2/dec s:4530t[2] 100
set_field/offset=2/dec s:4530t[2] 100, 100 # set two values
set_field/length=2 s:4530t[2] $symbol1
Synonyms: setField
Related commands:
read_field, set, set_struct, set_list, read, enable, disable, bypass,
activate, deactivate turn, reset, toggle, alarm_limit, nominal_mask,
fill, copy, decrement, increment, delta_set, device_list
-------------------------------------------------------------------------------
set_list : set a list of ACNET devices
set_list[/{qualifier}] {device}{[n]}[/{qualifier...}] {constant|variable|symbol}
This command permits the setting of a list of devices
simultaneously. Multiple values (either scaled or raw)
can be set for each device. If multiple values are entered,
they should be separated by spaces or commas. Setting values
can also be supplied in a delimited text file. This command
also supports an array index notation which allows you to
specify the beginning and ending array indices. This command
also supports family devices and list specifiers (see above).
Use of this command may require special privileges. See Brian
Hendricks (hendricks@fnal.gov) for more information.
Examples of set_list qualifiers:
scaled (common) -> make a scaled (common) setting (default)
raw -> make a raw setting
primary (volts) -> make a setting in primary (volts) units
values_per_device={num} -> specify the number of values to set for
each device
values={val,...} -> specify the setting values
hex -> setting value is in hexadecimal
decimal -> setting value is in decimal (default)
file -> read setting values from a file
(default file extension is ".dat")
byte_swap -> used with a raw setting to swap the setting
bytes on word boundaries
word_swap -> used with a raw setting to swap the setting
words
Examples:
device_list/create devs devices='z:aclts5,z:aclts6,z:aclts7'
declare vals float[]={1,2,3}
set_list device_list=devs vals
device_list/create devs devices='z:aclts5,z:aclts6,z:aclts7'
set_list device_list=devs 1,2,3
Synonyms: setList
Related commands:
set, set_field, set_struct, read, device_list, declare, fill, copy,
decrement, increment, delta_set
-------------------------------------------------------------------------------
set_struct : set an ACNET device structure
set_struct[/{qualifier}] {device}{[n]}[/{qualifier...}]={{type}={value},...}
This command is used to set ACNET device data as a structure.
The structure of the data can be explicitly defined in the command
itself or a named structure can be specified. This command also
supports an array index notation which allows you to specify the
beginning array index (ex. set_struct r_bp1acq[1]).
This command also supports family devices and list specifiers
(see above).
Examples of set_struct qualifiers:
struct[ure]={name} -> specify a named structure
setting={{type}={value},...} -> setting structure specification
fill={fill method} -> can be used with a named structure
to initialize the setting buffer
from the device reading or from the
structure default values
reading_fill -> initialize the setting buffer
from the device reading
default_fill -> initialize the setting buffer
from the structure default values
file -> read structure information from
a file
ieee_to_dec -> convert IEEE floats to DEC
dec_to_ieee -> convert DEC floats to IEEE
byte_swap -> swap the setting bytes on word
boundaries
word_swap -> swap the setting words on longword
boundaries
family -> set an entire family
output={spec} -> specify output destination
Examples:
set_struct/struct='recycler bpm acquisition spec'/ieee/word_swap\
/reading_fill g_dev0 = {'arm event'=0x29,'trigger event'=0xda}
set_struct/ieee/word_swap g_dev0 = \
{int=0,int=1,int=2,int=0,int=0,int=0x29,int=0xda,int=0,int=100,\
int=0,float=0.0,int=300} # use specified data types and values
Synonyms: setStruct
Related commands:
set_field, set, set_list, device_list, read_struct
-------------------------------------------------------------------------------
sort : sort an array of values or an array device
sort[/{qualifier}] {variable|device}{[n]}[/{qualifier...}]
This command is used to sort the values in an array variable or
the values in an array device. Sorts can be either ascending or
descending. For some data types such as device index, node, error,
and event, the sorts can even be done on the ASCII form of the
values (e.g. 27235 -> M:OUTTMP). The sorts are done in place for
variables. For sorts of both variables and devices, the sorted
array can be output to another array variable. This command
also supports an array index notation which allows you to specify
the beginning and ending array indices (ex. sort z:acltst[0:3]).
This command also supports family devices and list specifiers
(see above). Use of this command on devices may require special
privileges. See Brian Hendricks (hendricks@fnal.gov) for more
information.
Examples of sort qualifiers:
asc[ending] -> ascending sort (default)
ascii_asc[ending] -> ascending ASCII sort
desc[ending] -> descending sort
ascii_desc[ending] -> descending ASCII sort
num_values={variable} -> returned number of values value
values={values} -> either the input array variable
or the returned sorted device values
family -> read an entire family
waitnew -> wait for a new value to be returned (default)
nowaitnew -> don't wait for a new value to be returned
pendwait -> wait for a nonpending status
timeout={seconds} -> set reading timeout in seconds
dynamic[_arrays] -> dynamically reallocate output data variables
to match the number of values read
no_set -> suppress actual setting devices
verbose -> verbose output
output={spec} -> specify output destination
Examples:
declare strings string[3]="bob","al","kevin"
sort strings # array of strings
declare floats float[3]=2,3,1
sort/desc strings # array of floats
declare floats float[1]
sort/desc/dynamic/values=floats z:acltst # array device
Related commands:
swap, stats, fit, read
-------------------------------------------------------------------------------
stats : perform simple statistics on device readings or a variable
stats[/{qualifier}] [{device|identifier}{[n]}[/{qualifier...}]]
This command is used to perform simple statistics on device readings
from either the reading or setting property or an array variable.
Device readings can either come from a list of devices or from a
single array device. The resultant values are displayed by default.
They can also optionally be deposited into variables. This command
also supports an array index notation which allows you to specify
the beginning and ending array indices (ex. stats z:acltst[1:2]).
This command also supports family devices and list specifiers
(see above).
Examples of stats qualifiers:
num_values={variable} -> returned number of values value
values={values} -> either the input array variable
or the returned device values used
in the calculations
sum={variable} -> returned sum value
mean={variable} -> returned mean value
median={variable} -> returned median value
stddev={variable} -> returned standard deviation value
rms={variable} -> returned RMS value
minimum={variable} -> returned minimum value
maximum={variable} -> returned maximum value
range={variable} -> returned range value
variance={variable} -> returned variance value
num_modes={variable} -> returned number of modes value
mode={variable} -> returned mode value(s)
family -> read an entire family
nodisplay -> don't display the reading, only errors
waitnew -> wait for a new value to be returned (default)
nowaitnew -> don't wait for a new value to be returned
pendwait -> wait for a nonpending status
timeout={seconds} -> set reading timeout in seconds
ignore_errors -> display the data even if it is in error
dynamic[_arrays] -> dynamically reallocate output data variables
to match the number of values read
verbose -> verbose output
output={spec} -> specify output destination
Examples:
stats name=m:out% # list of devices
stats t:beamcb # single array device
stats/mean=var1 name=m:out% # list of devices
stats/min=var1/max=var2 t:beamcb # single array device
declare vals float[3]=2,5,11
stats/values=vals # perform statistics on
# array variable
Related commands:
fit, read, sort, swap
-------------------------------------------------------------------------------
swap : swap a set of values in a variable or a device
swap[/{qualifier}] {variable|device}{[n]}[/{qualifier...}]
This command is used to swap the values in an array variable or
the values in an array device. The swaps are done in place for
variables. For swaps of devices, the swapped values can be output
to another array variable. This command also supports an array
index notation which allows you to specify the beginning and ending
array indices (ex. swap/words z:acltst[0:3]). This command also
supports family devices and list specifiers (see above). Use of
this command on devices may require special privileges. See Brian
Hendricks (hendricks@fnal.gov) for more information.
Examples of swap qualifiers:
bytes -> swap adjacent bytes
words -> swap adjacent words
longwords -> swap adjacent longwords
invert_longwords -> invert the bytes in longwords
invert_bytes -> invert a byte array
invert_words -> invert a word array
invert_longword_array -> invert a longword or float array
invert_longlong_array -> invert a long long or double array
invert_array -> invert an array of values
num_values={variable} -> returned number of values value
values={values} -> either the input array variable
or the returned swapped device values
family -> read an entire family
waitnew -> wait for a new value to be returned (default)
nowaitnew -> don't wait for a new value to be returned
pendwait -> wait for a nonpending status
timeout={seconds} -> set reading timeout in seconds
dynamic[_arrays] -> dynamically reallocate output data variables
to match the number of values read
no_set -> suppress actual setting of devices
verbose -> verbose output
output={spec} -> specify output destination
Examples:
declare my_words word[3] = {0x1234, 0x5678, 0x9abc}
swap/bytes my_words
declare my_string string = "123456"
swap/invert my_string
Related commands:
sort, stats, fit, read
-------------------------------------------------------------------------------
table_device : read or set table device values
table_device/table_type={type}[/{qualifier}] {device} [{settings}]
This command supports reading or setting of tables contained
in table devices. These are most commonly waveform generator
devices which provide ramps for power supplies. The device to
read or set can be specified in one of two ways. You can either
enter the explicit component device of interest, or the generic
device for that card can be entered along with a desired table
type. This command supports an array index notation which allows
you to specify the beginning and ending array indices
(ex. table_device t_ha11t[1:5]). This command supports family
devices and list specifiers (see above). Use of this command may
require special privileges. See Brian Hendricks (hendricks@fnal.gov)
for more information.
Examples of table_device qualifiers:
read -> read table values
(default if no values specified)
set -> set table values
(default if values are specified)
scaled (common) -> make a scaled (common) reading
raw -> make a raw reading
hex -> display values in hexadecimal
dec[imal] -> display values in decimal (default)
row -> display values in a single row
column -> display values in a single column
type={table_type} -> type of table to access
(time, g_table, h_table, gi_table, hi_table,
clock, scale_factor, sf_pointer,
ramp_pointer, mdat_pointer, archive_data,
clock_int_history, diag_counters, version,
mdat_selection_table, offset_table,
offset_pointer, delay_table,
frequency_table, frequency_pointer,
phase_table, phase_pointer)
number={table_number} -> table number to access
start_slot=(slot} -> starting slot number
num_slots={num_slots} -> number of slots to access
slot_type={type} -> type of slot access
(whole, independent (x), dependent (y))
x_scaling={scale_type} -> X coordinate scaling type
(seconds, milliseconds, summary_secs,
summary_msec)
x_values={val1,...} -> specify X coordinate setting values
y_values={val1,...} -> specify Y coordinate setting values
ft_tables={tbl1,...} -> specify f(t) table numbers
gi_tables={tbl1,...} -> specify g(i) table numbers
hi_tables={tbl1,...} -> specify h(i) table numbers
ft_sf_ptrs={ptr1,...} -> specify f(t) scale factor pointer numbers
gi_sf_ptrs={ptr1,...} -> specify g(i) scale factor pointer numbers
hi_sf_ptrs={ptr1,...} -> specify h(i) scale factor pointer numbers
ft_mdat_ptrs={ptr1,...} -> specify f(t) MDAT pointer numbers
gi_mdat_ptrs={ptr1,...} -> specify g(i) MDAT pointer numbers
hi_mdat_ptrs={ptr1,...} -> specify h(i) MDAT pointer numbers
file -> read setting values from a file
(default file extension is ".dat")
trigger_level={level} -> manually trigger a level (waveform)
add_event={event} -> add an event to the clock table
level={level (0-n)} -> clock table level to add a clock event
add_event_to_event={evt}-> add an event to the clock table on the
same level as a requested event
remove_event={event} -> remove an event from the clock table
replace_event={event} -> replace an event in the clock table
new_event={event} -> replacement event
find_event={event} -> find an event in the clock table
check_for_errors -> check a card for errors
clear_diag_counters -> clear diagnostic counters
read_value={variable} -> variable to hold reading data
read_value_2={variable} -> variable to hold Y reading data
dynamic[_arrays] -> dynamically reallocate output data variables
to match the number of values read
family -> operate on an entire family
nodisplay -> don't display the reading, only errors
waitnew -> wait for a new value to be returned (default)
nowaitnew -> don't wait for a new value to be returned
pendwait -> wait for a nonpending status
ignore_errors -> display the data even if it is in error
verbose -> display verbose output
noheader -> suppress table header
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
Examples:
table_device i_h100t[] # read time table 0
table_device/time i_h100[] # read time table 0
table_device i_h100[2]={1.0,2.0,3.0} # set G(I) table values
table_device/ft_tables={1,2}/hi_tables={1,1} s:466m[4]
table_device/ft_sf_ptrs={2,2}/hi_sf_ptrs={1,1} s:466m[4]
table_device/add_event=c2/level=3 s:465
table_device/find_event=c2/return_level=level s:465
table_device/remove_event=c2 s:465
table_device/mdat_selection_table s:4530
table_device/mdat_selection_table s:4530=m30,m31
Synonyms: tableDevice
Related commands:
read, set, read_field, set_field, ftd, data_source, device_list
-------------------------------------------------------------------------------
turn : turn an ACNET device on or off
turn[/{qualifier}] {on|off} {device}{[n]}{/qualifier...} {on|off}
This command supports turning one or more devices either on or off.
The specific command value can be placed before or after the device.
This command is only valid for a device's basic control property.
This command also supports family devices and list specifiers
(see above). Use of this command may require special privileges.
See Brian Hendricks (hendricks@fnal.gov) for more information.
Examples of turn qualifiers:
toggle -> toggle the on/off status
family -> control an entire family
verbose -> generate verbose output
Examples:
turn i:q701 on
turn on i:q701
turn i:q701 off
turn off i:q701
turn i:q701 toggle_onoff
Related commands:
on, on_list, off, off_list, set, toggle, reset, reset_list, polarity,
positive, negative, digital_control, device_list
-------------------------------------------------------------------------------
reset : reset an ACNET device
reset[/{qualifier}] {device}{[n]}{/qualifier...}
This command supports reseting one or more devices. It is only
valid for a device's basic control property. This command also
supports family devices and list specifiers (see above).
Use of this command may require special privileges. See Brian
Hendricks (hendricks@fnal.gov) for more information.
Examples of reset qualifiers:
family -> reset an entire family
verbose -> generate verbose output
Examples:
reset i:q701
Related commands:
reset_list, on, on_list, off, off_list, set, turn, toggle, device_list
-------------------------------------------------------------------------------
reset_list : reset a list of ACNET devices
reset_list[/{qualifier}] {device}|device_list={list}{[n]}{/qualifier...}
This command supports resetting one or more devices. This command
supports family devices and list specifiers (see above). Use of this
command may require special privileges. See Brian Hendricks
(hendricks@fnal.gov) for more information.
Examples of reset_list qualifiers:
family -> turn on an entire family
verbose -> generate verbose output
Examples:
device_list/create devs devices='z:acltst,z:aclts5,z:aclts6'/control
reset_list device_list=devs
Related commands:
reset, on, on_list, off, off_list, positive, negative, polarity, set,
turn, toggle, digital_control, device_list
-------------------------------------------------------------------------------
toggle : toggle a status attribute of an ACNET device
toggle {onoff|polarity|rampdc} {device}{[n]}{/qualifier...} {onoff|polarity|rampdc}
The specific command value can be placed before or after the device.
This command is only valid for a device's basic control property.
This command also supports family devices and list specifiers
(see above). Use of this command may require special privileges.
See Brian Hendricks (hendricks@fnal.gov) for more information.
Examples of toggle qualifiers:
on_off -> toggle on/off status
onoff -> toggle on/off status
polarity -> toggle polarity status
ramp_dc -> toggle ramp/DC status
rampdc -> toggle ramp/DC status
enable_disable -> toggle enable/disable status
(If an alarm property is selected, the
alarm status will be toggled.)
enabledisable -> toggle enable/disable status
(If an alarm property is selected, the
alarm status will be toggled.)
Examples:
toggle i:q701 onoff
toggle onoff i:q701
toggle m@outtmp enable_disable
Related commands:
turn, set, reset, on, off, polarity, positive, negative, device_list
-------------------------------------------------------------------------------
enable : enable a device, a clock event, or another parameter
enable [identifier|device{[n]}{/qualifier...}] {[constant|identifier]}
This command can be used to enable devices belonging to certain
device types as well as analog and digital alarms of any device
type. It can also be used to enable clock events and the
notification of stale data. This command also supports family
devices and list specifiers (see above). Use of this command
may require special privileges. See Brian Hendricks
(hendricks@fnal.gov) for more information.
Examples of enable command identifiers:
stale_errors -> enable stale data notification
exit_on_error -> enable errors to cause the script to exit
event -> enable a clock event
{event string} -> enable a clock event
tclk -> enable a TCLK event
mibs -> enable an MIBS event
rrbs -> enable an RRBS event
tvbs -> enable a TVBS event
analog_alarm -> enable an analog alarm
digital_alarm -> enable a digital alarm
alarm -> enable alarm indicated by property
analog_abort -> enable an analog alarm abort flag
digital_abort -> enable a digital alarm abort flag
abort -> enable an alarm abort flag
analog_display -> enable an analog alarm display flag
digital_display -> enable a digital alarm display flag
alarm_display -> enable an alarm display flag
analog_logging -> enable an analog alarm logging flag
digital_logging -> enable a digital alarm logging flag
alarm_logging -> enable an alarm logging flag
analog_alarm_used -> mark analog alarm as having been used
digital_alarm_used -> mark digital alarm as having been used
alarm_used -> mark alarm as having been used
dbnews -> enable database change notification
obsolete_devices -> allow access to obsolete devices
family -> enable an entire family
Examples:
enable stale_errors
enable s:ssbrst
enable m:outtmp analog_alarm
enable event EVENT_TEV_SUDDEN_LOSS
enable EVENT_TEV_SUDDEN_LOSS
enable/clock=mibs 7B
Related commands:
disable, bypass, set, activate, deactivate, device_list
-------------------------------------------------------------------------------
disable : disable a device, a clock event, or another parameter
disable [identifier|device{[n]}{/qualifier...}] {[constant|identifier]}
This command can be used to disable devices belonging to certain
device types as well as analog and digital alarms of any device
type. It can also be used to disable clock events and the
notification of stale data. This command also supports family
devices and list specifiers (see above). Use of this command may
require special privileges. See Brian Hendricks (hendricks@fnal.gov)
for more information.
Examples of disable command identifiers:
stale_errors -> disable stale data notification
exit_on_error -> disable errors from causing the script
to exit
event -> disable a clock event
{event string} -> disable a clock event
tclk -> disable a TCLK event
mibs -> disable an MIBS event
rrbs -> disable an RRBS event
tvbs -> disable a TVBS event
analog_alarm -> disable an analog alarm
digital_alarm -> disable a digital alarm
alarm -> disable alarm indicated by device property
analog_abort -> disable an analog alarm abort flag
digital_abort -> disable a digital alarm abort flag
abort -> disable an alarm abort flag
analog_display -> disable an analog alarm display flag
digital_display -> disable a digital alarm display flag
alarm_display -> disable an alarm display flag
analog_logging -> disable an analog alarm logging flag
digital_logging -> disable a digital alarm logging flag
alarm_logging -> disable an alarm logging flag
analog_alarm_used -> mark analog alarm as never having been used
digital_alarm_used -> mark digital alarm as never having been used
alarm_used -> mark alarm as never having been used
family -> disable an entire family
Examples:
disable stale_errors
disable s:ssbrst
disable m:outtmp analog_alarm
disable event EVENT_TEV_SUDDEN_LOSS
disable EVENT_TEV_SUDDEN_LOSS
disable/clock=mibs 7B
Related commands:
bypass, enable, set, activate, deactivate, device_list
-------------------------------------------------------------------------------
bypass : bypass an alarm
bypass {device|identifier}[[n]][/{qualifier}...]
This command can be used to bypass analog and digital alarms.
This command also supports family devices and list specifiers
(see above). Use of this command may require special privileges.
See Brian Hendricks (hendricks@fnal.gov) for more information.
Examples of bypass command identifiers:
family -> bypass an entire family
verbose -> display verbose output
Examples:
bypass m:outtmp
bypass/verbose user_alarm_list=booster\sparks
Related commands:
disable, enable, set, device_list
-------------------------------------------------------------------------------
trigger : trigger a clock event
trigger[/clock={clock_type}] {constant|variable|symbol}
This command will trigger a clock event. You can also trigger beam
synch events by specifying the type of event. Use of this command
may require special privileges. See Brian Hendricks
(hendricks@fnal.gov) for more information.
Examples of trigger command identifiers:
tclk -> trigger a TCLK event (default)
mibs -> trigger an MIBS event
rrbs -> trigger an RRBS event
tvbs -> trigger a TVBS event
Examples:
trigger D9
trigger EVENT_TEV_SUDDEN_LOSS
trigger/clock=mibs 7B
Related commands:
set, reset
-------------------------------------------------------------------------------
activate : activate a device
activate device{[n]}{/qualifier...}
This command can be used to activate devices belonging to certain
device types. Use of this command may require special privileges.
See Brian Hendricks (hendricks@fnal.gov) for more information.
Examples:
activate t:a1fs00
Related commands:
deactivate, set, enable, disable
-------------------------------------------------------------------------------
deactivate : deactivate a device
deactivate device{[n]}{/qualifier...}
This command can be used to deactivate devices belonging to certain
device types. Use of this command may require special privileges.
See Brian Hendricks (hendricks@fnal.gov) for more information.
Examples:
deactivate t:a1fs00
Related commands:
activate, set, disable, enable
-------------------------------------------------------------------------------
check_status : check the basic status of devices
check_status[/{qualifier}] {device}{[n]}[/{qualifier...}] {status_type}
This command will check the basic status of a device or a list
of devices to see if they match a particular status. The status
values that can be tested for include on, off, ready, tripped,
remote, local, positive, negative, ramping, and DC.
This command also supports family devices and list specifiers
(see above). This command sets the global symbol, $_value, to
a value of true (1) if all devices checked match the requested
status and a value of false (0) otherwise.
Examples of check_status qualifiers:
status={status value} -> status to check for (on, off, etc.)
on -> check for a status of on
off -> check for a status of off
ready -> check for a status of ready
tripped -> check for a status of tripped
remote -> check for a status of remote
local -> check for a status of local
positive -> check for a status of positive
negative -> check for a status of negative
ramp[ing] -> check for a status of ramping
dc -> check for a status of DC
family -> compare an entire family
verbose -> display verbose output
value={variable} -> specify a variable to return the final
command status (true (matched)/false)
suppress_errors -> suppress the error if a mismatch is found
Examples:
check_status z:acltst on # check if on
check_status/family t:horzfg ready # check if family is ready
Related commands:
compare, read, device_list
-------------------------------------------------------------------------------
compare : compare device readings
compare {device}{[n]}[/{qualifier...}] [to] {source}[:{arg1}:{arg2}:{arg3}:{arg4}]
This command will compare reading values for a device from
two different data sources (accelerator, database, a
save/restore file, an SDA file, a data logger (Lumberjack), or
a memory pool). If no length or offset is specified, the entire
property will be compared. If the "device" qualifier is used,
it can also be used to compare two different devices. This
command can be used for the reading, setting, basic status,
analog alarm, and digital alarm properties. This command also
supports an array index notation which allows you to specify the
beginning and ending array indices
(e.g. compare z:acltst[1:2] to sr:last_big_save).
This command also supports family devices and list specifiers
(see above). If no tolerance is specified, a tolerance of zero
is assumed, and a raw data comparison is made. If a nonzero
tolerance is specified, scaled values are compared. This command
sets the global symbol, $_value, to a value of true (1) if the
compare is successful and a value of false (0) otherwise.
Type Syntax
---- ------
database db
save/restore sr:{file number}
SDA sda:{file number}:{case}[:{subcase}:{usage}]
data logger dl:{start date}[:{node}:{accuracy in seconds}]
memory memory[:{pool_name}|{pool_id}]
(Note: Arguments enclosed in square brackets are optional.)
Examples of compare qualifiers:
tol(erance)={tolerance} -> absolute tolerance (scaled data comparison)
%tol={percent tolerance} -> percent tolerance (scaled data comparison)
mask={mask value} -> mask to apply to data before comparison
(raw comparison)
scaled -> perform a comparison of scaled data
(default if tolerance is not zero)
raw -> perform a comparison of raw data
(default if tolerance is zero)
on_off -> compare on/off status only
ready_tripped -> compare ready/tripped status only
remote_local -> compare remote/local status only
polarity -> compare polarity status only
ramp_dc -> compare ramp/DC status only
family -> compare an entire family
verbose -> display verbose output
device -> compares one device to another
value={variable} -> specify a variable to return the final
command status (true (matched)/false)
suppress_errors -> suppress the error if a mismatch is found
Examples:
compare z:acltst sr:1 # raw data comparison
compare/value=status z:acltst sr:1 # raw data comparison
compare/tol=1.5 z:acltst sr:1 # scaled data comparison
compare/%tol=10 z:acltst sr:1 # scaled data comparison
compare z:acltst to sda:1:"Inject Protons":1:ColliderShot
compare z:acltst dl:"01-Jan-2000 00:00":fastest:3600
compare z:acltst[1:2] to sr:1
compare node=tev/crate=A1/prset to sr:last_big_save
Related commands:
read, search, check_status, device_list
-------------------------------------------------------------------------------
copy : copy one device to another
copy {src_device}{[n]}[/{qualifier...}] [to] {dest_device}{[n]}[/{qualifier...}]
This command will copy setting values from one device to another.
If no length or offset is specified, the entire property will be
copied. This command can be used for the setting, basic status,
analog alarm, and digital alarm properties. This command also
supports an array index notation which allows you to specify the
beginning and ending array indices
(ex. copy z:acltst[1:2]/src=sr:last_big_save to z:aclts3[2:3]).
This command also supports family devices and list specifiers
(see above) so that one device can be copies to many devices.
Use of this command may require special privileges. See Brian
Hendricks (hendricks@fnal.gov) for more information.
Examples of copy qualifiers:
scaled -> copy scaled data (default is raw)
family -> copy to an entire family
verbose -> display verbose output
Examples:
copy z:acltst/src=sr:1 to z:aclts3 # copy entire array device
copy z:acltst to z:aclts3 # copy entire array device
copy z:acltst[1:2] to z:aclts3[2:3]
copy/family t_ha11 to t:horzfg
Related commands:
set, fill, restore, download, device_list
-------------------------------------------------------------------------------
copy_variable : copy a value or an array of values into a variable
copy_variable[/{qualifier}] {variable} {copy_value} [{num_values}]
This command copies values or arrays of values to a variable
whether or not they are of the same type. If the "overlay"
option is selected, this command can do a "one to many" or
"many to one" mapping. This is particularly useful when
parsing or building byte buffers. The output variable will
be created by this command if it doesn't already exist.
Examples of copy_variable qualifiers:
overlay -> allow a simple memory overlay which will
support "many to one" and "one to many"
mappings
{value_type} -> value type to use if the output variable
must be created
verbose -> display verbose output
output -> specify output
Examples:
declare val int[4]=1,2,3,4
copyvar val2[0] val[0] 4 # simple array copy
declare val int[4]=1,2,3,4
copyvar/string val2[2] val[0] 2 # copy to another data type
readfile/binary/maxbytes=128/values=rawdata/byte \
'/usr/local/xaps/clg/utility_1.fmt'
copyvar/overlay/string str rawdata[0:117] # many to one
copyvar/overlay/int maxrecords rawdata[118:121] # many to one
copyvar/overlay/short recordsize rawdata[122:123] # many to one
Synonyms: copy_var, copyVar
Related commands:
str_copy
-------------------------------------------------------------------------------
search : search device readings for a pattern
search {device}{[n]}[/{qualifier...}] [for] {value 1}[ {value 2} ... {value n}]
This command will search reading values for a device for a
specific pattern. If no length or offset is specified, the entire
property will be searched. This command can be used for the
reading, setting, basic status, analog alarm, and digital
alarm properties. For basic status, analog alarm, and digital
alarm properties only raw data searches are supported. This command
also supports an array index notation which allows you to specify
the beginning and ending array indices (ex. search z:acltst[1:2] for 1,2).
This command also supports family devices and list specifiers
(see above). If no tolerance is specified for a scaled search,
a tolerance of zero is assumed. Values to be searched can be
entered directly on the command line or can be supplied in a
delimited text file. This command sets the global symbol, $_value,
to a value of true (1) if the search is successful and a value of
false (0) otherwise.
Examples of search qualifiers:
tol(erance)={tolerance} -> absolute tolerance (scaled data comparison)
raw -> perform a raw search (default)
auto -> treat search values as the default data
type for the device being searched (default)
byte -> treat the search values as bytes
word -> treat the search values as words
long -> treat the search values as longwords
scaled -> perform a comparison of scaled data
(default if tolerance is not zero)
family -> search an entire family
file -> read search values from a file
(default file extension is ".dat")
verbose -> display verbose output
value={variable} -> specify a variable to return the final
command status (true/false)
index={variable} -> specify a variable to return the match
index value (-1 if no match)
Examples:
search i_34rc5c for 2b fe # raw data search
search name=i_34rc*c for 2b fe
search/file/verbose name=i_34rc*c for search_values.dat
search i_34rc5c[1:2] for 2b
search/scaled z:acltst for 1.5 # scaled data search
search/scaled/value=status z:acltst for 1.5
search/scaled/tol=1.5 z:acltst for 1.5
Related commands:
read, compare
-------------------------------------------------------------------------------
show : display database information for a device
show[/output={spec}] {device}{[n]}[/{qualifier...}] {/parameter...}
Multiple parameters can be specified so that multiple types of
database information can be displayed together. Note that a
device index can be supplied rather than a device name.
Examples of show qualifiers:
block=2 -> request alarm block starting at array index 2
start_block=2 -> request alarm block starting at array index 2
block=active -> request active alarm block index
num_blocks=4 -> request 4 alarm blocks
source=dp -> display data from the accelerator (default)
source=db -> display data from the database
source=sr:1 -> display data from save/restore file 1
source=sda:1:"Inject Protons":1:ColliderShot -> display data from SDA
file 1, case Inject Protons,
subcase (set) 1,
usage ColliderShot
source=dl:"01-JAN-2000 01:00" -> display data from a Lumberjack at
January 1, 2000 at 0100
source=memory -> display data from a memory pool
obsolete -> support handling of obsolete devices
verbose -> display verbose output
noheader -> suppress device name header
nodisplay -> don't display the data, only errors
status={var|symbol} -> returns the retrieval status in a variable
output={spec} -> specify output destination
Examples of parameters are:
/name -> display device's name
/device_index -> display device index
/full_name -> display device's full name
/fermi_name -> display FermiName(s) for a device
/fermi_index -> display FermiName atom indices for a device
/text -> display device's descriptive text
/full_text -> display device's full descriptive text
/node -> display device's source node
/property -> display individual property information
/property_info -> display individual property information
/ssdn -> display individual property SSDN
/sizes -> display individual property sizes
/location -> display device's location information
/alarm_block -> display alarm block information from the front end
/db_alarm_block -> display alarm block information from the database
/alarm_flags -> display alarm display and logging enabled flags
/alarm_handling -> display alarm handling information
/dbset -> display saved database setting values
/dbset_raw -> display raw saved database setting values
/audit -> display device's audit history
/created -> display device creator and creation date
/last_modified -> display last device modifier and modify date
/bitnames -> display bit descriptions for the status property
/extended_text -> display bit descriptions for the status property
/bit_status -> display current bit status text
/status_text -> display current bit status text
/save -> display save/restore information
/save_info -> display save/restore information
/save_list -> display save/restore list information
/user_save_lists -> displays all user save lists which contain
this device
/device_type -> display device's type (database type)
/live_device_type -> display device's type (calculated)
/analog_text -> display analog alarm text
/digital_text -> display digital alarm text
/alarm_text -> display analog or digital alarm text depending
on the selected property
/scaling -> display scaling information
/scaling_info -> display scaling information
/enum_value_info -> display enumerated value information
/digital_control -> display digital control information
/units -> units text
/primary_units -> primary units text
/status_attr -> display basic status attributes
/status_attributes -> display basic status attributes
/control_attr -> display basic control attributes
/control_attributes -> display basic control attributes
/virtual_machine -> display virtual machine information
/setting_protection -> display setting protection information
/controlled_set -> display controlled setting status
/emc -> display EMC information
/data_type -> display property data type information
/sibling -> display sibling information
/family -> display family information (family devices only)
/state_text -> display state text (state devices only)
/out_of_service -> display out of service (broken) information
/oos(broken) -> display out of service (broken) information
/plot_class -> display FTP and snapshot plot class information
/alarm_list -> display alarm list information
/alarm_lists -> display alarm lists containing the device
/properties -> list the existing properties for a device
/download -> display device download information
/download_props -> display device download properties
/families -> list the families that a device is a member of
/composites -> list the composite devices that a device is a
member of
/ssdr -> display SSDR (SubSystem Device Record) data
/extrema -> displays the minimum and maximum scaled values
for a property
/controlling_device -> displays the device which controls the
requested device
/controlled_devices -> displays the list of devices which the
requested device controls
/help -> displays the help for the device
/url -> displays the help URL for a device
/expr[ession] -> displays device reading expression
(for calculational devices only)
/logger_lists -> displays all data logger list entries for
the device
/param_pages -> displays all parameter pages containing the
device
/foreign_device -> displays foreign device mapping information
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
Examples:
show m:outtmp/name/analog_text
show t:ha11/name/digital_text/status_attr/control_attr/property_info
Related commands:
read, delete_cache, list, device_list
-------------------------------------------------------------------------------
list : list device parameters
list {device{[n]}{/qualifier...}|tag=value|file} [/option={value}]
{format_string} [/output={spec}]
This command produces a formatted listing of parameters for one
or more devices. Note that a device index can be supplied rather
than a device name.
Examples of the tag=value pairs:
file={file} -> list all devices from an ASCII file
dbdi={table} -> list all devices specified by the column
named "di" (int) in a DB table
dbname={table} -> list all devices specified by the column
named "name" (char(8)) in a DB table
devices={dev1,dev2,...} -> list devices from an explicit delimited
list of names
node=tev -> list all devices from the Tevatron front end
name=t:ha% -> list all devices whose names start with
"T:HA"
family=t:ha11z -> list all devices in the family T:HA11Z
text=ha% -> list all devices whose descriptive text
starts with "HA"
save_list=1 -> list all devices attached to save/restore
list number 1
sul=booster\400_mev\vert -> list all devices in a user save list
save_code=1 -> list all devices having a save/restore
save code of 1
type=377 -> list all C377 devices
type='CAMAC C377' -> list all C377 devices
class=dio_camac_device -> list all CAMAC devices
transform=2 -> list all devices using common transform 2
crate=a1,node=tev -> list all devices from Tev crate A1
slot=1,crate=a1,node=tev -> list all devices from Tev crate A1, slot 1
madc=1,node=tev -> list all devices from Tev MADC #1
driver=0xD -> list all devices with driver code 0D
vm=v:falma1 -> list all devices belonging to virtual
machine V:FALMA1
units="sec " -> list all devices having units text of "sec "
alarm_list=FixTgt -> list all devices from alarm list "FixTgt"
aul=booster\sparks -> list all devices from a user alarm list
ah=Normal -> list all devices having a given alarm
handler
cd={device} -> list all devices controlled by a given
device
expr[ession]=%t:rn% -> list all devices containing a given string
in its reading expression
expr_device=t:rn000a -> list all devices containing a given device
in its reading expression
ssdn={SSDN patern} -> list all devices having an SSDN
matching a pattern
logger_list={list} -> list all devices in a given data logger list
download_list=baker -> list all download devices for node BAKER
save_file=821 -> list all devices saved in save file 821
sda_case=1587:2 -> list all devices configured for a
particular SDA case
sda_set=1587:2:1 -> list all devices saved in SDA file 1587,
case 2, set 1
siblings={device} -> list all siblings descended from a
given device
parameter_page={page} -> list all devices on a specific parameter
page subpage
wg_list={list} -> list all devices from a waveform generator
list (I14/I15)
console_class={class} -> list all devices which are settable
by a given console class
user={user name} -> list all devices modified by a given user
user_created={user name} -> list all devices created by a given user
foreign_device={name} -> list all devices mapped to a particular
foreign device
Examples of options are:
/title=yes -> display a default title (default)
/title=no -> don't display a title
/notitle -> don't display a title
/title="My Title" -> display a specific title
/headings=yes -> display column headings (default)
/headings=no -> don't display column headings
/noheadings -> don't display column headings
/summary -> display the number of devices listed
/comment="This is a comment."
/skipbad -> skips invalid entries in a device file
/filter=analog_alarm -> only display devices in alarm (analog)
/filter=digital_alarm -> only display devices in alarm (digital)
/filter=broken -> only display devices marked as out of service
/filter=analog_bypassed -> only display devices with analog alarm bypassed
/filter=digital_bypassed -> only display devices with digital alarm bypassed
/filter=read_array -> only display devices with an array reading property
/filter=set_array -> only display devices with an array setting property
/filter=status_array -> only display devices with an array status property
/filter=read_size_mismatch -> only display devices with a reading size mismatch
/filter=set_size_mismatch -> only display devices with a setting size mismatch
/filter=has_reading -> only display devices having a reading property
/filter=has_setting -> only display devices having a setting property
/filter=has_status -> only display devices having a status property
/filter=has_control -> only display devices having a control property
/filter=has_analog_alarm -> only display devices having an analog alarm property
/filter=has_digital_alarm -> only display devices having a digital alarm property
/source=dp -> display data from the accelerator (default)
/source=db -> display data from the database
/source=sr:1 -> display data from save/restore file 1
/source=sda:1:"Inject Protons":1:ColliderShot -> display data from SDA
file 1, case Inject Protons,
subcase (set) 1,
usage ColliderShot
/source=dl:"01-JAN-2000 01:00" -> display data from a Lumberjack at
January 1, 2000 at 0100
/source=memory -> display data from a memory pool
/output={spec} -> specify output destination
/num_strings={variable} -> saves the number of strings in a variable
/strings={array} -> saves the output strings in a variable
/dynamic[_arrays] -> dynamically reallocate output data string
to match the number of output strings
notitle -> suppress overall title
noheader -> suppress column headers
Examples of format specifiers:
%nm -> display device name
%di -> display device index
%tx -> display device descriptive text
%fn -> display device FermiName
%fi -> display device FermiName atom index
%nd[_p] -> display device source node
%tn[_p] -> display device source trunk and node
%type_p -> display device type
%type_long_p -> display device type (long description)
%class_p -> display device class
%rd -> display current device reading
%rd_units -> display reading units
%set -> display current device setting
%set_units -> display device setting units
%sts -> display current device basic status
%raw_p -> display a raw reading value
%primary_p -> display a reading value in primary units
%aa -> display analog alarm
%aa_min -> display analog alarm minimum
%aa_max -> display analog alarm maximum
%aa_nom -> display analog alarm nominal
%aa_tol -> display analog alarm tolerance
%aa_ll -> display analog alarm limit length
%aa_lt -> display analog alarm limit type
%aa_ldt -> display analog alarm limit data type
%aa_status -> display analog alarm status
%aa_hl -> display analog alarm high/low status
%aa_ena -> display analog alarm enable status
%aa_abort -> display analog alarm abort status
%aa_abtena -> display analog alarm abort enable status
%aa_pri -> display analog alarm priority
%aa_text -> display analog alarm text
%aa_display -> display analog alarm display enable status
%aa_logging -> display analog alarm logging enable status
%aa_tries_needed -> display analog alarm tries needed
%aa_tries_now -> display analog alarm tries now
%aa_evt1 -> display analog alarm event 1
%aa_evt2 -> display analog alarm event 2
%aa_ftd -> display analog alarm FTD
%aa_pm -> display analog alarm post method
%aa_data -> display analog alarm special data
%aa_flags -> display analog alarm flags word
%da -> display digital alarm
%da_nom -> display digital alarm nominal
%da_mask -> display digital alarm mask
%da_ll -> display digital alarm limit length
%da_status -> display digital alarm status
%da_status -> display digital alarm status
%da_ena -> display digital alarm enable status
%da_abort -> display digital alarm abort status
%da_abtena -> display digital alarm abort enable status
%da_display -> display digital alarm display enable status
%da_logging -> display digital alarm logging enable status
%da_tries_needed -> display digital alarm tries needed
%da_tries_now -> display digital alarm tries now
%da_evt1 -> display digital alarm event 1
%da_evt2 -> display digital alarm event 2
%da_ftd -> display digital alarm FTD
%da_pm -> display digital alarm post method
%da_data -> display digital alarm special data
%da_flags -> display digital alarm flags word
%dbset_p -> display saved database setting values
%dbset_raw_p -> display raw saved database setting values
%units_p -> display common units text
%pt_p -> display primary transform (text)
%pt_index_p -> display primary transform (number)
%ct_p -> display common transform (text)
%ct_index_p -> display common transform (number)
%const_p(_n) -> display scaling constants (If "n" is specified,
only the corresponding constant will be displayed.)
%dl_p -> display scaled display length
%df_p -> display scaled display format
%ps -> display previous sibling
%ns -> display next sibling
%sl -> display save/restore save list
%sln -> display save/restore save list number
%sc -> display save/restore save code
%dc -> display save/restore display code
%sp -> display save properties
%sm -> display save property mask
%pm -> display device setting protection mask
%vm -> display device virtual machine information
%oos -> display device out of service (broken) status
%ssdn_p(_n) -> display device SSDN (If "n" is specified, only
the corresponding word will be displayed.)
%ds_p -> display device default size
%as_p -> display device atomic size
%ms_p -> display device maximum size
%ss_p -> display device scaling size
%ne_p -> display device number of elements
%emc_p -> display device EMC
%cr_p -> display device crate
%slt_p -> display device slot
%ch_p -> display device MADC channel
%madc_ch_p -> display device MADC channel
%madc_num_p -> display device MADC number
%ftd_p -> display device default FTD
%fa_date -> display first audit date
%fa_author -> display first audit author
%la_date -> display last audit date
%la_author -> display last audit author
%state_value -> display state value text (sv)
%fermi_name -> display FermiName for device
%ftp_class -> display FTP (Fast Time Plot) class (text)
%ftp_class_index -> display FTP (Fast Time Plot) class (number)
%snp_class -> display SNP (Snapshot) class (text)
%snp_class_index -> display SNP (Snapshot) class (number)
%cs -> display controlled setting status
%is_cntrl_set -> display controlled setting status
%is_motor -> display motor controller status
%data_type_id_p -> display device data type ID
%al -> display alarm list
%aln -> display alarm list number
%acl -> display alarm control list
%ah_p -> display alarm handler
%ahn_p -> display alarm handler number
%asid_p -> display alarm sound ID
%aspid_p -> display alarm speech ID
%cd -> display controlling device
%expr -> display expression used to calculate
the device's reading value
%status_xxx -> display basic status mask values where
"xxx" is replaced by "onoff", "readytripped",
"localremote", "polarity" or "rampdc",
%command_xxx -> display basic control command values
where "xxx" is replaced by "reset", "on", "off",
"positive", "negative", "ramp", or "dc")
%foreign_name -> display the foreign device name that
an ACNET device is mapped to
%foreign_system -> display the system type of a foreign device mapping
%foreign_data_type -> display the data type of a foreign device mapping
%cnv_device_driver_p -> display device driver value
(Suffixes of "_p" mean that a property string should be inserted in
place of the "p". The property strings for this are "rd", "set",
"sts", "ctl", "aa", and "da".)
(for more help see the help for the CLIB routine 'device_listing_c')
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
Examples:
list m:outtmp "%nm %tx %set %rd %rd_units %sts"
list transform=38 "%nm"
list data_file.txt "%nm %la_date %la_author"
list 27235 "%nm" # get device name from device index
Related commands:
read, show, alarm_limit, nominal_mask, device_list
-------------------------------------------------------------------------------
alarm_limit : read or set analog alarm limits
alarm_limit[/{qualifier}] {device|identifier}[[n]][=][{minimum},{maximum}]
This command supports reading or setting of analog alarm limits.
One or more blocks of multiple alarm block devices can be displayed
or set. This command supports an array index notation which allows
you to specify the beginning and ending alarm blocks
(ex. alarm_limit t:a1spwe[3:5]). This command also supports family
devices and list specifiers (see above). Use of this command may
require special privileges. See Brian Hendricks (hendricks@fnal.gov)
for more information.
Examples of alarm_limit qualifiers:
read -> read alarm limits
(default if no limits specified)
set -> set alarm limits
(default if one or both limits are specified)
minmax -> treat limits as minimum/maximum
(default for setting)
nomtol -> treat limits as nominal/tolerance
min[imum]={minimum} -> specifies minimum value for setting mode
max[imum]={maximum} -> specifies maximum value for setting mode
nominal={nominal} -> specifies nominal value for setting mode
tolerance={tolerance} -> specifies tolerance value for setting mode
minval={minimum} -> specifies a variable to return the minimum
maxval={maximum} -> specifies a variable to return the maximum
nomval={nominal} -> specifies a variable to return the nominal
tolval={tolerance} -> specifies a variable to return the tolerance
num_elements=4 -> request 4 blocks
num_values=4 -> request 4 blocks
num_elements=all -> request all alarm blocks
all_elements -> request all alarm blocks
family -> operate on an entire family
verbose -> display verbose output
nodisplay -> don't display the reading, only errors
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
binary:{file_name} -> send output to a binary file
variable:{variable_name} -> send output to a variable
symbol:{symbol_name} -> send output to a symbol
Examples:
alarm_limit m:outtmp # read alarm limits for M:OUTTMP
alarm_limit m:outtmp = -5, 100 # set alarm limits
alarm_limit t:a1spwe[] # read all alarm limits
alarm_limit t:a1spwe[4:5] # read selected alarm limits
alarm_limit user_alarm_list=booster\sparks # read list of alarms
Related commands:
nominal_mask, read, set, enable, bypass, list, show
data_event, ftd, data_source, device_list
-------------------------------------------------------------------------------
camac : execute individual CAMAC commands
camac[/{qualifier}={value}][/node={node}][/crate={crate}]
[/slot={slot}][/cnaf={c}:{n}:{a}:{f}] [{data}]
This command will execute individual CAMAC commands.
The qualifier specifies which type of command to execute.
The node, crate, slot, function, and subaddress values
can be specified via a 'camac/select' command or can be
included in each command. Use of this command may require
special privileges. See Brian Hendricks (hendricks@fnal.gov)
for more information.
Examples of camac qualifiers:
select -> specify some subset of node, crate, slot,
function, and subaddress for future
CAMAC commands (values will remain in
effect until changed or the current
script ends)
static_select -> specify some subset of node, crate, slot,
function, and subaddress for future
CAMAC commands (values will remain in
effect until changed or the calling process
exits)
node={node_value} -> specify CAMAC node
crate={crate_value} -> specify CAMAC crate
slot={crate_value} -> specify CAMAC slot
crate={crate_value} -> specify CAMAC crate
func={function_value} -> specify CAMAC function code
subaddr={subaddress} -> specify CAMAC subaddress
data={data_value} -> specify data value to send
retries={retries_value} -> specify CAMAC no-Q retries value
cnaf={c:n:a:f} -> specify colon separated CNAF value
fa={f:a} -> specify colon separated function code and
subaddress values
format={decimal|hex} -> specify data format (hex or decimal)
id -> read the CAMAC module's ID number
version -> read the CAMAC module's software
version number
reset -> reset the module
hex -> interpret data as hexadecimal
dec[imal] -> interpret data as decimal
queue -> allows queueing up multiple commands to
send at the same time
verbose -> display verbose output
output -> specify output
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
variable:{variable_name} -> send output to a variable
symbol:{symbol_name} -> send output to a symbol
Examples:
camac/select/node=MI/crate=A1/slot=9
camac/func=6/subaddr=0 # read CAMAC module ID
camac/node=MI/cnaf=A1:9:6:0 # read CAMAC module ID
camac/node=MI/crate=a1/slot=9/id # read module ID
Related commands:
none
-------------------------------------------------------------------------------
gas : read or write GAS commands
gas[/{type}][/node={node}][/house={hse}][/modtyp={modtyp}]
[/stanc={t}:{a}:{n}:{c}:{bc}]
This command will execute individual GAS commands.
The type qualifier specifies which type of command to execute.
The node, house, module type, and STANC values can be specified
via a 'gas/select' command or can be included in each command.
Use of this command may require special privileges. See Brian
Hendricks (hendricks@fnal.gov) for more information.
Examples of gas qualifiers:
select -> specify some subset of node, house,
module type, and STANC for future
GAS commands (values will remain in
effect until changed or the current
script ends)
static_select -> specify some subset of node, house,
module type, and STANC for future
GAS commands (values will remain in
effect until changed or the calling process
exits)
node={node} -> specify GAS node
house={house} -> specify GAS house
modtyp={module type} -> specify GAS module type
type={type} -> specify GAS type
aspect={aspect} -> specify GAS aspect
entry={entry} -> specify GAS entry
count={count} -> specify GAS count
byte_count={byte count} -> specify GAS byte count
stanc={t:a:n:c:bc} -> specify GAS colon separated STANC
(type, aspect, entry, count, and byte count)
tan={t:a:n} -> specify GAS type, aspect, and entry
data={data value} -> specify data value to send
value={variable} -> specify variable to return GAS reading value
format={decimal|hex} -> specify data format (hex or decimal)
id -> read the GAS module's ID string
age -> read the GAS module's age (time up)
hex -> interpret data as hexadecimal
dec[imal] -> interpret data as decimal
queue -> allows queueing up multiple commands to
send at the same time
verbose -> display verbose output
output -> specify output
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
variable:{variable_name} -> send output to a variable
symbol:{symbol_name} -> send output to a symbol
Examples:
gas tev a1 bpm age # read GAS age
gas/node=tev/house=a1/modtyp=bpm age # read GAS age
gas tev a1 bpm id # read GAS ID string
gas/select/node=TEV/house=A1/modtyp=BPM
Related commands:
none
-------------------------------------------------------------------------------
gpib : execute GPIB device commands
gpib{/command}[/{qualifier}={value}] [{node|IP}] [{addr}] [{command_string}]
This command will execute GPIB device commands. The command type
qualifier specifies which type of command to execute. The node
and address values can be specified via a 'gpib/select' command
or can be included in each command. Use of this command may require
special privileges. See Brian Hendricks (hendricks@fnal.gov) for
more information.
gpib command types:
select -> specify node and address for future
GPIB commands (values will remain in
effect until changed or the current
script ends)
static_select -> specify node and address for future
GPIB commands (values will remain in
effect until changed or the calling process
exits)
write (or set) -> send an ASCII GPIB command string
read -> make a GPIB device reading (ASCII or binary)
value={variable} -> specifies a variable to receive GPIB
reading data
local -> put a GPIB device in local
serial_poll -> retrieves the GPIB serial poll status byte
clear -> clears a GPIB device
trigger -> triggers a GPIB device
Examples of gpib qualifiers:
static -> convert a select command to a static one
node={node_value} -> specify GPIB node
address={address} -> specify GPIB address
ip[_name]={ip_name} -> specify the IP name of the GPIB device
port={port} -> specify the IP port number of the GPIB device
length={num_bytes} -> number of bytes to read
all -> read maximum number of bytes
strip_nl -> strips trailing newline from a reading
byte_swap -> swap the setting bytes on word boundaries
word_swap -> swap the setting words on longword
boundaries
raw (or binary) -> return binary data
string (or ascii) -> return ASCII data
node -> address the request by ACNET node (default)
ip[_name] -> address the request by IP address
verbose -> display verbose output
Examples:
gpib/select mcr01 1
gpib/write "*IDN?"
gpib/read # read GPIB ID string
Related commands:
none
-------------------------------------------------------------------------------
nominal_mask : read or set digital alarm nominals and masks
nominal_mask[/{qualifier}] {device|identifier}[[n]][=][{nominal},{mask}]
This command supports reading or setting of digital alarm nominals
and masks. One or more blocks of multiple alarm block devices can
be displayed or set. This command supports an array index notation
which allows you to specify the beginning and ending alarm blocks
(ex. nominal_mask t:a1spcc[3:5]). This command also supports family
devices and list specifiers (see above). Use of this command may
require special privileges. See Brian Hendricks (hendricks@fnal.gov)
for more information.
Examples of nominal_mask qualifiers:
read -> read alarm nominals and masks
(default if no nominals/masks specified)
set -> set alarm nominals and masks
(default if one or both nominals/masks are
specified)
nominal={nominal} -> specifies nominal value for setting mode
mask={mask} -> specifies mask value for setting mode
nomval={nominal} -> specifies a variable to return the nominal
maskval={mask} -> specifies a variable to return the mask
num_elements=4 -> request 4 blocks
num_values=4 -> request 4 blocks
num_elements=all -> request all alarm blocks
all_elements -> request all alarm blocks
family -> operate on an entire family
verbose -> display verbose output
nodisplay -> don't display the reading, only errors
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
binary:{file_name} -> send output to a binary file
variable:{variable_name} -> send output to a variable
symbol:{symbol_name} -> send output to a symbol
Examples:
nominal_mask t:ha11 # read digital alarm for T:HA11
nominal_mask t:ha11 = 3ff, 3ff # set alarm nominal and mask
nominal_mask t:a1spcc[] # read all nominals and masks
nominal_mask t:a1spcc[4:5] # read selected nominals/masks
nominal_mask user_alarm_list=booster\sparks # read list of alarms
Synonyms: nominalMask
Related commands:
alarm_limit, read, set, enable, bypass, list, show
data_event, ftd, data_source, device_list
-------------------------------------------------------------------------------
step_motor : set a stepping motor
step_motor[/{qualifier}] {motor_device} [=] {setting} [steps]
This command supports setting stepper motors. The motor can
be set t a particular position, or a number of steps can be
requested. This command supports family devices and list
specifiers (see above). Use of this command may require special
privileges. See Brian Hendricks (hendricks@fnal.gov) for more
information.
Examples of step_motor qualifiers:
steps -> setting is in steps (default is to set
a particular position)
family -> operate on an entire family
noset -> don't actually send the setting
verbose -> display verbose output
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
Examples:
step_motor s:psepal = 20 # set S:PSEPAL to 20
step_motor/steps s:psepal = 20 # set S:PSEPAL 20 steps
step_motor s:psepal 20 steps # set S:PSEPAL 20 steps
Synonyms: stepMotor
Related commands:
set, device_list
-------------------------------------------------------------------------------
timer_event : read or set timer events
timer_event[/{qualifier}] {device} [=] [{event 1}, {event 2}, ...]
This command supports reading or setting of timer events.
When setting events, all present events can be replaced,
added, or removed. This command supports family devices
and list specifiers (see above). Use of this command may
require special privileges. See Brian Hendricks (hendricks@fnal.gov)
for more information.
Examples of timer_event qualifiers:
read -> read timer events
(default if no events specified)
set -> set timer events
(default if events are specified)
replace -> replace all present events with supplied
events (default for setting)
add -> add event(s) to present events
remove -> remove specified event(s)
family -> operate on an entire family
num_values={variable} -> saves the number of values read in a variable
values={array variable} -> saves the values read in a variable
dynamic[_arrays] -> dynamically reallocate output value variable
to match the number of values read
verbose -> display verbose output
nodisplay -> don't display the reading, only errors
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
Examples:
timer_event g:timer7 # read events for G:TIMER7
timer_event name=g:timer* # read multiple timers
timer_event g:timer7 = 20, 21, 29 # set events for G:TIMER7
timer_event/add g:timer7 = 2A # add event 2A to G:TIMER7
timer_event/remove g:timer7 = 2A # remove event 2A from G:TIMER7
Synonyms: timerEvent
Related commands:
read, set, data_event, ftd, data_source, device_list
-------------------------------------------------------------------------------
print : print a line of output
print[/output={spec}] {string|device|symbol} {string|device|symbol} ...
A print statement is made up of a sequence of terms separated by
spaces. Special terms include the name() operator which causes
the name rather than the value of a device to be output, the
pos() operator which allows you to set the output line text
column for tabular data, and 'date' which will output the current
date and time string.
Examples of print qualifiers:
output={spec} -> specify output destination
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
variable:{variable} -> send the output to a string variable
symbol:{symbol} -> send the output to a string symbol
shared_log:{log_name} -> send the output to a shared/program log file
Special functions:
width({value},{width}) -> formats the output of a value to
a specified width
name({device}) -> causes the name rather than the value
of the device to be printed
gen_name({device}) -> causes the generic name (no property
or array index) rather than the value
of the device to be printed
text({device}) -> prints the descriptive text for
the device
units({device}) -> prints the units text for the device
units({device},{common|primary})
state_text({device}) -> prints the text for the current state
(state devices only)
state_text({device}[,{state},{trunc}])
clinks({date|integer}) -> displays date to clinks or clinks
to date
ctime({date|integer}) -> displays date to C time or C time
to date
gmt({date|integer}) -> displays date to GMT (UTC) time or
GMT (UTC) time to date
seconds(secs,{type1},{type2}) -> converts between types of seconds
(clinks, C time, or GMT (UTC))
julian({date|integer}) -> displays the corresponding Julian date
hex(integer|variable|symbol -> displays the hexadecimal equivalent
[,output_length]) of the requested value
dec(integer|variable|symbol -> displays the decimal equivalent
[,convert_length]) of the requested value
rad50(string) -> displays hexadecimal radix 50
value corresponding to the
requested string
rad50(integer) -> displays the string corresponding
to the requested value
ascii(hex or decimal integer) -> displays the corresponding ASCII
characters (up to 4)
ascii(string) -> displays the corresponding ASCII
numeric values (up to 4)
error(integer|string|variable) -> displays the corresponding ACNET
error value
node(integer|string|variable) -> displays the corresponding ACNET
node value
device(integer|device|variable) -> displays the corresponding ACNET
device value
[!]exists(device|variable) -> displays a 0 or 1 depending on
whether or not the requested
entity exists
sizeof(device|variable|symbol) -> displays the number of elements in
the requested entity
rtl_error(integer) -> displays the corresponding RTL
error string
system_error(integer) -> displays the corresponding system
error string
float(float|hex) -> displays floating point values
as either floats or raw hex
Examples:
print "M:OUTTMP is in alarm."
print "T:HA11[0] = " t_ha11[0]
print "Symbol #1 = " $symbol1
print name(G:DEV000) " = " G:DEV000 # print device name and value
print "Today's date is " date "." # print the present date
print "The present time is " time "." # print the present time
print "This shift started at " this_shift "."
print "Execution time = " script_time # print total script execution time
print "Delta time = " delta_script_time # print delta script execution time
print "1234" pos(10) "5678" # position second string at column 10
print "The first argument is " string(string0) "."
print "First line" newline "Second line"
Related commands:
str_format
-------------------------------------------------------------------------------
mail : mail a file to a user
mail {/file=file_name} {/user=user_name} {/subj=subject}
If the file designation is omitted or has a value of "nofile",
an empty message with the supplied subject will be sent.
Examples:
mail/subject = "ACL test" nofile hendricks
mail/subject = "A Message" mail.txt hendricks
Related commands:
output, print
-------------------------------------------------------------------------------
loop : execute a simple program loop
loop[/qualifier] {constant|variable|symbol} [{variable}[=][{device|constant|variable}]
This command starts a simple loop. The loop count can be specified
by an integer constant, a variable, or a symbol. The loop must be
terminated by an 'endloop' command. An optional variable can be
specified that will be initialized to either zero or a specified
value and will be incremented (or decremented if the decrement option
is selected) at the end of each iteration of the loop. (Note: If the
decrement option is chosen and no initial value is specified, the
variable will be initialized to a value of the loop count minus one.)
A loop can be terminated prematurely by an 'exitloop' command. An
iteration of a loop can be ended prematurely through the use of a
'continue' command.
Examples of loop qualifiers:
inc[={delta value}] -> specifies that the loop variable be
incremented during each iteration (default)
dec[={delta value}] -> specifies that the loop variable be
decremented during each iteration
(If the initial value of the loop variable
is not specified, the initial value will be
set to the loop count minus one.)
Examples:
loop 4
endloop
loop $symbol1
endloop
loop variable1
endloop
loop 3 counter
endloop
loop 3 counter = 7
if counter > 3
exitloop
endif
print counter
endloop
loop forever # infinite loop
if ($_eof) then # end of file encountered
break
endif
endloop
loop eof # loop until an EOF is detected
endloop
loop/dec my_loop_counter ii # decrement ii during loop iteration
endloop
Related commands:
endloop, exitloop, break, continue, while, endwhile, do_while,
end_do_while, goto
-------------------------------------------------------------------------------
endloop : end a simple program loop
endloop
This command ends a simple loop that was started with a 'loop' command.
Examples:
(see loop above)
Related commands:
loop, exitloop, break, continue, while, endwhile, goto,
do_while, end_do_while
-------------------------------------------------------------------------------
exitloop : jump out of a simple program loop
exitloop
This command allows the programmer to exit a loop prematurely.
Examples:
loop 3 counter = 7
if counter > 3
exitloop
endif
print counter
endloop
Synonyms: break
Related commands:
loop, endloop, continue, while, endwhile, do_while, end_do_while,
goto
-------------------------------------------------------------------------------
break : jump out of a simple program loop
break
This command allows the programmer to exit a loop prematurely.
Examples:
loop 3 counter = 7
if counter > 3
break
endif
print counter
endloop
Synonyms: exitloop
Related commands:
loop, endloop, continue, while, endwhile, do_while, end_do_while, goto
-------------------------------------------------------------------------------
continue : jump to the bottom of a simple program loop
continue
This command allows the programmer to prematurely end an
iteration of a loop.
Examples:
loop 3 counter = 7
if counter = 3
continue
endif
print counter
endloop
Related commands:
loop, endloop, exitloop, break, while, endwhile, do_while, end_do_while,
goto
-------------------------------------------------------------------------------
if : execute simple conditional structure
elseif : execute simple nested conditional structure
if {logical expression}
elseif {logical expression}
If the value on the left hand side of the expression is the basic
status of a device, the comparators to use are "is" or "isnot",
and the right hand side expression can be a basic status string.
Any valid ACL expression can be used in this statement. To see a
more complete description of expressions, see the help for the
assignment command.
Valid comparators:
= or eq -> is equal
!= or ne -> not equal
> or gt -> greater than
>= or ge -> greater than or equal to
< or lt -> less than
<= or le -> less than or equal to
is -> is in state (device status only)
isnot -> is not in state (device status only)
has -> has database attribute
doesnt_have -> doesn't have database attribute
Valid status strings (basic status):
on -> device is on
off -> device is off
ready -> device is ready
tripped -> device is tripped
remote -> device is in remote
local -> device is in local
positive -> device's polarity is positive
negative -> device's polarity is negative
ramp[ing] -> device is in ramp mode
dc -> device is in DC mode
enabled -> device is enabled (cryo devices only)
disabled -> device is disabled (cryo devices only)
active -> device is active (cryo devices only)
inactive -> device is inactive (cryo devices only)
defined -> device is defined (cryo devices only)
undefined -> device is undefined (cryo devices only)
Valid status strings (analog alarm and digital alarm):
bypassed -> alarm is bypassed
good -> device is not in alarm
alarming -> device is alarming
Valid status strings (miscellaneous):
family -> device is a family device
out_of_service -> device is out of service
broken -> device is out of service
controlled_set -> device/property is a controlled setting
step_motor -> device is a step motor
timer_reference -> device is a timer reference
never_save -> never save device
multiple_alarm_block -> device/property is a multiple alarm block
multiple_analog_alarm -> analog alarm is a multiple alarm block
multiple_digital_alarm -> digital alarm is a multiple alarm block
Valid database attribute strings (use with has/doesnt_have operators):
reset[_control] -> has reset basic control attribute
on_control -> has "on" basic control attribute
off_control -> has "off" basic control attribute
positive[_control] -> has "positive" basic control attribute
negative[_control] -> has "negative" basic control attribute
ramp_control -> has "ramp" basic control attribute
dc_control -> has "DC" basic control attribute
on_status -> has "on/off" basic status attribute
ready_status -> has "ready/tripped" basic status attribute
remote_status -> has "remote/local" basic status attribute
polarity_status -> has "polarity" basic status attribute
ramp_status -> has "ramp/DC" basic status attribute
reading -> has reading property
setting -> has setting property
[basic_]status -> has basic status property
[basic_]control -> has basic control property
analog[_alarm] -> has analog alarm property
digital[_alarm] -> has digital alarm property
save[_property] -> has save property
extended_text -> has extended text
analog_text -> has analog alarm text
digital_text -> has digital alarm text
setting_record -> has a database setting record
setting_setting_record -> has a database setting record (setting)
control_setting_record -> has a database setting record (control)
previous_sibling -> has previous sibling
next_sibling -> has next sibling
controlling_device -> has controlling device
virtual_machine -> device belongs to a virtual machine
scaling_info -> device/property has scaling information
reading_scaling -> reading property has scaling information
setting_scaling -> setting property has scaling information
status_scaling -> status property has scaling information
control_scaling -> control property has scaling information
Special functions:
exists({variable|symbol}) -> determines whether or not a variable
or symbol exists
file_exists({file}) -> determines whether or not a
file exists
Examples:
if m@outtmp is alarming
print "M:OUTTMP is in alarm."
elseif m@outtmp is disabled
print "M:OUTTMP is disabled."
else
print "M:OUTTMP is not alarming."
endif
if m:outtmp > 80
print "It's really getting hot!"
elseif m:outtmp < 50
print "It's getting cold."
else
print "It's quite comfortable now."
endif
if t:evtd9 has reset
print "T:EVTD9 has a reset attribute."
else
print "T:EVTD9 doesn't have a reset attribute."
endif
if !exists($array)
declare $array float[10]
endif
Related commands:
endif, else, goto, device_list
-------------------------------------------------------------------------------
else : implement default case for a an if/elseif block
else
This command implements the default case in an if block.
Examples:
(see if/elseif above)
Related commands:
if, elseif, endif, goto
-------------------------------------------------------------------------------
endif : end a simple conditional structure
endif
This command ends an if block.
Examples:
(see if/elseif above)
Related commands:
if, elseif, else, goto
-------------------------------------------------------------------------------
assignment : assign a value to a variable or symbol
{variable_name|symbol_name}[[{array_index}]] = {expression}
The assignment expression can be any simple algebraic expression
and can contain ACNET devices as well as other ACL symbols and
variables as terms. The algebraic symbols include "+", "-", "*",
"/", "^" (exponentiation), "%" (modulo), "<<" (arithmetic left shift),
">>" (arithmetic right shift), "++", and "--". The logical operator
"not" is also supported. Basic math functions including log
(base 10 log), ln (natural log), sqrt (square root), sin, cos, tan,
asin, acos, atan, sinh, cosh, tanh, round (round), trunc (truncate),
fract (fraction), abs (absolute value), exp (e^n), or (bitwise or),
and (bitwise and), xor (bitwise exclusive or),
lshft (circular left shift), rshft (circular right shift),
"bit" (bit test), "min" (minimum), "max" (maximum), and prec
(output precision eg. prec(value,fraction_digits)) can also be
included in these expressions. There are also a number of aggregate
functions which can act on an array of values. These functions
include sum, mean, median, minimum, maximum, range, stddev (standard
deviation), rms, variance, and identical (checks to see if all
values are identical). There are two other special intrinsic
functions. The first of these is exists which takes a device
specification or a variable or symbol name as an argument and
returns a value of 1 if the requested entity exists and a value of 0
otherwise. The other special function is sizeof which takes a single
argument which is a device specification or a variable or symbol name.
It returns the number of elements in the requested entity. Bitwise
operators "&" (and) and "|" (or) are supported. Comparison operators
".gt." (greater than), ".ge." (greater than or equal), ".lt."
(less than), ".le." (less than or equal), ".eq." or "==" (equal),
and ".ne." or "!=" (not equal) are supported. Logical operators are
also supported in expressions. These operators include "&&" (and),
".and." (and), "||" (or), ".or." (or), and ".xor." (exclusive or).
There are also logical functions including "lor" (logical or) and
"land" (logical and). The operator 'like' compares a string to a
a regular expression. The function "eventOccurred" takes a clock
event as an argument and returns a value of 1 if that event has
occurred since the last call to that function or a value of 0
otherwise. The function "timeSinceEvent" returns the elapsed time
since an event has occurred. The function "eventDate" returns the
date in clinks when the event last occurred. The function "timer"
returns the current value of a timer. There are also data conversion
functions to convert a string to a numeric value. These functions
include "node" to convert a node name to a value, "error" to convert an
ACNET error string to a value, and "device" to convert an ACNET
device to a value. There are also a few functions which return
string values. "name" returns a device name string while "text"
returns a device descriptive text string, and "units" returns
a device units string. "stateText" returns the text for the
current state of a state device while "head" returns the beginning
of a string and "tail" returns the end of a string. The function
"trim" removes leading and trailing blanks from a string. The
"toUpper", "toLower", and "capitalize" functions convert a string to
upper case, lower case, and capitalize it respectively. The "toString"
function converts a value to its corresponding string. The
"toTrimmedString" function works in the same way as "toString"
except that any spaces are removed from the resultant string. The
"stringLength" function returns the length of a string. The
"userAlarmList" function returns the state of a user alarm list
(enabled, bypassed, or empty) and can be used in an "is" expression.
The "file_exists" function returns a value of 1 if the requested file
exists or a value of 0 otherwise. Values from a previously defined
input can also be used in expressions. To do this, enclose the name of
the input in angle brackets (<>). Accessing an input value in this way
will set the end of file ($_eof) symbol to a value of 1 if an end of
file error occurs or 0 otherwise.
Examples:
$symbol1 = 2 * m:outtmp
variable1 = t_qf[1]
variable1 = 16
diff = abs(t_qf[1]-t_qf[2])
$symbol2 = $symbol1 + 4
bit_value = bit(t|ha11,8) # read value of bit #8
log_value = ln(m:outtmp)
it_is = exists(variable)
num_elements = sizeof(array)
array[2] = t:store
declare array float[5]
input/file xxx "myfile.txt"
array[] = <xxx> # assign values from defined input
declare array float[sizeof(z:acltst)]
array[] = z:acltst # assign array values from a device
declare my_string string
my_string = 'The temperature is ' + toString(m:outtmp) + '.'
val = stateText(v:cldrst) is like '.*hep$' # regexp comparison
Related commands:
declare
-------------------------------------------------------------------------------
declare : declare a variable or symbol
declare {variable|symbol} [{data_type}][[{dimension}]] [=] [{initializers}]
The declare command can be used to create either single value or
array variables and symbols. Symbol names must begin with a dollar
sign ($) and cannot conflict with any global symbols created by ACL
itself (see above). The data type field is optional. If a data type
is not specified, the data type will be set to float. If the value
being created is an array and initializers are specified, they should
be separated by white space or commas. In this case, you can specify
a number of initializers less than or equal to the size of the array.
Values not set by initializers will be set to zero. The notation
{n}*{value} can be used to set 'n' consecutive initializers to the same
value. No algebraic expressions can be used as an initializer, but
initializers can be other previously declared variables or symbols or
even device readings. Individual array elements can be set in
assignment statements while entire arrays can be filled by read
commands with the appropriate variable or symbol as its output.
Examples of declare qualifiers:
constant -> can be set only once
Data types:
float (or real) -> single precision real (default)
double -> double precision real
string -> ASCII string
byte -> 1 byte signed integer
ubyte -> 1 byte unsigned integer
short -> 2 byte signed integer
ushort -> 2 byte unsigned integer
int[eger] -> 4 byte integer
ulong -> 4 byte unsigned integer
logical (or boolean) -> 4 byte logical integer (0 or 1)
date -> 4 byte unsigned integer to be interpreted
as a date in clinks (seconds since 1/1/1972)
error -> 4 byte integer to be interpreted as an
ACNET error
node -> 4 byte integer to be interpreted as
an ACNET node and trunk specification
event -> 4 bye integer to be interpreted as
a clock event specification
device_index -> 4 byte integer to be interpreted as an
ACNET device index
device -> ACNET device specification
Special functions:
sizeof({device|variable}) -> determines the number of elements
in a device property or variable
Examples:
declare array[10] # declare 10 element float array
declare array[10] = 1,2,3,4,5,6,7,8,9,10
declare array float[10] = 1,2,3,4,5,6,7,8,9,10
declare array float[10] = 1,2,4*1,7,8,9,10
declare value double = 16.6
declare int_array int[5] # declare 5 element integer array
declare array[sizeof(z:acltst)]
declare str string[3] = 'string 1', 'string 2', 'string 3'
declare str string[] = 'string 1', 'string 2', 'string 3'
declare $test_array float[sizeof(z:acltst)]
read z:acltst/all/output=symbol:$test_array
declare temperature device=m:outtmp
device_list/create devs devices='m:outtmp,m:outhum'
declare readings float[sizeof(device_list=devs)]
Related commands:
assignment
-------------------------------------------------------------------------------
resize : resize (reallocate) an array variable or symbol
resize[/{qualifier}] {variable|symbol} {num_elements}
The resize command can be used to change the size of an existing
variable or symbol.
Examples of resize qualifiers:
static -> only resize once
Examples:
declare array[10] # declare 10 element float array
resize array 20 # reallocate array to hold 20 elements
Related commands:
declare
-------------------------------------------------------------------------------
timeout : set the timeout in seconds for device readings,
device settings or database access
timeout {/timeout_type} {constant|variable|symbol}
timeout types:
reading -> device reading timeout (default)
setting -> device setting timeout
database -> database access timeout
Examples:
timeout/reading 5
timeout/setting 10
timeout/database = 10
Related commands:
read, set, show, setting_log, alarm_log
-------------------------------------------------------------------------------
wait : wait for a period of time, a clock event, a state transition,
or a device to reach a value range or status value
wait {/wait_type} {/qualifier} {constant|variable|symbol|device}
If the timeout qualifier is not specified or has a value of zero
for clock event, state transition, or device waits, this command
will wait forever.
Examples of wait types:
event -> TCLK event
events -> wait for an expression containing one or
more clock events
seconds -> number of seconds
milliseconds -> number of milliseconds
minute -> number of minutes
hour -> number of hours
absolute_time -> wait for an absolute time
time_of_day -> wait till a given time of day
state -> specific state value
states -> wait for an expression containing one or
more state conditions
device -> device in a particular value range
or at a particular status value
device_compare -> two devices at the same value
Examples of wait qualifiers:
timeout -> set a timeout time in seconds
delay -> set a delay time in milliseconds
minimum -> set minimum value for a device wait
maximum -> set maximum value for a device wait
status -> set device status for a device wait
state_value -> set target state value for a state wait
state_text -> set target state text for a state wait
new -> wait for the next occurrence of the
requested state transition
condition={condition} -> establish the condition for a state or
normal device wait
("=", "!=", "<", "<=", ">", ">=",
"any", "*") (default is "=")
equals -> set the condition to equal for a state
or normal device wait
not_equals -> set the condition to not equal for a state
or normal device wait
tclk -> wait for TCLK event (default)
hins -> wait for HCLK (HINS) event
nml -> wait for NCLK (NML) event
test -> wait for test clock event
Examples:
wait/sec 2 # wait for 2 seconds
wait/event 0 # wait for event 00 to occur
wait/events 0 and 2 # wait for 00 and 02 events
wait/state/timeout=5 v:cldrst 1 # wait for state 1 with timeout
wait/state/state_value=1 v:cldrst # wait for state 1 forever
wait/state/state_value=-1 v:cldrst # wait for state not equal 1
wait/state/state_value=any v:cldrst # wait for any state transition
wait/state=v:cldrst/condition="!=" 1 # wait for state not equal 1
wait/states v:test1=* or v:test2=* # wait for v:test1 or v:test2
wait/device m:outtmp 60 80 # wait for 60 <= M:OUTTMP <= 80
wait/device/minimum=60/maximum=80 m:outtmp 60 80
wait/device/minimum=$symbol1/maximum=$symbol2 m:outtmp
wait/device/status=on t:ha11 # wait for T:HA11 to turn on
wait/device_compare g:sctime g:sctime/prset
wait/absolute_time 16-sep-2006 15:00
wait/time_of_day 15:00
Related commands:
none
-------------------------------------------------------------------------------
execute : execute ACL code
execute[/{qualifier}] {ACL code}
This command allows the programmer to build a string containing
ACL code and execute it within the same script. This can be useful
if one wants build commands with varying arguments and execute
them. If you want to specify mutiple ACL commands, they need to be
separated by new lines or semicolons. By default, the output
specifier used by commands executed in this way is the current
output specifier at the time the execute command is executed.
Examples of execute qualifiers:
error_exit -> exit the ACL script if the code executed
returns an error (default)
no_error_exit -> do not exit the ACL script if the
code executed returns an error
spawn -> spawn the ACL code off in another process
reset_output -> do not use the current output specifier
Examples:
declare code string # declare variable to hold code
code = 'read' + ' ' + 'm:outtmp' # build code string
execute code # execute the code
code += new_line + 'read m:outhum' # add a second command
execute code # execute both commands
Related commands:
run
-------------------------------------------------------------------------------
exit : end the script
exit [{text}] [{expression}]
If this command is not used, the script will run to the end.
If the optional status expression is supplied, this is the
status value returned for the script. Otherwise, a status
value of zero is returned. Any valid ACL expression can be
used in this statement. To see a more complete description
of expressions, see the help for the assignment command.
Examples of exit qualifiers:
error_status -> return the current value of $_error_status
force_text -> return the text supplied to this command
even if the global error string has already
been filled (default is to return the
global error string)
text={text} -> descriptive text for exit message
(This form is needed if the text is
contained in a string variable.)
Examples:
exit
exit (CLIB_NO_SUCH)
exit 'Requested object not found' CLIB_NO_SUCH
exit/force_text 'Requested object not found' CLIB_NO_SUCH
exit/error_status
exit 0
exit $_value * 2
Related commands:
return
-------------------------------------------------------------------------------
goto : jump to a given label
goto {label}
A label is inserted by entering its name followed by a colon (:).
The colon should not be included in the reference in the goto command.
Examples:
goto label1
label1:
Related commands:
on_error, gosub, return, loop, endloop, continue, break, while, endwhile
do_while, end_do_while, if, elseif, else, endif
-------------------------------------------------------------------------------
gosub : jump to a labeled subroutine
gosub {label}
A label is inserted by entering its name followed by a colon (:).
The colon should not be included in the reference in the gosub command.
The end of a subroutine should be marked by a return command.
Examples:
gosub label1
label1:
return
Related commands:
return, goto, on_error, loop, endloop, continue, break, while, endwhile
do_while, end_do_while, if, elseif, else, endif, retry, exit
-------------------------------------------------------------------------------
on_error : establish an error handling routine
on_error[/{qualifier...}] {label}
This command establishes an error handling routine which will be
invoked if an ACL statement results in an error condition. If
no error handler is established, the ACL script will exit. If
the error handler determines (perhaps by examining the symbol
$_error_status which contains the error status which led to the
error handler being invoked) that the script should exit, it can
execute the exit command itself. Otherwise, as soon as the error
handler has finished, execution resumes at the statement following
the one which caused the error handler to be invoked.
A label is inserted by entering its name followed by a colon (:).
The colon should not be included in the reference in the on_error
command. The end of the error handler should be marked by a return
command.
You can also insert a retry statement in the error handler to
conditionally retry the statement causing the error.
There are two special kinds of virtual labels supported by this
command. The first is no label at all. This will cancel any
previously defined error handler. The second is the label
"do nothing". If this label is used, error status is updated but
no change to the script execution flow occurs. This requires the
programmer to check for errors explicitly by checking the value of
the symbol "$_error_status".
Examples of on_error qualifiers:
show_errors -> display current global error string
before invoking the error handler
Intrinsic symbols that are useful in error handlers:
$_error_status -> error code which triggered error handler
$_error_count -> number of times that the current error
has occurred consecutively (device errors)
$_generic_error_count -> number of times that the current error
has occurred consecutively (any error)
$_pending_count -> if the current error is a device pending
error, this is the number of consecutive
times that this status has been returned
$_error_device -> device which caused the current error
(if applicable)
$_error_line -> source line number where the current error
occurred
$_error_command -> name of command where the current error
occurred
$_last_error_status -> previous error code
$_last_error_device -> previous device error device
Examples:
on_error error_label1
read m:outtmp
exit
error_label1:
print "An error occurred - status = " $_error_status
return
# with conditional retry
on_error error_label1
read m:outtmp
exit
error_label1:
print "An error occurred at line " $_error_line " - status = " $_error_status
if $_error_status = DPM_PEND and $_error_count < 3
retry # try to read the data again
endif
return
on_error do nothing # script must check for errors
on_error # cancel previous handler
Synonyms: onError
Related commands:
return, retry, goto, gosub, exit, if, elseif, else, endif
-------------------------------------------------------------------------------
retry : retry a command which has invoked an error handler
retry
This command can only be called from within an error handler.
It will cause control to be returned to the command which
caused the error handler to be invoked. This allows you to
retry a transient error condition.
Examples:
(see on_error above)
Related commands:
on_error, goto, return, exit
-------------------------------------------------------------------------------
return : return from a subroutine or error handler
return [{expression}]
This command returns control to the line following a gosub command.
It also can be used to return from an error handler. In this case,
it returns control to the line following the line which caused the
error handler to be invoked. If the optional expression is supplied,
it's value will be stored in the symbol $_return_value. This value
is only valid for the first statement executed after the return
statement. Any valid ACL expression can be used in this statement.
To see a more complete description of expressions, see the help for
the assignment command.
Examples:
(see gosub and on_error above)
gosub example
print 'return value = ' $_return_value
exit
example:
return 16
Related commands:
gosub, on_error, retry, exit
-------------------------------------------------------------------------------
run : run a program
run[/qualifier] "{program} [{arguments}]"
If the file to be run has an extension of ".acl", it will be
treated as another ACL file stored as a flat file. If it has
an extension of ".db", it will be treated as another ACL
file stored in the database. If it has an extension of ".scr",
it will be treated as a console application to be run using a
script. If it has an extension of ".cns", it will be treated as
a console application to be run with a remote method request or
in the case of fast time plots ("ftp") and snapshot plots
("snapshot"), with a saved plot setup specification.
Otherwise, it will be treated as a normal executable file.
Arguments can be passed in addition to the file to be run.
For console applications, these arguments can either take the
form of ASCII remote program methods or binary command buffers
with the use of the "cmdbuf" key word.
Examples of run qualifiers:
error_exit -> exit the ACL script if the program
returns an error (default)
no_error_exit -> do not exit the ACL script if the
program returns an error
exit -> called program should exit when
it's finished (default)
no_exit -> called program should continue
running indefinitely
spawn -> spawn the script off in another process
(ACL scripts only)
Examples:
run/no_error_exit myprogram # run an executable file
run "myprogram arg1 arg2" # run an executable file
run command_file.com # run a DCL command file
run "command_file.com arg1 arg2" # run a DCL command file
run acl_file.acl # run another ACL file
run "acl_file.acl m:outtmp g:sctime" # run another ACL file
run "read a device.db m:outtmp" # run an ACL file from the database
run "d110.scr 134 PA yan's script" # run a console app with a script
run "m4.cns 134 PB go to subpage\12\0" # run a console app (M4) with a remote method
run "sa1082.cns 134 SA display image\XXXXXXXX" # run a console app with a remote method
run "lexsa.cns 134 SA display image\XXXXXXXX" # run a console app with a remote method
run "ftp.cns 134 SA collider\3" # run a fast time plot with the Collider #3 plot setup
run "snp.cns 134 SA recycler\1" # run a snapshot plot with the Recycler #1 plot setup
run "sa1135.cns 134 SA cmdbuf={int=10,float=3.7,float=0}"
run "p188.cns 134 PA seqnet={int=10,float=3.7,float=0}"
Related commands:
execute
-------------------------------------------------------------------------------
lock : lock a script
lock {lock string}
This command allows you to lock a script such that it can only
be run from one location at a time. The lock can be held for
the lifetime of the calling process, or it can be released by
calling the unlock command.
Examples:
lock "my lock name"
Related commands:
unlock
-------------------------------------------------------------------------------
unlock : unlock a script
unlock {lock string}
This command allows you to unlock a script that was locked by
an earlier lock command. Of course, the lock name used in the
unlock command must be the same one used in the lock command.
Examples:
unlock "my lock name"
Related commands:
lock
-------------------------------------------------------------------------------
while : execute simple while loop
while {logical expression}
If the value on the left hand side of the expression is the basic
status of a device, the comparators to use are "is" or "isnot",
and the right hand side expression can be a basic status string.
Any valid ACL expression can be used in this statement. To see a
more complete description of expressions, see the help for the
assignment command.
Examples of comparators:
= or eq -> is equal
!= or ne -> not equal
> or gt -> greater than
>= or ge -> greater than or equal to
< or lt -> less than
<= or le -> less than or equal to
is -> is in state (device status only)
isnot -> is not in state (device status only)
Examples of status strings (basic status):
on -> device is on
off -> device is off
ready -> device is ready
tripped -> device is tripped
remote -> device is in remote
local -> device is in local
positive -> device's polarity is positive
negative -> device's polarity is negative
ramp(ing) -> device is in ramp mode
dc -> device is in DC mode
enabled -> device is enabled (cryo devices only)
disabled -> device is disabled (cryo devices only)
active -> device is active (cryo devices only)
inactive -> device is inactive (cryo devices only)
defined -> device is defined (cryo devices only)
undefined -> device is undefined (cryo devices only)
Examples of status strings (analog alarm and digital alarm):
bypassed -> alarm is bypassed
good -> device is not in alarm
alarming -> device is alarming
Examples:
while m:outtmp > 80
wait/milliseconds 66
endwhile
while forever # infinite loop
endwhile
Related commands:
endwhile, exitloop, break, continue, do_while, end_do_while,
loop, endloop, assignment, device_list
-------------------------------------------------------------------------------
endwhile : end a simple while loop
endwhile
This command marks the end of a while loop.
Examples:
(see while command)
Related commands:
while, exitloop, break, continue, do_while, end_do_while, loop, endloop
-------------------------------------------------------------------------------
do_while : begin a do/while loop
do_while
This command marks the beginning of a do/while loop.
Examples:
(see end_do_while command)
Related commands:
end_do_while, while, endwhile, exitloop, break, continue, loop, endloop
-------------------------------------------------------------------------------
end_do_while : end a do/while loop
end_do_while {logical expression}
This is the statement that ends a do/while loop. It evaluates
a logical expression, and if that expression has a value of true,
it loops back to the most recent do_while statement. Otherwise,
it continues with the next statement. Any valid ACL expression
can be used in this statement. To see a more complete description
of expressions, see the help for the assignment command.
Examples of comparators:
= or eq -> is equal
!= or ne -> not equal
> or gt -> greater than
>= or ge -> greater than or equal to
< or lt -> less than
<= or le -> less than or equal to
is -> is in state (device status only)
isnot -> is not in state (device status only)
Examples of status strings (basic status):
on -> device is on
off -> device is off
ready -> device is ready
tripped -> device is tripped
remote -> device is in remote
local -> device is in local
positive -> device's polarity is positive
negative -> device's polarity is negative
ramp(ing) -> device is in ramp mode
dc -> device is in DC mode
enabled -> device is enabled (cryo devices only)
disabled -> device is disabled (cryo devices only)
active -> device is active (cryo devices only)
inactive -> device is inactive (cryo devices only)
defined -> device is defined (cryo devices only)
undefined -> device is undefined (cryo devices only)
Examples of status strings (analog alarm and digital alarm):
bypassed -> alarm is bypassed
good -> device is not in alarm
alarming -> device is alarming
Examples:
do_while
{loop body}
end_do_while (z:acltst is on)
do_while
{loop body}
end_do_while (m:outtmp > 60)
Synonyms: endDoWhile
Related commands:
do_while, while, endwhile, exitloop, break, continue, loop,
endloop, assignment, device_list
-------------------------------------------------------------------------------
ftd : establish an FTD for future data requests
ftd {FTD string}
The Frequency Time Descriptor (FTD) established by this call
remains in effect until another data_event or 'ftd' command is
encountered. Individual commands can override the information
established by this command for that individual command only.
Examples:
ftd 1 hz # 1 Hz request
ftd 1_shot # one shot
ftd evt 02 # read on event 02
ftd dbdflt # use default FTD
Related commands:
data_event, data_source, read
-------------------------------------------------------------------------------
data_event : establish a data event for future data requests
data_event {data event string}
The data event established by this call remains in effect until
another data_event or 'ftd' command is encountered. Individual
commands can override the information established by this command
for that individual command only.
Examples:
data_event p,1000,true # 1 Hz request
data_event i # one shot
data_event e,02,h,0 # read on event 02
Synonyms: dataEvent
Related commands:
ftd, data_source, read
-------------------------------------------------------------------------------
data_source : establish a data source for future data requests
data_source {type}:{arg1}:{arg2}:{arg3}:{arg4}
There are six data sources defined by ACL: accelerator, database,
save/restore, SDA, data logger (Lumberjack), and memory.
Type Syntax
---- ------
accelerator dp
database db
save/restore sr:{file number}
SDA sda:{file number}:{case}[:{subcase}:{usage}]
data logger dl:{start date}[:{node}:{accuracy in seconds}]
memory memory[:{pool_name}|{pool_id}]
(Note: Arguments enclosed in square brackets are optional.)
The data source established by this call remains in effect until
another data_source command is encountered. It does not affect
any setting commands. Individual commands can override the
information established by this command for that individual
command only.
Examples:
data_source dp # default data source
data_source db
data_source sr:1
data_source sda:1:"Inject Protons":1:ColliderShot
data_source dl:"01-Jan-2000 00:00":fastest:3600
data_source memory
Synonyms: source, dataSource
Related commands:
data_event, ftd, read
-------------------------------------------------------------------------------
device_arg : specify a description and/or default value for a device
argument
device_arg {arg_num} [descr={description}] [default={default_value}]
This command allows the writer of a script to define a description
string and/or a default value string for a device argument. The
description can be used as a prompt for the user to enter a value
for the string. The default value can also be used in a user
dialog and can even be used if the caller does not specify a value
for the corresponding device argument. Argument numbers for this
comand start at zero. Argument descriptions can be supplied for
none, some, or all of the device arguments to a script.
(Note: Arguments enclosed in square brackets are optional.)
Examples:
device_arg 0 descr="Enter device value" default="z:acltst"
Synonyms: deviceArg
Related commands:
string_arg
-------------------------------------------------------------------------------
string_arg : specify a description and/or default value for a string
argument
string_arg {arg_num} [descr={description}] [default={default_value}]
This command allows the writer of a script to define a description
string and/or a default value string for a string argument. The
description can be used as a prompt for the user to enter a value
for the string. The default value can also be used in a user
dialog and can even be used if the caller does not specify a value
for the corresponding string argument. Argument numbers for this
comand start at zero. Argument descriptions can be supplied for
none, some, or all of the string arguments to a script.
(Note: Arguments enclosed in square brackets are optional.)
Examples:
string_arg 0 descr="Enter string value" default="z:acltst"
Synonyms: stringArg
Related commands:
device_arg
-------------------------------------------------------------------------------
input : define a data input
input[/type={type}][/data_type={type}] {handle} {input_specifier}
An input statement specifies the source for future data. This
input can be referenced in future commands by placing the handle
string between angle braces (<{handle}>). Data can be input from
ASCII files, binary files, SQL database queries, or by the user.
When using a database query, you can optionally specify the
server and database by separating the components with colon(s)
("[{server}:{database}:]{SQL string}"). Assignment statements can
support reading multiple values from an input through the use of
array notation. Accessing an input value in an assignment command
will set the end of file ($_eof) symbol to a value of 1 if an end
of file error occurs or 0 otherwise.
Examples of input qualifiers:
user -> input from the user
stdin -> input from the user
sql -> input from a database query
file -> input from an ASCII file (default)
binary -> input from a binary file
pipe -> input from a pipe
fshare -> input from a Filesharing file
environment_variable -> input from an environment variable
float -> input float values
double -> input double precision float values
integer -> input integer (long) values
boolean (logical) -> input boolean/logical values
string -> input string values
string={input length} -> input string values and set the
input field length
compound_string -> input compound (including spaces)
string values
compound_string={length} -> input compound string values and set the
input field length
file_name -> input a file name from the user
acknowledge -> pause the script and wait for a user
acknowledgment
record={record value} -> input record number
(only used for binary and Filesharing files)
record_size={size} -> input record size
(only used for binary files)
values_per_row={num} -> number of values per row
(only used for SQL input)
default={default value} -> default value (only for user input)
env={environment string} -> environment string (This is the file search
string for file name user input.)
modify -> change the input string for an existing
input
close -> close the associated input stream
suppress_eof_error -> suppresses end of file errors by returning
success if one occurs ($_eof symbol is set)
Examples:
input xxx myfile.txt # input from ASCII file
value = <xxx> # read in one float value
input/sql xxx "ADBS:appdb:exec annala.getc49" # read from database
declare values float[21]
values[] = <xxx>
loop 21 counter
print "Values[" counter "] = " values[counter]
endloop
input/user/default=42 xxx "Enter value" # have user enter value
value = <xxx> + 16
input/close xxx # close input handle "xxx"
input/environment_variable xxx PATH
Related commands:
assignment
-------------------------------------------------------------------------------
output : set the output for future commands
output[/{qualifier}] [{spec}]
An output statement specifies the output destination for future
commands. Commands affected include: read, show, list, print,
and many others. If an individual command specifies an output,
that output will be used (for that command only) rather than the
one specified by the most recent output command. The default
output is to the screen. Output to files and database tables
is normally closed when the ACL script ends. An optional qualifier
can change this behavior so that the output remains open until
another output command is executed or the calling program terminates.
Examples of output qualifiers:
close -> close the current output
keep_open -> keep this output open until the calling
program exits
outter -> remains the default output for scripts
run by the present script
subject={subject} -> specifies the subject line for mail messages
Examples of output specifications:
default -> output to the screen (default)
stdout -> output to the screen (default)
stderr -> output to standard error
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a text file
file_append:{file_name} -> send output to a text file (append mode)
binary:{file_name} -> send output to a binary file
binary_overwrite:{file} -> send output to a binary file
without truncating the file
pipe:{pipe_name} -> send output to a pipe
variable:{variable_name} -> send output to a variable
symbol:{symbol_name} -> send output to a symbol
shared_log:{log_name} -> send output to a shared/program log file
Examples:
output file:myfile.txt
output myfile.txt
output/keep_open myfile.txt # keep file open when script ends
output mail:myname@fnal.gov
output stdout
output symbol:$symbol1
output $symbol1
output variable:variable1
output shared_log:testalog
output/close # close current output
Related commands:
print, read, show, list
-------------------------------------------------------------------------------
version : display the version of ACL that is being run
version[/output={spec}]
This command simply outputs a string describing the version of
ACL which is being executed.
Examples of version qualifiers:
output={spec} -> specify output destination
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
Examples:
version
version/output=mail:hendricks
Related commands:
none
-------------------------------------------------------------------------------
acnet_request : send an ACNET request
acnet_request/node={node}/process={name}/request_data={{type}={value},...}[/qualifier]
This command sends an ACNET request to a specified node and process.
The request can be a simple USM (no reply requested) or can receive
a reply. The request buffer can be specified as a series of tag/value
pairs separated by commas where the tag specifies the data type of
its accompanying value. Reply buffers can be specified by a series
data type strings separated by commas or by a named generic structure.
Use of this command may require special privileges. See Brian
Hendricks (hendricks@fnal.gov) for more information.
Examples of acnet_request qualifiers:
node={node} -> ACNET node to send request to
process={name} -> ACNET process to send request to
request={type}={value},... -> request buffer specification
string -> request is a simple string
null_terminate -> null terminate the request
reply_data={type},... -> reply buffer specification
reply_length={length} -> reply buffer length
reply_struct={struct} -> specify named reply structure
string_reply -> reply is a simple string
reply_value={variable} -> specify a variable to return
the reply value
reply_length_value={variable} -> specify a variable to return
the length of the reply in bytes
no_display -> don't display the reply
swap_bytes -> swap bytes in the request and reply
swap_words -> swap words in the request and reply
ieee_to_dec -> convert between IEEE and DEC floating
point formats
allow_truncated -> allow replies that are smaller than
what was requested with the
missing bytes set to zero
timeout={seconds} -> ACNET timeout
usm -> specify a USM (default is nonUSM)
output={spec} -> specify output destination
Examples:
acnet_request/node=cns34/process=sf1082\
/request="{string='a1refrig',int=0,int=4,int=3*0,string=' ',\
string=' ',int=7*0}"\
/reply_data="{int,string6,string8,2*int}"
Synonyms: acnetRequest
Related commands:
tcp_request
-------------------------------------------------------------------------------
alarm_log : display alarm history log
alarm_log[/start={date}/end={date}/device={string}/text={string}/analog/digital][/output={spec}]
This command simply reads and displays entries from the alarm
history log. You can search the log by device strings and
message strings. You can also search by source node and
alarm priority. In addition, by using the "max_count" qualifier
you can display the most frequently occurring alarms.
Examples of alarm_log qualifiers:
start={date} -> starting date
end={date} -> ending date
interval={time_spec} -> set end date to interval after the start time
device={string} -> matching device string (*)
text={string} -> matching text string (*)
node={node} -> alarm source node (*)
priority={n} -> matching alarm priority (+)
analog -> return analog alarm messages only
digital -> return digital alarm messages only
count_only -> message count
max_entries={n} -> maximum number of entries to display
max_count={n} -> return the "n" most frequently alarming
devices along with their alarm counts
show_value -> display the device values
scaled -> display scaled device values
raw -> display raw device values
output={spec} -> specify output destination
(* -> indicates that the search can be inverted by adding a suffix
of "_not" to the qualifier,
+ -> indicates that the search can be inverted by adding a suffix
of "_not" to the qualifier and that additionally a less than
search can be performed by adding a suffix of "_lt" and a
greater than search can be performed by adding a suffix
of "_gt". (Less than or equal to (_le) and greater than or
equal to (_ge) searches are also supported.))
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
Examples:
alarm_log/start=today
alarm_log/start=16-sep-2001/end="16-sep-2001 00:10"/output=mail:hendricks
alarm_log/start=today/analog/count_only
alarm_log/start=today/device=%out%
alarm_log/start=today/text=%high%
alarm_log/start=today/max_count=10/output=mail:hendricks
alarm_log/start=today/device=b:mp02/value
Synonyms: alarms, alarmLog
Related commands:
setting_log, event_log, state_log
-------------------------------------------------------------------------------
beam_switch : read the status of a beam switch
beam_switch[/{qualifier}[={value}]] {switch} [on/off]
This command supports reading or setting of software beam
switches. In reading mode, this command updates $_value
with a value of 0 if the switch is off or a value of 1 if
the switch is on. Use of this command may require special
privileges. See Brian Hendricks (hendricks@fnal.gov) for
more information.
Examples of beam_switch qualifiers:
value={variable} -> reads the current state of the switch
into the requested variable
(0 -> off, 1 -> on)
noset -> don't actually send the command
verbose -> display verbose output
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
binary:{file_name} -> send output to a binary file
variable:{variable_name} -> send output to a variable
symbol:{symbol_name} -> send output to a symbol
Examples:
beam_switch pbar # read the Pbar beam switch state
Synonyms: beamSwitch
Related commands:
none
-------------------------------------------------------------------------------
call_proc : execute a non-ACL procedure
call_proc[/shared={shared image}] {procedure name|index}
This command executes a non-ACL procedure. If this is a procedure
from the calling program, its address must be passed in the call to
'acl_execute_c'. In this case, it can be referenced either by its
name or its index in the list of passed procedures. An argument
can also be passed to this procedure. If the procedure is in a
shared image, the reference must be by name and the name of the
shared image must be specified.
Examples of call_proc qualifiers:
shared={shared image} -> call procedure in a shared image
Examples:
call_proc my_procedure
Synonyms: callProc
Related commands:
none
-------------------------------------------------------------------------------
ch13_message : display the current channel 13 message
ch13_message[/type={message_type}][/output={spec}]
This command simply displays the current channel 13 message
and displays it. It can also display a set of Sequencer
messages, and it can even send new messages.
Examples of ch13_message qualifiers:
main -> main channel 13 message (default)
sequencer -> last Sequencer message
start={date} -> starting date (Sequencer messages only)
end={date} -> ending date (Sequencer messages only)
text={string} -> matching text string (Sequencer messages only)
count_only -> message count (Sequencer messages only)
max_entries={n} -> maximum number of entries to display
(Sequencer messages only)
message={message} -> message string to be sent
name={name} -> name of message to be sent
(default is "Store {T:STORE}")
category={category} -> category of message to be sent
(default is "Accelerator Messages")
priority={priority} -> priority of message to be sent
(default is "normal")
convert -> convert embedded device and variable
values in the message and name strings
no_set -> suppress actual sending the message
verbose -> verbose output
output={spec} -> specify output destination
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
Examples:
ch13_message
ch13_message/output=mail:hendricks
ch13_message/type=main
ch13_message/type=sequencer/start=today
Synonyms: ch13, channel13, ch13Message
Related commands:
none
-------------------------------------------------------------------------------
clib_info : display CLIB information
clib_info[/{qualifier}][/output={spec}] [{routine name}]
This command displays CLIB information including
type and date of the currently running CLIB. If a
CLIB routine name is supplied, it will output help
for that routine.
Examples of clib_info qualifiers:
output={spec} -> specify output destination
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
Examples:
clib_info
clib_info dio_set_dev_c
Synonyms: clibInfo
Related commands:
program_info
-------------------------------------------------------------------------------
comment_char : disable a comment character
comment_char [/qualifier] [is/=] [not] {comment character}
This command allows the writer of a script to disable one of the
predefined ACL comment characters for the parsing of the present
script. By default, both the exclamation point (!) and the pound
(#) characters are treated as end of line comment characters unless
they are found in a quoted string. There are cases where it would
be convenient to disable one of these characters, and this is the
way to do it. After the script has been parsed, the disabled
comment character is reenabled for the next script.
Examples of comment_char qualifiers:
not -> negates the sense of the command
Examples:
comment_char is not '!' # disable the '!' comment character
comment_char = '#' # disable the '!' comment character
comment_char is '#' # disable the '!' comment character
Synonyms: commentChar
Related commands:
none
-------------------------------------------------------------------------------
console_info : display console information
console_info[/{qualifier}][/output={spec}] {console}
This command simply displays console information including
the list of currently running applications.
Examples of console_info qualifiers:
suppress_errors -> suppress the error if a nonexistent
console is requested
pool_log -> display today's console pool log
pool_log={day spec} -> display the console pool history for
a given day or the cummulative history
for a number of days
pool[_status] -> display the current status of the
console pool
overall[_status] -> display the overall number of consoles
and running applications
[window_]titles -> display the window titles for a console
output={spec} -> specify output destination
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
Examples:
console_info 1
console_info cns1
console_info/titles 1
console_info/pool
console_info/pool_log
console_info/pool_log=yesterday
console_info/pool_log=2_days_ago
console_info/pool_log=last_2_days
loop 10 console=1
console_info/suppress_errors console
endloop
Synonyms: cns_info, cnsInfo, consoleInfo
Related commands:
node_info, program_info, user_info, event_info, mdat_info, cpld_log
-------------------------------------------------------------------------------
cpld_log : display CPLD program log entries
cpld_log[/qualifier/start={date}/end={date}/program={pgm}/page={page}]
This command simply reads and displays entries from the CPLD
program log. You can search the log by program strings, page strings,
user strings, console numbers, slots, termination status and console
type. Please, note that CPLD logs are only updated once a day. So,
you typically cannot view CPLD log data for the present day.
Examples of cpld_log qualifiers:
start={date} -> starting date
end={date} -> ending date (default is now)
interval={time_spec} -> set end date to interval after the start time
timeout={seconds} -> database timeout in seconds
program={program} -> matching program name (*)
index_page={page} -> matching index page name (*)
user={user_name} -> matching user name (*)
console={console_num} -> matching console number (*)
slot={slot} -> matching console slot (*)
duration={time_spec} -> matching program duration (+)
normal_exit -> show programs with a normal exit
user_abort -> show programs aborted by a user
program_crash -> show programs which crashed
count_only -> execution count
max_entries={n} -> maximum number of entries to display
verbose -> display verbose output
output={spec} -> specify output destination
(* -> indicates that the search can be inverted by adding a suffix
of "_not" to the qualifier,
+ -> indicates that the search can be inverted by adding a suffix
of "_not" to the qualifier and that additionally a less than
search can be performed by adding a suffix of "_lt" and a
greater than search can be performed by adding a suffix
of "_gt". (Less than or equal to (_le) and greater than or
equal to (_ge) searches are also supported.))
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
Examples:
cpld_log/start=yesterday
cpld_log/start=yesterday pa0052
cpld_log/start=yesterday m4
cpld_log/start=16-sep-2004/end="16-sep-2004 00:10"/output=mail:hendricks
cpld_log/start=yesterday/count_only
Synonyms: cpldLog
Related commands:
program_info, console_info, program_log, setting_log, alarm_log,
event_log, state_log
-------------------------------------------------------------------------------
crate : access CAMAC crate information
crate[/{qualifier}] {node} {crate} [{retries}]
This command will access information about individual CAMAC crates.
Examples of crate qualifiers:
node={node} -> specify CAMAC node
crate={crate} -> specify CAMAC crate
retries={retries_value} -> specify CAMAC no-Q retries value
format={decimal|hex} -> specify data format (hex or decimal)
ids -> read the CAMAC module ID numbers
devices[={string}] -> read the devices in the crate
lam -> read the module LAM status values
hex -> interpret data as hexadecimal
dec[imal] -> interpret data as decimal
queue -> allows queueing up multiple commands to
send at the same time
verbose -> display verbose output
output -> specify output
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
variable:{variable_name} -> send output to a variable
symbol:{symbol_name} -> send output to a symbol
Examples:
crate/ids tev a1 # read module IDs
crate/devices tev a1 # read crate devices
crate/lam tev a1 # read module LAM status
Related commands:
slot, madc, camac
-------------------------------------------------------------------------------
dbset : set the database setting record for an ACNET device
dbset[/{qualifier}] {device}{[n]}[/{qualifier...}] {constant|variable|symbol}
This command sets values in the device setting database only.
The constant value is either a numeric constant in the case
of the setting property or a basic control string in the case
of the basic control property. For the setting property,
multiple scaled or raw values can be supplied. If multiple
values are entered, they should be separated by spaces or
commas. Setting values can also be supplied in a delimited text
file. This command also supports an array index notation which
allows you to specify the beginning and ending array indices
(ex. set z:acltst[1:2]=13,3.5). This command also supports family
devices and list specifiers (see above). Use of this command may
require special privileges. See Brian Hendricks (hendricks@fnal.gov)
for more information.
Examples of dbset qualifiers:
scaled (common) -> make a scaled (common) setting
raw -> make a raw setting
length=2 -> set 2 bytes of data
atomic_size -> set the atomic size for this property
maximum_size -> set the maximum size for this property
num_elements=4 -> set 4 values
num_values=4 -> set 4 values
all -> set all values for this property
all_elements -> set all values for this property
offset=0 -> set data starting at a byte offset of 0
index=2 -> set data starting at array index 2
array_index=2 -> set data starting at array index 2
(alarm_)minimum -> set the analog alarm minimum
(alarm_)maximum -> set the analog alarm maximum
min_max -> set the analog alarm minimum and maximum
analog_nominal -> set the analog alarm nominal
(alarm_)nominal -> set the digital alarm nominal
(alarm_)mask -> set the digital alarm mask
(alarm_)tries -> set the number of alarm tries
file -> read setting values from a file
(default file extension is ".dat")
family -> set an entire family
Examples of control strings:
reset -> reset device
on -> turn on device
off -> turn off device
positive -> set the device to positive polarity
negative -> set the device to negative polarity
ramp -> set the device to ramp mode
dc -> set the device to DC mode
Examples:
dbset z:acltst 5
dbset z:acltst $symbol1
dbset/raw z:acltst A9
dbset z:acltst=1,2,3,4
dbset/raw z:acltst[2] 3 4
dbset t:ha11 reset
dbset t:ha11 on
dbset/minimum m@outtmp 32 # set alarm minimum
dbset/maximum m@outtmp 100 # set alarm maximum
dbset z:acltst[1:2]=16,3.5
dbset z:acltst[]=0,16,3.5,11 # set an entire array
dbset z:acltst[2:3]=z:aclts3[1:2] # set multiple array elements
dbset z:acltst[2:3]=array[1] # set multiple array elements
dbset/family z:acltsz[1:2] = 16, 17.5 # set a family device
Synonyms: dbSet
Related commands:
set, read, enable, disable, bypass, activate, deactivate
turn, reset, toggle, alarm_limit, nominal_mask
fill, copy, decrement, increment, delta_set, device_list
-------------------------------------------------------------------------------
delete : delete cached database information or a file
delete[/{qualifier}] [{cache|device|devicelist|file}]
This command will delete cached database information and files.
If the word cache is used, all cached database information will
be deleted. If a device name is specified, only information for
that device will be deleted. If a file name is specified, that
file will be deleted.
Examples of delete qualifiers:
cache -> delete all cached database
information
device -> delete all cached database
information for a device or list
of devices
file -> delete a file
Examples:
delete cache # delete all cached database information
delete z:acltst # delete cached database info for Z:ACLTST
delete myfile.txt # delete a file
Related commands:
delete_cache
-------------------------------------------------------------------------------
downtime_log : display downtime log entries
downtime_log[/start={date}/end={date}/minimum_length={min}/text={string}] {accelerator|cdf} [/output={spec}]
This command simply reads and displays downtime log entries.
You can search the log by entry text, category/system, group,
and minimum length.
Examples of downtime_log qualifiers:
type={acc|cdf} -> choose downtime log to read from
acc -> read from accelerator downtime log (default)
cdf -> read from CDF downtime log
start={date} -> starting date
end={date} -> ending date
interval={time_spec} -> set end date to interval after the start time
text={string} -> matching text string (*)
category={string} -> matching category string (*)
system{string} -> matching category string (*)
group={string} -> matching group string (*)
minimum_length={mins} -> minimum length in minutes
highlight_length={mins} -> highlight length in minutes
order_by_length -> orders entries by length (default is by time)
order_by_group -> orders entries by group (default is by time)
count_only -> message count only
max_entries={n} -> maximum number of entries to display
max_time={n} -> return the "n" categories having
the most downtime accrued
list_categories={string}-> list matching category names
list_systems={string} -> list matching category names
list_groups={string} -> list matching group names
systems -> list all category/system names
groups -> list all group names
output={spec} -> specify output destination
(* -> indicates that the search can be inverted by adding a suffix
of "_not" to the qualifier)
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
Examples:
downtime_log/start=today
downtime_log/start=16-sep-2001/end="16-sep-2001 00:10"/output=mail:hendricks
downtime_log/start=today/count_only
downtime_log/start=today/group=%con%
downtime_log/start=today/text=%high%
downtime_log/list_groups=%con%
downtime_log/list_categories=%rf%
Synonyms: downtime, downtimeLog
Related commands:
setting_log, alarm_log, cpld_log, event_log, state_log, program_log
-------------------------------------------------------------------------------
error_text : display ACNET error text
error_text[/output={spec}] {constant|device|variable|symbol}
This command displays the verbose error text corresponding to
an ACNET error code.
Examples of error_text qualifiers:
acnet -> ACNET error (default)
system -> system error
rtl -> C Run Time Library (RTL) error
output={spec} -> specify output destination
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
Examples:
error_text 17 1
error_text/output=mail:hendricks DPM_PEND
error_text 273
error_text t:chrlst
error_text $symbol
Synonyms: errhelp, error_help, errorText
Related commands:
none
-------------------------------------------------------------------------------
event_info : display clock event information
event_info[/{qualifier}][/output={spec}] {event}
This command displays detailed information about a clock event.
Examples of event_info qualifiers:
tclk -> display TCLK event (default)
mibs -> display MIBS event
rrbs -> display RRBS event
tvbs -> display TVBS event
hins -> display HCLK (HINS) event
nml -> display NCLK (NML) event
event={value} -> specify event to return information for
clock_type={type} -> specify type of clock event from the
options above
name -> display the symbolic name of the event only
description -> display the description of the event only
time_since -> display the time since the event
last_time -> display the last time that the event occurred
suppress_errors -> suppress the error if a nonexistent
clock event is requested
name={value} -> search for events whose symbolic names match
a string
description={value} -> search for events whose descriptions match
a string
trigger_text={value} -> search for events whose trigger text match
a string
num_events={variable} -> specify a variable to return the number
of events processed
events={variable} -> specify a variable to return the array
of event values processed
values={variable} -> specify a variable to return data values
no_display -> suppress display of event information
(useful if using command to generate
an array of event values)
output={spec} -> specify output destination
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
Examples:
event_info 31
event_info/name=FLY
loop 10 event=0
event_info/suppress_errors event
endloop
Synonyms: evt_info, evtInfo, eventInfo
Related commands:
tlg_info, event_log, mdat_info, node_info, console_info, program_info,
user_info
-------------------------------------------------------------------------------
event_log : display event log entries
event_log[/start={date}/end={date}] {constant|variable|symbol}
This command reads and displays clock event history.
Examples of event_log qualifiers:
start={date} -> starting date
end={date} -> ending date
interval={time_spec} -> set end date to interval after the start time
event={event} -> clock event to search for
tclk -> display TCLK event (default)
hins -> display HINS clock event
nml -> display NML clock event
time={value} -> matching time in the supercycle value
cond={condition_value} -> used in conjunction with the time
argument to determine which log entries
are displayed
nodisplay -> don't display the values, only errors
count[_only] -> only display the number of matching
log entries
max_entries={n} -> maximum number of entries to display
last -> used in conjunction with "max_entries"
to retrieve the last n matches
num_values={variable} -> saves the number of values read in a variable
values={array variable} -> saves the values read in a variable
timestamps={date array} -> saves the timestamps read in a variable
milliseconds={array} -> saves the fractional milliseconds
read in a variable
dynamic[_arrays] -> dynamically reallocate output data variables
to match the number of values read
verbose -> generate verbose output
output={spec} -> specify output destination
The condition value strings are as follows:
all -> show all matches (default)
equal (eq) -> show entries that equal the requested
time value (default if value is requested)
not_equal (ne) -> show entries that do not equal the
requested time value
less_than (lt) -> show entries whose time value is less
than the requested time value
less_equal (le) -> show entries whose time value is less
than or equal to the requested time value
greater_than (gt) -> show entries whose time value is greater
than the requested time value
greater_equal (ge) -> show entries whose time value is greater
than or equal to the requested time value
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
Examples:
event_log/start=today 02
event_log/start=16-sep-2003/end="16-sep-2003 00:10"/output=mail:hendricks 02
event_log/start=today/time=10/cond=lt 02
event_log/start=today/max_count=10/output=mail:hendricks 02
Synonyms: eventLog
Related commands:
event_info, state_log, setting_log, alarm_log, downtime_log, cpld_log,
program_log
-------------------------------------------------------------------------------
fft : perform an FFT on a set of points
fft/{type}/npts={num_points}/y={variable}/real={variable}[/{qualifier}={value}...}]
This command performs an FFT on a set of points. The input values
must be supplied in an array of the same length as the output values.
Examples of fft qualifiers:
npts={value} -> specify the number of points
(required)
x={variable|symbol} -> array of X input values (optional)
y={variable|symbol} -> array of Y input values (required)
real={variable|symbol} -> array of output real values
(required)
imag={variable|symbol} -> array of output imaginary values
(optional)
amp={variable|symbol} -> array of output amplitude values
(optional)
num_values={variable|symbol} -> returned number of values (optional)
normalized -> return normalized discrete Fourier
transform
inverse -> return the inverse discrete Fourier
transform
xcut_min={value} -> X cut minimum value
xcut_max={value} -> X cut maximum value
ycut_min={value} -> Y cut minimum value
ycut_max={value} -> Y cut maximum value
verbose -> display calculated values
output={spec} -> specify output destination
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
Examples:
declare y float[8] = 4.8828,10.834,17.853,410.77,639.95,1539.8,1841.9
declare real float[8]
fft/npts=8/y=y/real=real/verbose
Related commands:
declare, fit, stats
-------------------------------------------------------------------------------
file_info : display flat file information
file_info[/{qualifier}] {file name string}
This command displays information about a flat file or
a list of files including programs that access them. This
request can also be qualified by a time window to only return
matching files last opened in that period of time.
Examples of file_info qualifiers:
obsolete -> display information for obsolete files
exact -> make an exact match to the file name provided
usage -> show program usage information
start={date} -> starting date (default is January 1, 1972)
end={date} -> ending date (default is now)
output={spec} -> specify output destination
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
Examples:
file_info '/usr/local/cbs_files/sequencer/acl/demo.acl'
file_info/usage '/usr/local/cbs_files/sequencer/acl/demo.acl'
Synonyms: fileInfo
Related commands:
fshare_info
-------------------------------------------------------------------------------
find_program : find running instances of a program
find_program[/{qualifier}][/output={spec}] {program}
This command simply displays where instances of an application
program are presently running. This command sets the global symbol,
$_value, to the count of running instances found.
Examples of find_program qualifiers:
console={number} -> only display information for one console
slot={slot} -> only display information for one slot
count={variable} -> returned instance count
consoles={variable} -> returned console numbers
slots={variable} -> returned console slots
nodisplay -> don't display the results, only errors
verbose -> display verbose output
output={spec} -> specify output destination
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
Examples:
find_program pa0052
find_program/console=134 pa0052
find_program t39
find_program sa1002
Synonyms: find_process, find_pgm, findProgram
Related commands:
program_info, console_info, cpld_log, program_status, program_log
-------------------------------------------------------------------------------
fit : perform a polynomial, exponential, or Gaussian fit on a
set of points
fit/{type}/npts={num_points}/x={variable}/y={variable}[/{qualifier}={value}...}]
This command performs various types of mathematical fits to a
set of points. The X and Y values must be supplied in separate
arrays of the same length. Polynomial fits are presently
limited to sixth order.
Examples of fit types:
poly[nomial] -> up to sixth order polynomial fit
exp[onential] -> exponential fit
gaussian -> Gaussian fit
Examples of qualifiers:
npts={value} -> specify the number of points (required)
x={variable|symbol} -> array of X values to fit (required)
y={variable|symbol} -> array of Y values to fit (required)
order={value} -> order of fit (polynomial fit only)
coefficients={variable} -> returned coefficients
(polynomial and exponential fits)
mean={variable} -> returned mean value (Gaussian fit only)
sigma={variable} -> returned sigma value (Gaussian fit only)
amp={variable} -> returned amplitude value (Gaussian fit only)
chi_square={variable} -> returned chi square value
verbose -> display calculated values
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
Examples:
declare x float[7] = 6.6978,8.8872,11.896,29.997,49.992,120,150
declare y float[7] = 4.8828,10.834,17.853,410.77,639.95,1539.8,1841.9
declare coeff float[4]
fit/poly/npts=7/x=x/y=y/order=3/coefficients=coeff/verbose
declare x float[7] = 6.6978,8.8872,11.896,29.997,49.992,120,150
declare y float[7] = 4.8828,10.834,17.853,410.77,639.95,1539.8,1841.9
declare coeff float[2]
fit/exp/npts=7/x=x/y=y/coefficients=coeff/verbose
declare x float[7] = 6.6978,8.8872,11.896,29.997,49.992,120,150
declare y float[7] = 4.8828,10.834,17.853,410.77,639.95,1539.8,1841.9
declare mean
declare sigma
declare amplitude
declare chi_square
fit/gaussian/npts=7/x=x/y=y/mean=mean/sigma=sigma/chisquare=chi_square\
/amp=amplitude/verbose
Related commands:
declare, fft, stats
-------------------------------------------------------------------------------
fshare_info : display Filesharing file information
fshare_info[/{qualifier}] {file name string}
This command displays information about a Filesharing file or
a list of files including programs that access them. This
request can also be qualified by a time window to only return
matching files last opened in that period of time.
Examples of fshare_info qualifiers:
obsolete -> display information for obsolete files
exact -> make an exact match to the file name provided
usage -> show program usage information
start={date} -> starting date (default is January 1, 1972)
end={date} -> ending date (default is now)
output={spec} -> specify output destination
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
Examples:
fshare_info controls_graphics:xxxxxxxx.dat
fshare_info/usage controls_graphics:xxxxxxxx.dat
Synonyms: fshareInfo
Related commands:
file_info
-------------------------------------------------------------------------------
ftp : copy a file or files using file transfer protocol (FTP)
ftp[/{qualifier}][/{qualifier}={value}] {host} [{command_file}]
This command copies files using file transfer protocol (FTP).
You can specify the operation with a complete command file
or you can specify source and destination files. With the
latter option, you can embed ACNET device values in the
destination file name by enclosing the device name in curly
braces (eg. file_{t:store}.dat).
Examples of ftp qualifiers:
binary -> perform a binary file transfer
ascii -> perform an ASCII file transfer
passive -> enable passive mode
get -> get a file
put -> put a file
host={host name} -> specify FTP host
command={file} -> specify file containing FTP commands
source_file={file} -> source file (file to be copied)
source_dir={directory} -> source file directory
(directory to be copied from)
dest_file={file} -> destination file
dest_dir={directory} -> destination file directory
user={user name} -> specify the user name for the
transfer (default is anonymous)
password={password} -> specify the password for the
transfer
no_send -> inhibit the actual transfer
verbose -> display transfer log file
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
Examples:
ftp vsamcr ftp_commands.dat # use FTP command file
ftp/get/binary/source_dir=data\
/dest_dir="/usr/local/cbs_files/cns_write/tevatron/vsamcr"\
/source_file="wtrace3.dat"/dest_file="{t:store}_ramp.dat"/verbose vsamcr
Related commands:
none
-------------------------------------------------------------------------------
ftp_read : read ACNET device using the fast time plot protocol
ftp_read[/rate={rate}][/event={event}][/delay={secs}][/duration={secs}] {device}{[n]}
This command reads and displays device readings acquired using
the fast time plot protocol. Data return frequencises of up to
1440 Hz can be requested. This command supports family devices
and list specifiers (see above).
Examples of ftp_read qualifiers:
rate={rate} -> data acquisition rate in Hz
event={event} -> event to trigger the beginning of acquisition
(If this is missing, acquisition will begin
immediately.)
delay={secs} -> delay from event (or immediate) in seconds
before beginning data acquisition
duration={secs} -> duration of data acquisition in seconds
device={device_name} -> device to display
src={data source spec} -> select the data source for the plot data
(only accelerator and SDA are supported)
(sda:{file number}:{case}[:{subcase}:{usage}])
{scaling type} -> desired scaling type for the returned values
(raw, primary, scaled)
status_type={type} -> desired status type for status properties
(raw, status_text, bit_number, on_off,
ready_tripped, remote_local,
positive_negative, ramp_dc, bit_mask,
masked_value)
bit_number={value} -> bit number to test for status values
(starts at 1)
bit_mask={value} -> mask to apply to raw data to check for
a match
masked_value={value} -> mask to apply to raw data
value={value} -> matching value for condition handling
cond={condition_value} -> used in conjunction with the value
argument to determine which values
are displayed
count[_only] -> only display the number of values read
max_entries={n} -> maximum number of values to display
first -> used in conjunction with "max_entries"
to retrieve the first n matches (default)
last -> used in conjunction with "max_entries"
to retrieve the last n matches
family -> display values for an entire family
num_values={variable} -> saves the number of values read in a variable
values={array} -> saves the values read in a variable
timestamps={date_array} -> saves the timestamps read in a variable
sum={variable} -> saves the sum of all values read in
a variable
minimum={variable} -> saves the minimum of all values read in
a variable
maximum={variable} -> saves the maximum of all values read in
a variable
dynamic[_arrays] -> dynamically reallocate output data variables
to match the number of values read
usecs -> return timestamps in units of 100 usecs
diag -> turns on verbose diagnostics to try
to trouble shoot problems
no_display -> don't display (output) the returned values
verbose -> generate verbose output
output={spec} -> specify output destination
The condition value strings are as follows:
all -> show all matches (default)
equal (eq) -> show entries that equal the requested
value (default if value is requested)
not_equal (ne) -> show entries that do not equal the
requested value
less_than (lt) -> show entries whose value is less
than the requested value
less_equal (le) -> show entries whose value is less
than or equal to the requested value
greater_than (gt) -> show entries whose value is greater
than the requested value
greater_equal (ge) -> show entries whose value is greater
than or equal to the requested value
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
Examples:
ftp_read m:outtmp
ftp_read/event=2/delay=1/duration=1 m:outtmp
ftp_read/event=2/value=60/cond=lt m:outtmp
ftp_read/event=2/max_count=10/output=mail:hendricks m:outtmp
ftp_read t:lma11/src=sda:6262:Acceleration:0 # read from SDA
Synonyms: ftpRead, ftpplt, fstplt
Related commands:
snap_read, logger_get, saverestore_get, sda_get
-------------------------------------------------------------------------------
host_request : pass a request to the host program
host_request [/qualifier] {request string}
This command allows the writer of a script to pass a request
expressed as a text string to the program which is executing
the ACL script. This can include things like configuring the
appearance of the ACL output. The text of the request is
dependent on the syntax supported by the host program.
Examples of host_request qualifiers:
allow_messages -> enables the display of messages
concerning the success or failure
of the request (default is to suppress
messages)
allow_errors -> causes the script to exit if the
request fails (default is to continue)
once -> only affect the next operation
Parameter page (and parameter window and ACL IDE) supported requests:
window_height={size} -> set the height of the ACL output window
(default, large, or number of rows)
window_width={size} -> set the width of the ACL output window
(default, large, or number of rows)
suppress_scrollbar -> disable the scrollbar and scroll status
display for the ACL output window
text_color={color} -> set the ACL output text color
text_align={alignment} -> set the ACL output text alignment
(default, center, or right)
scroll_text={yes|no} -> enable or disable scrolling of ACL output
clear screen -> erases the ACL output window
text_row={row} -> sets the output text row for nonscrolling
output
text_column={column} -> sets the output text column for nonscrolling
output
clear_text_field={len} -> erases a field in the ACL output window
text_row_increment={inc} -> sets the output text row automatic increment
for nonscrolling output
text_column_increment={} -> sets the output text column automatic
increment for nonscrolling output
suppress_completion_message -> disable the script completion message
Sequencer supported requests:
text_color={color} -> set the ACL output text color
text_align={alignment} -> set the ACL output text alignment
(default, center, or right)
scroll_text={yes|no} -> enable or disable scrolling of ACL output
clear screen -> erases the ACL output window
text_row={row} -> sets the output text row for nonscrolling
output
text_column={column} -> sets the output text column for nonscrolling
output
clear_text_field={len} -> erases a field in the ACL output window
text_row_increment={inc} -> sets the output text row automatic increment
for nonscrolling output
text_column_increment={} -> sets the output text column automatic
increment for nonscrolling output
Examples:
host_request WINDOW_HEIGHT=LARGE # enable large output windows on the
# parameter page
Synonyms: hostRequest
Related commands:
none
-------------------------------------------------------------------------------
list_strings : displays control system lists of strings
list_strings[/qualifier[={value}]] [{path}] [{search_string}] [{output_strings}]
This command will list various sets of control system specific
strings. These strings can be listed to standard output or can
be copied to a variable. Search strings can also be specified
to return only a matching subset of a set of strings.
This command sets the $_value symbol to the number of strings
matching the request.
Examples of list_strings qualifiers:
acl_db_scripts -> list all of the ACL scripts in the database
repository
alarm_lists -> list standard alarm lists
user_alarm_lists -> list user defined alarm lists (*)(+)
save_lists -> list standard save lists
user_save_lists -> list user defined save lists (*)
device_types -> list device types
long_device_types -> list device types (long text)
device_classes -> list device classes
long_device_classes -> list device classes (long text)
primary_transforms -> list primary scaling transforms
common_transforms -> list common scaling transforms
interpolation_tables -> list interpolation tables used for
device scaling
convert_types -> list CLIB output conversion types
input_types -> list CLIB input conversion types
save_codes -> list save/restore save codes
display_codes -> list save/restore display codes
display_subcodes -> list save/restore display subcodes
ftp_classes -> list fast time plot classes
snapshot_classes -> list snapshot plot classes
tclk_events -> list TCLK events
long_tclk_events -> list TCLK events (long text)
mibs_events -> list MIBS events
long_mibs_events -> list MIBS events (long text)
tvbs_events -> list TVBS events
long_tvbs_events -> list TVBS events (long text)
rrbs_events -> list RRBS events
long_rrbs_events -> list RRBS events (long text)
mdat_frames -> list MDAT frames
long_mdat_frames -> list MDAT frames (long text)
acnet_errors -> list ACNET errors
long_acnet_errors -> list ACNET errors (long text)
error_categories -> list ACNET error categories
vms_errors -> list VMS-style errors
long_vms_errors -> list VMS-style errors (long text)
filesharing_files -> list Filesharing files accessed by programs
flat_files -> list flat files accessed by programs
machines -> list machine names
long_machines -> list machine names (long text)
device_names -> list ACNET device names
device_text -> list ACNET device descriptive text
families -> list family devices
sda_usages -> list SDA usages
sda_cases -> list SDA case names (*)
properties -> list property names
long_properties -> list property names (long text)
colors -> list color names
long_colors -> list color names (long text)
graphic_colors -> list graphic window color names
long_graphic_colors -> list graphic window color names (long text)
state_devices -> list ACNET state devices
state_values -> list state value names (*)
nodes -> list ACNET nodes
operational_nodes -> list operational ACNE nodes
mooc_nodes -> list MOOC nodes
irm_nodes -> list IRM nodes
lcs_nodes -> list LCS nodes
java_nodes -> list Java-based nodes
console_nodes -> list ACNET console nodes
central_nodes -> list central server nodes
pseudo_nodes -> list pseudo nodes
front_end_nodes -> list front end nodes
camac_nodes -> list CAMAC front end nodes
gpib_nodes -> list GPIB nodes
bpm_nodes -> list BPM nodes
blm_nodes -> list BLM nodes
qpm_nodes -> list QPM nodes
frig_nodes -> list frig (cryo) nodes
motion_control_nodes -> list motion controller nodes
swic_nodes -> list SWIC nodes
vacuum_nodes -> list vacuum nodes
dae_nodes -> list DAE nodes
tecar_nodes -> list TECAR nodes
mecar_nodes -> list MECAR nodes
llrf_nodes -> list LLRF nodes
hlrf_nodes -> list HLRF nodes
instr[umentation]_nodes -> list instrumentation
clock_nodes -> list clock nodes
tlg_nodes -> list TLG nodes
qxr_nodes -> list QXR nodes
ecool_nodes -> list electron cooling nodes
damper_nodes -> list damper nodes
flying_wire_nodes -> list flying wire nodes
util[ity]_nodes -> list utility nodes
d0_nodes -> list D0 nodes
exp_nodes -> list experimental control nodes
linac_nodes -> list Linac nodes
netutil_nodes -> list network utility nodes
twt_nodes -> list TWT nodes
elens_nodes -> list electron lens nodes
fbi_nodes -> list FBI nodes
sbd_nodes -> list SBD nodes
mdat_nodes -> list MDAT nodes
photoinj_nodes -> list photo injector nodes
muoncool_nodes -> list muon cooling nodes
coll[imator]_nodes -> list collimator nodes
alarm_handlers -> list alarm handler codes
long_alarm_handlers -> list alarm handler codes (long text)
sr_systems -> list save/restore systems
long_sr_systems -> list save/restore systems (long text)
raw_data_types -> list device field raw data types
device_data_types -> list device property data types
alarm_data_types -> list MOOC alarm raw data types
lex_sas -> list Lex SA names
long_lex_sas -> list Lex SA names (long text)
lex_draw_files -> list Lex Draw files
long_lex_draw_files -> list Lex Draw files (long text)
lex_objects -> list Lex Objects
console_classes -> list console classes
lj_nodes -> list Lumberjack nodes
shared_logs -> list shared program log files
windows -> list console windows
tv_windows -> list console TV windows
graphic_windows -> list console graphic windows
pa_graphic_windows -> list console PA graphic windows
[console_]slots -> list console slots
pa_slots -> list console PA slots
sa_slots -> list console SA slots
data_sources -> list device reading data sources
node_systems -> list node system types
node_hardware -> list node hardware types
node_software -> list node software types
node_status -> list node status types
node_areas -> list node area types
node_opsys -> list node operating system types
sr_files -> list save/restore file titles (*)
sda_files -> list SDA file titles (*)
comparators -> list standard comparators
wire_chamber_status -> list wire chamber status values
users -> list console users
long_users -> list console users (long text)
wg_list -> list waveform generator device list titles
control_systems -> list control system types
epics_data_types -> list EPICS data types
apacs_data_types -> list APACS data types
labview_data_types -> list LabView data types
opc_data_types -> list OPC data types
lex_prog_object_types -> list Lex Prog (Lex SA) object types
lex_draw_object_types -> list Lex Draw object types
lex_object_object_types -> list Lex Object object types
device_bit_names -> list bit names for a device
device_enum_values -> list enumerated values for a device/property
long_device_enum_values -> list enumerated values for a device/property
(long strings)
device_control_values -> list control values for a device
long_control_values -> list control values for a device
(long strings)
no_numbers -> suppress numbering of lists
no_wildcard -> suppress wildcarding of searches
path={string} -> establish string path
search={string} -> establish search string
num_strings={variable} -> saves the number of strings in a variable
strings={array} -> saves the matching strings in a variable
alternate -> use alternate source for strings
dynamic[_arrays] -> dynamically reallocate output data string
to match the number of matching strings
max_entries={n} -> maximum number of entries to display
order={order} -> specify the way the strings are ordered
long_text -> specify the longer text option (if available)
no_display -> don't display (output) the returned strings
verbose -> display verbose output
output -> specify output
(* -> indicates that the requested type makes use of a path string
to specify which strings will be listed,
+ -> indicates that the requested type supports an alternate
source for the string information)
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
variable:{variable_name} -> send output to a variable
symbol:{symbol_name} -> send output to a symbol
Examples:
list_strings/user_alarm_lists booster # list all Booster user alarm lists
list_strings/devices/no_numbers m:out% # list all matching device names
list_strings/console_class/no_numbers
Synonyms: listStrings
Related commands:
none
-------------------------------------------------------------------------------
logger_get : read datalogger values
logger_get[/start={date}/end={date}][/node={node}] {device}{[n]}{/qualifier...}
This command reads and displays datalogger device values.
This command supports family devices and list specifiers
(see above).
Examples of logger_get qualifiers:
start={date} -> starting date
end={date} -> ending date
interval={time_spec} -> set end date to interval after the start time
min_delta={seconds} -> minimum time between points in seconds
num_skip={number} -> number of points to skip before returning
one
skip_duplicates -> skip duplicate values
data_event={event} -> specify collection data event (FTD) of data
to be read (standard data event format)
node={logger_node} -> logger node to retrieve values from
(default is to choose the node with the
fastest logging rate)
device={device_name} -> device to display
value={value} -> matching datalogged value
cond={condition_value} -> used in conjunction with the value
argument to determine which log entries
are displayed
double -> return double precision values and
subsecond timestamps
text -> display basic status and state text
no_text -> don't display basic status or state text
units -> display units text
ignore_db_format -> don't use the device database value
formatting information
node -> display values as ACNET node values
error -> display values as ACNET error values
device -> display values as ACNET device name values
clinks -> display values as dates in clinks
date -> display values as dates in local time
gmt -> display values as dates in GMT/UTC
nodisplay -> don't display the values, only errors
count[_only] -> only display the number of matching
log entries
max_entries={n} -> maximum number of entries to display
first -> used in conjunction with "max_entries"
to retrieve the first n matches (default)
last -> used in conjunction with "max_entries"
to retrieve the last n matches
family -> display values for an entire family
num_values={variable} -> saves the number of values read in a variable
values={array variable} -> saves the values read in a variable
timestamps={date array} -> saves the timestamps read in a variable
milliseconds={array} -> saves the fractional milliseconds
read in a variable
sum={variable} -> saves the sum of all values read in
a variable
minimum={variable} -> saves the minimum of all values read in
a variable
maximum={variable} -> saves the maximum of all values read in
a variable
dynamic[_arrays] -> dynamically reallocate output data variables
to match the number of values read
node_used={variable} -> saves the Lumberjack node read from in a
variable
bit_number={bit number} -> process status data to return a value of
1 if the requested bit number is set and
a value of 0 otherwise
bit_mask={value} -> mask to apply to raw data to check for
a match
masked_value={value} -> mask to apply to raw data
on_off -> process status data to return a value of
1 if the original value indicates a status
of on and a value of 0 otherwise
ready_tripped -> process status data to return a value of
1 if the original value indicates a status
of ready and a value of 0 otherwise
remote_local -> process status data to return a value of
1 if the original value indicates a status
of remote and a value of 0 otherwise
polarity -> process status data to return a value of
1 if the original value indicates a status
of positive and a value of 0 otherwise
ramp_dc -> process status data to return a value of
1 if the original value indicates a status
of ramp and a value of 0 otherwise
ascending -> return data in ascending time order (default)
descending -> return data in descending time order
sda_case={case} -> specifies the case for SDA data
sda_set={set} -> specifies the set for SDA data
final_sda_data -> only display final SDA data
verbose -> generate verbose output
output={spec} -> specify output destination
The condition value strings are as follows:
all -> show all matches (default)
equal (eq) -> show entries that equal the requested
value (default if value is requested)
not_equal (ne) -> show entries that do not equal the
requested value
less_than (lt) -> show entries whose value is less
than the requested value
less_equal (le) -> show entries whose value is less
than or equal to the requested value
greater_than (gt) -> show entries whose value is greater
than the requested value
greater_equal (ge) -> show entries whose value is greater
than or equal to the requested value
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
Examples:
logger_get/start=today m:outtmp
logger_get/start=16-sep-2003/end="16-sep-2003 00:10"/output=mail:hendricks m:outtmp
logger_get/start=today/count_only/node=mech m:outtmp
logger_get/start=today/value=60/cond=lt m:outtmp
logger_get/start=today/error t:chrlst
logger_get/start=today/max_count=10/output=mail:hendricks m:outtmp
logger_get/start=today/node=TevSA/data_event='p,66,true'\
/output=mail:hendricks t:hppa34
Synonyms: loggerGet
Related commands:
log_device, saverestore_get, sda_get, event_log, state_log,
setting_log, alarm_log, ftp_read, snap_read, device_list
-------------------------------------------------------------------------------
log_device : log an ACNET device value
log_device[/node={node}] {device}{[n]}{/qualifier...} [{constant|variable|symbol}]
This command logs a value for a device for later retrieval.
This command also supports family devices and list specifiers
(see above). Use of this command may require special privileges.
See Brian Hendricks (hendricks@fnal.gov) for more information.
Examples of log_device qualifiers:
node={node} -> choose which datalogger node receives
the value
timestamp={time} -> set the timestamp that the data will be
logged at (default is now)
milliseconds={msec} -> fraction of a second in milliseconds to
be added to the timestamp (default is 0)
status={status} -> ACNET error status to be attached to the
logged data (default is OK)
family -> log values for an entire family
verbose -> generate verbose output
Examples:
log_device z:acltst 2
log_device z:acltst $symbol1
log_device/node=dse01 z:acltst
log_device/node=stats z:acltst
log_device/node=qary1 z:acltst=1,2,3,4 # log array values
Synonyms: logDevice
Related commands:
logger_get
-------------------------------------------------------------------------------
madc : access MADC information
madc[/{qualifier}] {node} {MADC number} [{retries}]
This command will access information about individual
MADCs. Use of this command may require special
privileges. See Brian Hendricks (hendricks@fnal.gov)
for more information.
Examples of madc qualifiers:
node={node} -> specify node
madc={MADC number} -> specify MADC number
retries={retries_value} -> specify CAMAC no-Q retries value
format={decimal|hex} -> specify data format (hex or decimal)
id -> read the CAMAC module ID number
devices[={string}] -> read the devices in the MADC
lam -> read the module LAM status value
reset -> reset the module
hex -> interpret data as hexadecimal
dec[imal] -> interpret data as decimal
queue -> allows queueing up multiple commands to
send at the same time
verbose -> display verbose output
output -> specify output
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
variable:{variable_name} -> send output to a variable
symbol:{symbol_name} -> send output to a symbol
Examples:
madc/id tev 1 # read module ID
madc/devices tev 1 # read MADC devices
madc/lam tev 1 # read module LAM status
Related commands:
crate, slot, camac
-------------------------------------------------------------------------------
mdat_info : display MDAT frame information
mdat_info[/{qualifier}][/output={spec}] {mdat_frame}
This command displays detailed information about an MDAT frame.
Examples of mdat_info qualifiers:
name -> display the symbolic name of the MDAT frame
description -> display the description of the MDAT frame
suppress_errors -> suppress the error if a nonexistent
MDAT frame is requested
name={value} -> search for MDAT frames whose symbolic names
match a string
description={value} -> search for MDAT frames whose descriptions
match a string
num_frames={variable} -> specify a variable to return the number
of MDAT frames processed
frames={variable} -> specify a variable to return the array
of MDAT frame values processed
values={variable} -> specify a variable to return data values
no_display -> suppress display of MDAT frame information
(useful if using command to generate
an array of MDAT frame values)
output={spec} -> specify output destination
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
Examples:
mdat_info 10
mdat_info/name=PGM
loop 10 mdat=0
mdat_info/suppress_errors mdat
endloop
Synonyms: mdatInfo
Related commands:
event_info, tlg_info, node_info, console_info, program_info, user_info
-------------------------------------------------------------------------------
measurement_spec : read or set a measurement specification
measurement_spec[/{qualifier}] {system} [=] [{fly spec}]
This command supports reading or setting of measurement
specifications. The access is made to a named group.
Use of this command may require special privileges. See
Brian Hendricks (hendricks@fnal.gov) for more information.
Examples of measurement_spec qualifiers:
read -> read measurement spec
(default if no value is specified)
set -> set measurement spec
(default if a value is specified)
system={name} -> system to access (tev_wires, mi_wires,
pbar_wires, rr_wires, mi_blt, mi_ipms,
mi_ipm_h1, mi_ipm_h2, mi_ipm_v1)
data_source={source} -> specify the source for accessing data
value={variable} -> returns the current measurement spec value
dynamic[_arrays] -> dynamically reallocate output value variable
to match the number of values read
no_set -> suppress actual setting of devices
verbose -> display verbose output
nodisplay -> don't display the reading, only errors
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
Examples:
measurement_spec tev_wires # read spec for Tev flying wires
measurement_spec tev_wires = 3 # set spec for Tev flying wires
Synonyms: measurementSpec
Related commands:
read, set, data_source
-------------------------------------------------------------------------------
node : perform operations on an ACNET node
node/{operation}[/output={spec}] {node}
This command performs various operations on an ACNET node
including pinging it, retrieving its up time, downloading it,
and getting its list of ACNET tasks. It can also be used to
operate on a list of nodes matching various specified
characteristics.
node operation types:
ping -> ping the node (sets the global symbol
$_value to 1 if successful, 0 otherwise)
is_up -> displays whether or not the node is up
uptime -> displays node up time (sets the global symbol
$_value to 1 if successful, 0 otherwise)
[guaranteed_]read -> reads the guaranteed readable device
to see if the node is functioning properly
tasks -> display the connected ACNET tasks
task={name} -> task name to search for
download -> issue a node download request
manual_download -> issue a manual node download request
acnet_version -> display the ACNET versions for a node
mooc_version -> display the MOOC version for a MOOC node
os_version -> display the operating system version
for a MOOC node
vucd_version -> display the VUCD version for a MOOC node
ssm_version -> display the SSM version for a MOOC node
vw_support_version -> display the VW support version for a
MOOC node
versions -> display the ACNET and MOOC versions for a node
system_info -> display system information for MOOC nodes
time -> display the current system time for a node
set_time -> set the current system time for a node
boot_time -> display the boot time for a node
time_error -> node's absolute time error in milliseconds
clear_alarm -> clear a node down alarm
big_clear -> send an alarms big clear to a node
boot_log -> display boot log entries for the node
[show_]node_ip={node} -> display the IP address that a node has
for another node
[show_]trunk_ips={trunk}-> display the IP addresses that a node has
for an ACNET trunk
set_trunk_ips={trunk} -> resend the IP addresses for an ACNET trunk
crate_status -> display CAMAC crate status
(CAMAC nodes only)
btr_test -> perform a CAMAC block transfer test and
display the results (CAMAC nodes only)
long_btr_test -> perform a long CAMAC block transfer test and
display the results (CAMAC nodes only)
acnet_stats -> node ACNET statistics
task_stats -> task ACNET statistics
last_cnaf -> displays last CNAF information
(CAMAC nodes only)
noop -> no action requested (useful if using
command to generate an array of node values)
Examples of node qualifiers:
name={node name} -> search for nodes matching a given name
keeper={user name} -> search for nodes belonging to a keeper
backup={user name} -> search for nodes having a backup keeper
descr={description} -> search for nodes having a particular
string in their description
loc={location} -> search for nodes having a particular
string in their location
system={system type} -> search for nodes with a particular
system type
hardware={hardware type} -> search for nodes with a particular
hardware type
software={software type} -> search for nodes with a particular
software type
status={status type} -> search for nodes with a particular
node status type
status_not={status type} -> search for nodes not having a particular
node status type
area={area type} -> search for nodes with a particular
area type
opsys={OS type} -> search for nodes with a particular
operating system type
alarm_list={list} -> search for all nodes on a given alarm list
download_list={list} -> search for all nodes in a given
download group
trunk={trunk} -> search for all nodes on a given trunk
gets32 -> search for all nodes supporting
GETS32/SETS32
no_gets32 -> search for all nodes not supporting
GETS32/SETS32
ftp -> search for all nodes supporting
fast time plot protocol (FTP)
no_ftp -> search for all nodes not supporting
fast time plot protocol (FTP)
tclk -> search for all nodes supporting
returning data on event (TCLK)
no_tclk -> search for all nodes not supporting
returning data on event (TCLK)
alarmer -> search for all nodes supporting alarms
no_alarmer -> search for all nodes not supporting alarms
oacs -> search for all OAC nodes
no_oacs -> search for nonOAC nodes
acnet_search_{type}=value-> search for nodes running a given
version of ACNET
mooc_search_{type}=value -> search for nodes running a given
version of MOOC
vucd_search_{type}=value -> search for MOOC nodes running a given
version of VUCD
acnet_{type}=value -> filter search results showing only nodes
running a given version of ACNET
mooc_{type}=value -> filter search results showing only nodes
running a given version of MOOC
exact -> display exact matches only in searches
num_nodes={variable} -> specify a variable to return the number
of nodes processed
nodes={variable} -> specify a variable to return the array
of node values processed
data_values={variable} -> specify a variable to return data values
output={spec} -> specify output destination
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
Examples:
node/ping tev
node/uptime tev
node/tasks tev
node/keeper=hendricks/ping
Related commands:
node_info, download, reboot, list_strings
-------------------------------------------------------------------------------
node_info : display ACNET node information
node_info[/{qualifier}][/output={spec}] {node}
This command simply displays node information including
a short description, the keeper, node type, special devices,
and node characteristics. It can also be used to search the
ACNET node database to find nodes matching various specified
characteristics.
Examples of node_info qualifiers:
categories -> display the node characteristic categories
devices -> display the special devices for this node
versions -> display software version information
boot_log -> display boot log entries for the node
crates -> display the list of CAMAC crates
(CAMAC nodes only)
madcs -> display the list of CAMAC MADCs
(CAMAC nodes only)
gas_houses -> display the list of GAS houses
(CAMAC nodes only)
description -> displays the node's description
location -> displays the node's location
keeper -> displays the node's keeper's name
keeper_email -> displays the node's keeper's email
backup_keeper -> displays the node's backup keeper's name
backup_keeper_email -> displays the node's backup keeper's email
status -> displays the node's status type
system -> displays the node's system type
hardware -> displays the node's hardware type
software -> displays the node's software type
opsys -> displays the node's operating system type
area -> displays the node's area
is_up -> displays whether or not the node is up
is_front_end -> displays whether or not the node is a
front end
is_oac -> displays whether or not the node is an OAC
is_console -> displays whether or not the node is a
console
is_central -> displays whether or not the node is a
central
supports_alarms -> displays whether or not the node supports
alarms
supports_ftp -> displays whether or not the node supports
the fast time plot protocol (FTP)
supports_tclk -> displays whether or not the node supports
returning device readings on clock event
supports_gets32 -> displays whether or not the node supports
the GETS32/SETS32 protocol
read_device -> displays the guaranteed readable device
set_device -> displays the guaranteed settable device
tod_device -> displays the node's time of day device
uptime_device -> displays the node's uptime device
download_device -> displays the download request device
reboot_device -> displays the node's reboot device
version_device -> displays the node's version device
url -> display the description URL
ip_name -> display the node's IP name
name={node name} -> search for nodes matching a given name
keeper={user name} -> search for nodes belonging to a keeper
backup={user name} -> search for nodes having a backup keeper
descr={description} -> search for nodes having a particular
string in their description
loc={location} -> search for nodes having a particular
string in their location
system={system type} -> search for nodes with a particular
system type
hardware={hardware type} -> search for nodes with a particular
hardware type
software={software type} -> search for nodes with a particular
software type
status={status type} -> search for nodes with a particular
node status type
status_not={status type} -> search for nodes not having a particular
node status type
area={area type} -> search for nodes with a particular
area type
opsys={OS type} -> search for nodes with a particular
operating system type
alarm_list={list} -> search for all nodes on a given alarm list
download_list={list} -> search for all nodes in a given
download group
trunk={trunk} -> search for all nodes on a given trunk
gets32 -> search for all nodes supporting
GETS32/SETS32
no_gets32 -> search for all nodes not supporting
GETS32/SETS32
ftp -> search for all nodes supporting
fast time plot protocol (FTP)
no_ftp -> search for all nodes not supporting
fast time plot protocol (FTP)
tclk -> search for all nodes supporting
returning data on event (TCLK)
no_tclk -> search for all nodes not supporting
returning data on event (TCLK)
alarmer -> search for all nodes supporting alarms
no_alarmer -> search for all nodes not supporting alarms
oacs -> search for all OAC nodes
no_oacs -> search for nonOAC nodes
acnet_{cond}={version} -> search for nodes with a certain range
of ACNET versions
mooc_{cond}={version} -> search for nodes with a certain range
of MOOC versions
vucd_{cond}={version} -> search for nodes with a certain range
of VUCD versions
no_test -> exclude test and out of service nodes
from node searches
exact -> display exact matches only in searches
down -> only displays nodes that are down
no_up_status -> suppress up/down status in search results
num_nodes={variable} -> specify a variable to return the number
of nodes processed
nodes={variable} -> specify a variable to return the array
of node values processed
data_values={variable} -> specify a variable to return data values
no_display -> suppress display of node information
(useful if using command to generate
an array of node values)
output={spec} -> specify output destination
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
Examples:
node_info tev
node_info/keeper=hendricks
node_info/software=mooc
node_info/mooc_lt=3.1 # display nodes with MOOC version < 3.1
node_info/acnet_gt=1.19 # display nodes with ACNET version > 1.19
Synonyms: nodeInfo
Related commands:
node, console_info, switch_info, user_info, program_info, event_info,
mdat_info, download, reboot, list_strings
-------------------------------------------------------------------------------
path : set the default file path
path[/{qualifier}] {path}
A path statement specifies the file path for future commands.
Commands affected include: output, set, set_field, run,
and many others. This command can be qualified to only affect
input, output, or executable files. By default, it affects all
three types of files. If a file specification includes a path,
the default path will not be used.
Examples of path qualifiers:
input -> set the path for input files only
output -> set the path for output files only
exec -> set the path for executable files only
Examples:
path '/usr/local/cbs_files/sequencer/acl'
path/input '/usr/local/cbs_files/sequencer/acl'
path/output '/my_disk/my_dir'
Related commands:
output, set, set_field, run
-------------------------------------------------------------------------------
program_info : display program information
program_info[/{qualifier}][/output={spec}] {program}
This command simply displays program information including
a short description, the author and keeper, and the last
modified date and programmer. For Primary Applications (PAs),
it also displays the index pages to which the program is
mapped, and for Secondary Applications (SAs) it displays the
list of applications which has started it. You can specify
the program using the PA name, index page, SA name, or central
service name. There is also minimal support for user libraries.
This command can also list all Primary Applications and
Secondary Applications belonging to a particular keeper.
Examples of program_info qualifiers:
abstract -> display the program extract
history -> display the program history
help -> display the top level help for the program
stats -> display program statistics
author -> display the program author
keeper -> display the program keeper
backup -> display the program backup keeper
description -> display the program description
title -> display index page title
help_url -> display the program's help URL
mapping -> display index page mapping
[console_]access -> display console access to a program by class
affiliations -> display all departments affiliated with
this program
subscribers -> display all users subscribed to be
notified when this program is modified
sa_usage -> display all SAs called by a program
pa_usage -> display all PAs called by a program
pgm_usage -> display all SAs and PAs called by a program
fshare_usage -> display all Filesharing files accessed
by the program
index_page_usage -> display index page usage
shared_fshare_programs -> display all programs that the program shares
Filesharing files with
instances={program} -> list all currently running instances of
a PA or SA
title={string} -> list all PAs whose index page titles
match a string
description={string} -> list all PAs and SAs whose descriptions
match a string
keeper={account_name} -> list all PAs and SAs belonging to a
particular keeper
author={account_name} -> list all PAs and SAs authored by a
particular person
backup={account_name} -> list all PAs and SAs having a
particular backup keeper
porter={account_name} -> list all PAs and SAs ported by a
particular person
subscribedby={user_name}-> list all programs subscribed to by a
particular person
affiliation={affil} -> list all programs affiliated with a
department
mod_since={date} -> list all programs modified on or after
a given date
mod_by={account_name} -> list all programs last modified by a
particular person (can also be used in
conjunction with "mod_since")
status={status} -> list all programs having a given status
name={name} -> list all Java applications having a given
name string
reference={reference} -> list all Java applications having a given
reference string
code_type={code_type} -> list all Java applications having a given
code type string
pas -> search for PAs
sas -> search for SAs
uls -> search for user libraries
services -> search for services
certified -> only search for certified programs
uncertified -> only search for uncertified programs
active -> only search for active programs
obsolete -> only search for obsolete programs
abandoned -> only search for abandoned programs
java -> display Java application information
db -> retrieve program information from the
MECCA database
suppress_errors -> suppress the error if no matches are found
data_values={variable} -> specify a variable to return data values
verbose -> display verbose output
output={spec} -> specify output destination
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
Examples:
program_info pa0052
program_info t39
program_info sa1002
program_info/abstract oddmod
program_info/keeper=hendricks
program_info/sa_usage c48
Synonyms: pgm_info, pgmInfo, programInfo
Related commands:
program_status, program_log, find_program, cpld_log, console_info,
node_info, user_info, event_info, mdat_info
-------------------------------------------------------------------------------
program_log : display program (shared) log entries
program_log[/start={date}/end={date}/text={string}] {name} [/output={spec}]
This command simply reads and displays program (shared) log entries.
You can search the log by entry text and author.
Examples of program_log qualifiers:
start={date} -> starting date
end={date} -> ending date
interval={time_spec} -> set end date to interval after the start time
text={string} -> matching text string (*)
author={string} -> matching author string (*)
count_only -> message count only
max_entries={n} -> maximum number of entries to display
last={n} -> display the last n entries
last -> display the last entry
asc[ending] -> display in time ascending order (default)
desc[ending] -> display in time descending order
list_names={string} -> list matching log file names
names -> list all program (shared) log file names
verbose -> display verbose output
output={spec} -> specify output destination
(* -> indicates that the search can be inverted by adding a suffix
of "_not" to the qualifier)
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
Examples:
program_log/start=today testalog
program_log/start=16-sep-2001/end="16-sep-2001 00:10"/output=mail:hendricks testalog
program_log/start=today/count_only testalog
program_log/start=today/author=%pa% testalog
program_log/start=today/text=%high% testalog
program_log/list_names=%seq%
Synonyms: shared_log, sharedLog, programLog
Related commands:
program_info, program_status, find_program, cpld_log
-------------------------------------------------------------------------------
program_status : retrieve the status of a program instance
program_status[/{qualifier}] [{console}] {slot}
This command displays information about a currently
running program. The primary information includes
the program's name, current execution state, and script
state. This command sets the global symbol, $_value, to
the program's execution state. Status information can
also be returned via caller-supplied variables.
Examples of program_status qualifiers:
name={variable} -> returned process name
state={variable} -> returned program state
script_state={variable} -> returned program scripting state
no_display -> suppress display of status information
verbose -> display verbose output
output={spec} -> specify output destination
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
Examples:
program_status 134 pa
program_status/status=sts 134 pa
Synonyms: pgm_status, pgmStatus, programStatus
Related commands:
program_info, program_log, find_program, cpld_log
-------------------------------------------------------------------------------
read_dir : read the contents of a directory
read_dir[/{qualifier}[={value}]] {file spec}
This command will read the contents of a directory. This
command sets the $_value and $_num_values symbols to the
number of files found.
Examples of read_dir qualifiers:
num_files={variable} -> saves the number of files in a variable
file_names={array} -> saves the file names found in a variable
file_paths={array} -> saves the file paths found in a variable
num_dirs={variable} -> saves the number of directories in a variable
dir_names={array} -> saves the directory names found in a variable
dynamic[_arrays] -> dynamically reallocate output data string
to match the number of matching strings
max_files={n} -> maximum number of files to display
convert -> convert embedded device and variable
values in the file specification string
match={string} -> establish directory match string
case_sensitive (cs) -> make a case sensitive search
(default is case insensitive)
ignore_spaces (is) -> ignore spaces when making search
(default is to honor spaces)
wildcard={char} -> set wildcard match character
regexp -> perform the search using
regular expressions
use_extended_regexp -> use extended regular expressions
normal_newline -> treat new line characters as normal
characters in regular expressions
special_newline -> treat new line characters as special
characters when using the '^' and '$'
anchor characters in regular expressions
include_path -> include the path in file names
(default is no path)
no_display -> don't display (output) the returned file names
verbose -> display verbose output
output -> specify output
Examples:
read_dir '~hendricks/acl/test*.acl'
read_dir/output=var:file_names '~hendricks/acl/test*.acl'
read_dir/file_names=file_names/num_files=num_files '~hendricks/acl/test*.acl'
Synonyms: readDir, directory
Related commands:
read_file
-------------------------------------------------------------------------------
read_file : read all or part of a file
read_file[/{qualifier}[={value}]] {file name}
This command will read all or part of a file. Search strings
can also be specified to return only matching lines. This
command sets the $_value symbol to the number of lines read.
Files can be treated as text files (default) or binary files.
When treating a file as binary, there are many choices of
output formats.
Examples of read_file qualifiers:
text -> treat as a text file (default)
binary -> treat as a binary file
fshare -> treat as a Filesharing file
web_page -> treat as a web page
acl_db_script -> treat as an ACL script from the
database repository
search={string} -> establish search string
skip_blank_lines -> do not include blank lines in the output
num_lines={variable} -> saves the number of lines in a variable
text={array} -> saves the matching lines of text
in a variable
dynamic[_arrays] -> dynamically reallocate output data string
to match the number of matching strings
max_lines={n} -> maximum number of lines to read (text file)
max_bytes={n} -> maximum number of bytes to read (binary file)
offset={n} -> starting byte offset to read at
stream -> start reading where the previous call to
this command left off
head[={num_lines}] -> read only the first n lines (default is 10)
tail[={num_lines}] -> read only the last n lines (default is 10)
convert -> convert embedded device and variable
values in the file name string
hex -> display file data in hex (binary files)
decimal -> display file data in decimal (binary files)
vms -> display file data in VMS file dump format
(binary files)
trim -> trim leading and trailing blanks from each
line
dont_trim -> do not trim leading and trailing blanks from
each line (default)
retain_html_tags -> don't remove embedded HTML tags
remove_html_tags -> remove embedded HTML tags (default)
value_type={type} -> value type to display file data as
(binary files)
{short,float,double,..} -> value type to display file data as
(binary files)
compare -> make a simple compare of the contents of
two files (binary or text)
case_sensitive -> make a text file compare case sensitive
ignore_spaces (is) -> ignore spaces when making search
(default is to honor spaces)
wildcard={char} -> set wildcard match character for a search
regexp -> perform the search using
regular expressions
use_extended_regexp -> use extended regular expressions
normal_newline -> treat new line characters as normal
characters in a regular expression
search
special_newline -> treat new line characters as special
characters when using the '^' and '$'
anchor characters in a regular
expression search
verbose -> display verbose output
output -> specify output
Examples:
read_file myfile.txt
read_file/head myfile.txt
read_file/tail=20/search='text' myfile.txt
read_file/binary mydata.dat
read_file/binary/compare bsclk.sav bsclk.tst
read_file/fshare/compare controls_misc:bsclk.sav controls_misc:bsclk.tst
Synonyms: readFile, file_read, fileRead
Related commands:
read_dir, url_display, program_log
-------------------------------------------------------------------------------
reboot : reboot an ACNET node
reboot[/{qualifier}] {node}
This command performs a reboot on an ACNET node. Both hard and
soft reboots can be requested. A hard reboot utilizes the node's
reboot device while a soft reboot sends a software request for
the node to reboot itself. If neither type is requested, a hard
reboot will be requested. If no reboot device exists for that
node, a soft reboot will be requested. This command can also be
used for rebooting GAS modules by specifying the house. Use of
this command may require special privileges. See Brian Hendricks
(hendricks@fnal.gov) for more information.
Examples of reboot qualifiers:
hard -> reboot the node using its reboot device
soft -> reboot by sending an ACNET reboot message
reason={reason string} -> reason for the reboot which will be written
to the reboot log (BOOT_LOG)
house={GAS house} -> GAS house name or code to reboot
module_type={GAS type} -> GAS module type to reboot (default is BPM)
noset -> don't actually send the reboot command
verbose -> display a message indicating that the
reboot command has been sent
Examples:
reboot mwap10
reboot/reason="Node was not responding" apab10
reboot/house=67 mi # reboot BPM house 67 in Main Injector
Related commands:
set, node, node_info, download
-------------------------------------------------------------------------------
sda_config : display SDA configuration information
sda_config[/{qualifier}] [{usage}] [{case}] [(device}]
This command reads and displays SDA configuration information.
It can either display the list of devices correcsponding to
a usage and case or it can display detailed information about
a single device. There is also an option to check for the
presence of a particular device. If this option is selected,
$_value will be updated with the number of occurrences found.
Examples of sda_config qualifiers:
show -> show devices corresponding to usage and case
(default)
show_scalar -> show scalar devices corresponding to
usage and case
show_snapshot -> show snapshot devices corresponding to
usage and case
show_ftp -> show fast time plot devices corresponding to
usage and case
find -> find occurrences of a device
find_scalar -> find occurrences of a device as a scalar
find_snapshot -> find occurrences of a device as a snapshot
find_ftp -> find occurrences of a device as a fast time
plot
case_info -> show case configuration information
usage={usage} -> usage to access (default is ColliderShot)
{usage} -> usage to access (default is ColliderShot)
case={case} -> case to access (default is all)
data_type={type} -> data type to return
(scalar (default), snapshot, ftp)
count_only -> file count only
max_return={n} -> maximum number of files to display
device={device} -> check to see if the configuration contains a
particular device
(result is stored in $_value)
name={search string} -> find all occurrences of devices matching
a particular name string
all_properties -> check for any property for the requested
device
value={variable} -> specify a variable to return the results
of this command
no_display -> don't display (output) the returned values
output={spec} -> specify output destination
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
Examples:
sda_config # show all ColliderShot devices
sda_config 'inject pbars' # show all 'Inject Pbars' devices
sda_config 'inject pbars' t:beam # show config info for T:BEAM
sda_config/find m:outtmp # find all occurrences of M:OUTTMP
sda_config/name=m:out% # find all occurrences matching "m:out%"
Synonyms: sdaConfig
Related commands:
sda_dir, sda_get, sr_dir, saverestore_get
-------------------------------------------------------------------------------
sda_dir : display SDA directory information
sda_dir[/{qualifier}] [{usage}] [{store number}] [(device}]
This command reads and displays SDA directory information.
It can also return information about which devices are stored
for a given shot. There is also an option to check for the
presence of a particular device. If this option is selected,
$_value will be updated with the logical result.
Examples of sda_dir qualifiers:
usage={usage} -> usage to access (default is ColliderShot)
{usage} -> usage to access (default is ColliderShot)
number={shot_number} -> shot number to access
case={case} -> case to access (default is all)
set={set} -> set to access (default is all)
count_only -> file count only
max_return={n} -> maximum number of files to display
latest -> display only the most recent file
start={date} -> starting date
end={date} -> ending date
interval={time_spec} -> set end date to interval after the start time
device={device} -> check to see if the file contains a
particular device
(result is stored in $_value)
devices -> show all devices contained in a file
cases -> show all cases (and their times) contained
in a file
sets -> show all sets (and their times) contained
in a file and case
match={string} -> only display files with titles matching
a string
case_sensitive (cs) -> make a case sensitive search
(default is case insensitive)
ignore_spaces (is) -> ignore spaces when making search
(default is to honor spaces)
wildcard={char} -> set wildcard match character
regexp -> perform the search using
regular expressions
use_extended_regexp -> use extended regular expressions
normal_newline -> treat new line characters as normal
characters in regular expressions
special_newline -> treat new line characters as special
characters when using the '^' and '$'
anchor characters in regular expressions
no_dir -> don't display directory information
no_times -> don't display dates
no_display -> don't display (output) the directory
ascending -> return/display values in date ascending
order (default is descending)
num_files={variable} -> returns the number of files found
titles={array} -> returns the titles of the files found
timestamps={date array} -> returns the timestamps of the files found
file_numbers={int array}-> returns the file numbers of the files found
verbose -> display verbose output
output={spec} -> specify output destination
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
Examples:
sda_dir
sda_dir 3745 m:outtmp
sda_dir/devices 3745
sda_dir/cases 3745
Synonyms: sdaDir, sda_directory
Related commands:
sr_dir, sda_config, sda_get, saverestore_get
-------------------------------------------------------------------------------
setting_log : display setting log entries
setting_log[/start={date}/end={date}/device={string}/property={prop}][/output={spec}]
This command simply reads and displays entries from the setting
history log. You can search the log by device strings, properties,
console numbers, programs, and index pages. In addition, by using
the "max_count" qualifier you can display the most frequently set
devices.
Examples of setting_log qualifiers:
start={date} -> starting date
end={date} -> ending date
interval={time_spec} -> set end date to interval after the start time
timeout={seconds} -> database timeout in seconds
device={string} -> matching device string (*)
property={property} -> matching device property (*)
{property} -> matching device property (*)
props={p1,p2,p3} -> matching list of properties (*)
alarms -> matching alarm property (*)
console={console_num} -> matching console number (*)
program={program} -> matching setting program (*)
index_page={page} -> matching index page name (*)
node={node} -> matching setting node (Java only) (*)
engine={engine} -> matching setting engine node (Java only) (*)
user={user} -> matching user name (Java only) (*)
length={length} -> matching setting length (+)
offset={offset} -> matching setting offset (+)
num_elements={num} -> matching setting number of elements (+)
(can't be used with wildcarded names)
array_index={index} -> matching setting array index (+)
(can't be used with wildcarded names)
data={raw_data} -> matching setting raw data (*)
[basic_]control={cmd} -> matching basic control commands (*)
scaled[_value]={value} -> matching scaled setting value (*)
device_node={node} -> matching a given source node (*)
count_only -> setting count
max_entries={n} -> maximum number of entries to display
max_count={n} -> return the "n" most frequently set
devices along with their setting counts
fill_char='{character}' -> fill character for empty fields
(default is blank)
show_value -> display the setting values
scaled -> display the scaled setting value
raw -> display the raw setting value (default)
verbose -> display verbose output
alt[ernate] -> use the alternate setting log
output={spec} -> specify output destination
(* -> indicates that the search can be inverted by adding a suffix
of "_not" to the qualifier,
+ -> indicates that the search can be inverted by adding a suffix
of "_not" to the qualifier and that additionally a less than
search can be performed by adding a suffix of "_lt" and a
greater than search can be performed by adding a suffix
of "_gt". (Less than or equal to (_le) and greater than or
equal to (_ge) searches are also supported.))
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
Examples:
setting_log/start=today
setting_log/start=16-sep-2001/end="16-sep-2001 00:10"/output=mail:hendricks
setting_log/start=today/count_only
setting_log/start=today/device=%out%
setting_log/start=today/max_count=10/output=mail:hendricks
setting_log/start=today/device=b:mp02/scaled
Synonyms: settingLog, settings, set_log, setLog
Related commands:
event_log, state_log, alarm_log, set, cpld_log, downtime_log
-------------------------------------------------------------------------------
shot_log : make an entry in the Shot Scrapbook
shot_log/source={source}[/subsource={subsource}][/{qualifier}] [{comment}]
The shot_log command provides the capability of making an entry in
the Shot Scrapbook. If a comment string is specified, you can embed
ACNET device values in the comment string by enclosing the device name
in curly braces (eg. "Store # = {t:store}"). Use of this command may
require special privileges. See Brian Hendricks (hendricks@fnal.gov)
for more information.
Examples of shot_log qualifiers:
comment -> insert a comment in the log (default)
chapter -> insert a new chapter in the log
url (web_page) -> insert a web page in the log
svg_url -> insert a web page containing an SVG image
in the log
png_url -> insert a web page containing a PNG image
in the log
gif_url -> insert a web page containing a GIF image
in the log
job_status -> return the current server job status for
the specified log
log={log_name} -> shot log name (default is Collider)
source={string} -> set the log source value (required)
subsource={string} -> set the log subsource value
author={string} -> set the log author value
comment={string} -> comment to insert in the log
(can contain embeded device values)
url={string} -> URL of web page to insert in the log
(can contain embeded device values)
title={string} -> title of new chapter to insert in the log
(can contain embeded device values)
by_id -> specify console windows by ID
by_title -> specify console windows by title
image=({cns}:{win},...) -> console window to insert in the log
no_send -> inhibit the actual log entry
verbose -> verbose output
Examples:
shot_log/source=Collider/subsource=01/author=me "This is a comment."
shot_log/url/source=Summary/subsource=10\
"www-bd.fnal.gov/javaapplications/html_write/ShotSummary/incompleted_{T:STORE}.html"
Synonyms: shotLog
Related commands:
web_log
-------------------------------------------------------------------------------
slot : access CAMAC slot information
slot[/{qualifier}] {node} {crate} {slot} [{retries}]
This command will access information about individual
CAMAC slots. Use of this command may require special
privileges. See Brian Hendricks (hendricks@fnal.gov)
for more information.
Examples of slot qualifiers:
node={node} -> specify CAMAC node
crate={crate} -> specify CAMAC crate
slot={slot} -> specify CAMAC slot
retries={retries_value} -> specify CAMAC no-Q retries value
format={decimal|hex} -> specify data format (hex or decimal)
id -> read the CAMAC module ID number
devices[={string}] -> read the devices in the slot
lam -> read the module LAM status value
reset -> reset the module
hex -> interpret data as hexadecimal
dec[imal] -> interpret data as decimal
queue -> allows queueing up multiple commands to
send at the same time
verbose -> display verbose output
output -> specify output
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
variable:{variable_name} -> send output to a variable
symbol:{symbol_name} -> send output to a symbol
Examples:
slot/id tev a1 1 # read module ID
slot/devices tev a1 1 # read slot devices
slot/lam tev a1 1 # read module LAM status
Related commands:
crate, madc, camac
-------------------------------------------------------------------------------
snap_read : read ACNET device using the snapshot plot protocol
snap_read[/event={event}][/delay={secs}][/duration={secs}] {device}{[n]}
This command reads and displays device readings acquired using
the snapshot plot protocol. Data return frequencies of up to
10 MHz can be requested. This command supports family devices
and list specifiers (see above).
Examples of snap_read qualifiers:
event={event} -> event to trigger the beginning of acquisition
delay={secs} -> delay from event (or immediate) in seconds
before beginning data acquisition
duration={secs} -> duration of data acquisition in seconds
(used in place of "frequency")
freq[uency]={freq} -> frequency of data points
(used in place of "duration")
device={device_name} -> device to display
src={data source spec} -> select the data source for the plot data
(only accelerator and SDA are supported)
(sda:{file number}:{case}[:{subcase}:{usage}])
value={value} -> matching value for condition handling
cond={condition_value} -> used in conjunction with the value
argument to determine which values
are displayed
count[_only] -> only display the number of values read
max_entries={n} -> maximum number of values to display
first -> used in conjunction with "max_entries"
to retrieve the first n matches (default)
last -> used in conjunction with "max_entries"
to retrieve the last n matches
family -> display values for an entire family
num_values={variable} -> saves the number of values read in a variable
values={array} -> saves the values read in a variable
timestamps={date_array} -> saves the timestamps read in a variable
sum={variable} -> saves the sum of all values read in
a variable
minimum={variable} -> saves the minimum of all values read in
a variable
maximum={variable} -> saves the maximum of all values read in
a variable
dynamic[_arrays] -> dynamically reallocate output data variables
to match the number of values read
secs -> return timestamps in units of seconds
no_display -> don't display (output) the returned values
verbose -> generate verbose output
output={spec} -> specify output destination
The condition value strings are as follows:
all -> show all matches (default)
equal (eq) -> show entries that equal the requested
value (default if value is requested)
not_equal (ne) -> show entries that do not equal the
requested value
less_than (lt) -> show entries whose value is less
than the requested value
less_equal (le) -> show entries whose value is less
than or equal to the requested value
greater_than (gt) -> show entries whose value is greater
than the requested value
greater_equal (ge) -> show entries whose value is greater
than or equal to the requested value
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
Examples:
snap_read m:outtmp
snap_read/event=2/delay=1/duration=1 m:outtmp
snap_read/event=2/value=60/cond=lt m:outtmp
snap_read/event=2/max_count=10/output=mail:hendricks m:outtmp
snap_read m:outtmp/src=sda:6262:'Proton Injection Porch':0 # from SDA
Synonyms: snapRead, snpplt
Related commands:
ftp_read, logger_get, saverestore_get, sda_get
-------------------------------------------------------------------------------
sql : send a database modification command or read database values
sql[/{qualifier}] {SQL string} [{server}] [{database}]
This command is used to modify a database table (insert, update,
or delete). It can also be used to read values from the database.
Use of this command may require special privileges. See Brian
Hendricks (hendricks@fnal.gov) for more information.
Examples of sql qualifiers:
server={server} -> sets the database server (default is ADBS)
database={database} -> sets the target database (default is appdb)
timeout={seconds} -> set database timeout in seconds
convert -> convert embedded device and variable
values in the SQL string
no_set -> suppress actual sending the SQL command
values={var,..} -> specify variables to hold result set
field values for a select
dynamic[_arrays] -> dynamically reallocate output data variables
to match the number of values read
num_values={variable} -> specify variable to hold the number of
rows returned by a select
verbose -> verbose output
output={spec} -> specify output destination
Examples:
sql 'insert into mytable values (1, 2, 3)'
sql 'insert into mytable values (1, 2, 3)' ADBS appdb
sql/timeout=10 'insert into mytable values (1, 2, 3)'
sql/convert 'insert into mytable values ({var1}, {var2}, {var3})'
sql/values=tinyint,smallint,int,str/num_values=num_values \
'select tinyint_value, smallint_value, int_value, char_value \
from appdb.hendricks.bsh_test_table'
Related commands:
print, output
-------------------------------------------------------------------------------
sr_dir : display save/restore file directory information
sr_dir[/{qualifier}] [{system}] [{file number}] [(device}]
This command reads and displays save/restore file directory information.
It can also return information about which devices are stored in a file.
There is also an option to check for the presence of a particular
device. If this option is selected, $_value will be updated with
the logical result.
Examples of sr_dir qualifiers:
number={file_number} -> file number to access
system={system} -> file system to access
(all, global, linac, booster, mi, tevatron,
pbar, switchyard, archive, circular, shot,
miniboone)
count_only -> file count only
max_return={n} -> maximum number of files to display
start={date} -> starting date
end={date} -> ending date
interval={time_spec} -> set end date to interval after the start time
device={device} -> check to see if the file contains a
particular device
(result is stored in $_value)
devices -> show all devices contained in a file
match={string} -> only display files with titles matching
a string
case_sensitive (cs) -> make a case sensitive search
(default is case insensitive)
ignore_spaces (is) -> ignore spaces when making search
(default is to honor spaces)
wildcard={char} -> set wildcard match character
regexp -> perform the search using
regular expressions
use_extended_regexp -> use extended regular expressions
normal_newline -> treat new line characters as normal
characters in regular expressions
special_newline -> treat new line characters as special
characters when using the '^' and '$'
anchor characters in regular expressions
no_dir -> don't display directory information
no_display -> don't display (output) the directory
num_files={variable} -> returns the number of files found
titles={array} -> returns the titles of the files found
timestamps={date array} -> returns the timestamps of the files found
file_numbers={int array}-> returns the file numbers of the files found
output={spec} -> specify output destination
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
Examples:
sr_dir archive
sr_dir archive 984
sr_dir/start=today linac
sr_dir archive 984 m:outtmp
sr_dir/devices archive 984
Synonyms: srDir, sr_directory, srDirectory
Related commands:
sda_dir, saverestore_get, sr_set, sda_get
-------------------------------------------------------------------------------
sr_set : set the value for a device in a save file
sr_set[/{qualifier}] {device}{[n]}[/{qualifier...}] {constant|variable|symbol}
This command sets values in save/restore files only.
For the reading or setting properties, multiple scaled or
raw values can be supplied. If multiple values are entered,
they should be separated by spaces or commas. Setting values
can also be supplied in a delimited text file. This command
also supports an array index notation which allows you to
specify the beginning and ending array indices
(ex. set z:acltst[1:2]=13,3.5). This command also supports
family devices and list specifiers (see above). Use of this
command may require special privileges. See Brian Hendricks
(hendricks@fnal.gov) for more information.
Examples of sr_set qualifiers:
file_number={file} -> file number to write to
error_status={status} -> ACNET error status to associate with
the value(s)
values_per_device={val} -> number of values to set per device
allow_inserts -> permit inserting devices that are not
already in the file
scaled (common) -> make a scaled (common) setting
raw -> make a raw setting
length=2 -> set 2 bytes of data
atomic_size -> set the atomic size for this property
maximum_size -> set the maximum size for this property
num_elements=4 -> set 4 values
num_values=4 -> set 4 values
all -> set all values for this property
all_elements -> set all values for this property
offset=0 -> set data starting at a byte offset of 0
index=2 -> set data starting at array index 2
array_index=2 -> set data starting at array index 2
(alarm_)minimum -> set the analog alarm minimum
(alarm_)maximum -> set the analog alarm maximum
min_max -> set the analog alarm minimum and maximum
analog_nominal -> set the analog alarm nominal
(alarm_)nominal -> set the digital alarm nominal
(alarm_)mask -> set the digital alarm mask
(alarm_)tries -> set the number of alarm tries
file -> read setting values from a file
(default file extension is ".dat")
family -> set an entire family
Examples:
sr_set/file_number=1510 z:acltst 5
sr_set/file_number=1510 z:acltst $symbol1
sr_set/raw/file_number=1510 z:acltst A9
sr_set/file_number=1510 z:acltst=1,2,3,4
sr_set/file_number=1510/raw z:acltst[2] 3 4
sr_set/file_number=1510/minimum m@outtmp 32 # set alarm minimum
sr_set/file_number=1510/maximum m@outtmp 100 # set alarm maximum
sr_set z:acltst[1:2]/src=sr:1510=16,3.5
sr_set z:acltst[]/src=sr:1510=0,16,3.5,11 # set an entire array
sr_set z:acltst[2:3]/src=sr:1510=z:aclts3[1:2] # set multiple array elements
sr_set z:acltst[2:3]/src=sr:1510=array[1] # set multiple array elements
sr_set/family z:acltsz[1:2]/src=sr:1510=16,17.5 # set a family device
Synonyms: srSet
Related commands:
set, dbset, read, enable, disable, bypass, activate, deactivate
turn, reset, toggle, alarm_limit, nominal_mask
fill, copy, decrement, increment, delta_set, device_list
-------------------------------------------------------------------------------
state_log : display state log entries
state_log[/start={date}/end={date}] {state_device}
This command reads and displays state event history.
Examples of state_log qualifiers:
start={date} -> starting date
end={date} -> ending date
interval={time_spec} -> set end date to interval after the start time
device={device_name} -> state device
state_value={value} -> matching state value
cond={condition_value} -> used in conjunction with the state_value
argument to determine which log entries
are displayed
text -> display state text (default)
no_text -> don't display state text
node -> display state values as ACNET node values
nodisplay -> don't display the values, only errors
count[_only] -> only display the number of matching
log entries
max_entries={n} -> maximum number of entries to display
last -> used in conjunction with "max_entries"
to retrieve the last n matches
num_values={variable} -> saves the number of values read in a variable
values={variable} -> saves the values read in a variable
text_values={variable} -> saves the state text string values read in
a variable
timestamps={variable} -> saves the timestamps read in a variable
milliseconds={array} -> saves the fractional milliseconds
read in a variable
dynamic[_arrays] -> dynamically reallocate output data variables
to match the number of values read
verbose -> generate verbose output
output={spec} -> specify output destination
The condition value strings are as follows:
all -> show all matches (default)
equal (eq) -> show entries that equal the requested
state value (default if value is requested)
not_equal (ne) -> show entries that do not equal the
requested state value
less_than (lt) -> show entries whose state value is less
than the requested state value
less_equal (le) -> show entries whose state value is less
than or equal to the requested state value
greater_than (gt) -> show entries whose state value is greater
than the requested state value
greater_equal (ge) -> show entries whose state value is greater
than or equal to the requested state value
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
Examples:
state_log/start=today v:cldrst
state_log/start=16-sep-2003/end="16-sep-2003 00:10"/output=mail:hendricks v:cldrst
state_log/start=today/count_only/value=10 v:cldrst
state_log/start=today/value=10/cond=lt v:cldrst
state_log/start=today/node v:feup
state_log/start=today/max_count=10/output=mail:hendricks v:feup
Synonyms: stateLog
Related commands:
event_log, setting_log, alarm_log, cpld_log, downtime_log, program_log
-------------------------------------------------------------------------------
str_case : change the case of a string
str_case[/{qualifier}] {string} [{case}]
This command changes the case of a specified string.
This command sets the $_string symbol if successful.
Examples of str_case qualifiers:
case={case} -> set case for string
(upper, lower, invert, capitalize)
{case} -> set case for string
(upper, lower, invert, capitalize)
convert -> convert embedded device and variable
values in the source string
value={variable} -> returns the modified string
Examples:
str_case str upper
str_case 'Lower case this string.' lower
Synonyms: strCase, case_string
Related commands:
str_format, str_cat, str_find, str_replace, str_compare, substring,
str_tail, str_trim, str_split, str_convert, unescape, str_length
-------------------------------------------------------------------------------
str_cat : concatenate two strings together
str_cat[/{qualifier}] {string} {cat_string}
This command concatenates one string onto the end of another string.
This command sets the $_string symbol if successful.
Examples of str_cat qualifiers:
case={case} -> set case for string
(upper, lower, invert, capitalize)
{case} -> set case for string
(upper, lower, invert, capitalize)
convert -> convert embedded device and variable
values in the concatenation string
value={variable} -> returns the result string
Examples:
str_cat str 'another string'
Synonyms: strCat, concatenate
Related commands:
str_format, str_case, str_find, str_replace, str_compare, substring,
str_tail, str_trim, str_split, str_convert, unescape, str_length
-------------------------------------------------------------------------------
str_compare : compare two strings
str_compare[/{qualifier}] {string 1} {string 2}
This command compares tow strings checking for equality.
This command sets the $_value symbol. A value of zero
would indicate a match.
Examples of str_compare qualifiers:
case_sensitive (cs) -> make a case sensitive compare
(default is case insensitive)
regexp -> perform the comparison using regular
expressions where string 2 is
the regular expression pattern
convert -> convert embedded device and variable
values in the comparison strings
value={variable} -> returns the comparison result value
Examples:
str_compare 'STRING1' 'string1'
str_compare/case_sensitive 'STRING1' 'string1'
Synonyms: strCompare, compare_string
Related commands:
str_format, str_case, str_cat, str_find, str_replace, substring,
str_tail, str_trim, str_split, str_convert, unescape, str_length
-------------------------------------------------------------------------------
str_convert : convert a string value
str_convert[/{qualifier}] {string} {converted_value}
This command converts a string into a numeric value. This command
sets the $_value symbol if successful.
Examples of str_convert qualifiers:
data_type={data_type} -> data type to convert to (default is float)
{data_type} -> data type to convert to (default is float)
hex -> treat string as being in hexadecimal format
verbose -> verbose output
value={variable} -> specify a variable to return the value
Examples:
str_convert '123.45' value
str_convert/float '123.45' value
str_convert/int '12345' value
str_convert/error 'dpm_pend' value
Synonyms: strConvert, string_convert, convert_string
Related commands:
str_format, str_copy, str_cat, str_case, str_find, str_replace,
str_compare, substring, str_tail, unescape, str_split, str_length,
str_trim
-------------------------------------------------------------------------------
str_copy : copy one string to another
str_copy[/{qualifier}] {string} {copy_string} [{num_chars}]
This command copies one string into another. Either the
entire string or the first n characters of the string can
be copied. This command sets the $_string symbol if successful.
Examples of str_copy qualifiers:
case={case} -> set case for string
(upper, lower, invert, capitalize)
{case} -> set case for string
(upper, lower, invert, capitalize)
convert -> convert embedded device and variable
values in the copy string
value={variable} -> specify a variable to return the string
Examples:
str_copy str 'another string'
str_copy str 'another string' 7 # copy first 7 characters
Synonyms: strcpy, strncpy, strCopy, copy_string
Related commands:
str_cat, str_format, str_case, str_length, str_find, str_replace,
str_compare, substring, str_tail, unescape, str_split, str_convert,
str_trim, copy_variable
-------------------------------------------------------------------------------
str_find : search for one string in another
str_find[/{qualifier}] {string} {find_string}
This command searches one string to see if it contains another string.
This command sets the $_value symbol if successful. It will be set
to the index of the beginning of the match (starting at 1).
Examples of str_find qualifiers:
case_sensitive (cs) -> make a case sensitive search
(default is case insensitive)
ignore_spaces (is) -> ignore spaces when making search
(default is to honor spaces)
wildcard={char} -> set wildcard match character
regexp -> perform the search using
regular expressions
use_extended_regexp -> use extended regular expressions
normal_newline -> treat new line characters as normal
characters in regular expressions
special_newline -> treat new line characters as special
characters when using the '^' and '$'
anchor characters in regular expressions
convert -> convert embedded device and variable
values in the search string
position={variable} -> returns the index to the beginning
of the match (starting at 1)
Examples:
str_find 'This string contains a string.' 'a string'
Synonyms: strFind, string_find
Related commands:
str_replace, str_format, str_case, str_cat, str_compare, substring,
str_tail, str_trim, str_split, str_convert, unescape, str_length
-------------------------------------------------------------------------------
str_format : build a formatted string
str_format {variable} {string|device|symbol} {string|device|symbol} ...
This command builds a single formatted string from a series of
component strings. An str_format statement is made up of a
sequence of terms separated by spaces. Special terms include the
name() operator which causes the name rather than the value of a
device to be output, the pos() operator which allows you to set the
output line text column for tabular data, and 'date' which will
output the current date and time string. This command sets the
$_string symbol if successful.
Examples of str_format qualifiers:
case={case} -> set case for string
(upper, lower, invert, capitalize)
{case} -> set case for string
(upper, lower, invert, capitalize)
convert -> convert embedded device and variable
values in component strings
value={variable} -> specify a variable to return the string
Special functions:
width({value},{width}) -> formats the output of a value to
a specified width
name({device}) -> causes the name rather than the value
of the device to be printed
gen_name({device}) -> causes the generic name (no property
or array index) rather than the value
of the device to be printed
text({device}) -> prints the descriptive text for
the device
units({device}) -> prints the units text for the device
units({device},{common|primary})
state_text({device}) -> prints the text for the current state
(state devices only)
state_text({device}[,{state},{trunc}])
clinks({date|integer}) -> displays date to clinks or clinks
to date
ctime({date|integer}) -> displays date to C time or C time
to date
gmt({date|integer}) -> displays date to GMT (UTC) time or
GMT (UTC) to date
seconds(secs,{type1},{type2}) -> converts between types of seconds
(clinks, C time, or GMT (UTC))
julian({date|integer}) -> displays the corresponding Julian date
hex(integer|variable|symbol -> displays the hexadecimal equivalent
[,output_length]) of the requested value
dec(integer|variable|symbol -> displays the decimal equivalent
[,convert_length]) of the requested value
rad50(string) -> displays hexadecimal radix 50
value corresponding to the
requested string
rad50(integer) -> displays the string corresponding
to the requested value
ascii(hex or decimal integer) -> displays the corresponding ASCII
characters (up to 4)
ascii(string) -> displays the corresponding ASCII
numeric values (up to 4)
error(integer|string|variable) -> displays the corresponding ACNET
error value
node(integer|string|variable) -> displays the corresponding ACNET
node value
device(integer|device|variable) -> displays the corresponding ACNET
device value
[!]exists(device|variable) -> displays a 0 or 1 depending on
whether or not the requested
entity exists
sizeof(device|variable|symbol) -> displays the number of elements in
the requested entity
rtl_error(integer) -> displays the corresponding RTL
error string
system_error(integer) -> displays the corresponding system
error string
float(float|hex) -> displays floating point values
as either floats or raw hex
Examples:
str_format str "M:OUTTMP is in alarm."
str_format str "T:HA11[0] = " t_ha11[0]
str_format str "Symbol #1 = " $symbol1
str_format str name(G:DEV000) " = " G:DEV000 # device name and value
str_format atr "Today's date is " date "." # present date
str_format str "The present time is " time "." # present time
str_format str "This shift started at " this_shift "."
str_format str "Execution time = " script_time # total script execution time
str_format str "Delta time = " delta_script_time # delta script execution time
str_format str "1234" pos(10) "5678" # position second string at column 10
str_format str "The first argument is " string(string0) "."
str_format str "First line" newline "Second line"
Synonyms: strFormat, format_string
Related commands:
print, str_case, str_cat, str_find, str_replace, str_compare, substring,
str_tail, str_trim, str_split, str_convert, unescape, str_length
-------------------------------------------------------------------------------
str_length : return the length of a string
str_length[/{qualifier}] {string} [{return_length}]
This command determines the length of a string. This command
sets the $_value symbol if successful.
Examples of str_length qualifiers:
verbose -> verbose output
value={variable} -> specify a variable to return the length
Examples:
str_length 'another string'
str_length str length
Synonyms: strlen, strLength, string_length
Related commands:
str_format, str_copy, str_cat, str_case, str_find, str_replace,
str_compare, substring, str_tail, str_trim, unescape, str_split,
str_convert
-------------------------------------------------------------------------------
str_replace : replace a substring with another
str_replace[/{qualifier}] {string} {find_string} {replace_string}
This command replaces substrings in a string with another substring.
This command sets the $_string symbol to the resultant string
and $_value with the number of replacements if successful.
Examples of str_replace qualifiers:
replace_limit={all|num} -> set the maximum number of replacements
to allow (default is all)
case_sensitive (cs) -> make a case sensitive search
(default is case insensitive)
ignore_spaces (is) -> ignore spaces when making search
(default is to honor spaces)
wildcard={char} -> set wildcard match character
regexp -> perform the search using
regular expressions
use_extended_regexp -> use extended regular expressions
normal_newline -> treat new line characters as normal
characters in regular expressions
special_newline -> treat new line characters as special
characters when using the '^' and '$'
anchor characters in regular expressions
convert -> convert embedded device and variable
values in the search string
string={variable} -> returns the resultant string
num_replaced={variable} -> returns the number of replacements
that were actually performed
Examples:
str_replace 'This string contains a string.' 'a string' 'another string'
Synonyms: strReplace, string_replace
Related commands:
str_find, str_format, str_case, str_cat, str_compare, substring,
str_tail, str_trim, str_split, str_convert, unescape, str_length
-------------------------------------------------------------------------------
str_split : split a string into substrings
str_split[/{qualifier}] {string} {split_string} {output_strings} [{num_strings}]
This command splits a string into its constituent substrings.
The split criteria can be either any one of a set of single
characters or a single separator string. The original string
is not affected by this command. This command sets the $_value
symbol with the number of substrings if successful.
Examples of str_split qualifiers:
char -> treat the split string as a set of
individual characters (default)
string -> treat the split string as a single string
wildcard={char} -> set wildcard match character
case_sensitive (cs) -> make a case sensitive search
(default is case insensitive)
ignore_spaces (is) -> ignore spaces when making search
(default is to honor spaces)
regexp -> perform the search using
regular expressions
use_extended_regexp -> use extended regular expressions
normal_newline -> treat new line characters as normal
characters in regular expressions
special_newline -> treat new line characters as special
characters when using the '^' and '$'
anchor characters in regular expressions
convert -> convert embedded device and variable
values in the search string
no_trim -> don't trim leading and trailing spaces
from substrings
handle_quotes -> handle quoted strings
handle_embedded_quotes -> handle embedded quote characters
preserve_quotes -> preserve quote characters
Examples:
declare strings char[1]
str_split 'This string contains spaces.' ' ' strings num_strings
Synonyms: strSplit, split_string
Related commands:
str_find, str_length, str_replace, str_format, str_case, str_cat,
str_copy, str_compare, substring, str_tail, str_trim, str_convert,
unescape
-------------------------------------------------------------------------------
str_tail : extract the tail of a string
str_tail[/{qualifier}] {string} {length} [{output variable}]
This command extracts the last n characters from the end of a string.
This command sets the $_string symbol if successful.
Examples of str_tail qualifiers:
case={case} -> set case for extracted string
(upper, lower, invert, capitalize)
{case} -> set case for extracted string
(upper, lower, invert, capitalize)
convert -> convert embedded device and variable
values in the extracted string
value={variable} -> specify a variable to return the string
Examples:
str_tail 'We want the end of this string.' 7
Synonyms: strTail
Related commands:
substring, str_find, str_replace, str_format, str_case, str_cat,
str_compare, str_trim, str_split, str_convert, unescape, str_length
-------------------------------------------------------------------------------
str_trim : trim spaces from a string
str_trim[/{qualifier}] {string} [{trim type}]
This command changes trims spaces from a specified string.
This command sets the $_string symbol if successful.
Examples of str_trim qualifiers:
all -> remove all spaces
begin -> remove leading spaces only
end -> remove trailing spaces only
begin_end -> remove leading and trailing spaces
trim={trim type} -> specify the trim type
case={case} -> set case for string
(upper, lower, invert, capitalize)
{case} -> set case for string
(upper, lower, invert, capitalize)
convert -> convert embedded device and variable
values in the source string
value={variable} -> specify a variable to return the
trimmed string
Examples:
str_trim 'Remove all of the spaces from this string.'
str_trim ' Remove the leading spaces.' begin
str_trim 'Remove the trailing spaces. ' end
str_trim ' Remove the leading and trailing spaces. ' begin_end
Synonyms: strTrim
Related commands:
str_case, str_format, str_cat, str_find, str_replace, str_compare,
substring, str_tail, str_split, str_convert, unescape, str_length
-------------------------------------------------------------------------------
substring : extract a substring from a string
substring[/{qualifier}] {string} {start index} {length} [{output variable}]
This command extracts a substring from another string given a
starting index (starts at 1 to match str_find) and a length.
If the starting index is negative, the substring will start
that many characters from the end of the string. This command
sets the $_string symbol if successful.
Examples of substring qualifiers:
case={case} -> set case for extracted string
(upper, lower, invert, capitalize)
{case} -> set case for extracted string
(upper, lower, invert, capitalize)
convert -> convert embedded device and variable
values in the extracted string
no_truncated -> only return complete extracted strings
value={variable} -> specify a variable to return the substring
Examples:
substring 'This string contains a string.' 22 8
Synonyms: extract_string
Related commands:
str_tail, str_find, str_replace, str_format, str_case, str_cat,
str_compare, str_trim, str_split, str_convert, unescape, str_length
-------------------------------------------------------------------------------
switch_info : display network switch information
switch_info[/{qualifier}][/output={spec}] {switch name}
This command simply displays network switch information including
a short description, the switch's location, and the keeper. It can
also be used to search the network switch database to find switches
matching various specified characteristics.
Examples of switch_info qualifiers:
categories -> display the switch characteristic categories
status -> displays the switch's status type
area -> displays the switch's area
is_up -> displays whether or not the switch is up
ip_name -> display the switch's IP name
description -> displays the switch's description
location -> displays the switch's location
keeper -> displays the switch's keeper's name
keeper_email -> displays the switch's keeper's email
backup_keeper -> displays the switch's backup keeper's name
backup_keeper_email -> displays the switch's backup keeper's email
name={switch name} -> search for switches matching a given name
keeper={user name} -> search for switches belonging to a keeper
backup={user name} -> search for switches having a backup keeper
descr={description} -> search for switches having a particular
string in their description
loc={location} -> search for switches having a particular
string in their location
status={status type} -> search for switches with a particular
status type
area={area type} -> search for switches with a particular
area type
exact -> display exact matches only in searches
down -> only displays switches that are down
no_up_status -> suppress up/down status in search results
num_switches={variable} -> specify a variable to return the number
of switches processed
switches={variable} -> specify a variable to return the array
of switch values processed
data_values={variable} -> specify a variable to return data values
no_display -> suppress display of switch information
(useful if using command to generate
an array of switch values)
output={spec} -> specify output destination
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
Examples:
switch_info 19ap0
switch_info/keeper=stenman
switch_info/area='antiproton source'
Synonyms: switchInfo
Related commands:
node_info, console_info, user_info, program_info, event_info, mdat_info
-------------------------------------------------------------------------------
system : execute a system command
system[/{qualifier}] '{system command string}'
This command executes an operating system command. This command
sets $_value with the status returned by the operating system.
Use of this command may require special privileges. See
Brian Hendricks (hendricks@fnal.gov) for more information.
Examples of system qualifiers:
errorexit -> exit the script on an error (default)
noerrorexit -> don't exit the script on an error
status_value={variable} -> saves the returned operating system status
in a variable
output={spec} -> specify output destination
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
Examples:
system "dir ~hendricks"
Related commands:
execute, run
-------------------------------------------------------------------------------
tcp_request : send a TCP/IP request
tcp_request/host={host}/port={port}/request_data={{type}={value},...}[/qualifier]
This command sends a TCP/IP request to a specified host and port.
The request buffer can be specified as a series of tag/value
pairs separated by commas where the tag specifies the data type of
its accompanying value. Reply buffers can be specified by a series
data type strings separated by commas or by a named generic structure.
Use of this command may require special privileges. See Brian
Hendricks (hendricks@fnal.gov) for more information.
tcp_request command types:
connect -> specify host and port for future
tcp_request commands (values will remain
in effect until changed or the current
script ends)
static_connect -> specify host and port for future
tcp_request commands (values will remain in
effect until changed or the calling process
exits)
disconnect -> disconnect from the specified host and port
request -> send a request (default)
wait_for_reply -> wait for another reply from an earlier
request
Examples of tcp_request qualifiers:
host={host} -> host IP name to send request to
port={port} -> port to send request to
request={type}={value},... -> request buffer specification
string -> request is a simple string
null_terminate -> null terminate the request
reply_data={type},... -> reply buffer specification
reply_length={length} -> reply buffer length
reply_struct={struct} -> specify named reply structure
string_reply -> reply is a simple string
reply_value={variable} -> specify a variable to return
the reply value
reply_length_value={variable} -> specify a variable to return
the length of the reply in bytes
no_display -> don't display the reply
swap_bytes -> swap bytes in the request and reply
swap_words -> swap words in the request and reply
ieee_to_dec -> convert between IEEE and DEC floating
point formats
allow_truncated -> allow replies that are smaller than
what was requested with the
missing bytes set to zero
timeout={seconds} -> request timeout
usm -> specify a USM (default is nonUSM)
output={spec} -> specify output destination
Examples:
tcp_request/host=cfss/port=23/string/string_reply/null_terminate \
'0024,cnctn,open,1,demo;'
Synonyms: tcpRequest
Related commands:
acnet_request
-------------------------------------------------------------------------------
timer : determine time intervals
timer/{qualifier}] {name}
This command allows the user to define and read timers that
calculate time intervals in the script. This command also
supports defining timers which can return the time since a
requested clock event.
Examples of timer qualifiers:
create -> creates a timer
read -> reads an existing timer
reset -> resets an existing timer
delete -> deletes an existing timer
event={event value} -> specifies a time since event timer
value={variable|symbol} -> specifies output variable for timer read
output={spec} -> specify output destination
Examples:
timer/create timer1 # create timer
timer/read timer1 # read the timer
value = timer(timer1) # read the timer
timer/create/event=2 event_timer # create a time since event timer
Related commands:
none
-------------------------------------------------------------------------------
tlg_info : read information about events generated by the TLG
tlg_info[/{qualifier}] [{event}]
This command displays information about clock events generated
by the timeline generator (TLG).
Examples of tlg_info qualifiers:
{machine} -> machine to extract TLG information for
(booster, mi, tevatron, accumulator,
debuncher, recycler, switchyard, numi)
event_times -> retrieve the times that a given event
will occur
reset_info -> retrieve reset information including
events, state IDs, and times
cycle_limits -> retrieve the minimum and maximum cycle
lengths for a given machine
cycle_lengths -> retrieve events and cycle lengths
supercycle_length -> retrieve the length of the supercycle
events={variable} -> specify an array to return event numbers
states={variable} -> specify an array to return state ID values
times={variable} -> specify an array to return event times
lengths={variable} -> specify an array to return cycle lengths
num_values={variable} -> specify a variable to return the data count
suppress_errors -> suppress an error if one occurs so that
the script does not exit
verbose -> generate verbose output
output={spec} -> specify output destination
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
Examples:
tlg_info/reset_info/mi # retrieve Main Injector reset info
tlg_info/event_times 23 # retrieve times for event 23
Synonyms: tlgInfo
Related commands:
event_info, mdat_info, event_log, state_log
-------------------------------------------------------------------------------
unescape : replace escape characters in a string
unescape/{type}[/{qualifier}] {string}
This command replaces escape characters in a string with their
ASCII counterparts. The types of escape characters supported
by this command include: URL, HTML, and C/C++.
This command sets the $_string symbol if successful.
Examples of unescape qualifiers:
type={escape_type} -> set escape character type
(url, html, c)
{escape_type} -> set escape character type
(url, html, c)
convert -> convert embedded device and variable
values in the extracted string
Examples:
unescape/url 'This+string%20contains+URL%20encoding%2E'
Synonyms: str_unescape
Related commands:
str_find, str_replace, str_format, str_case, str_cat,
str_compare, substring, str_tail, str_split, str_convert,
str_trim, str_length
-------------------------------------------------------------------------------
user_info : display console user or console node information
user_info[/{qualifier}][/output={spec}] {user_name|node_name}
This command displays information concerning users including
a full name, active/inactive status, extension, ID number,
permissions, and console class memberships. This command sets
the global symbol, $_value, to the count of users found.
Examples of user_info qualifiers:
exact -> display exact name matches only
inactive -> match even inactive entries
(default is active entries only)
user_phone -> phone information
acl -> display user ACL privilege information
subscribed_programs -> display the list of programs subscribed to
by the user
node -> display console node information
match={param} -> search for something other than a user name
(phone, email, mail, location, affiliation)
phone={phone number} -> search for users with a given phone extension
email={email} -> search for users with a given email address
num_users={variable} -> specify a variable to return the number
of users found
name_value={variable} -> specify a variable to return the
user names found
full_name_value={var} -> specify a variable to return the
full user names found
phone_value={variable} -> specify a variable to return the
phone extensions found
email_value={variable} -> specify a variable to return the
emails found
no_display -> suppress display of user information
output={spec} -> specify output destination
Examples of output specifications:
mail:{user_name} -> send mail to a user
file:{file_name} -> send output to a file
Examples:
user_info hendricks
user_info/exact hendricks
user_info/inactive josh
Synonyms: userInfo
Related commands:
program_info, console_info, node_info, switch_info, event_info,
tlg_info, mdat_info, clib_info, fshare_info, file_info
-------------------------------------------------------------------------------
url_display : display a URL in a web browser
url_display[/{qualifier}][/console={cns}] [{cns}] {URL string}
(Note: Arguments enclosed in square brackets are optional.)
This command can be used to display a simple URL. It can also
be used to display the help URLs for ACNET nodes, devices,
and programs. This command only affects the console web browser
that is used for console application help.
Examples of url_display qualifiers:
node -> treat the URL as an ACNET node name and
display the URL describing that node
device -> treat the URL as an ACNET device name and
display the URL describing that device
alarm -> treat the URL as an ACNET device name and
display the alarm help URL for that device
program -> treat the URL as an ACNET program name and
display the URL describing that program
early_bird -> treat the URL as a reference to an MCR
early bird report
clib -> treat the URL as a reference to a
CLIB routine
user_library -> treat the URL as a reference to a
user library routine
apphome -> display the home page for application help
palist -> diplay the page which lists help for all PAs
salist -> diplay the page which lists help for all SAs
wild[card] -> wildcard a library routine name
list -> simply display the URL itself
get -> retrieve and output the requested page
Examples:
url_display/console=134 http://www-bd.fnal.gov/controls
url_display 134 http://www-bd.fnal.gov/controls
url_display http://www-bd.fnal.gov/controls # display locally
url_display/node/console=134 tev # display node info
url_display/device/console=134 m:outtmp # display device info
url_display/program/console=134 c48 # display program info
url_display/program/console=this_console c48
url_display/list/device m:outtmp
url_display/get/device m:outtmp
url_display/early_bird
Synonyms: url, urlDisplay
Related commands:
read_file
-------------------------------------------------------------------------------
web_log : make an entry in a web-based log book
web_log/log={log}/source={source}[/subsource={subsource}][/{qualifier}] [{comment}]
The web_log command provides the capability of making an entry in
a web-based log book. If a comment string is specified, you can embed
ACNET device values in the comment string by enclosing the device name
in curly braces (eg. "Store # = {t:store}"). Use of this command may
require special privileges. See Brian Hendricks (hendricks@fnal.gov)
for more information.
Examples of web_log qualifiers:
comment -> insert a comment in the log (default)
chapter -> insert a new chapter in the log
url (web_page) -> insert a web page in the log
svg_url -> insert a web page containing an SVG image
in the log
png_url -> insert a web page containing a PNG image
in the log
gif_url -> insert a web page containing a GIF image
in the log
job_status -> return the current server job status for
the specified log
log={log_name} -> web log name
source={string} -> set the log source value (required)
subsource={string} -> set the log subsource value
author={string} -> set the log author value
comment={string} -> comment to insert in the log
(can contain embedded device values)
url={string} -> URL of web page to insert in the log
(can contain embedded device values)
title={string} -> title of new chapter to insert in the log
(can contain embedded device values)
by_id -> specify console windows by ID
by_title -> specify console windows by title
image=({cns}:{win},...) -> console window to insert in the log
no_send -> inhibit the actual log entry
verbose -> verbose output
Examples:
web_log/log=quenchlog/source='BLM/BPM'/subsource=0/author=me "This is a comment."
Synonyms: webLog
Related commands:
shot_log
-------------------------------------------------------------------------------
cnswin : move, resize, or iconify a console window
cnswin/qualifier[={value}] {console} {window|slot|program}
This command supports manipulation of console program windows.
These operations include moving, resizing, and iconifying
windows. The window may be specified by program name, program
slot, or window identifier. Use of this command may require
special privileges. See Brian Hendricks (hendricks@fnal.gov)
for more information.
Examples of cnswin qualifiers:
raise -> pop the window to the front
lower -> push the window to the back
iconify -> iconify the window
home -> place the window at the origin
center -> center the window on the root window
size={small|medium|large|not_large}
-> set the size of the window
x[_pos]={coordinate} -> set X position of window
y[_pos]={coordinate} -> set Y position of window
title[={new title}] -> set the window title
Examples:
cnswin/raise 134 pa # pop PA window on console 134
cnswin/lower 134 d80 # hide D80 application
cnswin/home local sa # put local SA window at origin
cnswin/title local gxpa_1 'None' # set the title of GxPA1
Related commands:
image_draw
-------------------------------------------------------------------------------
cns_message : send a console message
cns_message[/qualifier[={value}]] {console} {message} {color} {num_beeps}
This command sends a console message. Use of this command may
require special privileges. See Brian Hendricks (hendricks@fnal.gov)
for more information.
Examples of cns_message qualifiers:
cns={console number} -> specify the console number
message={message} -> specify the message text (or file name)
file -> retrieve the message from a text file
color={color} -> specify the text color (default is white)
convert -> convert embedded device and variable
values in the message (or file name) string
no_set -> suppress actual sending the message
verbose -> verbose output
output={spec} -> specify output destination
Examples:
cns_message 134 "Hello world"
cns_message 134 "Hello world" green
Synonyms: cnsMessage, console_message, consoleMessage
Related commands:
none
-------------------------------------------------------------------------------
image_draw : display a graphic image
image_draw [/qualifier=[{value}]] [{cns}] [{window}] {file_name}
(Note: Arguments enclosed in square brackets are optional.)
This command presently supports three image types: Lex Draw,
LXI, and GIF. The Lex Draw and LXI images will be displayed
in the specified console window. GIF images are displayed in
XV application.
Examples of image_draw qualifiers:
type={type} -> image type
("lex_draw" -> Lex Draw image,
"lxi" -> LXI image,
"gif" -> GIF image)
{type} -> image type
("lex_draw" -> Lex Draw image,
"lxi" -> LXI image,
"gif" -> GIF image)
console={num} -> console number
window={win} -> console window (not used for GIF images)
resize -> resize the window (no value passed)
(not used for GIF images)
no_resize -> don't resize the window (no value passed)
(not used for GIF images)
number={num} -> image number (Lex Draw images only)
display_type -> Lex Draw image display type
("display" -> normal display (default),
"no_erase" -> don't erase window,
"blink" -> display blinking image)
x_pos={pos} -> X position in window (LXI images only)
y_pos={pos} -> Y position in window (LXI images only)
color_map={map} -> color map
("default" -> default color map,
"gray_scale" -> gray scale color map,
"private" -> private color map)
(LXI images only)
Examples:
image_draw 134 sa 'a1refrig'/number=1 # display Lex Draw image
image_draw 134 sa '/usr/local/userb/pic/lexdraw/autumn_hirise.lxi'
image_draw 134 '/usr/local/userb/pic/art/objects/cat.gif'
Synonyms: imageDraw
Related commands:
cnswin
-------------------------------------------------------------------------------
Related functions:
intro_acl_usage, acl_compile_c, acl_execute_c, acl_file_execute_c,
acl_file_read_c, acl_file_write_c, acl_file_stats_c, acl_free_c,
acl_read_symbol_c, acl_read_symbol_info_c, acl_read_symbol_names,
acl_set_symbol_c, acl_delete_symbol, acl_info_c, acl_cancel_requests_c,
acl_get_devices_c, acl_close, acl_command_text, acl_log_file_c,
acl_default_data_source_c, acl_default_script_path_c,
acl_register_host_request_func, acl_unregister_host_request_func,
acl_register_user_exit_handler, acl_unregister_user_exit_handler,
acl_script_is_executing, acl_translate_command_string,
acl_value_type_to_string_c, spawn_acl_script_c, device_listing_c