Files
cdev-1.7.2n/doc/html/cdevUtilities.html
2022-12-13 12:44:04 +01:00

590 lines
20 KiB
HTML
Executable File

<! This document generated using mif2html Version 1.0 - Walt Akers - 1996 !>
<head>
<title>CDEV Documentation</title>
</head>
<body bgcolor="#E0E0FF">
<body>
<! ************************ FILE : cdevUtilitiesTITLE.mif *****************************!>
<br><hr><br>
<table width=100%>
<tr><td>
<! ***** Empty Column ***** !>
</td>
<td valign=top>
<!*** Start ADDRESS ***!><font size=+12 color=Black><strong><em>
CDEV Utilities
<!*** Finish ADDRESS ***!></p></strong></em></font>
<!*** Start ADDRESS-SUBHEAD ***!><font size=+2 color=Black><strong>
Utility Applications of the Control Device Interface
<!*** Finish ADDRESS-SUBHEAD ***!></p></strong></font>
<!*** Start ADDRESS-VERSION ***!><font size=+2 color=Black>
</p>
Chip Watson, Jie Chen, Danjin Wu, Walt Akers
</p>
</p>
Version 1.5 - December 9, 1996
</p>
</p>
TJNAF - Thomas Jefferson National Accelerator Facility
<!*** Finish ADDRESS-VERSION ***!></p></font>
</td></tr>
</table>
<! *************************** TABLE OF CONTENTS ****************************!>
<br><hr><br>
<table width=100%>
<tr><td>
<! ***** Empty Column ***** !>
</td>
<td valign=top align=center>
<!*** Start CLASS-TOC-TITLE ***!><font size=+3><strong>
Table of Contents
<!*** Finish CLASS-TOC-TITLE ***!></p></strong></font>
</td></tr>
<tr><td>
<! ***** Empty Column ***** !>
</td>
<td valign=top>
<table>
<tr><td valign=top align=right>
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
1.
<!*** Finish HEADING1TOC ***!><br></font>
</td>
<td valign=top>
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
<a href="cdevUtilities.html#TOCREF1">The <em>cdevUtil </em>Command Line Utility</a>
<!*** Finish HEADING1TOC ***!><br></font>
</td></tr>
<tr><td valign=top>
<!*** Start UHEADING2TOC ***!><font size=+1 color=Black>
<!*** Finish UHEADING2TOC ***!><br></font>
</td>
<td valign=top>
<!*** Start UHEADING2TOC ***!><font size=+1 color=Black>
<a href="cdevUtilities.html#TOCREF2">Overview</a>
<!*** Finish UHEADING2TOC ***!><br></font>
</td></tr>
<tr><td valign=top>
<!*** Start UHEADING2TOC ***!><font size=+1 color=Black>
<!*** Finish UHEADING2TOC ***!><br></font>
</td>
<td valign=top>
<!*** Start UHEADING2TOC ***!><font size=+1 color=Black>
<a href="cdevUtilities.html#TOCREF3">Location of Files</a>
<!*** Finish UHEADING2TOC ***!><br></font>
</td></tr>
<tr><td valign=top>
<!*** Start UHEADING2TOC ***!><font size=+1 color=Black>
<!*** Finish UHEADING2TOC ***!><br></font>
</td>
<td valign=top>
<!*** Start UHEADING2TOC ***!><font size=+1 color=Black>
<a href="cdevUtilities.html#TOCREF4">Starting cdevUtil</a>
<!*** Finish UHEADING2TOC ***!><br></font>
</td></tr>
<tr><td valign=top>
<!*** Start UHEADING2TOC ***!><font size=+1 color=Black>
<!*** Finish UHEADING2TOC ***!><br></font>
</td>
<td valign=top>
<!*** Start UHEADING2TOC ***!><font size=+1 color=Black>
<a href="cdevUtilities.html#TOCREF5">Arguments to cdevUtil</a>
<!*** Finish UHEADING2TOC ***!><br></font>
</td></tr>
<tr><td valign=top>
<!*** Start UHEADING2TOC ***!><font size=+1 color=Black>
<!*** Finish UHEADING2TOC ***!><br></font>
</td>
<td valign=top>
<!*** Start UHEADING2TOC ***!><font size=+1 color=Black>
<a href="cdevUtilities.html#TOCREF6">Syntax of cdevUtil Commands</a>
<!*** Finish UHEADING2TOC ***!><br></font>
</td></tr>
<tr><td valign=top>
<!*** Start UHEADING2TOC ***!><font size=+1 color=Black>
<!*** Finish UHEADING2TOC ***!><br></font>
</td>
<td valign=top>
<!*** Start UHEADING2TOC ***!><font size=+1 color=Black>
<a href="cdevUtilities.html#TOCREF7">Exiting from cdevUtil</a>
<!*** Finish UHEADING2TOC ***!><br></font>
</td></tr>
<tr><td valign=top>
<!*** Start UHEADING2TOC ***!><font size=+1 color=Black>
<!*** Finish UHEADING2TOC ***!><br></font>
</td>
<td valign=top>
<!*** Start UHEADING2TOC ***!><font size=+1 color=Black>
<a href="cdevUtilities.html#TOCREF8">cdevUtil Internal Commands</a>
<!*** Finish UHEADING2TOC ***!><br></font>
</td></tr>
<tr><td valign=top align=right>
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
2.
<!*** Finish HEADING1TOC ***!><br></font>
</td>
<td valign=top>
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
<a href="cdevUtilities.html#TOCREF9">The <em>cddl </em>Device Definition File Compiler</a>
<!*** Finish HEADING1TOC ***!><br></font>
</td></tr>
<tr><td valign=top>
<!*** Start UHEADING2TOC ***!><font size=+1 color=Black>
<!*** Finish UHEADING2TOC ***!><br></font>
</td>
<td valign=top>
<!*** Start UHEADING2TOC ***!><font size=+1 color=Black>
<a href="cdevUtilities.html#TOCREF10">Overview</a>
<!*** Finish UHEADING2TOC ***!><br></font>
</td></tr>
<tr><td valign=top>
<!*** Start UHEADING2TOC ***!><font size=+1 color=Black>
<!*** Finish UHEADING2TOC ***!><br></font>
</td>
<td valign=top>
<!*** Start UHEADING2TOC ***!><font size=+1 color=Black>
<a href="cdevUtilities.html#TOCREF11">Location of Files</a>
<!*** Finish UHEADING2TOC ***!><br></font>
</td></tr>
<tr><td valign=top>
<!*** Start UHEADING2TOC ***!><font size=+1 color=Black>
<!*** Finish UHEADING2TOC ***!><br></font>
</td>
<td valign=top>
<!*** Start UHEADING2TOC ***!><font size=+1 color=Black>
<a href="cdevUtilities.html#TOCREF12">Using the cddl Compiler</a>
<!*** Finish UHEADING2TOC ***!><br></font>
</td></tr>
</table>
</td></tr>
</table>
<! **************************** LIST OF FIGURES *****************************!>
<br><hr><br>
<table width=100%>
<tr><td>
<! ***** Empty Column ***** !>
</td>
<td valign=top align=center>
<!*** Start CLASS-LOF-TITLE ***!><font size=+3><strong>
List of Figures
<!*** Finish CLASS-LOF-TITLE ***!></p></strong></font>
</td></tr>
<tr><td>
<! ***** Empty Column ***** !>
</td>
<td valign=top>
<!*** Start FIGURE1LOF ***!><font size=+1 color=Black>
Figure 1:
<a href="cdevUtilities.html#LOFREF1">Submitting batch commands to cdevUtil</a>
<!*** Finish FIGURE1LOF ***!><br></font>
<!*** Start FIGURELOF ***!><font size=+1 color=Black>
Figure 2:
<a href="cdevUtilities.html#LOFREF2">Entering commands using cdevUtil</a>
<!*** Finish FIGURELOF ***!><br></font>
<!*** Start FIGURELOF ***!><font size=+1 color=Black>
Figure 3:
<a href="cdevUtilities.html#LOFREF3">Typical output from the cddl compiler</a>
<!*** Finish FIGURELOF ***!><br></font>
</td></tr>
</table>
<! ************************ FILE : ./cdevUtilities.mif *****************************!>
<br><hr><br>
<table width=100%>
<tr><td valign=top align=right>
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
1.
<!*** Finish HEADING1 ***!></p></strong></font>
</td>
<td valign=top>
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
<a name="TOCREF1">
The <em>cdevUtil </em>Command Line Utility
</a> <!*** Finish HEADING1 ***!></p></strong></font>
</td></tr>
<tr><td valign=top>
<!*** Start UHEADING2 ***!><font size=+1 color=Black><strong>
<a name="TOCREF2">
Overview
</a> <!*** Finish UHEADING2 ***!></p></strong></font>
</td>
<td valign=top>
<!*** Start BODY ***!><font size=+1 color=Black>
The cdevUtil application provides cdev user's with a simple application that can be
used to communicate with cdev services. This program provides a direct interface to
most of the capabilities of cdev and is commonly used to test a newly created service
or to ensure that changes made to a DDL file are behaving as expected.
<!*** Finish BODY ***!></p></font>
</td></tr>
<tr><td valign=top>
<!*** Start UHEADING2 ***!><font size=+1 color=Black><strong>
<a name="TOCREF3">
Location of Files
</a> <!*** Finish UHEADING2 ***!></p></strong></font>
</td>
<td valign=top>
<!*** Start BODY ***!><font size=+1 color=Black>
The source code for cdevUtil is located in the <strong><em>$(CDEV)/src/utility </strong></em>directory. This
application is automatically compiled whenever the cdev library is built. The binary
executable is placed in the directory <strong><em>$(CDEV)/bin/$(TARGET)</strong></em> when the application is
compiled<strong><em>. </strong></em>Once the cdev libraries and applications are compiled, this directory should
be placed in your search path.
<!*** Finish BODY ***!></p></font>
</td></tr>
<tr><td valign=top>
<!*** Start UHEADING2 ***!><font size=+1 color=Black><strong>
<a name="TOCREF4">
Starting cdevUtil
</a> <!*** Finish UHEADING2 ***!></p></strong></font>
</td>
<td valign=top>
<!*** Start BODY ***!><font size=+1 color=Black>
The cdevUtil utility is executed from the UNIX command line by typing <em>cdevUtil
&lt;Return&gt;</em>. If the cdev binary directory is not in your path, then you will have to provide
the complete path on the command line. The CDEVDDL environment variable should
be specified prior to starting the utility because cdevUtil will use this environment
variable to locate and load the device definition file.<em></em>
<!*** Finish BODY ***!></p></font>
</td></tr>
<tr><td valign=top>
<!*** Start UHEADING2 ***!><font size=+1 color=Black><strong>
<a name="TOCREF5">
Arguments to
cdevUtil
</a> <!*** Finish UHEADING2 ***!></p></strong></font>
</td>
<td valign=top>
<!*** Start BODY ***!><font size=+1 color=Black>
When starting the cdevUtil utility, the user may provide a list of strings as arguments.
Each of these strings will be treated as a single command and will be processed
before the command line prompt is displayed. Any command that is supported by
cdevUtil may be submitted as an argument, including, &quot;<em>debug on</em>&quot;, &quot;<em>debug off</em>&quot;, and
<em>&quot;quit</em>&quot;. The syntax of individual commands is described in the section titled <strong><em>Syntax of
cdevUtil Commands.</strong></em>
</p>
The following figure shows how three command line arguments can be submitted to
cdevUtil to be processed in batch mode.
</p>
<!*** Finish BODY ***!></p></font>
<!*** Start FIGURE1 ***!><font size=+0 color=Black><em>
Figure 1:
<a name="LOFREF1">
Submitting batch commands to cdevUtil
<table border=1><tr><td>
<table>
<tr><td>
<! ***** Empty Column ***** !>
</td>
<td valign=top>
<!*** Start PROGRAM ***!><pre><font size=+0 color=Black>
host1:&gt; cdevUtil &quot;debug on&quot; &quot;IPM1S01 set VAL value=25.0&quot; &quot;quit&quot;
Submitting batch cdev commands...
-------------------- DEBUG OUTPUT -------------------
Attempting to transmit using the following parameters
Device: IPM1S01
Verb: set
Attrib: VAL
Tag: value = 25
SUCCESS: Device: IPM1S01 - Message: set VAL - Value: None
------------------ END DEBUG OUTPUT -----------------
host1:&gt;
<!*** Finish PROGRAM ***!></font></pre>
</td></tr>
</table>
</tr></td></table>
<AFrame 5>
</a> <!*** Finish FIGURE1 ***!></p></em></font>
</td></tr>
<tr><td valign=top>
<!*** Start UHEADING2 ***!><font size=+1 color=Black><strong>
<a name="TOCREF6">
Syntax of cdevUtil
Commands
</a> <!*** Finish UHEADING2 ***!></p></strong></font>
</td>
<td valign=top>
<!*** Start BODY ***!><font size=+1 color=Black>
The cdevUtil utility uses a simple syntax with the following format:
<!*** Finish BODY ***!></p></font>
<table>
<tr><td width=5% valign=top>
</td>
<td valign=top>
<!*** Start Indented ***!><font size=+1 color=Black>
<em>deviceName verb attributeName tag1=xxx tag2=xxx ...</em>
</p>
<!*** Finish Indented ***!></p></font>
<table>
<tr><td valign=top>
<!*** Start FUNC_NAME_INDENTED ***!><font size=+1 color=Black><strong>
<em>deviceName</em>
<!*** Finish FUNC_NAME_INDENTED ***!></p></strong></font>
</td>
<td valign=top>
<!*** Start FUNC_DEF ***!><font size=+1 color=Black>
The name of the cdev device that the message should be sent
to.
<!*** Finish FUNC_DEF ***!></p></font>
</td></tr>
<tr><td valign=top>
<!*** Start FUNC_NAME_INDENTED ***!><font size=+1 color=Black><strong>
<em>verb</em>
<!*** Finish FUNC_NAME_INDENTED ***!></p></strong></font>
</td>
<td valign=top>
<!*** Start FUNC_DEF ***!><font size=+1 color=Black>
The verb component of the message string. For a channel
access device this will be get, set, monitorOn or monitorOff.
<!*** Finish FUNC_DEF ***!></p></font>
</td></tr>
<tr><td valign=top>
<!*** Start FUNC_NAME_INDENTED ***!><font size=+1 color=Black><strong>
<em>attributeName</em>
<!*** Finish FUNC_NAME_INDENTED ***!></p></strong></font>
</td>
<td valign=top>
<!*** Start FUNC_DEF ***!><font size=+1 color=Black>
The name of the cdev device attribute that the verb will be
executed on.
<!*** Finish FUNC_DEF ***!></p></font>
</td></tr>
<tr><td valign=top>
<!*** Start FUNC_NAME_INDENTED ***!><font size=+1 color=Black><strong>
<em>tag=xxxx</em>
<!*** Finish FUNC_NAME_INDENTED ***!></p></strong></font>
</td>
<td valign=top>
<!*** Start FUNC_DEF ***!><font size=+1 color=Black>
These entries are used to place information in the outbound
cdevData object. tag is the text string name of the cdevData
tag. xxxx is the value that should be placed in the tag. At this
time cdevUtil only supports the insertion of scalar values into
the cdevData object.
<!*** Finish FUNC_DEF ***!></p></font>
</td></tr>
</table>
<!*** Start BODY ***!><font size=+1 color=Black>
The following example shows the commands necessary to submit a request to get the
value of a device, and then set it to a new value.
<!*** Finish BODY ***!></p></font>
<!*** Start Indented ***!><font size=+1 color=Black>
<!*** Finish Indented ***!></p></font>
<!*** Start FIGURE ***!><font size=+0 color=Black><em>
Figure 2:
<a name="LOFREF2">
Entering commands using cdevUtil
<table border=1><tr><td>
<table>
<tr><td>
<! ***** Empty Column ***** !>
</td>
<td valign=top>
<!*** Start PROGRAM ***!><pre><font size=+0 color=Black>
host1:&gt; cdevUtil
&gt;
&gt; SUCCESS: Device: IPM1S01 - Message: get VAL - Value: 0
&gt;
&gt; SUCCESS: Device: IPM1S01 - Message: set VAL - Value: None
&gt;
host1:&gt;
<!*** Finish PROGRAM ***!></font></pre>
</td></tr>
</table>
</tr></td></table>
<AFrame 1>
</a> <!*** Finish FIGURE ***!></p></em></font>
</td></tr>
</table>
</td></tr>
<tr><td valign=top>
<!*** Start UHEADING2 ***!><font size=+1 color=Black><strong>
<a name="TOCREF7">
Exiting from
cdevUtil
</a> <!*** Finish UHEADING2 ***!></p></strong></font>
</td>
<td valign=top>
<!*** Start BODY ***!><font size=+1 color=Black>
In order to exit from cdevUtil, the user must type <strong><em>quit &lt;Return&gt;</strong></em>. This will remove any
monitors that might have been created and will terminate the session.
<!*** Finish BODY ***!></p></font>
</td></tr>
<tr><td valign=top>
<!*** Start UHEADING2 ***!><font size=+1 color=Black><strong>
<a name="TOCREF8">
cdevUtil Internal
Commands
</a> <!*** Finish UHEADING2 ***!></p></strong></font>
</td>
<td valign=top>
<!*** Start BODY ***!><font size=+1 color=Black>
The following commands are processed by the cdevUtil application and are not
passed through to cdev.
<!*** Finish BODY ***!></p></font>
<table>
<tr><td valign=top>
<!*** Start FUNC_NAME_INDENTED ***!><font size=+1 color=Black><strong>
<em>debug on</em>
<!*** Finish FUNC_NAME_INDENTED ***!></p></strong></font>
</td>
<td valign=top>
<!*** Start FUNC_DEF ***!><font size=+1 color=Black>
This message tells cdevutil that the user wants extremely
verbose output. When this is flag is set, the complete contents
of the incoming and outgoing cdevData objects will be
displayed. Typically only the value field of the incoming
cdevData object is displayed.
<!*** Finish FUNC_DEF ***!></p></font>
</td></tr>
<tr><td valign=top>
<!*** Start FUNC_NAME_INDENTED ***!><font size=+1 color=Black><strong>
<em>debug off</em>
<!*** Finish FUNC_NAME_INDENTED ***!></p></strong></font>
</td>
<td valign=top>
<!*** Start FUNC_DEF ***!><font size=+1 color=Black>
This message tells cdevUtil to stop displaying verbose output.
<!*** Finish FUNC_DEF ***!></p></font>
</td></tr>
<tr><td valign=top>
<!*** Start FUNC_NAME_INDENTED ***!><font size=+1 color=Black><strong>
<em>help</em>
<!*** Finish FUNC_NAME_INDENTED ***!></p></strong></font>
</td>
<td valign=top>
<!*** Start FUNC_DEF ***!><font size=+1 color=Black>
This command causes cdevUtil to display an simple help
screen that describes its usage and internal commands.
<!*** Finish FUNC_DEF ***!></p></font>
</td></tr>
<tr><td valign=top>
<!*** Start FUNC_NAME_INDENTED ***!><font size=+1 color=Black><strong>
<em>quit</em>
<!*** Finish FUNC_NAME_INDENTED ***!></p></strong></font>
</td>
<td valign=top>
<!*** Start FUNC_DEF ***!><font size=+1 color=Black>
This command terminates the cdevUtil utility.
<!*** Finish FUNC_DEF ***!></p></font>
</td></tr>
</table>
</td></tr>
<tr><td valign=top align=right>
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
2.
<!*** Finish HEADING1 ***!></p></strong></font>
</td>
<td valign=top>
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
<a name="TOCREF9">
The <em>cddl </em>Device Definition File Compiler
</a> <!*** Finish HEADING1 ***!></p></strong></font>
</td></tr>
<tr><td valign=top>
<!*** Start UHEADING2 ***!><font size=+1 color=Black><strong>
<a name="TOCREF10">
Overview
</a> <!*** Finish UHEADING2 ***!></p></strong></font>
</td>
<td valign=top>
<!*** Start BODY ***!><font size=+1 color=Black>
The cddl compiler is used to convert the ascii text device definition files into a binary,
pre-processed device definition file. The binary DDL files load as much as twenty
times faster than their ascii text based counterparts. Additionally, the cddl compiler
confirms that no syntax errors exist in the ascii data files when they are compiled.
Therefore, this tool is also effect in validating the syntax and structure of the DDL files.
<!*** Finish BODY ***!></p></font>
</td></tr>
<tr><td valign=top>
<!*** Start UHEADING2 ***!><font size=+1 color=Black><strong>
<a name="TOCREF11">
Location of Files
</a> <!*** Finish UHEADING2 ***!></p></strong></font>
</td>
<td valign=top>
<!*** Start BODY ***!><font size=+1 color=Black>
The source code for cddl is located in the <strong><em>$(CDEV)/src/utility </strong></em>directory. This
application is automatically compiled whenever the cdev library is built. The binary
executable is placed in the directory <strong><em>$(CDEV)/bin/$(TARGET)</strong></em> when the application is
compiled<strong><em>. </strong></em>Once the cdev libraries and applications are compiled, this directory should
be placed in your search path.
<!*** Finish BODY ***!></p></font>
</td></tr>
<tr><td valign=top>
<!*** Start UHEADING2 ***!><font size=+1 color=Black><strong>
<a name="TOCREF12">
Using the cddl
Compiler
</a> <!*** Finish UHEADING2 ***!></p></strong></font>
</td>
<td valign=top>
<!*** Start BODY ***!><font size=+1 color=Black>
The syntax of cddl is very similar to that of the C preprocessor. The following is a
sample command line for compiling the device definition file.
<!*** Finish BODY ***!></p></font>
<table>
<tr><td width=5% valign=top>
</td>
<td valign=top>
<!*** Start Indented ***!><font size=+1 color=Black>
cddl inputfile -o outputfile
<!*** Finish Indented ***!></p></font>
<!*** Start BODY ***!><font size=+1 color=Black>
It is important to note that the <strong><em>inputfile </strong></em>parameter must contain a complete path
specification to the device definition file. Any errors will be reported to the screen. The
following is the typical output from executing the cddl compiler.
</p>
<!*** Finish BODY ***!></p></font>
<!*** Start FIGURE ***!><font size=+0 color=Black><em>
Figure 3:
<a name="LOFREF3">
Typical output from the cddl compiler
<table border=1><tr><td>
<table>
<tr><td>
<! ***** Empty Column ***** !>
</td>
<td valign=top>
<!*** Start PROGRAM ***!><pre><font size=+0 color=Black>
host1:&gt; cddl ~mccops/ddl/master.ddl -o master.bdd
converted from ascii to binary ddl file!
host1:&gt;
<!*** Finish PROGRAM ***!></font></pre>
</td></tr>
</table>
</tr></td></table>
<AFrame 3>
</a> <!*** Finish FIGURE ***!></p></em></font>
<!*** Start BODY ***!><font size=+1 color=Black>
<!*** Finish BODY ***!></p></font>
<!*** Start Indented ***!><font size=+1 color=Black>
<!*** Finish Indented ***!></p></font>
</td></tr>
</table>
</td></tr>
</table>
</body>