cdev-1.7.2n
This commit is contained in:
Executable
BIN
Binary file not shown.
|
After Width: | Height: | Size: 948 B |
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
+283
@@ -0,0 +1,283 @@
|
||||
# fm2html tags file
|
||||
# The tags file defines the correspondence between FrameMaker tags and the
|
||||
# tags used by fm2html. This file can be edited so that your FrameMaker
|
||||
# files will be translated "correctly". Each line in the file is made up
|
||||
# of a pair of tag names. The first specifies the FrameMaker tag and the
|
||||
# second specifies the internal tag that it corresponds to. Each FrameMaker
|
||||
# tag may only be bound to one internal tag, but it can be bound to an
|
||||
# internal tag already bound to another FrameMaker tag. The '#' character
|
||||
# denotes a comment; the rest of the line is considered a comment. The tag
|
||||
# names must be written in the correct case (lower/upper/mixed).
|
||||
|
||||
HEADING0 HEADING0 # These are translated to HTML headings <H1>
|
||||
HEADING1 HEADING1 # to <H6> (HEADING0 becomes <H1>, HEADING1
|
||||
HEADING2 HEADING2 # becomes <H2>, etc.). Links to them are
|
||||
HEADING3 HEADING3 # placed in the automatically generated table
|
||||
HEADING4 HEADING4 # of contents. The FrameMaker paragraph
|
||||
HEADING5 HEADING5 # numbering is used. You probably don't want
|
||||
HEADING6 HEADING6 # to use HEADING0, as TITLE and LOCALTITLE are
|
||||
# translated to <H1>. HEADING6 is translated
|
||||
# to <H6> as there is no <H7> in basic HMTL.
|
||||
|
||||
UHEADING0 UHEADING0 # These are translated to HTML headings <H1>
|
||||
UHEADING1 UHEADING1 # to <H6>; however, they are omitted from the
|
||||
UHEADING2 UHEADING2 # automatically generated table of contents.
|
||||
UHEADING3 UHEADING3 # The FrameMaker paragraph numbering is used.
|
||||
UHEADING4 UHEADING4 # The comments above regarding HEADING0 and
|
||||
UHEADING5 UHEADING5 # HEADING6 also apply to UHEADING0 and
|
||||
UHEADING6 UHEADING6 # UHEADING6.
|
||||
|
||||
INDENTHEADING0 INDENTHEADING0 # These are the same as UHEADING, but are
|
||||
INDENTHEADING1 INDENTHEADING1 # indented one level using the HTML <UL> tag.
|
||||
INDENTHEADING2 INDENTHEADING2 # The comments above regarding HEADING0 and
|
||||
INDENTHEADING3 INDENTHEADING3 # HEADING6 also apply to INDENTHEADING0
|
||||
INDENTHEADING4 INDENTHEADING4 # and INDENTHEADING6.
|
||||
INDENTHEADING5 INDENTHEADING5
|
||||
INDENTHEADING6 INDENTHEADING6
|
||||
|
||||
BODY BODY # Normal text.
|
||||
|
||||
GLOSSARY1 GLOSSARY1 # FrameMaker lists of the type:
|
||||
GLOSSARY2 GLOSSARY2 # short<TAB>long text
|
||||
GLOSSARY3 GLOSSARY3 # short<TAB>long text
|
||||
COMGLOSSARY1 COMGLOSSARY1 # short<TAB>long text
|
||||
COMGLOSSARY2 COMGLOSSARY2 # etc.
|
||||
COMGLOSSARY3 COMGLOSSARY3 # Translated to :
|
||||
# <DL>
|
||||
# <DT>short<DD>long text
|
||||
# <DT>short<DD>long text
|
||||
# <DT>short<DD>long text
|
||||
# etc.
|
||||
# </DL>
|
||||
# If the paragraph type is COMGLOSSARY then
|
||||
# <DL> becomes <DL COMPACT>. This means that
|
||||
# the viewer will try to fit the short text
|
||||
# and the long text in one line. Otherwise
|
||||
# the short text will be on a separate line
|
||||
# with the long text below shifted to the
|
||||
# right. This should give a reasonable result
|
||||
# given that the short text is up to 4
|
||||
# characters long. Otherwise the long text is
|
||||
# displayed on a separate line (viewer-
|
||||
# dependent).
|
||||
#
|
||||
# GLOSSARY2, GLOSSARY3, COMGLOSSARY2 and
|
||||
# COMGLOSSARY3 are indented.
|
||||
|
||||
PROGRAM PROGRAM # Program code is considered to be
|
||||
# preformatted (<PRE> in HTML).
|
||||
|
||||
REFERENCE REFERENCE # Assumed to be FrameMaker lines of the type:
|
||||
COMREFERENCE COMREFERENCE # [1] Reference 1
|
||||
# [2] Reference 2
|
||||
# [3] Reference 3
|
||||
# etc.
|
||||
# where the [?] is the paragraph numbering.
|
||||
# Becomes:
|
||||
# <DL>
|
||||
# <DT>[1]<DD>Reference 1
|
||||
# <DT>[2]<DD>Reference 2
|
||||
# <DT>[3]<DD>Reference 3
|
||||
# etc.
|
||||
# </DL>
|
||||
# If the paragraph type is COMREFERENCE then
|
||||
# <DL> becomes <DL COMPACT>. This means that
|
||||
# the viewer will try to fit the paragraph
|
||||
# numbering and and the reference text in one
|
||||
# line. Otherwise the paragraph numbering
|
||||
# will be on a separate line with the
|
||||
# reference text below shifted to the right.
|
||||
|
||||
TITLE TITLE # The title of the document. It is always
|
||||
# moved to the head of the file (or indexfile),
|
||||
# before the automatically generated index.
|
||||
# Translates as HTML <H1>.
|
||||
|
||||
LOCALTITLE LOCALTITLE # The title of the current chapter or file.
|
||||
# Printed wherever it is. Translates as HTML
|
||||
# <H1>.
|
||||
|
||||
TOC TOC # Paragraphs with this tag are removed. All
|
||||
# paragraphs with paragraph tags with "TOC",
|
||||
# "IX", "LOT", "LOF", "AIX", "AML", "APL",
|
||||
# "IOM", "LOM", "LOP" or "SIX" in them are
|
||||
# also removed. They are assumed to be
|
||||
# generated by FrameMaker.
|
||||
|
||||
ADDRESS ADDRESS # Corresponds to the <ADDRESS> tag in HTML.
|
||||
|
||||
AUTHOR AUTHOR # The author of the document. This is moved
|
||||
# to the head of the file (or indexfile),
|
||||
# after the title and before the automatically
|
||||
# generated index). Uses <ADDRESS> HTML tag.
|
||||
|
||||
ABSTRACT ABSTRACT # The abstract is emphasized (<EM> tag in
|
||||
# HTML).
|
||||
|
||||
ACRONYM ACRONYM # This is handled the same as COMGLOSSARY.
|
||||
|
||||
LISTINDENT1 LISTINDENT1 # Non-consecutive lists with full indent
|
||||
LISTINDENT2 LISTINDENT2 # (HTML: <DL><DD>item)
|
||||
LISTINDENT3 LISTINDENT3
|
||||
LISTINDENT4 LISTINDENT4
|
||||
LISTINDENT5 LISTINDENT5
|
||||
LISTINDENT6 LISTINDENT6
|
||||
|
||||
LISTBULLET1 LISTBULLET1 # Non-consecutive lists with bullet as mark
|
||||
LISTBULLET2 LISTBULLET2 # (HTML: <UL><LI>item)
|
||||
LISTBULLET3 LISTBULLET3
|
||||
LISTBULLET4 LISTBULLET4
|
||||
LISTBULLET5 LISTBULLET5
|
||||
LISTBULLET6 LISTBULLET6
|
||||
|
||||
LISTMARK1 LISTMARK1 # Lists using MIF PgfNumString as mark
|
||||
LISTMARK2 LISTMARK2 # (HTML: <DL><DT>mark<DD>item)
|
||||
LISTMARK3 LISTMARK3
|
||||
LISTMARK4 LISTMARK4
|
||||
LISTMARK5 LISTMARK5
|
||||
LISTMARK6 LISTMARK6
|
||||
|
||||
LISTNUMBER1 LISTNUMBER1 # Numbered consecutive lists
|
||||
LISTNUMBER2 LISTNUMBER2 # (HTML: <OL><LI>item)
|
||||
LISTNUMBER3 LISTNUMBER3
|
||||
LISTNUMBER4 LISTNUMBER4
|
||||
LISTNUMBER5 LISTNUMBER5
|
||||
LISTNUMBER6 LISTNUMBER6
|
||||
|
||||
LISTCONTINUE1 LISTCONTINUE1 # Additional paragraphs in any type of list
|
||||
LISTCONTINUE2 LISTCONTINUE2
|
||||
LISTCONTINUE3 LISTCONTINUE3
|
||||
LISTCONTINUE4 LISTCONTINUE4
|
||||
LISTCONTINUE5 LISTCONTINUE5
|
||||
LISTCONTINUE6 LISTCONTINUE6
|
||||
|
||||
FIGURE FIGURE # Figure text is indented
|
||||
|
||||
TABLE TABLE # Table text is indented
|
||||
|
||||
CELLHEADING CELLHEADING # Table heading becomes bold
|
||||
CELLBODY CELLBODY # Table cells become normal text
|
||||
|
||||
FOOTNOTE BODY # Footnotes are treated as normal text
|
||||
|
||||
HTML1 HTML <P><B>;</B> # User defined tags. First specify start
|
||||
HTML2 HTML <P><B><I>;</I></B> # tag(s) then ; and then optional end tag(s).
|
||||
|
||||
# Add your own tag mappings below
|
||||
|
||||
Numbered LISTNUMBER1
|
||||
Indented LISTINDENT1
|
||||
FUNC_NAME BODY
|
||||
FUNC_PROTO BODY
|
||||
FUNC_DEF BODY
|
||||
FUNC_DEF2 BODY
|
||||
Bulleted LISTBULLET1
|
||||
OMT_METHOD BODY
|
||||
FIGURE_CONT BODY
|
||||
FUNCTION_DEF BODY
|
||||
Centered INDENTHEADING2
|
||||
Heading1 HEADING2
|
||||
Numbered1 LISTNUMBER1
|
||||
IndentedBold INDENTHEADING1
|
||||
HeadingRunIn INDENTHEADING1
|
||||
|
||||
Abstract ABSTRACT
|
||||
Acronym ACRONYM
|
||||
Address BODY
|
||||
Bibliography BODY
|
||||
Blank Page Msg BODY
|
||||
Body BODY
|
||||
Change TABLE
|
||||
Credit COMGLOSSARY1
|
||||
Doc (Applicable) COMREFERENCE
|
||||
Doc (Reference) COMREFERENCE
|
||||
Equation BODY
|
||||
Equation (Appendix) BODY
|
||||
Example BODY
|
||||
Figure Title FIGURE
|
||||
Figure TitleLOF BODY
|
||||
Figure Title (Appendix) FIGURE
|
||||
Footer BODY
|
||||
Footnote BODY
|
||||
Guideline BODY
|
||||
Header BODY
|
||||
Heading 1 HEADING1
|
||||
Heading 1TOC UHEADING1
|
||||
Heading 1 (Appendix) HEADING1
|
||||
Heading 1 (Appendix)TOC UHEADING1
|
||||
Heading 2 HEADING2
|
||||
Heading 2TOC UHEADING2
|
||||
Heading 2 (Appendix) HEADING2
|
||||
Heading 2 (Appendix)TOC UHEADING2
|
||||
Heading 3 HEADING3
|
||||
Heading 3TOC UHEADING3
|
||||
Heading 3 (Appendix) HEADING3
|
||||
Heading 3 (Appendix)TOC UHEADING3
|
||||
Heading 4 HEADING4
|
||||
Heading 4TOC UHEADING4
|
||||
Heading 4 (Appendix) HEADING4
|
||||
Heading 4 (Appendix)TOC UHEADING4
|
||||
Heading 5 HEADING5
|
||||
Heading 5TOC UHEADING5
|
||||
Heading 5 (Appendix) HEADING5
|
||||
Heading 5 (Appendix)TOC UHEADING5
|
||||
Heading 6 HEADING6
|
||||
Heading 6TOC UHEADING6
|
||||
Heading 6 (Appendix) HEADING6
|
||||
Heading 6 (Appendix)TOC UHEADING6
|
||||
List Initialize BODY
|
||||
List Bullet 1 LISTBULLET1
|
||||
List Bullet 2 LISTBULLET2
|
||||
List Bullet 3 LISTBULLET3
|
||||
List Bullet 4 LISTBULLET4
|
||||
List Bullet 5 LISTBULLET5
|
||||
List Bullet 6 LISTBULLET6
|
||||
List Char 1 LISTNUMBER1
|
||||
List Char 2 LISTNUMBER2
|
||||
List Char 3 LISTNUMBER3
|
||||
List Char 4 LISTNUMBER4
|
||||
List Char 5 LISTNUMBER5
|
||||
List Char 6 LISTNUMBER6
|
||||
List Num 1 LISTNUMBER1
|
||||
List Num 2 LISTNUMBER2
|
||||
List Num 3 LISTNUMBER3
|
||||
List Num 4 LISTNUMBER4
|
||||
List Num 5 LISTNUMBER5
|
||||
List Num 6 LISTNUMBER6
|
||||
List Cont 1 LISTCONTINUE1
|
||||
List Cont 2 LISTCONTINUE2
|
||||
List Cont 3 LISTCONTINUE3
|
||||
List Cont 4 LISTCONTINUE4
|
||||
List Cont 5 LISTCONTINUE5
|
||||
List Cont 6 LISTCONTINUE6
|
||||
List Hang 1 LISTMARK1
|
||||
List Hang 2 LISTMARK2
|
||||
List Hang 3 LISTMARK3
|
||||
List Hang 4 LISTMARK4
|
||||
List Hang 5 LISTMARK5
|
||||
List Hang 6 LISTMARK6
|
||||
Message BODY
|
||||
Page Number BODY
|
||||
Paragraph BODY
|
||||
Preformatted PROGRAM
|
||||
Requirement BODY
|
||||
Subheading UHEADING4
|
||||
Table Cell (Center) CELLBODY
|
||||
Table Cell (Decimal) CELLBODY
|
||||
Table Cell (Left) CELLBODY
|
||||
Table Cell (Right) CELLBODY
|
||||
Table Cell Bullet 1 CELLBODY
|
||||
Table Cell Bullet 2 CELLBODY
|
||||
Table Cell Char 1 CELLBODY
|
||||
Table Cell Char 2 CELLBODY
|
||||
Table Cell Cont 1 CELLBODY
|
||||
Table Cell Cont 2 CELLBODY
|
||||
Table Cell Num 1 CELLBODY
|
||||
Table Cell Num 2 CELLBODY
|
||||
Table Heading (Center) CELLHEADING
|
||||
Table Heading (Left) CELLHEADING
|
||||
Table Heading (Right) CELLHEADING
|
||||
Table Title BODY
|
||||
Table TitleLOT BODY
|
||||
Table Title (Appendix) BODY
|
||||
Title LOCALTITLE
|
||||
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
+4
@@ -0,0 +1,4 @@
|
||||
Open releaseNotes1_7.doc
|
||||
SaveAs ma releaseNotes1_7.doc html/releaseNotes1_7.mif
|
||||
Open releaseNotes1_7TITLE.doc
|
||||
SaveAs ma releaseNotes1_7TITLE.doc html/releaseNotes1_7TITLE.mif
|
||||
Executable
+555
@@ -0,0 +1,555 @@
|
||||
<! This document generated using mif2html Version 1.0 - Walt Akers - 1996 !>
|
||||
<head>
|
||||
<title>CDEV Documentation</title>
|
||||
</head>
|
||||
|
||||
<body bgcolor="#E0E0FF">
|
||||
|
||||
<body>
|
||||
<! *************************** TABLE OF CONTENTS ****************************!>
|
||||
<! **************************** LIST OF FIGURES *****************************!>
|
||||
<! ************************ FILE : ./TestPlan_1.5.mif *****************************!>
|
||||
<br><hr><br>
|
||||
<table width=100%>
|
||||
<tr><td>
|
||||
<! ***** Empty Column ***** !>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BODY TEXT ***!><font size=+2 color=Black>
|
||||
<strong>NOTE:</strong> Information addressing the appropriate content of each of the following sections can be found
|
||||
in Section 2.0 of the Test Plan Instructions.
|
||||
<!*** Finish BODY TEXT ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<br><hr><br>
|
||||
<table width=100%>
|
||||
<tr><td valign=top>
|
||||
<!*** Start .Title: ***!><font size=+3 color=Black><strong>
|
||||
Test Plan Title:
|
||||
<!*** Finish .Title: ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start .Title: ***!><font size=+3 color=Black><strong>
|
||||
CDEV 1.5 Release Test
|
||||
<!*** Finish .Title: ***!></p></strong></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<br><hr><br>
|
||||
<table width=100%>
|
||||
<tr><td>
|
||||
<! ***** Empty Column ***** !>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start .Author: ***!><font size=+2 color=Black>
|
||||
Author(s):
|
||||
Walt Akers
|
||||
<!*** Finish .Author: ***!></p></font>
|
||||
<!*** Start .Date Submitted: ***!><font size=+2 color=Black>
|
||||
Date Submitted:
|
||||
Dec 10, 1996
|
||||
<!*** Finish .Date Submitted: ***!></p></font>
|
||||
<table>
|
||||
<tr><td valign=top>
|
||||
<!*** Start .Revision Number: ***!><font size=+2 color=Black>
|
||||
Revision Number:
|
||||
<!*** Finish .Revision Number: ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start .Revision Number: ***!><font size=+2 color=Black>
|
||||
Rev. 1, Dec 10, 1996
|
||||
<!*** Finish .Revision Number: ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start /Section Heads (w/ bar) ***!><font size=+3 color=PANTONE 185 CVC><strong>
|
||||
Brief Purpose of Test</strong><font size=+2 color=Black><strong><font size=+3 color=PANTONE 185 CVC>
|
||||
<!*** Finish /Section Heads (w/ bar) ***!></p></strong></font>
|
||||
<table>
|
||||
<tr><td width=5% valign=top>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BODY TEXT ***!><font size=+2 color=Black>
|
||||
This test will ensure the proper operation of the Control Device Interface (CDEV)
|
||||
Version 1.5.
|
||||
<!*** Finish BODY TEXT ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start /Section Heads (w/ bar) ***!><font size=+3 color=PANTONE 185 CVC><strong>
|
||||
Anticipated Benefits
|
||||
<!*** Finish /Section Heads (w/ bar) ***!></p></strong></font>
|
||||
<table>
|
||||
<tr><td width=5% valign=top>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BODY TEXT ***!><font size=+2 color=Black>
|
||||
The new version of CDEV will introduce Collection Devices into the API and will
|
||||
correct several deficiencies that were identified in earlier versions of the class
|
||||
library.
|
||||
<!*** Finish BODY TEXT ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start /Section Heads (w/ bar) ***!><font size=+3 color=PANTONE 185 CVC><strong>
|
||||
Beam Conditions Required
|
||||
<!*** Finish /Section Heads (w/ bar) ***!></p></strong></font>
|
||||
<table>
|
||||
<tr><td width=5% valign=top>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BODY TEXT ***!><font size=+2 color=Black>
|
||||
Complete all of the following tables, entering a value or an <strong>X</strong> in the appropriate spaces:
|
||||
<table border=1>
|
||||
<tr>
|
||||
<td valign=top>
|
||||
<!*** Start ***!>
|
||||
Beam Type/Current (enter value)
|
||||
<!*** Finish ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start ***!>
|
||||
|
||||
<!*** Finish ***!><br></font>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign=top>
|
||||
<!*** Start ***!>
|
||||
Beam Type/Current (enter value)
|
||||
<!*** Finish ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start ***!>
|
||||
|
||||
<!*** Finish ***!><br></font>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign=top>
|
||||
<!*** Start ***!>
|
||||
Beam Type
|
||||
<!*** Finish ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start ***!>
|
||||
Beam Current
|
||||
<!*** Finish ***!><br></font>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign=top>
|
||||
<!*** Start ***!>
|
||||
Beam Off
|
||||
<!*** Finish ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start ***!>
|
||||
|
||||
<!*** Finish ***!><br></font>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border=1>
|
||||
<tr>
|
||||
<td valign=top>
|
||||
<!*** Start ***!>
|
||||
Beam Energy (select one)
|
||||
<!*** Finish ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start ***!>
|
||||
|
||||
<!*** Finish ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start ***!>
|
||||
|
||||
<!*** Finish ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start ***!>
|
||||
|
||||
<!*** Finish ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start ***!>
|
||||
|
||||
<!*** Finish ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start ***!>
|
||||
|
||||
<!*** Finish ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start ***!>
|
||||
|
||||
<!*** Finish ***!><br></font>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign=top>
|
||||
<!*** Start ***!>
|
||||
Beam Energy (select one)
|
||||
<!*** Finish ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start ***!>
|
||||
|
||||
<!*** Finish ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start ***!>
|
||||
|
||||
<!*** Finish ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start ***!>
|
||||
|
||||
<!*** Finish ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start ***!>
|
||||
|
||||
<!*** Finish ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start ***!>
|
||||
|
||||
<!*** Finish ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start ***!>
|
||||
|
||||
<!*** Finish ***!><br></font>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border=1>
|
||||
<tr>
|
||||
<td valign=top>
|
||||
<!*** Start ***!>
|
||||
Beam Termination Point (select one)
|
||||
<!*** Finish ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start ***!>
|
||||
|
||||
<!*** Finish ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start ***!>
|
||||
|
||||
<!*** Finish ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start ***!>
|
||||
|
||||
<!*** Finish ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start ***!>
|
||||
|
||||
<!*** Finish ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start ***!>
|
||||
|
||||
<!*** Finish ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start ***!>
|
||||
|
||||
<!*** Finish ***!><br></font>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign=top>
|
||||
<!*** Start ***!>
|
||||
Beam Termination Point (select one)
|
||||
<!*** Finish ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start ***!>
|
||||
|
||||
<!*** Finish ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start ***!>
|
||||
|
||||
<!*** Finish ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start ***!>
|
||||
|
||||
<!*** Finish ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start ***!>
|
||||
|
||||
<!*** Finish ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start ***!>
|
||||
|
||||
<!*** Finish ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start ***!>
|
||||
|
||||
<!*** Finish ***!><br></font>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border=1>
|
||||
<tr>
|
||||
<td valign=top>
|
||||
<!*** Start ***!>
|
||||
Type of Test (select one)
|
||||
<!*** Finish ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start ***!>
|
||||
|
||||
<!*** Finish ***!><br></font>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign=top>
|
||||
<!*** Start ***!>
|
||||
Type of Test (select one)
|
||||
<!*** Finish ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start ***!>
|
||||
|
||||
<!*** Finish ***!><br></font>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!*** Finish BODY TEXT ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start /Section Heads (w/ bar) ***!><font size=+3 color=PANTONE 185 CVC><strong>
|
||||
Time Required
|
||||
<!*** Finish /Section Heads (w/ bar) ***!></p></strong></font>
|
||||
<table>
|
||||
<tr><td width=5% valign=top>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BODY TEXT ***!><font size=+2 color=Black>
|
||||
30 Minutes
|
||||
<!*** Finish BODY TEXT ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start /Section Heads (w/ bar) ***!><font size=+3 color=PANTONE 185 CVC><strong>
|
||||
Preferred Time of Test
|
||||
<!*** Finish /Section Heads (w/ bar) ***!></p></strong></font>
|
||||
<table>
|
||||
<tr><td width=5% valign=top>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BODY TEXT ***!><font size=+2 color=Black>
|
||||
Daylight
|
||||
<!*** Finish BODY TEXT ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start /Section Heads (w/ bar) ***!><font size=+3 color=PANTONE 185 CVC><strong>
|
||||
Staff Required to Execute the Test <font size=+1>(including contact info)<font size=+3>
|
||||
<!*** Finish /Section Heads (w/ bar) ***!></p></strong></font>
|
||||
<table>
|
||||
<tr><td width=5% valign=top>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BODY TEXT ***!><font size=+2 color=Black>
|
||||
Walt Akers - ext. 7669
|
||||
<!*** Finish BODY TEXT ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start /Section Heads (w/ bar) ***!><font size=+3 color=PANTONE 185 CVC><strong>
|
||||
Controlled Access Requirements
|
||||
<!*** Finish /Section Heads (w/ bar) ***!></p></strong></font>
|
||||
<table>
|
||||
<tr><td width=5% valign=top>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BODY TEXT ***!><font size=+2 color=Black>
|
||||
None
|
||||
<!*** Finish BODY TEXT ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start /Section Heads (w/ bar) ***!><font size=+3 color=PANTONE 185 CVC><strong>
|
||||
Hardware and/or Software Changes Required
|
||||
<!*** Finish /Section Heads (w/ bar) ***!></p></strong></font>
|
||||
<table>
|
||||
<tr><td width=5% valign=top>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BODY TEXT ***!><font size=+2 color=Black>
|
||||
<strong>NOTE:</strong> If software changes are part of the test plan, include the name of the application, the old
|
||||
revision level, the new revision level, and if applicable, whether or not it is possible to roll back to the
|
||||
old revision level (are there hardware limitations, etc.).
|
||||
</p>
|
||||
No existing software will be modified. A new version of CDEV will be added.
|
||||
<!*** Finish BODY TEXT ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start /Section Heads (w/ bar) ***!><font size=+3 color=PANTONE 185 CVC><strong>
|
||||
Setup Procedure
|
||||
<!*** Finish /Section Heads (w/ bar) ***!></p></strong></font>
|
||||
<table>
|
||||
<tr><td valign=top>
|
||||
<!*** Start PROCEDURE STEPS ***!><font size=+2 color=Black>
|
||||
1.
|
||||
<!*** Finish PROCEDURE STEPS ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start PROCEDURE STEPS ***!><font size=+2 color=Black>
|
||||
Install and compile the CDEV libraries in /usr/csite2/cdev/1.5
|
||||
<!*** Finish PROCEDURE STEPS ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start PROCEDURE STEPS ***!><font size=+2 color=Black>
|
||||
2.
|
||||
<!*** Finish PROCEDURE STEPS ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start PROCEDURE STEPS ***!><font size=+2 color=Black>
|
||||
Unarchive and compile ACE Version 4.0.32
|
||||
<!*** Finish PROCEDURE STEPS ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start PROCEDURE STEPS ***!><font size=+2 color=Black>
|
||||
3.
|
||||
<!*** Finish PROCEDURE STEPS ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start PROCEDURE STEPS ***!><font size=+2 color=Black>
|
||||
Compile and link the CDEV Generic Server Engine
|
||||
<!*** Finish PROCEDURE STEPS ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start /Section Heads (w/ bar) ***!><font size=+3 color=PANTONE 185 CVC><strong>
|
||||
Test Procedure
|
||||
<!*** Finish /Section Heads (w/ bar) ***!></p></strong></font>
|
||||
<table>
|
||||
<tr><td valign=top>
|
||||
<!*** Start PROCEDURE STEPS ***!><font size=+2 color=Black>
|
||||
1.
|
||||
<!*** Finish PROCEDURE STEPS ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start PROCEDURE STEPS ***!><font size=+2 color=Black>
|
||||
Execute /usr/csite2/cdev/1.5/test/cdevDataTest Application to ensure that the
|
||||
data components of the library are functioning properly.
|
||||
<!*** Finish PROCEDURE STEPS ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start PROCEDURE STEPS ***!><font size=+2 color=Black>
|
||||
2.
|
||||
<!*** Finish PROCEDURE STEPS ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start PROCEDURE STEPS ***!><font size=+2 color=Black>
|
||||
Execute /usr/csite2/cdev/1.5/test/collectionTest Application to ensure that
|
||||
CDEV collection devices are functioning properly (this requires the local
|
||||
test.ddl to be the CDEVDDL file.)
|
||||
<!*** Finish PROCEDURE STEPS ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start PROCEDURE STEPS ***!><font size=+2 color=Black>
|
||||
3.
|
||||
<!*** Finish PROCEDURE STEPS ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start PROCEDURE STEPS ***!><font size=+2 color=Black>
|
||||
Execute /usr/csite2/cdev/1.5/extensions/cdevGenericServer/bin/hpux-09.XX/
|
||||
NameServer, TestServer and TestProgram to ensure that the CDEV Generic
|
||||
Server Engine and communications portions of CDEV are functioning cor
|
||||
rectly.
|
||||
<!*** Finish PROCEDURE STEPS ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start /Section Heads (w/ bar) ***!><font size=+3 color=PANTONE 185 CVC><strong>
|
||||
Backout Procedure
|
||||
<!*** Finish /Section Heads (w/ bar) ***!></p></strong></font>
|
||||
<table>
|
||||
<tr><td valign=top>
|
||||
<!*** Start PROCEDURE STEPS ***!><font size=+2 color=Black>
|
||||
1.
|
||||
<!*** Finish PROCEDURE STEPS ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start PROCEDURE STEPS ***!><font size=+2 color=Black>
|
||||
Because the version of CDEV that is in use is a selectable value, the installation
|
||||
and operation of Version 1.5 of CDEV is of no impact unless it is specifically
|
||||
chosen. Therefore, no backout procedures are specified.
|
||||
<!*** Finish PROCEDURE STEPS ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start /Section Heads (w/ bar) ***!><font size=+3 color=PANTONE 185 CVC><strong>
|
||||
Test Results
|
||||
<!*** Finish /Section Heads (w/ bar) ***!></p></strong></font>
|
||||
<table>
|
||||
<tr><td width=5% valign=top>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BODY TEXT ***!><font size=+2 color=Black>
|
||||
The test was conducted for two version of the operating system, therefore, the
|
||||
results will be presented separately:
|
||||
</p>
|
||||
HPUX 09.XX:
|
||||
</p>
|
||||
<strong>cdevDataTest Program:</strong> Pass on all 18 Sub-Tests
|
||||
</p>
|
||||
<strong>cdevDataEqualTest Program:</strong> Pass
|
||||
</p>
|
||||
<strong>cdevDataTagMapTest Program:</strong> Pass
|
||||
</p>
|
||||
<strong>collectionTest Program:</strong> Pass on 1000 Iterations
|
||||
</p>
|
||||
|
||||
</p>
|
||||
<strong>NameServer Program:</strong> Executed correctly
|
||||
</p>
|
||||
<strong>TestServer Program:</strong> Executed correctly for 100,000 packets.
|
||||
</p>
|
||||
<strong>TestProgram Program:</strong> Executed correclty for 100,000 packets.
|
||||
</p>
|
||||
|
||||
</p>
|
||||
HPUX 10.XX:
|
||||
</p>
|
||||
The following corrections had to be made to the system in order to get the
|
||||
10.XX machines to function properly.
|
||||
</p>
|
||||
|
||||
</p>
|
||||
Directory <em>/cs/lib</em> had to be linked to <em>/cs/op/lib.</em>
|
||||
</p>
|
||||
Directory <em>/usr/csite/cdev</em> had to be linked to directory <em>/usr/csite2/cdev</em>.
|
||||
</p>
|
||||
File <em>/cs/lib/epics3.12/hpux-10.xx/libca.sl </em>had to be made executable.
|
||||
</p>
|
||||
|
||||
</p>
|
||||
<strong>cdevDataTest Program:</strong> Pass on all 18 Sub-Tests
|
||||
</p>
|
||||
<strong>cdevDataEqualTest Program:</strong> Pass
|
||||
</p>
|
||||
<strong>cdevDataTagMapTest Program:</strong> Pass
|
||||
</p>
|
||||
<strong>collectionTest Program:</strong> Pass on 1000 Iterations
|
||||
</p>
|
||||
|
||||
</p>
|
||||
<strong>NameServer Program:</strong> Executed correctly
|
||||
</p>
|
||||
<strong>TestServer Program:</strong> Executed correctly for 215,000 packets.
|
||||
</p>
|
||||
<strong>TestProgram Program:</strong> Executed correclty for 215,000 packets.
|
||||
</p>
|
||||
|
||||
<!*** Finish BODY TEXT ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
</td></tr>
|
||||
</table>
|
||||
</body>
|
||||
Executable
BIN
Binary file not shown.
|
After Width: | Height: | Size: 948 B |
Executable
+556
@@ -0,0 +1,556 @@
|
||||
<! This document generated using mif2html Version 1.0 - Walt Akers - 1996 !>
|
||||
<head>
|
||||
<title>CDEV Documentation</title>
|
||||
</head>
|
||||
|
||||
<body bgcolor="#E0E0FF">
|
||||
|
||||
<body>
|
||||
<! ************************ FILE : cdevAdminGuideTITLE.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 Administrator's
|
||||
Guide
|
||||
<!*** Finish ADDRESS ***!></p></strong></em></font>
|
||||
<!*** Start ADDRESS-VERSION ***!><font size=+2 color=Black>
|
||||
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="cdevAdminGuide.html#TOCREF1">Directory Structure of the CDEV Distribution</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="cdevAdminGuide.html#TOCREF2">Directory Structure</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="cdevAdminGuide.html#TOCREF3">Installing and Building the CDEV Libraries</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="cdevAdminGuide.html#TOCREF4">How to Start</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="cdevAdminGuide.html#TOCREF5">Configuring Static Services</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="cdevAdminGuide.html#TOCREF6">Setting the Local Environment</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="cdevAdminGuide.html#TOCREF7">Compiling the Distribution</a>
|
||||
<!*** Finish UHEADING2TOC ***!><br></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
</td></tr>
|
||||
</table>
|
||||
<! **************************** LIST OF FIGURES *****************************!>
|
||||
<! ************************ FILE : ./cdevAdminGuide.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">
|
||||
Directory Structure of the CDEV Distribution
|
||||
</a> <!*** Finish HEADING1 ***!></p></strong></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start UHEADING2 ***!><font size=+1 color=Black><strong>
|
||||
<a name="TOCREF2">
|
||||
Directory
|
||||
Structure
|
||||
</a> <!*** Finish UHEADING2 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<table>
|
||||
<tr><td valign=top>
|
||||
<!*** Start FUNC_NAME ***!><font size=+1 color=Black><strong>
|
||||
./src
|
||||
<!*** Finish FUNC_NAME ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start FUNC_PROTO ***!><font size=+1 color=Black><em>
|
||||
The CDEV source parent directory, it contains makefiles and
|
||||
subdirectories with the source code necessary to create the
|
||||
CDEV libraries.
|
||||
<!*** Finish FUNC_PROTO ***!></p></em></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start FUNC_NAME ***!><font size=+1 color=Black><strong>
|
||||
./src/ca
|
||||
<!*** Finish FUNC_NAME ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start FUNC_PROTO ***!><font size=+1 color=Black><em>
|
||||
Souce code providing CDEV service support for channel
|
||||
access and EPICS.
|
||||
<!*** Finish FUNC_PROTO ***!></p></em></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start FUNC_NAME ***!><font size=+1 color=Black><strong>
|
||||
./src/cdevIO
|
||||
<!*** Finish FUNC_NAME ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start FUNC_PROTO ***!><font size=+1 color=Black><em>
|
||||
Souce code for the cdevData object and its components.
|
||||
<!*** Finish FUNC_PROTO ***!></p></em></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start FUNC_NAME ***!><font size=+1 color=Black><strong>
|
||||
./src/common
|
||||
<!*** Finish FUNC_NAME ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start FUNC_PROTO ***!><font size=+1 color=Black><em>
|
||||
Source code for CDEV components that are used by class
|
||||
internals.
|
||||
<!*** Finish FUNC_PROTO ***!></p></em></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start FUNC_NAME ***!><font size=+1 color=Black><strong>
|
||||
./src/callback
|
||||
<!*** Finish FUNC_NAME ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start FUNC_PROTO ***!><font size=+1 color=Black><em>
|
||||
Source code for the cdevCallback object used with callback
|
||||
operations and monitors.
|
||||
<!*** Finish FUNC_PROTO ***!></p></em></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start FUNC_NAME ***!><font size=+1 color=Black><strong>
|
||||
./src/device
|
||||
<!*** Finish FUNC_NAME ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start FUNC_PROTO ***!><font size=+1 color=Black><em>
|
||||
Source code for the cdevDevice and cdevRequestObject
|
||||
objects and their associated component classes.
|
||||
<!*** Finish FUNC_PROTO ***!></p></em></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start FUNC_NAME ***!><font size=+1 color=Black><strong>
|
||||
./src/directory
|
||||
<!*** Finish FUNC_NAME ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start FUNC_PROTO ***!><font size=+1 color=Black><em>
|
||||
Source code for the cdevDirectory anc cdevSvcFinder classes.
|
||||
<!*** Finish FUNC_PROTO ***!></p></em></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start FUNC_NAME ***!><font size=+1 color=Black><strong>
|
||||
./src/group
|
||||
<!*** Finish FUNC_NAME ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start FUNC_PROTO ***!><font size=+1 color=Black><em>
|
||||
Source code for the cdevGroup and cdevTranObj classes.
|
||||
<!*** Finish FUNC_PROTO ***!></p></em></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start FUNC_NAME ***!><font size=+1 color=Black><strong>
|
||||
./src/lib
|
||||
<!*** Finish FUNC_NAME ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start FUNC_PROTO ***!><font size=+1 color=Black><em>
|
||||
Directory for library Makefile and temporary object files.
|
||||
<!*** Finish FUNC_PROTO ***!></p></em></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start FUNC_NAME ***!><font size=+1 color=Black><strong>
|
||||
./src/namesvc
|
||||
<!*** Finish FUNC_NAME ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start FUNC_PROTO ***!><font size=+1 color=Black><em>
|
||||
Source code for tools used to parse the CDEV DDL file.
|
||||
<!*** Finish FUNC_PROTO ***!></p></em></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start FUNC_NAME ***!><font size=+1 color=Black><strong>
|
||||
./src/system
|
||||
<!*** Finish FUNC_NAME ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start FUNC_PROTO ***!><font size=+1 color=Black><em>
|
||||
Source code for the cdevSystem and cdevService classes and
|
||||
their associated components.
|
||||
<!*** Finish FUNC_PROTO ***!></p></em></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start FUNC_NAME ***!><font size=+1 color=Black><strong>
|
||||
./src/utility
|
||||
<!*** Finish FUNC_NAME ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start FUNC_PROTO ***!><font size=+1 color=Black><em>
|
||||
Source code for a CDEV utility application.
|
||||
<!*** Finish FUNC_PROTO ***!></p></em></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start FUNC_NAME ***!><font size=+1 color=Black><strong>
|
||||
./include
|
||||
<!*** Finish FUNC_NAME ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start FUNC_PROTO ***!><font size=+1 color=Black><em>
|
||||
Header files for CDEV applications, this directory will be
|
||||
populated during the first execution of make
|
||||
<!*** Finish FUNC_PROTO ***!></p></em></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start FUNC_NAME ***!><font size=+1 color=Black><strong>
|
||||
./lib
|
||||
<!*** Finish FUNC_NAME ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start FUNC_PROTO ***!><font size=+1 color=Black><em>
|
||||
The CDEV library parent directory, will be populated wth
|
||||
subdirectories for each target architecture.
|
||||
<!*** Finish FUNC_PROTO ***!></p></em></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start FUNC_NAME ***!><font size=+1 color=Black><strong>
|
||||
./bin
|
||||
<!*** Finish FUNC_NAME ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start FUNC_PROTO ***!><font size=+1 color=Black><em>
|
||||
The CDEV binary parent directory, will be populated wth
|
||||
subdirectories for each target architecture.
|
||||
<!*** Finish FUNC_PROTO ***!></p></em></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start FUNC_NAME ***!><font size=+1 color=Black><strong>
|
||||
./doc
|
||||
<!*** Finish FUNC_NAME ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start FUNC_PROTO ***!><font size=+1 color=Black><em>
|
||||
Contains most up to date versions of the CDEV documentation.
|
||||
<!*** Finish FUNC_PROTO ***!></p></em></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start FUNC_NAME ***!><font size=+1 color=Black><strong>
|
||||
./example
|
||||
<!*** Finish FUNC_NAME ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start FUNC_PROTO ***!><font size=+1 color=Black><em>
|
||||
Sample applications and services that use CDEV.
|
||||
<!*** Finish FUNC_PROTO ***!></p></em></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start FUNC_NAME ***!><font size=+1 color=Black><strong>
|
||||
./extensions
|
||||
<!*** Finish FUNC_NAME ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start FUNC_PROTO ***!><font size=+1 color=Black><em>
|
||||
Software extensions and services for CDEV that are being
|
||||
developed by individual developers. These services add value
|
||||
to CDEV, however, they are not required by the system.
|
||||
<!*** Finish FUNC_PROTO ***!></p></em></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="TOCREF3">
|
||||
Installing and Building the CDEV Libraries
|
||||
</a> <!*** Finish HEADING1 ***!></p></strong></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start UHEADING2 ***!><font size=+1 color=Black><strong>
|
||||
<a name="TOCREF4">
|
||||
How to Start
|
||||
</a> <!*** Finish UHEADING2 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
The following steps should be taken in order to obtain and install CDEV at your site.
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
<table>
|
||||
<tr><td valign=top>
|
||||
<!*** Start Numbered ***!><font size=+1 color=Black>
|
||||
1.
|
||||
<!*** Finish Numbered ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start Numbered ***!><font size=+1 color=Black>
|
||||
<strong>Obtain a copy of the CDEV distribution. </strong>A complete copy of the CDEV
|
||||
distribution may be obtained by anonymous ftp at <strong>ftp.cebaf.gov</strong> in the directory
|
||||
<strong>pub/cdev</strong>.
|
||||
<!*** Finish Numbered ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start Numbered ***!><font size=+1 color=Black>
|
||||
2.
|
||||
<!*** Finish Numbered ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start Numbered ***!><font size=+1 color=Black>
|
||||
<strong>Unarchive and install the distribution.</strong> The CDEV distribution is provided in a
|
||||
compressed and archived format. The archive may be decompressed using the
|
||||
GNU <em>gzip</em> program. The archive may then be extracted using the UNIX <em>tar</em>
|
||||
command.
|
||||
<!*** Finish Numbered ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start UHEADING2 ***!><font size=+1 color=Black><strong>
|
||||
<a name="TOCREF5">
|
||||
Configuring Static
|
||||
Services
|
||||
</a> <!*** Finish UHEADING2 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<table>
|
||||
<tr><td valign=top>
|
||||
<!*** Start Numbered ***!><font size=+1 color=Black>
|
||||
3.
|
||||
<!*** Finish Numbered ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start Numbered ***!><font size=+1 color=Black>
|
||||
<strong>Configure static services (archive libraries).</strong> If you will be using the archive
|
||||
library version of CDEV, you must tell CDEV the names of the services it will be
|
||||
expected to use. This must be done before any other installation procedures.
|
||||
<!*** Finish Numbered ***!></p></font>
|
||||
<!*** Start Indented ***!><font size=+1 color=Black>
|
||||
The CDEV system provides a way to configure services so that applications can
|
||||
access them by name. For example, if you have the channel access service (ca)
|
||||
and a locally developed service (xyz), you can configure CDEV to use these
|
||||
services with the following command.
|
||||
<!*** Finish Indented ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start PROGRAM ***!><pre><font size=+0 color=Black>
|
||||
|
||||
configSvc services=ca xyz headers=/usr/local/epics/include \\
|
||||
/usr/local/cdev/src/ca /usr/local/cdev/src/xyz
|
||||
<!*** Finish PROGRAM ***!></font></pre>
|
||||
<table>
|
||||
<tr><td width=5% valign=top>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start Indented ***!><font size=+1 color=Black>
|
||||
|
||||
</p>
|
||||
In the above examples, <em>services</em> are the names of the CDEV services that should
|
||||
be supported, and <em>headers</em> are the directories that should be searched for the
|
||||
associated header files for these services. The <em>configSvc</em> script will generate a
|
||||
Makefile and cdevSvcConfig.cc in the<em> ./src/directory</em> directory.
|
||||
<!*** Finish Indented ***!></p></font>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start UHEADING2 ***!><font size=+1 color=Black><strong>
|
||||
<a name="TOCREF6">
|
||||
Setting the Local
|
||||
Environment
|
||||
</a> <!*** Finish UHEADING2 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<table>
|
||||
<tr><td valign=top>
|
||||
<!*** Start Numbered ***!><font size=+1 color=Black>
|
||||
4.
|
||||
<!*** Finish Numbered ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start Numbered ***!><font size=+1 color=Black>
|
||||
<strong>Set CDEV required make variables.</strong> The following environmental variables must
|
||||
be defined prior to making the CDEV libraries.
|
||||
<!*** Finish Numbered ***!></p></font>
|
||||
<!*** Start Indented ***!><font size=+1 color=Black>
|
||||
CDEV: This is the root directory of the CDEV distribution.
|
||||
</p>
|
||||
|
||||
</p>
|
||||
CDEVDDL: This is the location of the CDEV Device Definition
|
||||
Language file.
|
||||
</p>
|
||||
|
||||
</p>
|
||||
CDEVSHOBJ: This is the directory where the CDEV shared
|
||||
libraries and shared objects will be stored.
|
||||
</p>
|
||||
|
||||
</p>
|
||||
CDEVINCLUDE: This is the directory whewre the CDEV header files
|
||||
are located.
|
||||
</p>
|
||||
|
||||
</p>
|
||||
<strong>SHOBJ</strong>:<strong> </strong>This variable indicates that a sharable object library
|
||||
should be compiled. In order to generate a
|
||||
sharable library, <em>SHOBJ="YES" </em>should be
|
||||
specified. This variable is undefined by default.
|
||||
<!*** Finish Indented ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start UHEADING2 ***!><font size=+1 color=Black><strong>
|
||||
<a name="TOCREF7">
|
||||
Compiling the
|
||||
Distribution
|
||||
</a> <!*** Finish UHEADING2 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<table>
|
||||
<tr><td valign=top>
|
||||
<!*** Start Numbered ***!><font size=+1 color=Black>
|
||||
5.
|
||||
<!*** Finish Numbered ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start Numbered ***!><font size=+1 color=Black>
|
||||
Change directories to the CDEV distribution ./src directory. This is where the
|
||||
Makefile and Makefile.common will be located.
|
||||
<!*** Finish Numbered ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start Numbered ***!><font size=+1 color=Black>
|
||||
6.
|
||||
<!*** Finish Numbered ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start Numbered ***!><font size=+1 color=Black>
|
||||
If you have compiled the CDEV distribution for another TARGET in the past, you
|
||||
should execute a 'make clean' to remove any outdated object files.
|
||||
<!*** Finish Numbered ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start Numbered ***!><font size=+1 color=Black>
|
||||
7.
|
||||
<!*** Finish Numbered ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start Numbered ***!><font size=+1 color=Black>
|
||||
If you want to change default time-out value and connection retry frequency in
|
||||
channel access or EPICS, you should change DEFAULT_TIMEOUT and
|
||||
DEFAULT_CONN_FREQUENCY values in the caRequestObject.h.
|
||||
<!*** Finish Numbered ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start Numbered ***!><font size=+1 color=Black>
|
||||
8.
|
||||
<!*** Finish Numbered ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start Numbered ***!><font size=+1 color=Black>
|
||||
To begin compilation type the command 'make all' or 'make'. This will compile all
|
||||
libraries and utility applications and place them in the appropriate TARGET
|
||||
directories.
|
||||
<!*** Finish Numbered ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start Numbered ***!><font size=+1 color=Black>
|
||||
9.
|
||||
<!*** Finish Numbered ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start Numbered ***!><font size=+1 color=Black>
|
||||
To remove objects after making archive libraries, type 'make cleanObjs'. This is
|
||||
useful to make the archive libraries and then make the shared libraries.
|
||||
<!*** Finish Numbered ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
</td></tr>
|
||||
</table>
|
||||
</body>
|
||||
Executable
+699
@@ -0,0 +1,699 @@
|
||||
<! This document generated using mif2html Version 1.0 - Walt Akers - 1996 !>
|
||||
<head>
|
||||
<title>CDEV Documentation</title>
|
||||
</head>
|
||||
|
||||
<body bgcolor="#E0E0FF">
|
||||
|
||||
<body>
|
||||
<! ************************ FILE : cdevCbindingTITLE.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 C Binding Guide
|
||||
<!*** Finish ADDRESS ***!></p></strong></em></font>
|
||||
<!*** Start ADDRESS-VERSION ***!><font size=+2 color=Black>
|
||||
|
||||
</p>
|
||||
Chip Watson, Jie Chen, Danjin Wu, Walt Akers
|
||||
</p>
|
||||
|
||||
</p>
|
||||
Version 1.4 October 24, 1996
|
||||
</p>
|
||||
|
||||
</p>
|
||||
TJNAF - Thomas Jefferson National Accelerator Facility
|
||||
</p>
|
||||
|
||||
<!*** Finish ADDRESS-VERSION ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<! *************************** TABLE OF CONTENTS ****************************!>
|
||||
<! **************************** LIST OF FIGURES *****************************!>
|
||||
<! ************************ FILE : ./cdevCbinding.mif *****************************!>
|
||||
<br><hr><br>
|
||||
<table width=100%>
|
||||
<tr><td>
|
||||
<! ***** Empty Column ***** !>
|
||||
</td>
|
||||
<td valign=top align=center>
|
||||
<!*** Start Title ***!><font size=+5 color=Black><strong>
|
||||
cdev C Binding
|
||||
<!*** Finish Title ***!></p></strong></font>
|
||||
<!*** Start Centered ***!><font size=+2 color=Black>
|
||||
Updated:
|
||||
</p>
|
||||
|
||||
<!*** Finish Centered ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td>
|
||||
<! ***** Empty Column ***** !>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start Body ***!><font size=+2 color=Black>
|
||||
This working document describes a C binding to the cdev control system interface (see the cdev
|
||||
Design Document, and the cdev User's Guide).
|
||||
<!*** Finish Body ***!></p></font>
|
||||
<!*** Start Heading1 ***!><font size=+3 color=Black><strong>
|
||||
Design Choices:
|
||||
<!*** Finish Heading1 ***!></p></strong></font>
|
||||
<table>
|
||||
<tr><td valign=top>
|
||||
<!*** Start Numbered1 ***!><font size=+2 color=Black>
|
||||
1.
|
||||
<!*** Finish Numbered1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start Numbered1 ***!><font size=+2 color=Black>
|
||||
All C routine names begin with "cdev" (common device).
|
||||
<!*** Finish Numbered1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start Numbered ***!><font size=+2 color=Black>
|
||||
2.
|
||||
<!*** Finish Numbered ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start Numbered ***!><font size=+2 color=Black>
|
||||
Most C routines return completion status; 0==success (allows enumerated errors). A few
|
||||
return integer values (prefixed in this document with "int").
|
||||
<!*** Finish Numbered ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start Numbered ***!><font size=+2 color=Black>
|
||||
3.
|
||||
<!*** Finish Numbered ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start Numbered ***!><font size=+2 color=Black>
|
||||
All data passed through the interface will be in the form of integers, strings or a self describing
|
||||
structure. Library calls will be provided to manipulate this structure.
|
||||
<!*** Finish Numbered ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start Heading1 ***!><font size=+3 color=Black><strong>
|
||||
Comparison with C++ binding:
|
||||
<!*** Finish Heading1 ***!></p></strong></font>
|
||||
<table>
|
||||
<tr><td valign=top>
|
||||
<!*** Start Numbered1 ***!><font size=+2 color=Black>
|
||||
1.
|
||||
<!*** Finish Numbered1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start Numbered1 ***!><font size=+2 color=Black>
|
||||
cdevData, cdevRequestObject, and cdevGroup objects will be accessed through object id's.
|
||||
<!*** Finish Numbered1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start Numbered ***!><font size=+2 color=Black>
|
||||
2.
|
||||
<!*** Finish Numbered ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start Numbered ***!><font size=+2 color=Black>
|
||||
cdevDevice will only be referenced by device name.
|
||||
<!*** Finish Numbered ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start Numbered ***!><font size=+2 color=Black>
|
||||
3.
|
||||
<!*** Finish Numbered ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start Numbered ***!><font size=+2 color=Black>
|
||||
Only a single, default, cdevSystem will be supported.
|
||||
<!*** Finish Numbered ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start Numbered ***!><font size=+2 color=Black>
|
||||
4.
|
||||
<!*** Finish Numbered ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start Numbered ***!><font size=+2 color=Black>
|
||||
Since no function overloading is available, I/O operations on a cdevData object will have to
|
||||
pass a datatype argument, similar to EPICS channel access.
|
||||
<!*** Finish Numbered ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start Numbered ***!><font size=+2 color=Black>
|
||||
5.
|
||||
<!*** Finish Numbered ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start Numbered ***!><font size=+2 color=Black>
|
||||
Routines which return strings will malloc the string, and the caller must free it.
|
||||
<!*** Finish Numbered ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start Numbered ***!><font size=+2 color=Black>
|
||||
6.
|
||||
<!*** Finish Numbered ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start Numbered ***!><font size=+2 color=Black>
|
||||
Function names are generally constructed from the class name followed by the method name,
|
||||
e.g. cdevGroupStart.
|
||||
<!*** Finish Numbered ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start Numbered ***!><font size=+2 color=Black>
|
||||
7.
|
||||
<!*** Finish Numbered ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start Numbered ***!><font size=+2 color=Black>
|
||||
Creating objects will be done by routines like cdevGroupAllocate, which will essentially
|
||||
return a pointer to the created object.
|
||||
<!*** Finish Numbered ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start Numbered ***!><font size=+2 color=Black>
|
||||
8.
|
||||
<!*** Finish Numbered ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start Numbered ***!><font size=+2 color=Black>
|
||||
cdevSystem methods will drop "System" from the name, and the notion of "system" will be
|
||||
invisible.
|
||||
<!*** Finish Numbered ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start Numbered ***!><font size=+2 color=Black>
|
||||
9.
|
||||
<!*** Finish Numbered ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start Numbered ***!><font size=+2 color=Black>
|
||||
cdevDevice methods will drop "Device". cdevRequestObject methods will use the shorter
|
||||
"cdevRequest".
|
||||
<!*** Finish Numbered ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
</td></tr>
|
||||
<tr><td>
|
||||
<! ***** Empty Column ***** !>
|
||||
</td>
|
||||
<td valign=top align=center>
|
||||
<!*** Start Title ***!><font size=+5 color=Black><strong>
|
||||
C Binding User's Guide
|
||||
<!*** Finish Title ***!></p></strong></font>
|
||||
</td></tr>
|
||||
<tr><td>
|
||||
<! ***** Empty Column ***** !>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start Heading1 ***!><font size=+3 color=Black><strong>
|
||||
Simple message passing routines:
|
||||
<!*** Finish Heading1 ***!></p></strong></font>
|
||||
<!*** Start Body ***!><font size=+2 color=Black>
|
||||
Devices are addressed by name, and operations are performed by sending a message string and an
|
||||
additional optional data object identifier. This data object is self describing in the sense that it con
|
||||
tains indicators of the data type (int, float, etc.) and size (array lengths). Data returned from the
|
||||
control system will also be through a data object.
|
||||
<!*** Finish Body ***!></p></font>
|
||||
<table>
|
||||
<tr><td width=5% valign=top>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start IndentedBold ***!><font size=+2 color=Black><strong>
|
||||
status = cdevSend (char* devName, char* message,
|
||||
</p>
|
||||
cdev_data_t out, cdev_data_t in);
|
||||
<!*** Finish IndentedBold ***!></p></strong></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start Body ***!><font size=+2 color=Black>
|
||||
The data objects act as small databases able to hold multiple tagged data items. Items are inserted
|
||||
into or extracted from the database via access routines. These access routines are also responsible
|
||||
for any necessary data type conversions. Tags are passed to the cdevData routines as integers, and
|
||||
are looked up in the tag database by specifying an ascii tag name. The most common tags are
|
||||
"value", "timeStamp", "status", and "severity".
|
||||
</p>
|
||||
Data object manipulation routines:
|
||||
<!*** Finish Body ***!></p></font>
|
||||
<table>
|
||||
<tr><td width=5% valign=top>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start IndentedBold ***!><font size=+2 color=Black><strong>
|
||||
cdevDataAllocate (cdev_data_t* id);
|
||||
</p>
|
||||
cdevDataFree (cdev_data_t id);
|
||||
</p>
|
||||
cdevDataTagC2I (char* tag, int *tagid);
|
||||
</p>
|
||||
cdevDataTagI2C (int tagid, char** tag); /* caller must free string */
|
||||
</p>
|
||||
cdevDataInsertTag (int tag, char* ctag);
|
||||
</p>
|
||||
cdevDataInsert (cdev_data_t id, int tagid, int type, void * data);
|
||||
</p>
|
||||
int cdevDataInsertArray(cdev_data_t id, int tagid, int type, void *data, size_t len, size_t
|
||||
ndim);
|
||||
</p>
|
||||
cdevDataGet (cdev_data_t id, int tagid, int type, void * data);
|
||||
</p>
|
||||
cdevDataFind (cdev_data_t id, int tagid, void ** data);
|
||||
</p>
|
||||
int cdevDataGetType (cdev_data_t id, int tagid);
|
||||
</p>
|
||||
int cdevDataGetDim (cdev_data_t id, int tagid);
|
||||
</p>
|
||||
int cdevDataGetElems (cdev_data_t id, int tagid);
|
||||
</p>
|
||||
cdevDataGetBounds (cdev_data_t id, int tagid, int *bounds, int bsize);
|
||||
</p>
|
||||
cdevDataSetBounds (cdev_data_t id, int tagid, int *bounds, int bsize);
|
||||
</p>
|
||||
void cdevDataRemoveAll(cdev_data_t id);
|
||||
</p>
|
||||
cdevDataRemove (cdev_data_t id, int tagid);
|
||||
</p>
|
||||
cdevDataChangeTag (cdev_data_t id, int tagid, int newtagid);
|
||||
</p>
|
||||
cdevDataAsciiDump (cdev_data_t id, FILE *fp);
|
||||
</p>
|
||||
void cdevDataCopy(cdev_data_t from, cdev_data_t *to);
|
||||
<!*** Finish IndentedBold ***!></p></strong></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start Body ***!><font size=+2 color=Black>
|
||||
For example, to read the current from a magnet named NLQ1:
|
||||
<!*** Finish Body ***!></p></font>
|
||||
<table>
|
||||
<tr><td width=5% valign=top>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start Indented ***!><font size=+2 color=Black>
|
||||
cdev_data_t result;
|
||||
</p>
|
||||
float current;
|
||||
</p>
|
||||
int status, valtag;
|
||||
</p>
|
||||
status = cdevDataAllocate (&result);
|
||||
</p>
|
||||
status = cdevDataTagC2I ("value",&valtag);
|
||||
</p>
|
||||
status = cdevSend("NLQ1","read current",NULL,result);
|
||||
</p>
|
||||
status = cdevDataGet(result, valtag, CDEV_FLOAT, current);
|
||||
<!*** Finish Indented ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start Body ***!><font size=+2 color=Black>
|
||||
The first call to a device automatically connects to the requested service, initializing any underly
|
||||
ing packages as needed. These routines are synchronous (operation completes before return);
|
||||
asynchronous routines are discussed below.
|
||||
</p>
|
||||
The message (second) argument selects what operation and attribute to access. Many messages
|
||||
are by convention of the form "verb attribute", and typical verbs include get, set, monitorOn, and
|
||||
monitorOff.
|
||||
<!*** Finish Body ***!></p></font>
|
||||
<!*** Start Heading1 ***!><font size=+3 color=Black><strong>
|
||||
Binding a device and message
|
||||
<!*** Finish Heading1 ***!></p></strong></font>
|
||||
<!*** Start Body ***!><font size=+2 color=Black>
|
||||
In order to avoid the overhead of parsing the device name and message on each call, it is possible
|
||||
to get a handle which binds the device and message into a request.
|
||||
<!*** Finish Body ***!></p></font>
|
||||
<table>
|
||||
<tr><td width=5% valign=top>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start IndentedBold ***!><font size=+2 color=Black><strong>
|
||||
status = cdevRequestAllocate(char* device, char*message, CDEVREQUESTID* reqid);
|
||||
<!*** Finish IndentedBold ***!></p></strong></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start Body ***!><font size=+2 color=Black>
|
||||
Operations may be performed on this request object without specifying device and message.
|
||||
<!*** Finish Body ***!></p></font>
|
||||
<table>
|
||||
<tr><td width=5% valign=top>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start IndentedBold ***!><font size=+2 color=Black><strong>
|
||||
status = cdevRequestSend(reqid, out, result);
|
||||
<!*** Finish IndentedBold ***!></p></strong></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start Body ***!><font size=+2 color=Black>
|
||||
Request objects maintain a connection to a server, and the state of this connection may be
|
||||
obtained:
|
||||
<!*** Finish Body ***!></p></font>
|
||||
<table>
|
||||
<tr><td width=5% valign=top>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start IndentedBold ***!><font size=+2 color=Black><strong>
|
||||
state = cdevRequestState (reqid);
|
||||
<!*** Finish IndentedBold ***!></p></strong></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start Body ***!><font size=+2 color=Black>
|
||||
The current access rights (read, write, none) for this request object may be obtained:
|
||||
<!*** Finish Body ***!></p></font>
|
||||
<table>
|
||||
<tr><td width=5% valign=top>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start IndentedBold ***!><font size=+2 color=Black><strong>
|
||||
access = cdevRequestAccess (reqid);
|
||||
<!*** Finish IndentedBold ***!></p></strong></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start Body ***!><font size=+2 color=Black>
|
||||
Given the request object, it is also possible to extract the device name and message:
|
||||
<!*** Finish Body ***!></p></font>
|
||||
<table>
|
||||
<tr><td width=5% valign=top>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start IndentedBold ***!><font size=+2 color=Black><strong>
|
||||
cdevRequestDevice (reqid, char** name); /* caller must free string */
|
||||
</p>
|
||||
cdevRequestMessage (reqid, char** msg);
|
||||
<!*** Finish IndentedBold ***!></p></strong></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start Heading1 ***!><font size=+3 color=Black><strong>
|
||||
Monitoring and Asynchronous I/O
|
||||
<!*** Finish Heading1 ***!></p></strong></font>
|
||||
<!*** Start Body ***!><font size=+2 color=Black>
|
||||
A message sent to a device may result in an asynchronous reply, or more than one reply. In addi
|
||||
tion, abnormal conditions may occur in the device which are of interest to the application. Each of
|
||||
these results in a message back to the client which is asynchronous with respect to program exe
|
||||
cution. Several calls are provided to deal with asynchronous data.
|
||||
<!*** Finish Body ***!></p></font>
|
||||
<table>
|
||||
<tr><td valign=top>
|
||||
<!*** Start HeadingRunIn ***!><font size=+2 color=Black><strong>
|
||||
Asynchronous Messages
|
||||
<!*** Finish HeadingRunIn ***!></p></strong></font>
|
||||
</td>
|
||||
<td>
|
||||
<! ***** Empty Column ***** !>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start Body ***!><font size=+2 color=Black>
|
||||
An asynchronous version of the message send call will send the mes
|
||||
sage, but not wait for the reply. Two async forms are supported: one returning data to a caller's
|
||||
data object, and the other returning data to a callback function. The reply argument is replaced by
|
||||
an additional structure which specified a user callback function.
|
||||
<!*** Finish Body ***!></p></font>
|
||||
<table>
|
||||
<tr><td width=5% valign=top>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start IndentedBold ***!><font size=+2 color=Black><strong>
|
||||
status = cdevSendNoBlock(char* device, char* message,
|
||||
</p>
|
||||
cdev_data_t out, cdev_data_t result);
|
||||
</p>
|
||||
status = cdevSendCallback(char* device, char* message,
|
||||
</p>
|
||||
cdev_data_t out, CDEVCALLBACK* callback);
|
||||
<!*** Finish IndentedBold ***!></p></strong></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start Body ***!><font size=+2 color=Black>
|
||||
Similarly for request objects:
|
||||
<!*** Finish Body ***!></p></font>
|
||||
<table>
|
||||
<tr><td width=5% valign=top>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start IndentedBold ***!><font size=+2 color=Black><strong>
|
||||
status = cdevRequestSendNoBlock(cdev_data_t out, cdev_data_t result);
|
||||
</p>
|
||||
status = cdevRequestSendCallback(cdev_data_t out, CDEVCALLBACK* callback);
|
||||
<!*** Finish IndentedBold ***!></p></strong></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start HeadingRunIn ***!><font size=+2 color=Black><strong>
|
||||
Monitoring:
|
||||
<!*** Finish HeadingRunIn ***!></p></strong></font>
|
||||
</td>
|
||||
<td>
|
||||
<! ***** Empty Column ***** !>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start Body ***!><font size=+2 color=Black>
|
||||
Monitoring is started and stopped by two using the message "monitorOn xxx" and
|
||||
"monitorOff xxx".
|
||||
<!*** Finish Body ***!></p></font>
|
||||
<table>
|
||||
<tr><td width=5% valign=top>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start Indented ***!><font size=+2 color=Black>
|
||||
status = cdevSendCallback("deviceName", "monitorOn attributeName",NULL, callback);
|
||||
<!*** Finish Indented ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start HeadingRunIn ***!><font size=+2 color=Black><strong>
|
||||
Synchronization
|
||||
<!*** Finish HeadingRunIn ***!></p></strong></font>
|
||||
</td>
|
||||
<td>
|
||||
<! ***** Empty Column ***** !>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start Body ***!><font size=+2 color=Black>
|
||||
In order to synchronize with asynchronous messages, both a poll and a pend
|
||||
call are available, as well as an explicit flush. A pend with 0.0 seconds waits forever.
|
||||
<!*** Finish Body ***!></p></font>
|
||||
<table>
|
||||
<tr><td width=5% valign=top>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start IndentedBold ***!><font size=+2 color=Black><strong>
|
||||
cdevFlush ();
|
||||
</p>
|
||||
cdevPoll ();
|
||||
</p>
|
||||
cdevPend (float seconds);
|
||||
<!*** Finish IndentedBold ***!></p></strong></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start Body ***!><font size=+2 color=Black>
|
||||
If seconds==0.0, wait forever.
|
||||
<!*** Finish Body ***!></p></font>
|
||||
<table>
|
||||
<tr><td valign=top>
|
||||
<!*** Start HeadingRunIn ***!><font size=+2 color=Black><strong>
|
||||
Grouping
|
||||
<!*** Finish HeadingRunIn ***!></p></strong></font>
|
||||
</td>
|
||||
<td>
|
||||
<! ***** Empty Column ***** !>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start Body ***!><font size=+2 color=Black>
|
||||
Grouping of operations will be similar to that specified for EZCA, with slight varia
|
||||
tions. The grouping calls are useful for synchronizing with a set of asynchronous calls.
|
||||
<!*** Finish Body ***!></p></font>
|
||||
<table>
|
||||
<tr><td width=5% valign=top>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start IndentedBold ***!><font size=+2 color=Black><strong>
|
||||
cdevGroupAllocate(GROUPID* groupid);
|
||||
</p>
|
||||
cdevGroupStart(groupid);
|
||||
</p>
|
||||
cdevGroupEnd(groupid);
|
||||
</p>
|
||||
cdevGroupPoll(groupid);
|
||||
</p>
|
||||
cdevGroupPend(groupid);
|
||||
</p>
|
||||
cdevGroupAllFinished (groupid);
|
||||
</p>
|
||||
cdevGroupStatus (groupid, int *status, int *nstatus); /* initially nstatus = len of status */
|
||||
<!*** Finish IndentedBold ***!></p></strong></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start HeadingRunIn ***!><font size=+2 color=Black><strong>
|
||||
File Descriptors
|
||||
<!*** Finish HeadingRunIn ***!></p></strong></font>
|
||||
</td>
|
||||
<td>
|
||||
<! ***** Empty Column ***** !>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start Body ***!><font size=+2 color=Black>
|
||||
To integrate other asynchronous systems, such as X windows, it is often neces
|
||||
sary to obtain file descriptors for select operations.
|
||||
<!*** Finish Body ***!></p></font>
|
||||
<table>
|
||||
<tr><td width=5% valign=top>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start IndentedBold ***!><font size=+2 color=Black><strong>
|
||||
status = cdevGetFD(int fd[], int * numFD);
|
||||
<!*** Finish IndentedBold ***!></p></strong></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start HeadingRunIn ***!><font size=+2 color=Black><strong>
|
||||
Context
|
||||
<!*** Finish HeadingRunIn ***!></p></strong></font>
|
||||
</td>
|
||||
<td>
|
||||
<! ***** Empty Column ***** !>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start Body ***!><font size=+2 color=Black>
|
||||
Operations on a device take place within a context. The context is maintained by the
|
||||
device as a cdev_data_t structure. The following routines are used to get and set the context; set
|
||||
ting items within the context is done by the cdevData* routines.
|
||||
<!*** Finish Body ***!></p></font>
|
||||
<table>
|
||||
<tr><td width=5% valign=top>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start IndentedBold ***!><font size=+2 color=Black><strong>
|
||||
cdevGetContext(char *devname, cdev_data_t *id);
|
||||
</p>
|
||||
cdevSetContext(char *devname, cdev_data_t id);
|
||||
<!*** Finish IndentedBold ***!></p></strong></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start HeadingRunIn ***!><font size=+2 color=Black><strong>
|
||||
Private Data
|
||||
<!*** Finish HeadingRunIn ***!></p></strong></font>
|
||||
</td>
|
||||
<td>
|
||||
<! ***** Empty Column ***** !>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start Body ***!><font size=+2 color=Black>
|
||||
Each device also maintains a private data pointer, to be used by the application
|
||||
developer for any purpose desired.
|
||||
<!*** Finish Body ***!></p></font>
|
||||
<table>
|
||||
<tr><td width=5% valign=top>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start IndentedBold ***!><font size=+2 color=Black><strong>
|
||||
cdevGetPrivate (char *devname, void **data);
|
||||
</p>
|
||||
cdevSetPrivate (char *devname, void *data);
|
||||
<!*** Finish IndentedBold ***!></p></strong></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start Body ***!><font size=+2 color=Black>
|
||||
These same four routines are available for request objects:
|
||||
<!*** Finish Body ***!></p></font>
|
||||
<table>
|
||||
<tr><td width=5% valign=top>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start IndentedBold ***!><font size=+2 color=Black><strong>
|
||||
cdevRequestGetContext (reqid, cdev_data_t *id);
|
||||
</p>
|
||||
cdevRequestSetContext (reqid, cdev_data_t id);
|
||||
</p>
|
||||
cdevRequestGetPrivate (reqid, void **data);
|
||||
</p>
|
||||
cdevRequestSetPrivate (reqid, void *data);
|
||||
<!*** Finish IndentedBold ***!></p></strong></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start Heading1 ***!><font size=+3 color=Black><strong>
|
||||
Error Reporting and Handling
|
||||
<!*** Finish Heading1 ***!></p></strong></font>
|
||||
<!*** Start Body ***!><font size=+2 color=Black>
|
||||
This group of routines is also modeled after EZCA (assume identical functionality).
|
||||
</p>
|
||||
Turn automatic error reporting on and off:
|
||||
<!*** Finish Body ***!></p></font>
|
||||
<table>
|
||||
<tr><td width=5% valign=top>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start IndentedBold ***!><font size=+2 color=Black><strong>
|
||||
cdevAutoErrorOn ();
|
||||
</p>
|
||||
cdevAutoErrorOff ();
|
||||
<!*** Finish IndentedBold ***!></p></strong></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start Body ***!><font size=+2 color=Black>
|
||||
Set the severity threshold at which errors should be reported:
|
||||
<!*** Finish Body ***!></p></font>
|
||||
<table>
|
||||
<tr><td width=5% valign=top>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start IndentedBold ***!><font size=+2 color=Black><strong>
|
||||
cdevSetThreshold (int new);
|
||||
</p>
|
||||
cdevReportError (int severity, char *name,
|
||||
</p>
|
||||
CDEVREQUESTID request, char* format, ...);
|
||||
</p>
|
||||
cdevGetErrorString ();
|
||||
</p>
|
||||
cdevSetErrorHandler (function);
|
||||
<!*** Finish IndentedBold ***!></p></strong></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start Body ***!><font size=+2 color=Black>
|
||||
Note: For simplicity of use, a very compact set of error codes is implemented in cdev. The follow
|
||||
ing error codes are defined in the header file cdevErrCode.h.
|
||||
</p>
|
||||
CDEV_SUCCESS = 0 Success
|
||||
</p>
|
||||
CDEV_INVALIDOBJ = 1 Invalid cdev object used
|
||||
</p>
|
||||
CDEV_INVALIDARG = 2 Invalid argument passed to cdev method
|
||||
</p>
|
||||
CDEV_INVALIDSVC = 3 Wrong service during dynamic loading
|
||||
</p>
|
||||
CDEV_NOTCONNECTED = 4 Not connected to low-level network service
|
||||
</p>
|
||||
CDEV_IOFAILED = 5 Low-level network service IO failed
|
||||
</p>
|
||||
CDEV_CONFLICT = 6 Conflicting of data types or data tags
|
||||
</p>
|
||||
CDEV_NOTFOUND = 7 Cdev cannot find specified data or tag
|
||||
</p>
|
||||
CDEV_TIMEOUT = 8 Time out
|
||||
</p>
|
||||
CDEV_CONVERT = 9 cdevData conversion error
|
||||
<!*** Finish Body ***!></p></font>
|
||||
<!*** Start Heading1 ***!><font size=+3 color=Black><strong>
|
||||
Name Services
|
||||
<!*** Finish Heading1 ***!></p></strong></font>
|
||||
<!*** Start Body ***!><font size=+2 color=Black>
|
||||
There is a special device named cdevDirectory which provides a set of query capabilities:
|
||||
<!*** Finish Body ***!></p></font>
|
||||
<table>
|
||||
<tr><td width=5% valign=top>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start Indented ***!><font size=+2 color=Black>
|
||||
status = cdevSend("cdevDirectory", "query",
|
||||
</p>
|
||||
cdev_data_t selection, cdev_data_t result);
|
||||
<!*** Finish Indented ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start Body ***!><font size=+2 color=Black>
|
||||
The selection data object specifies one or more tags used to select device names. The result con
|
||||
tains a list of devices accessed through the "value" tag.
|
||||
</p>
|
||||
|
||||
<!*** Finish Body ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
</body>
|
||||
Executable
+4336
File diff suppressed because it is too large
Load Diff
Executable
+864
@@ -0,0 +1,864 @@
|
||||
<! This document generated using mif2html Version 1.0 - Walt Akers - 1996 !>
|
||||
<head>
|
||||
<title>CDEV Documentation</title>
|
||||
</head>
|
||||
|
||||
<body bgcolor="#E0E0FF">
|
||||
|
||||
<body>
|
||||
<! ************************ FILE : cdevGatewayTITLE.mif *****************************!>
|
||||
<br><hr><br>
|
||||
<table width=100%>
|
||||
<tr><td>
|
||||
<! ***** Empty Column ***** !>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start ADDRESS-TITLE ***!><font size=+12 color=Black><strong><em>
|
||||
CDEV Gateway
|
||||
<!*** Finish ADDRESS-TITLE ***!></p></strong></em></font>
|
||||
<!*** Start ADDRESS-VERSION ***!><font size=+1 color=Black>
|
||||
|
||||
</p>
|
||||
A Message Router/Concentrator for CDEV Clients
|
||||
</p>
|
||||
|
||||
</p>
|
||||
Walt Akers, Chip Watson, Jie Chen
|
||||
</p>
|
||||
|
||||
</p>
|
||||
Version 1.0 - February 13, 1997
|
||||
</p>
|
||||
|
||||
</p>
|
||||
TJNAF - Thomas Jefferson National Accelerator Facility
|
||||
</p>
|
||||
|
||||
<!*** 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="cdevGateway.html#TOCREF1">CDEV Gateway Fundamentals</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="cdevGateway.html#TOCREF2">Overview of the CDEV Gateway</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="cdevGateway.html#TOCREF3">Purpose of the CDEV Gateway</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="cdevGateway.html#TOCREF4">Features of the CDEV Gateway Service</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="cdevGateway.html#TOCREF5">Building the CDEV Gateway Service</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="cdevGateway.html#TOCREF6">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="cdevGateway.html#TOCREF7">Steps to Building the Server and Service</a>
|
||||
<!*** Finish UHEADING2TOC ***!><br></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
|
||||
3.
|
||||
<!*** Finish HEADING1TOC ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
|
||||
<a href="cdevGateway.html#TOCREF8">Starting the CDEV Gateway</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="cdevGateway.html#TOCREF9">Starting the Gateway Server</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="cdevGateway.html#TOCREF10">Start-up Arguments for the Gateway Server</a>
|
||||
<!*** Finish UHEADING2TOC ***!><br></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
|
||||
4.
|
||||
<!*** Finish HEADING1TOC ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
|
||||
<a href="cdevGateway.html#TOCREF11">Troubleshooting Server Start-up</a>
|
||||
<!*** Finish HEADING1TOC ***!><br></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
|
||||
5.
|
||||
<!*** Finish HEADING1TOC ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
|
||||
<a href="cdevGateway.html#TOCREF12">DDL Entries for the CDEV Gateway Client</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="cdevGateway.html#TOCREF13">Setting Up the DDL </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 FIGURELOF ***!><font size=+1 color=Black>
|
||||
Figure 1:
|
||||
<a href="cdevGateway.html#LOFREF1">Simple DDL file for the Gateway Service</a>
|
||||
<!*** Finish FIGURELOF ***!><br></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<! ************************ FILE : ./cdevGateway.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">
|
||||
CDEV Gateway Fundamentals
|
||||
</a> <!*** Finish HEADING1 ***!></p></strong></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start UHEADING2 ***!><font size=+1 color=Black><strong>
|
||||
<a name="TOCREF2">
|
||||
Overview of the
|
||||
CDEV Gateway
|
||||
</a> <!*** Finish UHEADING2 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
The CDEV Gateway is a server that acts as an intermediary between a CDEV
|
||||
application and remote services. A single network connection is established between
|
||||
the client and the gateway through which all CDEV requests will be routed. When the
|
||||
gateway receives a request from the client, it establishes the appropriate connection
|
||||
to the actual service, makes the request, and returns the result to the client
|
||||
application.
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start UHEADING2 ***!><font size=+1 color=Black><strong>
|
||||
<a name="TOCREF3">
|
||||
Purpose of the
|
||||
CDEV Gateway
|
||||
</a> <!*** Finish UHEADING2 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
The CDEV Gateway was designed to support the JAVA/CDEV API. Because JAVA
|
||||
code must be small in order to load and execute efficiently, it was critical to move as
|
||||
much code as possible out of JAVA and into a CDEV "proxy" which could perform
|
||||
connection management and dynamic library loading. This allows the JAVA
|
||||
application to access new services provided in C++ without adding any new code.
|
||||
</p>
|
||||
The JAVA/CDEV library locates the CDEV Gateway by using a hostname and port that
|
||||
is provided in an environment variable. After determining the location of the server,
|
||||
JAVA will establish a connection to the gateway and then begin transmitting its CDEV
|
||||
requests in standard CLIP (CDEV Linear Internet Protocol).
|
||||
</p>
|
||||
The gateway can also be used by standard C or C++ CDEV applications to perform
|
||||
message routing. This approach can lessen the number of connections to actual
|
||||
control system devices and reduce network traffic significantly. The gateway is located
|
||||
by the gateway service by looking up its name (as specified in the CDEV DDL) in the
|
||||
global name server (The current name server is distributed as part of the CDEV
|
||||
Generic Server in the CDEV distribution).
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start UHEADING2 ***!><font size=+1 color=Black><strong>
|
||||
<a name="TOCREF4">
|
||||
Features of the
|
||||
CDEV Gateway
|
||||
Service
|
||||
</a> <!*** Finish UHEADING2 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<table>
|
||||
<tr><td valign=top>
|
||||
<!*** Start BULLETED ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish BULLETED ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BULLETED ***!><font size=+1 color=Black>
|
||||
The CDEV Gateway is constructed using the CDEV Generic Server Engine and
|
||||
the CLIP Protocol.
|
||||
<!*** Finish BULLETED ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start BULLETED ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish BULLETED ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BULLETED ***!><font size=+1 color=Black>
|
||||
Each gateway server registers its name, host and port with the CDEV Name
|
||||
Server when it is started.
|
||||
<!*** Finish BULLETED ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start BULLETED ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish BULLETED ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BULLETED ***!><font size=+1 color=Black>
|
||||
The name of the specific gateway to be used is associated with a CDEV device/
|
||||
message combination by using the "server" field of the service data in the CDEV
|
||||
DDL file. Syntax is described later in this document.
|
||||
<!*** Finish BULLETED ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start BULLETED ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish BULLETED ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BULLETED ***!><font size=+1 color=Black>
|
||||
The gateway service will establish one connection to a named gateway to perform
|
||||
all transactions.
|
||||
<!*** Finish BULLETED ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start BULLETED ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish BULLETED ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BULLETED ***!><font size=+1 color=Black>
|
||||
The client application uses a special DDL file that redirects all signals to the
|
||||
gateway service. This allows the gateway server to maintain the actual control
|
||||
system connections from a centralized location.
|
||||
<!*** Finish BULLETED ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start BULLETED ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish BULLETED ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BULLETED ***!><font size=+1 color=Black>
|
||||
The gateway server may have a standard DDL that redirects requests to the
|
||||
actual service OR it may have a special DDL that routes requests to another
|
||||
gateway. The system has currently been tested by routing messages through as
|
||||
many as ten gateways before reaching the actual control system. Note that
|
||||
performance begins to degrade substantially after routing through five gateways -
|
||||
but is still reasonable.
|
||||
<!*** Finish BULLETED ***!></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="TOCREF5">
|
||||
Building the CDEV Gateway Service
|
||||
</a> <!*** Finish HEADING1 ***!></p></strong></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start UHEADING2 ***!><font size=+1 color=Black><strong>
|
||||
<a name="TOCREF6">
|
||||
Location of Files
|
||||
</a> <!*** Finish UHEADING2 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
The source code for the Gateway Service is provided with the CDEV distribution
|
||||
starting with version 1.5. The source code is located in the directory $CDEV/
|
||||
applications/cdevGateway. The following steps should be taken to build the Gateway
|
||||
Server and Service.
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start UHEADING2 ***!><font size=+1 color=Black><strong>
|
||||
<a name="TOCREF7">
|
||||
Steps to Building
|
||||
the Server and
|
||||
Service
|
||||
</a> <!*** Finish UHEADING2 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<table>
|
||||
<tr><td valign=top>
|
||||
<!*** Start NUMBERED ***!><font size=+1 color=Black>
|
||||
1.
|
||||
<!*** Finish NUMBERED ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start NUMBERED ***!><font size=+1 color=Black>
|
||||
Obtain and install the CDEV distribution - Version 1.5 or higher.
|
||||
<!*** Finish NUMBERED ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start NUMBERED ***!><font size=+1 color=Black>
|
||||
2.
|
||||
<!*** Finish NUMBERED ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start NUMBERED ***!><font size=+1 color=Black>
|
||||
Follow the installation steps to build CDEV on your system. This includes setting
|
||||
all of the environment variables required by CDEV.
|
||||
<!*** Finish NUMBERED ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start NUMBERED ***!><font size=+1 color=Black>
|
||||
3.
|
||||
<!*** Finish NUMBERED ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start NUMBERED ***!><font size=+1 color=Black>
|
||||
Follow the installation steps to build the CDEV Generic Server and deploy the
|
||||
CDEV Name Server.
|
||||
<!*** Finish NUMBERED ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start NUMBERED ***!><font size=+1 color=Black>
|
||||
4.
|
||||
<!*** Finish NUMBERED ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start NUMBERED ***!><font size=+1 color=Black>
|
||||
There is a collection of platform specific makefiles in the directory <em>$CDEV/
|
||||
extensions/cdevGenericServer/include/makeinclude</em>. Link the makefile that is
|
||||
appropriate to your architecture to the file Makefile.OS in THAT directory.
|
||||
<!*** Finish NUMBERED ***!></p></font>
|
||||
<!*** Start INDENTED ***!><font size=+1 color=Black>
|
||||
For example, to link to the makefile for HP-UX, you would type the following
|
||||
command.
|
||||
</p>
|
||||
|
||||
</p>
|
||||
<em>cd $CDEV/extensions/cdevGenericServer/makeinclude</em>
|
||||
</p>
|
||||
<em>ln -s Makefile.hpux Makefile.OS</em>
|
||||
</p>
|
||||
|
||||
<!*** Finish INDENTED ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start NUMBERED ***!><font size=+1 color=Black>
|
||||
5.
|
||||
<!*** Finish NUMBERED ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start NUMBERED ***!><font size=+1 color=Black>
|
||||
Change directories to <em>$CDEV/applications/cdevGateway</em>.
|
||||
<!*** Finish NUMBERED ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start NUMBERED ***!><font size=+1 color=Black>
|
||||
6.
|
||||
<!*** Finish NUMBERED ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start NUMBERED ***!><font size=+1 color=Black>
|
||||
Type make to compile and link the CDEV Gateway Service shared object and the
|
||||
CDEV Gateway Server. Note that you must be using GNU make in order to build
|
||||
this distribution.
|
||||
<!*** Finish NUMBERED ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
Upon completion the Makefile will generate the shared object for the gateway service
|
||||
and will install it into your CDEVSHOBJ directory. The gateway server will be
|
||||
compiled, linked and installed in the directory $CDEV/applications/cdevGateway/bin/
|
||||
ARCH/cdevGateway. At this point you are ready to start the gateway server.
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
|
||||
3.
|
||||
<!*** Finish HEADING1 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
|
||||
<a name="TOCREF8">
|
||||
Starting the CDEV Gateway
|
||||
</a> <!*** Finish HEADING1 ***!></p></strong></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start UHEADING2 ***!><font size=+1 color=Black><strong>
|
||||
<a name="TOCREF9">
|
||||
Starting the
|
||||
Gateway Server
|
||||
</a> <!*** Finish UHEADING2 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
The following steps should be taken to execute the cdevGateway.
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
<table>
|
||||
<tr><td valign=top>
|
||||
<!*** Start NUMBERED1 ***!><font size=+1 color=Black>
|
||||
1.
|
||||
<!*** Finish NUMBERED1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start NUMBERED1 ***!><font size=+1 color=Black>
|
||||
Ensure that the required CDEV and CDEV Generic Server environment variables
|
||||
have been set. These include:
|
||||
<!*** Finish NUMBERED1 ***!></p></font>
|
||||
<table>
|
||||
<tr><td valign=top>
|
||||
<!*** Start FUNC_NAME_2 ***!><font size=+1 color=Black><strong>
|
||||
CDEVDDL
|
||||
<!*** Finish FUNC_NAME_2 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start FUNC_DEF_2 ***!><font size=+1 color=Black>
|
||||
This is the name of the DDL file that indicates where
|
||||
messages should be routed. Typically, this DDL will
|
||||
route the messages to the actual control system
|
||||
devices.
|
||||
<!*** Finish FUNC_DEF_2 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start FUNC_NAME_2 ***!><font size=+1 color=Black><strong>
|
||||
CDEVSHOBJ
|
||||
<!*** Finish FUNC_NAME_2 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start FUNC_DEF_2 ***!><font size=+1 color=Black>
|
||||
This is the location of the CDEV shared object files.
|
||||
<!*** Finish FUNC_DEF_2 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start FUNC_NAME_2 ***!><font size=+1 color=Black><strong>
|
||||
CDEV_NAME_SERVER
|
||||
<!*** Finish FUNC_NAME_2 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start FUNC_DEF_2 ***!><font size=+1 color=Black>
|
||||
This is the host where the CDEV Name Server is
|
||||
running.
|
||||
<!*** Finish FUNC_DEF_2 ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start NUMBERED ***!><font size=+1 color=Black>
|
||||
2.
|
||||
<!*** Finish NUMBERED ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start NUMBERED ***!><font size=+1 color=Black>
|
||||
Move to the directory where the CDEV Gateway Server binary is located: by
|
||||
default $CDEV/applications/cdevGateway/bin/ARCH, where ARCH is the name of
|
||||
the host architecture.
|
||||
<!*** Finish NUMBERED ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start NUMBERED ***!><font size=+1 color=Black>
|
||||
3.
|
||||
<!*** Finish NUMBERED ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start NUMBERED ***!><font size=+1 color=Black>
|
||||
Type the command ./cdevGateway at the command line. This will start a gateway
|
||||
server with the name <strong><em>Gateway1</strong></em><em> </em>on the current host using TCP/IP port 9573. This
|
||||
information can be confirmed by using the <strong><em>dumpServer</strong></em> command that is
|
||||
provided with the CDEV Generic Server Engine to display the contents of the
|
||||
CDEV Name Server.
|
||||
<!*** Finish NUMBERED ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
At this point the cdevGateway should be ready for use by client applications.
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start UHEADING2 ***!><font size=+1 color=Black><strong>
|
||||
<a name="TOCREF10">
|
||||
Start-up
|
||||
Arguments for the
|
||||
Gateway Server
|
||||
</a> <!*** Finish UHEADING2 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
The user can specify the name of port used by the CDEV Gateway from the command
|
||||
line when the server is started. The gateway server will accept the following
|
||||
parameters from start-up.
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
<table>
|
||||
<tr><td valign=top>
|
||||
<!*** Start FUNC_NAME_2 ***!><font size=+1 color=Black><strong>
|
||||
s=<em>server name</em>
|
||||
<!*** Finish FUNC_NAME_2 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start FUNC_DEF_2 ***!><font size=+1 color=Black>
|
||||
This allows the caller to specify the server name that
|
||||
will be registered with the name server. By default
|
||||
the server name is <strong><em>Gateway1</strong></em>.
|
||||
<!*** Finish FUNC_DEF_2 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start FUNC_NAME_2 ***!><font size=+1 color=Black><strong>
|
||||
p=<em>port number</em>
|
||||
<!*** Finish FUNC_NAME_2 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start FUNC_DEF_2 ***!><font size=+1 color=Black>
|
||||
This allows the caller to specify the port that the
|
||||
server will use to receive incoming requests. By
|
||||
default the port used by the server is <strong><em>9573</strong></em>.
|
||||
<!*** Finish FUNC_DEF_2 ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
|
||||
4.
|
||||
<!*** Finish HEADING1 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
|
||||
<a name="TOCREF11">
|
||||
Troubleshooting Server Start-up
|
||||
</a> <!*** Finish HEADING1 ***!></p></strong></font>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
When the server is started it may display one or more error conditions that will prevent
|
||||
it from operating properly.
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
<table>
|
||||
<tr><td valign=top>
|
||||
<!*** Start FUNC_NAME ***!><font size=+1 color=Black><strong>
|
||||
Error:
|
||||
<!*** Finish FUNC_NAME ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start FUNC_PROTO ***!><font size=+1 color=Black><em>
|
||||
syntax error at line:#
|
||||
<!*** Finish FUNC_PROTO ***!></p></em></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start FUNC_NAME ***!><font size=+1 color=Black><strong>
|
||||
Meaning:
|
||||
<!*** Finish FUNC_NAME ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start FUNC_DEF ***!><font size=+1 color=Black>
|
||||
This message indicates that the CDEVDDL file that is being
|
||||
used by the gateway is formatted improperly.
|
||||
<!*** Finish FUNC_DEF ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start FUNC_NAME ***!><font size=+1 color=Black><strong>
|
||||
Solution:
|
||||
<!*** Finish FUNC_NAME ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start FUNC_DEF ***!><font size=+1 color=Black>
|
||||
Edit the CDEVDDL file and correct any formatting errors that
|
||||
may exist.
|
||||
<!*** Finish FUNC_DEF ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start FUNC_NAME ***!><font size=+1 color=Black><strong>
|
||||
Error:
|
||||
<!*** Finish FUNC_NAME ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start FUNC_PROTO ***!><font size=+1 color=Black><em>
|
||||
ERROR: Gateway1 server already exists in GATEWAY domain
|
||||
<!*** Finish FUNC_PROTO ***!></p></em></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start FUNC_NAME ***!><font size=+1 color=Black><strong>
|
||||
Meaning:
|
||||
<!*** Finish FUNC_NAME ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start FUNC_DEF ***!><font size=+1 color=Black>
|
||||
This message indicates that a gateway server with the name
|
||||
Gateway1 has already been started and is currently registered
|
||||
with the CDEV Name Server.
|
||||
<!*** Finish FUNC_DEF ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start FUNC_NAME ***!><font size=+1 color=Black><strong>
|
||||
Solution:
|
||||
<!*** Finish FUNC_NAME ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start FUNC_DEF ***!><font size=+1 color=Black>
|
||||
The gateway will continue to attempt to register itself with the
|
||||
name server every 30 seconds. If the message continues to
|
||||
appear, then restart the gateway using the s parameter to
|
||||
specify a different server name OR shutdown the other
|
||||
gateway that is using the same name.
|
||||
<!*** Finish FUNC_DEF ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start FUNC_NAME ***!><font size=+1 color=Black><strong>
|
||||
Error:
|
||||
<!*** Finish FUNC_NAME ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start FUNC_PROTO ***!><font size=+1 color=Black><em>
|
||||
Could not communicate with name server
|
||||
</p>
|
||||
ERROR: Failed to execute "REGISTER SERVER" operation
|
||||
<!*** Finish FUNC_PROTO ***!></p></em></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start FUNC_NAME ***!><font size=+1 color=Black><strong>
|
||||
Meaning:
|
||||
<!*** Finish FUNC_NAME ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start FUNC_DEF ***!><font size=+1 color=Black>
|
||||
This message indicates that the CDEV Name Server could not
|
||||
be accessed either because it is not running or because the
|
||||
CDEV_NAME_SERVER environment variable does not specify
|
||||
the correct host.
|
||||
<!*** Finish FUNC_DEF ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start FUNC_NAME ***!><font size=+1 color=Black><strong>
|
||||
Solution:
|
||||
<!*** Finish FUNC_NAME ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start FUNC_DEF ***!><font size=+1 color=Black>
|
||||
Ensure that the CDEV_NAME_SERVER environment variable
|
||||
is set and indicates the host where the name server is running.
|
||||
If this is correct, check to ensure that the name server is
|
||||
actually running on the specified host.
|
||||
<!*** Finish FUNC_DEF ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start FUNC_NAME ***!><font size=+1 color=Black><strong>
|
||||
Error:
|
||||
<!*** Finish FUNC_NAME ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start FUNC_PROTO ***!><font size=+1 color=Black><em>
|
||||
Error: Server Gateway1 - Unable to open listening socket
|
||||
<!*** Finish FUNC_PROTO ***!></p></em></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start FUNC_NAME ***!><font size=+1 color=Black><strong>
|
||||
Meaning:
|
||||
<!*** Finish FUNC_NAME ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start FUNC_DEF ***!><font size=+1 color=Black>
|
||||
This message indicates that the port that the name server is
|
||||
attempting to use to listen for new connections is already in
|
||||
use.
|
||||
<!*** Finish FUNC_DEF ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start FUNC_NAME ***!><font size=+1 color=Black><strong>
|
||||
Solution:
|
||||
<!*** Finish FUNC_NAME ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start FUNC_DEF ***!><font size=+1 color=Black>
|
||||
Use the command line arguments to specify a different listening
|
||||
port.
|
||||
<!*** Finish FUNC_DEF ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
|
||||
</p>
|
||||
|
||||
</p>
|
||||
|
||||
</p>
|
||||
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
|
||||
5.
|
||||
<!*** Finish HEADING1 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
|
||||
<a name="TOCREF12">
|
||||
DDL Entries for the CDEV Gateway Client
|
||||
</a> <!*** Finish HEADING1 ***!></p></strong></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start UHEADING2 ***!><font size=+1 color=Black><strong>
|
||||
<a name="TOCREF13">
|
||||
Setting Up the
|
||||
DDL
|
||||
</a> <!*** Finish UHEADING2 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
The following example illustrates how to add a service entry to identify the CDEV
|
||||
Gateway Service and how to use the service data to specify the server that the
|
||||
gateway service will use for routing messages.
|
||||
</p>
|
||||
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
<!*** Start FIGURE ***!><font size=+0 color=Black><em>
|
||||
Figure 1:
|
||||
<a name="LOFREF1">
|
||||
Simple DDL file for the Gateway Service
|
||||
<table border=1><tr><td>
|
||||
<table>
|
||||
<tr><td>
|
||||
<! ***** Empty Column ***** !>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start PROGRAM ***!><pre><font size=+0 color=Black><strong><em>
|
||||
/*
|
||||
* This is the service definition, it tells CDEV that there is
|
||||
* a service named Gateway and that it will use the cdevData
|
||||
* tag 'server' to locate the gateway using the CDEV Name Server.
|
||||
*/
|
||||
service Gateway
|
||||
{
|
||||
tags {server}
|
||||
}
|
||||
|
||||
/*
|
||||
* This class definition identifies the class gatewayClass which
|
||||
* supports the "get","set", "monitorOn" and "monitorOff"
|
||||
* commands on attributes "attrib0" and "attrib1". Note that
|
||||
* requests made to attrib0 will be routed through "Gateway1"
|
||||
* and requests made to attrib1 will be routed through
|
||||
* "Gateway2".
|
||||
*/
|
||||
class gatewayClass
|
||||
{
|
||||
verbs {get, set, monitorOn, monitorOff}
|
||||
attributes
|
||||
{
|
||||
attrib0 Gateway {server=Gateway1};
|
||||
attrib1 Gateway {server=Gateway2};
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Finally, the CDEV DDL identifies two devices that are of type
|
||||
* gatewayClass. Any time one of the supported messages is passed
|
||||
* to one of these devices it will be routed through a CDEV
|
||||
* Gateway.
|
||||
*/
|
||||
gatewayClass : device0, device1;
|
||||
<!*** Finish PROGRAM ***!></strong></em></font></pre>
|
||||
</td></tr>
|
||||
</table>
|
||||
</tr></td></table>
|
||||
<AFrame 1>
|
||||
</a> <!*** Finish FIGURE ***!></p></em></font>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
</body>
|
||||
Executable
+1968
File diff suppressed because it is too large
Load Diff
Executable
+8150
File diff suppressed because it is too large
Load Diff
Executable
+949
@@ -0,0 +1,949 @@
|
||||
<! This document generated using mif2html Version 1.0 - Walt Akers - 1996 !>
|
||||
<head>
|
||||
<title>CDEV Documentation</title>
|
||||
</head>
|
||||
|
||||
<body bgcolor="#E0E0FF">
|
||||
|
||||
<body>
|
||||
<! ************************ FILE : cdevScriptServiceTITLE.mif *****************************!>
|
||||
<br><hr><br>
|
||||
<table width=100%>
|
||||
<tr><td>
|
||||
<! ***** Empty Column ***** !>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start ADDRESS-TITLE ***!><font size=+12 color=Black><strong><em>
|
||||
CDEV Script Service
|
||||
<!*** Finish ADDRESS-TITLE ***!></p></strong></em></font>
|
||||
<!*** Start ADDRESS-VERSION ***!><font size=+1 color=Black>
|
||||
|
||||
</p>
|
||||
A Tool for Using Interactive Scripts from CDEV
|
||||
</p>
|
||||
|
||||
</p>
|
||||
Walt Akers
|
||||
</p>
|
||||
|
||||
</p>
|
||||
Version 1.0 - February 11, 1997
|
||||
</p>
|
||||
|
||||
</p>
|
||||
TJNAF - Thomas Jefferson National Accelerator Facility
|
||||
</p>
|
||||
|
||||
<!*** 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="cdevScriptService.html#TOCREF1">Script Service Fundamentals</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="cdevScriptService.html#TOCREF2">Overview of the Script Service</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="cdevScriptService.html#TOCREF3">Features of the Script Service</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="cdevScriptService.html#TOCREF4">Building the Script Service</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="cdevScriptService.html#TOCREF5">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="cdevScriptService.html#TOCREF6">Steps to Building Service</a>
|
||||
<!*** Finish UHEADING2TOC ***!><br></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
|
||||
3.
|
||||
<!*** Finish HEADING1TOC ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
|
||||
<a href="cdevScriptService.html#TOCREF7">Structure of Data Provided to the Script</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="cdevScriptService.html#TOCREF8">General Form of Data String</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="cdevScriptService.html#TOCREF9">Representation of Scalar Data</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="cdevScriptService.html#TOCREF10">Representation of Array Data</a>
|
||||
<!*** Finish UHEADING2TOC ***!><br></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
|
||||
4.
|
||||
<!*** Finish HEADING1TOC ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
|
||||
<a href="cdevScriptService.html#TOCREF11">Structure of Data Returned from the Script</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="cdevScriptService.html#TOCREF12">Returning Data to the Calling CDEV Application</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="cdevScriptService.html#TOCREF13">General Form of String Data </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="cdevScriptService.html#TOCREF14">Returning a Single Result Packet </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="cdevScriptService.html#TOCREF15">Returning Multiple Result Packets </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="cdevScriptService.html#TOCREF16">Special Considerations</a>
|
||||
<!*** Finish UHEADING2TOC ***!><br></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
|
||||
5.
|
||||
<!*** Finish HEADING1TOC ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
|
||||
<a href="cdevScriptService.html#TOCREF17">DDL Entries for the Script Service</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="cdevScriptService.html#TOCREF18">Setting Up the DDL </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 FIGURELOF ***!><font size=+1 color=Black>
|
||||
Figure 1:
|
||||
<a href="cdevScriptService.html#LOFREF1">General form of string representation of cdevData</a>
|
||||
<!*** Finish FIGURELOF ***!><br></font>
|
||||
<!*** Start FIGURELOF ***!><font size=+1 color=Black>
|
||||
Figure 2:
|
||||
<a href="cdevScriptService.html#LOFREF2">String representation of scalar data in a cdevData object</a>
|
||||
<!*** Finish FIGURELOF ***!><br></font>
|
||||
<!*** Start FIGURELOF ***!><font size=+1 color=Black>
|
||||
Figure 3:
|
||||
<a href="cdevScriptService.html#LOFREF3">String representation of array data</a>
|
||||
<!*** Finish FIGURELOF ***!><br></font>
|
||||
<!*** Start FIGURELOF ***!><font size=+1 color=Black>
|
||||
Figure 4:
|
||||
<a href="cdevScriptService.html#LOFREF4">Returning a single result packet to the CDEV application</a>
|
||||
<!*** Finish FIGURELOF ***!><br></font>
|
||||
<!*** Start FIGURELOF ***!><font size=+1 color=Black>
|
||||
Figure 5:
|
||||
<a href="cdevScriptService.html#LOFREF5">Returning a multiple result packets to the CDEV application</a>
|
||||
<!*** Finish FIGURELOF ***!><br></font>
|
||||
<!*** Start FIGURELOF ***!><font size=+1 color=Black>
|
||||
Figure 6:
|
||||
<a href="cdevScriptService.html#LOFREF6">Simple DDL file for the Script Service</a>
|
||||
<!*** Finish FIGURELOF ***!><br></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<! ************************ FILE : ./cdevScriptService.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">
|
||||
Script Service Fundamentals
|
||||
</a> <!*** Finish HEADING1 ***!></p></strong></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start UHEADING2 ***!><font size=+1 color=Black><strong>
|
||||
<a name="TOCREF2">
|
||||
Overview of the
|
||||
Script Service
|
||||
</a> <!*** Finish UHEADING2 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
The CDEV Script Service is designed to allow a a CDEV application to execute an
|
||||
external script to process a message. The output that is produced by the executable
|
||||
will be returned to the caller in the form of a cdevData. The CDEV Script Service
|
||||
meets the following requirements.
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start UHEADING2 ***!><font size=+1 color=Black><strong>
|
||||
<a name="TOCREF3">
|
||||
Features of the
|
||||
Script Service
|
||||
</a> <!*** Finish UHEADING2 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<table>
|
||||
<tr><td valign=top>
|
||||
<!*** Start BULLETED ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish BULLETED ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BULLETED ***!><font size=+1 color=Black>
|
||||
The filename of the script is associated with a CDEV device/message
|
||||
combination by using the "filename" field of the service data in the CDEV DDL file.
|
||||
Syntax is described later in this document.
|
||||
<!*** Finish BULLETED ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start BULLETED ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish BULLETED ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BULLETED ***!><font size=+1 color=Black>
|
||||
A new process will be spawned for the script each time it is executed. Its standard
|
||||
output (stdout) file descriptor will be redirected to return data to the main CDEV
|
||||
application, allowing the script to return results to the parent process.
|
||||
<!*** Finish BULLETED ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start BULLETED ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish BULLETED ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BULLETED ***!><font size=+1 color=Black>
|
||||
The external executable file can be any form of user shell, batch file or binary
|
||||
application that is supported on the host platform.
|
||||
<!*** Finish BULLETED ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start BULLETED ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish BULLETED ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BULLETED ***!><font size=+1 color=Black>
|
||||
The Script Service supports all of CDEV's send mechanisms; "send",
|
||||
"sendNoBlock" and "sendCallback". Because of limits imposed on the number of
|
||||
active processes, the user is advised to use the synchronous "send" method
|
||||
whenever practical.
|
||||
<!*** Finish BULLETED ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start BULLETED ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish BULLETED ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BULLETED ***!><font size=+1 color=Black>
|
||||
When called by CDEV, the script will receive three arguments; the name of the
|
||||
CDEV device associated with the request, the message string that was submitted
|
||||
to the device, and a string that describes the contents of the outbound cdevData
|
||||
object.
|
||||
<!*** Finish BULLETED ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start BULLETED ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish BULLETED ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BULLETED ***!><font size=+1 color=Black>
|
||||
The reply that is written to the standard output by the script must have a specific
|
||||
format as described later in this document. A script may return more than one
|
||||
reply packet to the caller.
|
||||
<!*** Finish BULLETED ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start BULLETED ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish BULLETED ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BULLETED ***!><font size=+1 color=Black>
|
||||
The script notifies CDEV that it has written its last reply packet by writing "done"
|
||||
alone on a line to the standard output.
|
||||
<!*** Finish BULLETED ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start BULLETED ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish BULLETED ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BULLETED ***!><font size=+1 color=Black>
|
||||
If the script is to return multiple results, it should write "end" alone on a line to the
|
||||
standard output between each packet, and write "done" alone on a line following
|
||||
the last packet.
|
||||
<!*** Finish BULLETED ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start BULLETED ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish BULLETED ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BULLETED ***!><font size=+1 color=Black>
|
||||
If the script returns a value in the "status" tag of its reply packet, this will be
|
||||
provided to the caller as the completion code of the message. Traditionally a
|
||||
status of 0 indicates success, and all other values indicated an error occurred.
|
||||
<!*** Finish BULLETED ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start BULLETED ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish BULLETED ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BULLETED ***!><font size=+1 color=Black>
|
||||
Because the callback mechanism of the Script Service is triggered by output from
|
||||
the script, the script developer should at least write "done" to the standard output
|
||||
even if the application returns no output.
|
||||
<!*** Finish BULLETED ***!></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="TOCREF4">
|
||||
Building the Script Service
|
||||
</a> <!*** Finish HEADING1 ***!></p></strong></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start UHEADING2 ***!><font size=+1 color=Black><strong>
|
||||
<a name="TOCREF5">
|
||||
Location of Files
|
||||
</a> <!*** Finish UHEADING2 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
The source code for the Script Service is provided with the CDEV distribution starting
|
||||
with version 1.5. The source code is located in the directory $CDEV/extensions/
|
||||
ScriptService. The following steps should be taken to build the ScriptService.
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start UHEADING2 ***!><font size=+1 color=Black><strong>
|
||||
<a name="TOCREF6">
|
||||
Steps to Building
|
||||
Service
|
||||
</a> <!*** Finish UHEADING2 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<table>
|
||||
<tr><td valign=top>
|
||||
<!*** Start NUMBERED ***!><font size=+1 color=Black>
|
||||
1.
|
||||
<!*** Finish NUMBERED ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start NUMBERED ***!><font size=+1 color=Black>
|
||||
Obtain and install the CDEV distribution - Version 1.5 or higher.
|
||||
<!*** Finish NUMBERED ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start NUMBERED ***!><font size=+1 color=Black>
|
||||
2.
|
||||
<!*** Finish NUMBERED ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start NUMBERED ***!><font size=+1 color=Black>
|
||||
Follow the installation steps to build CDEV on your system. This includes setting
|
||||
all of the environment variables required by CDEV.
|
||||
<!*** Finish NUMBERED ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start NUMBERED ***!><font size=+1 color=Black>
|
||||
3.
|
||||
<!*** Finish NUMBERED ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start NUMBERED ***!><font size=+1 color=Black>
|
||||
Change directories to <em>$CDEV/extensions/ScriptService/src</em>.
|
||||
<!*** Finish NUMBERED ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start NUMBERED ***!><font size=+1 color=Black>
|
||||
4.
|
||||
<!*** Finish NUMBERED ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start NUMBERED ***!><font size=+1 color=Black>
|
||||
There is a collection of platform specific makefiles in the directory <em>$CDEV/
|
||||
extensions/cdevGenericServer/include/makeinclude</em>. Link the makefile that is
|
||||
appropriate to your architecture to the file Makefile.OS.
|
||||
<!*** Finish NUMBERED ***!></p></font>
|
||||
<!*** Start INDENTED ***!><font size=+1 color=Black>
|
||||
For example, to link to the makefile for HP-UX, you would type the following
|
||||
command.
|
||||
</p>
|
||||
|
||||
</p>
|
||||
<em>ln -s Makefile.hpux Makefile.OS</em>
|
||||
</p>
|
||||
|
||||
<!*** Finish INDENTED ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start NUMBERED ***!><font size=+1 color=Black>
|
||||
5.
|
||||
<!*** Finish NUMBERED ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start NUMBERED ***!><font size=+1 color=Black>
|
||||
Type make to compile and link the Script Service shared object. Note that you
|
||||
must be using GNU make in order to build this distribution.
|
||||
<!*** Finish NUMBERED ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
Upon completion the Makefile will generate the shared object for the Script Service
|
||||
and will install it into your CDEVSHOBJ directory. At this point you are ready to use
|
||||
the Script Service.
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
|
||||
3.
|
||||
<!*** Finish HEADING1 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
|
||||
<a name="TOCREF7">
|
||||
Structure of Data Provided to the Script
|
||||
</a> <!*** Finish HEADING1 ***!></p></strong></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start UHEADING2 ***!><font size=+1 color=Black><strong>
|
||||
<a name="TOCREF8">
|
||||
General Form of
|
||||
Data String
|
||||
</a> <!*** Finish UHEADING2 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
When a developer makes a CDEV send call, he may provide outbound data in the
|
||||
form of a cdevData object. Before calling the script, this data is converted into a string
|
||||
and provided as the third argument to the application (the first argument is the device
|
||||
name and the second is the message). The structure of the outbound data string is of
|
||||
the following form.
|
||||
</p>
|
||||
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
<!*** Start FIGURE ***!><font size=+0 color=Black><em>
|
||||
Figure 1:
|
||||
<a name="LOFREF1">
|
||||
General form of string representation of cdevData
|
||||
<table border=1><tr><td>
|
||||
<table>
|
||||
<tr><td>
|
||||
<! ***** Empty Column ***** !>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start PROGRAM ***!><pre><font size=+0 color=Black><strong><em>
|
||||
tag1="string value"
|
||||
tag2=1.00
|
||||
<!*** Finish PROGRAM ***!></strong></em></font></pre>
|
||||
</td></tr>
|
||||
</table>
|
||||
</tr></td></table>
|
||||
<AFrame 13>
|
||||
</a> <!*** Finish FIGURE ***!></p></em></font>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start UHEADING2 ***!><font size=+1 color=Black><strong>
|
||||
<a name="TOCREF9">
|
||||
Representation of
|
||||
Scalar Data
|
||||
</a> <!*** Finish UHEADING2 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
The above example shows two data entries of the form <em>tag=value</em>. Each entry is
|
||||
separated by a carriage return. The first entry has a tag name of <em>'tag1'</em> and a value of
|
||||
<em>'string value'</em>. You will note that <em>'string value'</em> is enclosed in double quotes in the
|
||||
example. This is used to notify the script that the value is a non-numeric character
|
||||
string. In the second data entry the value <em>'1.0' </em>is not enclosed in quotes, indicating that
|
||||
the value is a number.
|
||||
</p>
|
||||
The following example illustrates how scalar values stored in a cdevData object would
|
||||
look when they are passed to the script.
|
||||
</p>
|
||||
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
<!*** Start FIGURE ***!><font size=+0 color=Black><em>
|
||||
Figure 2:
|
||||
<a name="LOFREF2">
|
||||
String representation of scalar data in a cdevData object
|
||||
<table border=1><tr><td>
|
||||
<table>
|
||||
<tr><td>
|
||||
<! ***** Empty Column ***** !>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start PROGRAM ***!><pre><font size=+0 color=Black><strong><em>
|
||||
Data stored in cdevData object:
|
||||
Tag: value
|
||||
Data Type: character string
|
||||
Value: Test
|
||||
|
||||
Tag: status
|
||||
Data Type: integer
|
||||
Value: 0
|
||||
|
||||
Tag: controlHigh
|
||||
Data Type: double
|
||||
Value: 1.001
|
||||
|
||||
String representation provided to script:
|
||||
value="Test"\\n
|
||||
status=0\\n
|
||||
controlHigh=1.001\\n
|
||||
<!*** Finish PROGRAM ***!></strong></em></font></pre>
|
||||
</td></tr>
|
||||
</table>
|
||||
</tr></td></table>
|
||||
<AFrame 1>
|
||||
</a> <!*** Finish FIGURE ***!></p></em></font>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start UHEADING2 ***!><font size=+1 color=Black><strong>
|
||||
<a name="TOCREF10">
|
||||
Representation of
|
||||
Array Data
|
||||
</a> <!*** Finish UHEADING2 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
If array data is stored in the outbound cdevData object, it too can be provided to the
|
||||
script. The data is structured in the standard C format where opening and closing
|
||||
braces mark the beginning and end (respectively) of each array bound. The following
|
||||
example illustrates how various arrays would be represented as strings.
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
<!*** Start FIGURE ***!><font size=+0 color=Black><em>
|
||||
Figure 3:
|
||||
<a name="LOFREF3">
|
||||
String representation of array data
|
||||
<table border=1><tr><td>
|
||||
<table>
|
||||
<tr><td>
|
||||
<! ***** Empty Column ***** !>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start PROGRAM ***!><pre><font size=+0 color=Black><strong><em>
|
||||
Data stored in cdevData object:
|
||||
Tag: value
|
||||
Data Type: character string [3]
|
||||
Value: "value1" "value2" "value3"
|
||||
|
||||
String representation provided to script:
|
||||
value={"value1","value2","value3"}\\n
|
||||
|
||||
<AFrame 5>
|
||||
|
||||
Data stored in cdevData object:
|
||||
Tag: value
|
||||
Data Type: double [3]
|
||||
Value: 1.0, 2.0, 3.01
|
||||
|
||||
String representation provided to script:
|
||||
value={1,2,3.01}\\n
|
||||
|
||||
<AFrame 6>
|
||||
|
||||
Data stored in cdevData object:
|
||||
Tag: value
|
||||
Data Type: double [3][2]
|
||||
Value: 1.0, 2.0, 3.0, 4.0, 5.0, 6.0
|
||||
|
||||
String representation provided to script:
|
||||
value={{1,2},{3,4},{5,6}}\\n
|
||||
<!*** Finish PROGRAM ***!></strong></em></font></pre>
|
||||
</td></tr>
|
||||
</table>
|
||||
</tr></td></table>
|
||||
<AFrame 3>
|
||||
</a> <!*** Finish FIGURE ***!></p></em></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
|
||||
4.
|
||||
<!*** Finish HEADING1 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
|
||||
<a name="TOCREF11">
|
||||
Structure of Data Returned from the Script
|
||||
</a> <!*** Finish HEADING1 ***!></p></strong></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start UHEADING2 ***!><font size=+1 color=Black><strong>
|
||||
<a name="TOCREF12">
|
||||
Returning Data to
|
||||
the Calling CDEV
|
||||
Application
|
||||
</a> <!*** Finish UHEADING2 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
Before CDEV starts the script, it creates a pipe that is used to pass data between the
|
||||
script and the CDEV application. One end of this pipe is maintained by the application
|
||||
and the other end of the pipe is provided to the script as its standard output. This
|
||||
means that anytime the script uses the "echo" command or the "printf" command, the
|
||||
data that it output's will be transmitted through the pipe to the parent application.
|
||||
</p>
|
||||
The script is responsible for formatting the data into a collection of character strings
|
||||
that can be recognized by the CDEV application.
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start UHEADING2 ***!><font size=+1 color=Black><strong>
|
||||
<a name="TOCREF13">
|
||||
General Form of
|
||||
String Data
|
||||
</a> <!*** Finish UHEADING2 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
In general, the data that is returned from a script is of the same form as described in
|
||||
the preceding section, "<em>Structure of Data Provided to the Script</em>". The most notable
|
||||
difference is that the script must terminate the list by providing a character string that
|
||||
indicates that the group of data items is complete; the string "<em>end</em>" or "<em>done</em>" alone on
|
||||
a line.
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start UHEADING2 ***!><font size=+1 color=Black><strong>
|
||||
<a name="TOCREF14">
|
||||
Returning a
|
||||
Single Result
|
||||
Packet
|
||||
</a> <!*** Finish UHEADING2 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
If the script is going to return exactly one result packet (<em>a group of tags and values that
|
||||
will be used to populate the result cdevData</em>), then it should write the string "<em>done</em>" on
|
||||
a line by itself immediately following the output data. This will notify the Script Service
|
||||
that no more data will be returned from the script.
|
||||
</p>
|
||||
The following example shows how a single result will be returned from a script. Note
|
||||
that the "status" tag contains the completion code that will be returned to the CDEV
|
||||
application.
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
<!*** Start FIGURE ***!><font size=+0 color=Black><em>
|
||||
Figure 4:
|
||||
<a name="LOFREF4">
|
||||
Returning a single result packet to the CDEV application
|
||||
<table border=1><tr><td>
|
||||
<table>
|
||||
<tr><td>
|
||||
<! ***** Empty Column ***** !>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start PROGRAM ***!><pre><font size=+0 color=Black><strong><em>
|
||||
#\\! /bin/csh -f
|
||||
|
||||
echo value=\\"Test\\"
|
||||
echo status=0
|
||||
echo controlLow=1.5
|
||||
echo controlHigh=25.1
|
||||
echo done
|
||||
<!*** Finish PROGRAM ***!></strong></em></font></pre>
|
||||
</td></tr>
|
||||
</table>
|
||||
</tr></td></table>
|
||||
<AFrame 7>
|
||||
</a> <!*** Finish FIGURE ***!></p></em></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start UHEADING2 ***!><font size=+1 color=Black><strong>
|
||||
<a name="TOCREF15">
|
||||
Returning
|
||||
Multiple Result
|
||||
Packets
|
||||
</a> <!*** Finish UHEADING2 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
Returning multiple results from a single script execution is not generally advised.
|
||||
However, If the script is going to return more than one result packet, then each interim
|
||||
packet should be terminated by the "<em>end</em>" keyword on a line by itself. The "<em>done</em>"
|
||||
keyword should follow the last entry.
|
||||
</p>
|
||||
The following example shows how two results will be returned from a script.
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
<!*** Start FIGURE ***!><font size=+0 color=Black><em>
|
||||
Figure 5:
|
||||
<a name="LOFREF5">
|
||||
Returning a multiple result packets to the CDEV application
|
||||
<table border=1><tr><td>
|
||||
<table>
|
||||
<tr><td>
|
||||
<! ***** Empty Column ***** !>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start PROGRAM ***!><pre><font size=+0 color=Black><strong><em>
|
||||
#\\! /bin/csh -f
|
||||
|
||||
echo value=\\"Start Result 1\\"
|
||||
echo status=0
|
||||
echo end
|
||||
echo value=\\"Start Result 2\\"
|
||||
echo status=-1
|
||||
echo done
|
||||
<!*** Finish PROGRAM ***!></strong></em></font></pre>
|
||||
</td></tr>
|
||||
</table>
|
||||
</tr></td></table>
|
||||
<AFrame 9>
|
||||
</a> <!*** Finish FIGURE ***!></p></em></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start UHEADING2 ***!><font size=+1 color=Black><strong>
|
||||
<a name="TOCREF16">
|
||||
Special
|
||||
Considerations
|
||||
</a> <!*** Finish UHEADING2 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
If the script that is being executed will not return a result, then the developer should
|
||||
still write "<em>done"</em> to the standard output in order to notify the CDEV application that it
|
||||
should no longer wait for output. If the script is not returning a result, it may write the
|
||||
terminating <em>"done"</em> at the beginning of the script or at the end. Because synchronous
|
||||
calls will block until a reply is received, the developer should return a result to the
|
||||
CDEV application as quickly as possible.
|
||||
</p>
|
||||
If the developer never writes anything to the standard output, then the user specified
|
||||
CDEV callback will never be executed... therefore, it is crucial to notify the CDEV
|
||||
application when the script has completed.
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
|
||||
5.
|
||||
<!*** Finish HEADING1 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
|
||||
<a name="TOCREF17">
|
||||
DDL Entries for the Script Service
|
||||
</a> <!*** Finish HEADING1 ***!></p></strong></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start UHEADING2 ***!><font size=+1 color=Black><strong>
|
||||
<a name="TOCREF18">
|
||||
Setting Up the
|
||||
DDL
|
||||
</a> <!*** Finish UHEADING2 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
The following example illustrates how to add a service entry to identify the Script
|
||||
Service and how to use the service data to specify the filename that the Script Service
|
||||
will execute to service a message.
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
<!*** Start FIGURE ***!><font size=+0 color=Black><em>
|
||||
Figure 6:
|
||||
<a name="LOFREF6">
|
||||
Simple DDL file for the Script Service
|
||||
<table border=1><tr><td>
|
||||
<table>
|
||||
<tr><td>
|
||||
<! ***** Empty Column ***** !>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start PROGRAM ***!><pre><font size=+0 color=Black><strong><em>
|
||||
/*
|
||||
* This is the service definition, it tells CDEV that there is
|
||||
* a service named Script and that it will use the cdevData
|
||||
* tag 'filename' to read configuration information from the
|
||||
* DDL file entries.
|
||||
*/
|
||||
service Script
|
||||
{
|
||||
tags {filename}
|
||||
}
|
||||
|
||||
/*
|
||||
* This class definition identifies the class scriptClass which
|
||||
* supports the "get and "set" commands on attributes "attrib0"
|
||||
* and "attrib1". Note that attrib0 will call script /bin/ouch
|
||||
* and attrib1 will call script /bin/wammo.
|
||||
*/
|
||||
class scriptClass
|
||||
{
|
||||
verbs {get, set}
|
||||
attributes
|
||||
{
|
||||
attrib0 Script {filename = /bin/ouch};
|
||||
attrib1 Script {filename = /bin/wammo};
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Finally, the CDEV DDL identifies two devices that are of type
|
||||
* scriptClass. Any time one of the supported messages is passed
|
||||
* to one of these devices it will activate the corresponding
|
||||
* script.
|
||||
*/
|
||||
scriptClass : device0, device1;
|
||||
|
||||
<!*** Finish PROGRAM ***!></strong></em></font></pre>
|
||||
</td></tr>
|
||||
</table>
|
||||
</tr></td></table>
|
||||
<AFrame 11>
|
||||
</a> <!*** Finish FIGURE ***!></p></em></font>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
</body>
|
||||
Executable
+6349
File diff suppressed because it is too large
Load Diff
Executable
+9738
File diff suppressed because it is too large
Load Diff
Executable
+589
@@ -0,0 +1,589 @@
|
||||
<! 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
|
||||
<Return></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, "<em>debug on</em>", "<em>debug off</em>", and
|
||||
<em>"quit</em>". 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:> cdevUtil "debug on" "IPM1S01 set VAL value=25.0" "quit"
|
||||
|
||||
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:>
|
||||
<!*** 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:> cdevUtil
|
||||
>
|
||||
> SUCCESS: Device: IPM1S01 - Message: get VAL - Value: 0
|
||||
>
|
||||
> SUCCESS: Device: IPM1S01 - Message: set VAL - Value: None
|
||||
>
|
||||
host1:>
|
||||
<!*** 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 <Return></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:> cddl ~mccops/ddl/master.ddl -o master.bdd
|
||||
converted from ascii to binary ddl file!
|
||||
host1:>
|
||||
<!*** 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>
|
||||
Executable
+807
@@ -0,0 +1,807 @@
|
||||
<! This document generated using mif2html Version 1.0 - Walt Akers - 1996 !>
|
||||
<head>
|
||||
<title>CDEV Documentation</title>
|
||||
</head>
|
||||
|
||||
<body bgcolor="#E0E0FF">
|
||||
|
||||
<body>
|
||||
<! *************************** 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="releaseNotes1_3.html#TOCREF1">Overview</a>
|
||||
<!*** Finish HEADING1TOC ***!><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="releaseNotes1_3.html#TOCREF2">Documentation</a>
|
||||
<!*** Finish HEADING1TOC ***!><br></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
|
||||
3.
|
||||
<!*** Finish HEADING1TOC ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
|
||||
<a href="releaseNotes1_3.html#TOCREF3">Installation</a>
|
||||
<!*** Finish HEADING1TOC ***!><br></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
|
||||
4.
|
||||
<!*** Finish HEADING1TOC ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
|
||||
<a href="releaseNotes1_3.html#TOCREF4">Changes from 1.1 Version</a>
|
||||
<!*** Finish HEADING1TOC ***!><br></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
|
||||
5.
|
||||
<!*** Finish HEADING1TOC ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
|
||||
<a href="releaseNotes1_3.html#TOCREF5">Problems and Restrictions (general)</a>
|
||||
<!*** Finish HEADING1TOC ***!><br></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
|
||||
6.
|
||||
<!*** Finish HEADING1TOC ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
|
||||
<a href="releaseNotes1_3.html#TOCREF6">Channel Access Service Features and Restrictions</a>
|
||||
<!*** Finish HEADING1TOC ***!><br></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
|
||||
7.
|
||||
<!*** Finish HEADING1TOC ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
|
||||
<a href="releaseNotes1_3.html#TOCREF7">Customizing for a New System</a>
|
||||
<!*** Finish HEADING1TOC ***!><br></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
|
||||
8.
|
||||
<!*** Finish HEADING1TOC ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
|
||||
<a href="releaseNotes1_3.html#TOCREF8">Planned Enhancements</a>
|
||||
<!*** Finish HEADING1TOC ***!><br></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
|
||||
9.
|
||||
<!*** Finish HEADING1TOC ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
|
||||
<a href="releaseNotes1_3.html#TOCREF9">cdev Applications</a>
|
||||
<!*** Finish HEADING1TOC ***!><br></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
</td></tr>
|
||||
</table>
|
||||
<! **************************** LIST OF FIGURES *****************************!>
|
||||
<! ************************ FILE : ./releaseNotes1_3.mif *****************************!>
|
||||
<br><hr><br>
|
||||
<table width=100%>
|
||||
<tr><td>
|
||||
<! ***** Empty Column ***** !>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start TITLE ***!><font size=+8 color=Black><strong><em>
|
||||
cdev 1.3 Release Notes
|
||||
<!*** Finish TITLE ***!></p></strong></em></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<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">
|
||||
Overview
|
||||
</a> <!*** Finish HEADING1 ***!></p></strong></font>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
The cdev (control device) C++ library is designed to provide a standard application
|
||||
programming interface (API) to one or more underlying packages, typically control system
|
||||
interfaces. The implementation is in 2 layers: the uppermost layer is used directly by an
|
||||
application, and provides an abstraction of the underlying package as well as many general
|
||||
purpose features. The second layer (service layer) provides the interface to one or more
|
||||
underlying packages, and is implemented as loadable libraries.
|
||||
</p>
|
||||
cdev was initially developed at CEBAF with input from the EPICS collaboration, and is now
|
||||
available for anyone to take and use or improve. We welcome all comments, suggestions, bug
|
||||
reports, and (especially) bug fixes, including fixes for new platforms. There are many planned
|
||||
enhancements, and would welcome volunteers to contribute to this project. See below for a
|
||||
summary of new and planned features.
|
||||
</p>
|
||||
You may join a cdev discussion list by sending the message
|
||||
</p>
|
||||
subscribe cdev
|
||||
</p>
|
||||
to the address mailserv@cebaf.gov. (Send the message HELP to the same address for
|
||||
information on how to use the mail server.) The cdev web page is
|
||||
</p>
|
||||
http://www.cebaf.gov/cdev/
|
||||
</p>
|
||||
cdev 1.3 is the third publically released version of cdev.
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
</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="TOCREF2">
|
||||
Documentation
|
||||
</a> <!*** Finish HEADING1 ***!></p></strong></font>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
The documentation for cdev includes the following:
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
<table>
|
||||
<tr><td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<em>Introduction to cdev</em> -- this is an update of <em>The cdev User's Guide</em>, complete with more
|
||||
examples. It covers all the basics, and is the best place to start.
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<em>A cdev Tutorial</em> -- this document goes through how to use each of the classes in cdev,
|
||||
including all public methods; extensive examples are given.
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<em>cdev Reference Manual</em> -- documents each class in cdev in alphabetical order
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<em>cdev Administrator's Guide</em> -- this is for system administrators, and those intending to
|
||||
port cdev to new platforms
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<em>Service Developer's Guide </em>-- this documents a couple of additional classes needed to
|
||||
create a custom service, and goes through a lengthly example demoService.
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<em>cdev C Binding</em> -- documents the C wrapper routines for cdev
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
This documentation is also available on the web site.
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
|
||||
3.
|
||||
<!*** Finish HEADING1 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
|
||||
<a name="TOCREF3">
|
||||
Installation
|
||||
</a> <!*** Finish HEADING1 ***!></p></strong></font>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
Sources are available in compressed tar format, and contain makefiles to build the libraries and
|
||||
utilities. These have been tested on the HP, SunOS, and SGI platforms to execute correctly, and
|
||||
SLAC has ported this version to VAX/VMS. Fixes have also been incorporated from an earlier
|
||||
port to IBM/AIX (at CERN). As configured, cdev will build support for the EPICS channel
|
||||
access service.
|
||||
</p>
|
||||
The Makefiles have been extensively reworked since the 1.1 release, and should build
|
||||
successfully on more platforms.
|
||||
</p>
|
||||
For further information, see the README file in the topmost directory, and the <em>cdev
|
||||
Administrator's Guide</em> in the /doc sub-directory.
|
||||
</p>
|
||||
Support for site specific control systems must be added by the implementer. See the <em>Service
|
||||
Developer's Guide</em> for help in getting started interfacing cdev to a new control system. In
|
||||
addition, there are a number of example services included with this release.
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
|
||||
4.
|
||||
<!*** Finish HEADING1 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
|
||||
<a name="TOCREF4">
|
||||
Changes from 1.1 Version
|
||||
</a> <!*** Finish HEADING1 ***!></p></strong></font>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
A number of changes have been made to make the source code compile correctly on a larger
|
||||
variety of compilers, including VAX C++ and g++. In addition, cdev now produces more error
|
||||
and warning messages through its error logging routines. The following is a list of the more
|
||||
visible feature changes:
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
<table>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
1.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
The C binding is included in the release (previously released as an add-on to 1.1).
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
2.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
The device definitions (ddl file) may now be stored and loaded in a binary format, which
|
||||
is about 20 times faster to load compared to the ascii format. A new utility program,
|
||||
cddl, compiles the ddl from ascii to binary. At run-time, the file format of the ddl file is
|
||||
detected automatically so that either ascii or binary may be used.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
3.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
Shared objects are now loaded from a subdirectory of the directory pointed to by
|
||||
CDEVSHOBJ, where the subdirectory name is the name of the version of cdev against
|
||||
which the application is running. This makes it possible to run different applications
|
||||
against different versions of cdev. If the subdirectory does not contain the needed object,
|
||||
it is loaded from CDEVSHOBJ as before.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
4.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
cdevFdChangedCallback added to cdevSystem, allowing an application to be notified
|
||||
when file descriptors are opened or closed by cdev services.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
5.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
cdevData now supports a cast to char* as well as operator= overloading.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
6.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
cdevGroup now supports a deferred execution / re-execution mode: if a group is in this
|
||||
mode, operations are remembered but not executed. Saved operations may later be
|
||||
executed as a group, and re-executed without re-learning. Only asynchronous operations
|
||||
are remembered.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
7.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
A few bugs in the channel access service have been fixed. Monitoring of status without
|
||||
monitoring value now works correctly.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
8.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
The cdev/src directory now contains an extensions sub-directory. Extensions include the
|
||||
tcl interface, and the ACE (Adaptive Communication Environment) based client/server
|
||||
package used for building new cdev servers and services capable of passing entire
|
||||
cdevData objects over the network.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
9.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
The cdev/examples directory now contains 2 additional example services, one
|
||||
implementing compound cdev devices, and the other (demoService) is a trivial service
|
||||
useful as a starting point for read/write services.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
|
||||
5.
|
||||
<!*** Finish HEADING1 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
|
||||
<a name="TOCREF5">
|
||||
Problems and Restrictions (general)
|
||||
</a> <!*** Finish HEADING1 ***!></p></strong></font>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
Restrictions:
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
<table>
|
||||
<tr><td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
cdev is not yet thread safe, and may not be safe against instantiating more that one
|
||||
cdevSystem object.
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
|
||||
6.
|
||||
<!*** Finish HEADING1 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
|
||||
<a name="TOCREF6">
|
||||
Channel Access Service Features and Restrictions
|
||||
</a> <!*** Finish HEADING1 ***!></p></strong></font>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
EPICS / Channel Access version 3.12 is recommended. The following comments from the 1.1
|
||||
release still apply:
|
||||
</p>
|
||||
Major features:
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
<table>
|
||||
<tr><td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
Supports synchronous and asynchronous send's.
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
Fetches data in native type (type conversion done on client and not server).
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
Provides a default name service so that if a device is not defined, then an EPICS channel
|
||||
access connection is attempted with the record name set equal to the device name, and
|
||||
the field name set equal to the attribute name.
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
Restrictions:
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
<table>
|
||||
<tr><td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
Only supports set/get/monitorOn/monitorOff verbs and the pv and readonly service data
|
||||
tags. Support for arbitrary messages with default data has again been postponed.
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
Discards all exception callbacks from channel access in this version.
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
Channel access security is not supported in this release.
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
sendCallback does not support the same timeout feature as send.
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
channel access fails if send is called from within a callback function (either
|
||||
asynchronous methods are OK: sendNoBlock and sendCallback)
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
Compilation options:
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
<table>
|
||||
<tr><td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
_CA_SYNC_CONN = perform connections synchronously, waiting up to 4 seconds.
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
_CDEV_DEBUG = print verbose messages
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
_EPICS_3_12 = if not defined, use 3.11 calls instead.
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
|
||||
7.
|
||||
<!*** Finish HEADING1 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
|
||||
<a name="TOCREF7">
|
||||
Customizing for a New System
|
||||
</a> <!*** Finish HEADING1 ***!></p></strong></font>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
To customize cdev for a new control system, a new cdev service must be written. Two services
|
||||
are provided with the release: caService for EPICS channel access, and skService, a skeleton
|
||||
service. The ca (channel access) service is a complex example of how to interact with a control
|
||||
system which supports asychronous I/O. The skeleton service simply shows the minimal
|
||||
interface a service must provide, and can be used as a starting point for building a new service.
|
||||
A third example is contained in the Service Developer's Guide, and is intermediate in
|
||||
complexity.
|
||||
</p>
|
||||
Still Planned:
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
<table>
|
||||
<tr><td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
a simple service for which you need only provide synchronous read and write routines.
|
||||
This will speed up integrating a simple synchronous RPC or memory image based
|
||||
system.
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
|
||||
8.
|
||||
<!*** Finish HEADING1 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
|
||||
<a name="TOCREF8">
|
||||
Planned Enhancements
|
||||
</a> <!*** Finish HEADING1 ***!></p></strong></font>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
There are many enhancements planned for cdev, and releases will probably come out every 3
|
||||
months for a while. The following is a list of topics planned for summer of 1996. Work on all
|
||||
of these topics is underway.
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
<table>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
1.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
Collection devices. Created dynamically or statically, each device would contain a list
|
||||
of other devices. Messages would be repeated to all contained devices, and read results
|
||||
would be collected together and returned to the caller as a vector. Implementation will
|
||||
support passing the list down to the service instead of iterating in the cdev layer so that
|
||||
list based services (such as SLAC's) can optimize performance.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
2.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
Service + Server based upon passing cdevData objects between client and server. This
|
||||
allows complex query/reply type operations. A prototype is already in operation at
|
||||
CEBAF, although the protocol is likely to change somewhat.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
3.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
Virtual device wrapper around the correlation measurement engine (see below).
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
The following list has been put on the back burner, but still of interest:
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
<table>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
4.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
"Multiknob" devices. Write operations would be applied to a vector of devices with
|
||||
weighting factors which may be constant, or a simple functional form, or derived by a
|
||||
call to another process. Intended for tuning machines.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
5.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
Indirect devices. The name of the actual device can be changed on the fly, and all
|
||||
connections to the old device will be automatically dropped and new connections
|
||||
established. Useful for changing generic displays from one device to another.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
6.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
tcl devices. Devices implemented as tcl scripts, which may call other cdev devices (or
|
||||
anything else).
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
7.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
Connection to an object oriented database.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
|
||||
9.
|
||||
<!*** Finish HEADING1 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
|
||||
<a name="TOCREF9">
|
||||
cdev Applications
|
||||
</a> <!*** Finish HEADING1 ***!></p></strong></font>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
The following applications are available as cdev extensions from CEBAF:
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
<table>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
1.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
Correlation package, modeled after SLAC's correlation plot utility. Consists of a
|
||||
correlation engine class library plus an application (XACT) which uses it.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
2.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
Multiknob utility (like #4 above, with a GUI interface). This is based upon a prototype
|
||||
of multiknob devices, and is configured by ascii files.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
Finally, the following EPICS tools will be ported to cdev or re-written using cdev in the next
|
||||
12 months (ports to be distributed with EPICS, not cdev, due to licensing constraints):
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
<table>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
1.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
Alarm Handler (specialized GUI tool). Porting now underway at APS.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
2.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
General operator interface (GUI), either dm or medm or both.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
3.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
Archiver (new, to be distributed with cdev).
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
4.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
Save / Restore tool (ditto).
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
Other applications will soon become available from other sites, and the most current
|
||||
information will be available from the cdev web site, http://www.cebaf.gov/cdev.
|
||||
</p>
|
||||
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
</body>
|
||||
Executable
+918
@@ -0,0 +1,918 @@
|
||||
<! This document generated using mif2html Version 1.0 - Walt Akers - 1996 !>
|
||||
<head>
|
||||
<title>CDEV Documentation</title>
|
||||
</head>
|
||||
|
||||
<body bgcolor="#E0E0FF">
|
||||
|
||||
<body>
|
||||
<! *************************** 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="releaseNotes1_4.html#TOCREF1">Overview</a>
|
||||
<!*** Finish HEADING1TOC ***!><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="releaseNotes1_4.html#TOCREF2">Documentation</a>
|
||||
<!*** Finish HEADING1TOC ***!><br></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
|
||||
3.
|
||||
<!*** Finish HEADING1TOC ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
|
||||
<a href="releaseNotes1_4.html#TOCREF3">Installation</a>
|
||||
<!*** Finish HEADING1TOC ***!><br></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
|
||||
4.
|
||||
<!*** Finish HEADING1TOC ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
|
||||
<a href="releaseNotes1_4.html#TOCREF4">Changes from 1.1 Version</a>
|
||||
<!*** Finish HEADING1TOC ***!><br></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
|
||||
5.
|
||||
<!*** Finish HEADING1TOC ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
|
||||
<a href="releaseNotes1_4.html#TOCREF5">Changes from 1.3 Version</a>
|
||||
<!*** Finish HEADING1TOC ***!><br></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
|
||||
6.
|
||||
<!*** Finish HEADING1TOC ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
|
||||
<a href="releaseNotes1_4.html#TOCREF6">Problems and Restrictions (general)</a>
|
||||
<!*** Finish HEADING1TOC ***!><br></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
|
||||
7.
|
||||
<!*** Finish HEADING1TOC ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
|
||||
<a href="releaseNotes1_4.html#TOCREF7">Channel Access Service Features and Restrictions</a>
|
||||
<!*** Finish HEADING1TOC ***!><br></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
|
||||
8.
|
||||
<!*** Finish HEADING1TOC ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
|
||||
<a href="releaseNotes1_4.html#TOCREF8">Customizing for a New System</a>
|
||||
<!*** Finish HEADING1TOC ***!><br></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
|
||||
9.
|
||||
<!*** Finish HEADING1TOC ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
|
||||
<a href="releaseNotes1_4.html#TOCREF9">Planned Enhancements</a>
|
||||
<!*** Finish HEADING1TOC ***!><br></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
|
||||
10.
|
||||
<!*** Finish HEADING1TOC ***!><br></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start HEADING1TOC ***!><font size=+1 color=Black>
|
||||
<a href="releaseNotes1_4.html#TOCREF10">cdev Applications</a>
|
||||
<!*** Finish HEADING1TOC ***!><br></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
</td></tr>
|
||||
</table>
|
||||
<! **************************** LIST OF FIGURES *****************************!>
|
||||
<! ************************ FILE : ./releaseNotes1_4.mif *****************************!>
|
||||
<br><hr><br>
|
||||
<table width=100%>
|
||||
<tr><td>
|
||||
<! ***** Empty Column ***** !>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start TITLE ***!><font size=+8 color=Black><strong><em>
|
||||
cdev 1.4 Release Notes
|
||||
<!*** Finish TITLE ***!></p></strong></em></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<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">
|
||||
Overview
|
||||
</a> <!*** Finish HEADING1 ***!></p></strong></font>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
The cdev (control device) C++ library is designed to provide a standard application
|
||||
programming interface (API) to one or more underlying packages, typically control system
|
||||
interfaces. The implementation is in 2 layers: the uppermost layer is used directly by an
|
||||
application, and provides an abstraction of the underlying package as well as many general
|
||||
purpose features. The second layer (service layer) provides the interface to one or more
|
||||
underlying packages, and is implemented as loadable libraries.
|
||||
</p>
|
||||
cdev was initially developed at CEBAF with input from the EPICS collaboration, and is now
|
||||
available for anyone to take and use or improve. We welcome all comments, suggestions, bug
|
||||
reports, and (especially) bug fixes, including fixes for new platforms. There are many planned
|
||||
enhancements, and would welcome volunteers to contribute to this project. See below for a
|
||||
summary of new and planned features.
|
||||
</p>
|
||||
You may join a cdev discussion list by sending the message
|
||||
</p>
|
||||
subscribe cdev
|
||||
</p>
|
||||
to the address mailserv@cebaf.gov. (Send the message HELP to the same address for
|
||||
information on how to use the mail server.) The cdev web page is
|
||||
</p>
|
||||
http://www.cebaf.gov/cdev/
|
||||
</p>
|
||||
cdev 1.4 is the third publically released version of cdev.
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
</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="TOCREF2">
|
||||
Documentation
|
||||
</a> <!*** Finish HEADING1 ***!></p></strong></font>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
The documentation for cdev includes the following:
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
<table>
|
||||
<tr><td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<em>Introduction to cdev</em> -- this is an update of <em>The cdev User's Guide</em>, complete with more
|
||||
examples. It covers all the basics, and is the best place to start.
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<em>A cdev Tutorial</em> -- this document goes through how to use each of the classes in cdev,
|
||||
including all public methods; extensive examples are given.
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<em>cdev Reference Manual</em> -- documents each class in cdev in alphabetical order
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<em>cdev Administrator's Guide</em> -- this is for system administrators, and those intending to
|
||||
port cdev to new platforms
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<em>Service Developer's Guide </em>-- this documents a couple of additional classes needed to
|
||||
create a custom service, and goes through a lengthly example demoService.
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<em>cdev C Binding</em> -- documents the C wrapper routines for cdev
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
This documentation is also available on the web site.
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
|
||||
3.
|
||||
<!*** Finish HEADING1 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
|
||||
<a name="TOCREF3">
|
||||
Installation
|
||||
</a> <!*** Finish HEADING1 ***!></p></strong></font>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
Sources are available in compressed tar format, and contain makefiles to build the libraries and
|
||||
utilities. These have been tested on the HP, SunOS, and SGI platforms to execute correctly, and
|
||||
SLAC has ported this version to VAX/VMS. Fixes have also been incorporated from an earlier
|
||||
port to IBM/AIX (at CERN). As configured, cdev will build support for the EPICS channel
|
||||
access service.
|
||||
</p>
|
||||
The Makefiles have been extensively reworked since the 1.1 release, and should build
|
||||
successfully on more platforms.
|
||||
</p>
|
||||
For further information, see the README file in the topmost directory, and the <em>cdev
|
||||
Administrator's Guide</em> in the /doc sub-directory.
|
||||
</p>
|
||||
Support for site specific control systems must be added by the implementer. See the <em>Service
|
||||
Developer's Guide</em> for help in getting started interfacing cdev to a new control system. In
|
||||
addition, there are a number of example services included with this release.
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
|
||||
4.
|
||||
<!*** Finish HEADING1 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
|
||||
<a name="TOCREF4">
|
||||
Changes from 1.1 Version
|
||||
</a> <!*** Finish HEADING1 ***!></p></strong></font>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
A number of changes have been made to make the source code compile correctly on a larger
|
||||
variety of compilers, including VAX C++ and g++. In addition, cdev now produces more error
|
||||
and warning messages through its error logging routines. The following is a list of the more
|
||||
visible feature changes:
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
<table>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
1.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
The C binding is included in the release (previously released as an add-on to 1.1).
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
2.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
The device definitions (ddl file) may now be stored and loaded in a binary format, which
|
||||
is about 20 times faster to load compared to the ascii format. A new utility program,
|
||||
cddl, compiles the ddl from ascii to binary. At run-time, the file format of the ddl file is
|
||||
detected automatically so that either ascii or binary may be used.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
3.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
Shared objects are now loaded from a subdirectory of the directory pointed to by
|
||||
CDEVSHOBJ, where the subdirectory name is the name of the version of cdev against
|
||||
which the application is running. This makes it possible to run different applications
|
||||
against different versions of cdev. If the subdirectory does not contain the needed object,
|
||||
it is loaded from CDEVSHOBJ as before.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
4.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
cdevFdChangedCallback added to cdevSystem, allowing an application to be notified
|
||||
when file descriptors are opened or closed by cdev services.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
5.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
cdevData now supports a cast to char* as well as operator= overloading.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
6.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
cdevGroup now supports a deferred execution / re-execution mode: if a group is in this
|
||||
mode, operations are remembered but not executed. Saved operations may later be
|
||||
executed as a group, and re-executed without re-learning. Only asynchronous operations
|
||||
are remembered.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
7.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
A few bugs in the channel access service have been fixed. Monitoring of status without
|
||||
monitoring value now works correctly.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
8.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
The cdev/src directory now contains an extensions sub-directory. Extensions include the
|
||||
tcl interface, and the ACE (Adaptive Communication Environment) based client/server
|
||||
package used for building new cdev servers and services capable of passing entire
|
||||
cdevData objects over the network.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
9.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
The cdev/examples directory now contains 2 additional example services, one
|
||||
implementing compound cdev devices, and the other (demoService) is a trivial service
|
||||
useful as a starting point for read/write services.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
|
||||
5.
|
||||
<!*** Finish HEADING1 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
|
||||
<a name="TOCREF5">
|
||||
Changes from 1.3 Version
|
||||
</a> <!*** Finish HEADING1 ***!></p></strong></font>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
Several minor changes have been introduced to the system in order to improve performance for
|
||||
existing operations.
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
<table>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
1.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
The <em>operator ==</em> and <em>operator !=</em> methods whave been added to the cdevData class.
|
||||
These methods allow the caller to perform a deep comparison of the contents of two
|
||||
cdevData objects.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
2.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
A <em>cdevTagTableCallback</em> class has been added to the cdevTagTable.h file. This class has
|
||||
a pure virtual callback method that (when registered with the <em>cdevData</em> class) will
|
||||
receive a callback each time a new tag is added to the cdev global tag table.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
3.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
The <em>addTagCallback</em> method has been added to the <em>cdevData</em> class. This method is used
|
||||
by the caller to install a <em>cdevTagTableCallback</em> object that will be executed each time a
|
||||
new tag is added to the global tag table.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
4.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
The <em>delTagCallback </em>method has been added to the <em>cdevData</em> class. This method
|
||||
removes a <em>cdevTagTableCallback</em> object that was previously installed using the
|
||||
<em>cdevData::addTagCallback</em> method.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
5.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
The <em>readTagTable</em> method has been added to the<em> cdevData </em>class. This method allows
|
||||
the caller to retrieve a list of integer tags and their corresponding character strings that
|
||||
are stored in the global tag table.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
6.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
The <em>CDEVTAGTABLE </em>environment variable is used to indicate the location of a file
|
||||
based list of tags that will be automatically loaded when a cdev application is started. If
|
||||
the variable is not specified the application will attempt to load the list from <em>/usr/local/
|
||||
lib/cdevTagTable</em>. If this file does not exist, then the default list of tags will be used.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
7.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
Channel Access Service (caService) modified to call the callback function immediately
|
||||
when a second monitor is installed on an channel that is already monitored.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
|
||||
6.
|
||||
<!*** Finish HEADING1 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
|
||||
<a name="TOCREF6">
|
||||
Problems and Restrictions (general)
|
||||
</a> <!*** Finish HEADING1 ***!></p></strong></font>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
Restrictions:
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
<table>
|
||||
<tr><td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
cdev is not yet thread safe, and may not be safe against instantiating more that one
|
||||
cdevSystem object.
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
|
||||
7.
|
||||
<!*** Finish HEADING1 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
|
||||
<a name="TOCREF7">
|
||||
Channel Access Service Features and Restrictions
|
||||
</a> <!*** Finish HEADING1 ***!></p></strong></font>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
EPICS / Channel Access version 3.12 is recommended. The following comments from the 1.1
|
||||
release still apply:
|
||||
</p>
|
||||
Major features:
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
<table>
|
||||
<tr><td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
Supports synchronous and asynchronous send's.
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
Fetches data in native type (type conversion done on client and not server).
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
Provides a default name service so that if a device is not defined, then an EPICS channel
|
||||
access connection is attempted with the record name set equal to the device name, and
|
||||
the field name set equal to the attribute name.
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
Restrictions:
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
<table>
|
||||
<tr><td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
Only supports set/get/monitorOn/monitorOff verbs and the pv and readonly service data
|
||||
tags. Support for arbitrary messages with default data has again been postponed.
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
Discards all exception callbacks from channel access in this version.
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
Channel access security is not supported in this release.
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
sendCallback does not support the same timeout feature as send.
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
caService fails if send is called from within a callback function (either asynchronous
|
||||
methods are OK: sendNoBlock and sendCallback)
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
Compilation options:
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
<table>
|
||||
<tr><td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
_CA_SYNC_CONN = perform connections synchronously, waiting up to 4 seconds.
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
_CDEV_DEBUG = print verbose messages
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
_EPICS_3_12 = if not defined, use 3.11 calls instead.
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
|
||||
8.
|
||||
<!*** Finish HEADING1 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
|
||||
<a name="TOCREF8">
|
||||
Customizing for a New System
|
||||
</a> <!*** Finish HEADING1 ***!></p></strong></font>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
To customize cdev for a new control system, a new cdev service must be written. Two services
|
||||
are provided with the release: caService for EPICS channel access, and skService, a skeleton
|
||||
service. The ca (channel access) service is a complex example of how to interact with a control
|
||||
system which supports asychronous I/O. The skeleton service simply shows the minimal
|
||||
interface a service must provide, and can be used as a starting point for building a new service.
|
||||
A third example is contained in the Service Developer's Guide, and is intermediate in
|
||||
complexity.
|
||||
</p>
|
||||
Still Planned:
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
<table>
|
||||
<tr><td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
<img src="bullet.jpg">
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTBULLET1 ***!><font size=+1 color=Black>
|
||||
a simple service for which you need only provide synchronous read and write routines.
|
||||
This will speed up integrating a simple synchronous RPC or memory image based
|
||||
system.
|
||||
<!*** Finish LISTBULLET1 ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
|
||||
9.
|
||||
<!*** Finish HEADING1 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
|
||||
<a name="TOCREF9">
|
||||
Planned Enhancements
|
||||
</a> <!*** Finish HEADING1 ***!></p></strong></font>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
There are many enhancements planned for cdev, and releases will probably come out every 3
|
||||
months for a while. The following is a list of topics planned for summer of 1996. Work on all
|
||||
of these topics is underway.
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
<table>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
1.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
Collection devices. Created dynamically or statically, each device would contain a list
|
||||
of other devices. Messages would be repeated to all contained devices, and read results
|
||||
would be collected together and returned to the caller as a vector. Implementation will
|
||||
support passing the list down to the service instead of iterating in the cdev layer so that
|
||||
list based services (such as SLAC's) can optimize performance.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
2.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
Service + Server based upon passing cdevData objects between client and server. This
|
||||
allows complex query/reply type operations. A prototype is already in operation at
|
||||
CEBAF, although the protocol is likely to change somewhat.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
3.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
Virtual device wrapper around the correlation measurement engine (see below).
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
The following list has been put on the back burner, but still of interest:
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
<table>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
4.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
"Multiknob" devices. Write operations would be applied to a vector of devices with
|
||||
weighting factors which may be constant, or a simple functional form, or derived by a
|
||||
call to another process. Intended for tuning machines.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
5.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
Indirect devices. The name of the actual device can be changed on the fly, and all
|
||||
connections to the old device will be automatically dropped and new connections
|
||||
established. Useful for changing generic displays from one device to another.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
6.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
tcl devices. Devices implemented as tcl scripts, which may call other cdev devices (or
|
||||
anything else).
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
7.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
Connection to an object oriented database.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
|
||||
10.
|
||||
<!*** Finish HEADING1 ***!></p></strong></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start HEADING1 ***!><font size=+3 color=Black><strong>
|
||||
<a name="TOCREF10">
|
||||
cdev Applications
|
||||
</a> <!*** Finish HEADING1 ***!></p></strong></font>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
The following applications are available as cdev extensions from CEBAF:
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
<table>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
1.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
Correlation package, modeled after SLAC's correlation plot utility. Consists of a
|
||||
correlation engine class library plus an application (XACT) which uses it.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
2.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
Multiknob utility (like #4 above, with a GUI interface). This is based upon a prototype
|
||||
of multiknob devices, and is configured by ascii files.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
Finally, the following EPICS tools will be ported to cdev or re-written using cdev in the next
|
||||
12 months (ports to be distributed with EPICS, not cdev, due to licensing constraints):
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
<table>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
1.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
Alarm Handler (specialized GUI tool). Porting now underway at APS.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
2.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
General operator interface (GUI), either dm or medm or both.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
3.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
Archiver (new, to be distributed with cdev).
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
<tr><td valign=top align=right>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
4.
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td>
|
||||
<td valign=top>
|
||||
<!*** Start LISTNUMBER1 ***!><font size=+1 color=Black>
|
||||
Save / Restore tool (ditto).
|
||||
<!*** Finish LISTNUMBER1 ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
<!*** Start BODY ***!><font size=+1 color=Black>
|
||||
Other applications will soon become available from other sites, and the most current
|
||||
information will be available from the cdev web site, http://www.cebaf.gov/cdev.
|
||||
</p>
|
||||
|
||||
<!*** Finish BODY ***!></p></font>
|
||||
</td></tr>
|
||||
</table>
|
||||
</body>
|
||||
Executable
+1145
File diff suppressed because it is too large
Load Diff
Executable
+21
@@ -0,0 +1,21 @@
|
||||
#! /bin/csh
|
||||
|
||||
if( -f fmbatch.dat) rm fmbatch.dat
|
||||
if( -d html) rm -rf html
|
||||
mkdir -p html
|
||||
cp bullet.jpg html
|
||||
|
||||
foreach x (`find . -name \*.doc -a ! -name \*TOC.doc -a ! -name \*LOF.doc`)
|
||||
echo "Open $x" >> fmbatch.dat
|
||||
echo "SaveAs ma $x html/`basename $x .doc`.mif" >> fmbatch.dat
|
||||
end
|
||||
|
||||
fmbatch fmbatch.dat
|
||||
|
||||
cd html
|
||||
|
||||
foreach x (`find . -name \*.mif -a ! -name \*TITLE.mif`)
|
||||
mif2html -t 'CDEV Documentation' -o `basename $x .mif`.html `basename $x .mif`TITLE.mif \-TOC \-LOF $x
|
||||
end
|
||||
|
||||
rm *.mif
|
||||
Executable
+22
@@ -0,0 +1,22 @@
|
||||
#! /bin/csh
|
||||
|
||||
if( -f fmbatch.dat) rm fmbatch.dat
|
||||
if( !(-d html) ) mkdir -p html
|
||||
cp bullet.jpg html
|
||||
|
||||
foreach x ($argv)
|
||||
echo "Open $x" >> fmbatch.dat
|
||||
echo "SaveAs ma $x html/`basename $x .doc`.mif" >> fmbatch.dat
|
||||
echo "Open `basename $x .doc`TITLE.doc" >> fmbatch.dat
|
||||
echo "SaveAs ma `basename $x .doc`TITLE.doc html/`basename $x .doc`TITLE.mif" >> fmbatch.dat
|
||||
end
|
||||
|
||||
fmbatch fmbatch.dat
|
||||
|
||||
cd html
|
||||
|
||||
foreach x (`find . -name \*.mif -a ! -name \*TITLE.mif`)
|
||||
mif2html -t 'CDEV Documentation' -o `basename $x .mif`.html `basename $x .mif`TITLE.mif \-TOC \-LOF $x
|
||||
end
|
||||
|
||||
rm *.mif
|
||||
Executable
+13
@@ -0,0 +1,13 @@
|
||||
#! /bin/csh
|
||||
|
||||
if( -f fmbatch.dat) rm fmbatch.dat
|
||||
mkdir -p ps
|
||||
|
||||
foreach x (`find . -name \*.book -o -name releaseNotes\*.doc`)
|
||||
echo "Open $x" >> fmbatch.dat
|
||||
echo "Print $x" >> fmbatch.dat
|
||||
end
|
||||
|
||||
fmbatch fmbatch.dat
|
||||
rm fmbatch.dat
|
||||
mv *.ps ps
|
||||
Executable
+3471
File diff suppressed because it is too large
Load Diff
Executable
+3855
File diff suppressed because it is too large
Load Diff
Executable
+11395
File diff suppressed because it is too large
Load Diff
Executable
+4664
File diff suppressed because it is too large
Load Diff
Executable
+20646
File diff suppressed because it is too large
Load Diff
Executable
+17530
File diff suppressed because it is too large
Load Diff
Executable
+4822
File diff suppressed because it is too large
Load Diff
Executable
+14152
File diff suppressed because it is too large
Load Diff
Executable
+21342
File diff suppressed because it is too large
Load Diff
Executable
+3644
File diff suppressed because it is too large
Load Diff
Executable
+3671
File diff suppressed because it is too large
Load Diff
Executable
+3940
File diff suppressed because it is too large
Load Diff
Executable
+4376
File diff suppressed because it is too large
Load Diff
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Reference in New Issue
Block a user