Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • main
  • release_0_1
  • release_1_0_0
  • release_1_0_1
  • release_1_0_2
  • release_1_0_3
  • release_1_0_4
  • release_2_0_0
  • release_2_0_1
  • release_2_0_2
  • release_2_0_4
  • release_2_1_0
  • v0
13 results

Target

Select target project
No results found
Select Git revision
  • main
  • release_0_1
  • release_1_0_0
  • release_1_0_1
  • release_1_0_2
  • release_1_0_3
  • release_1_0_4
  • release_2_0_0
  • release_2_0_1
  • release_2_0_2
  • release_2_0_4
  • release_2_1_0
  • v0
13 results
Show changes

Commits on Source 37

15 files
+ 1278
1419
Compare changes
  • Side-by-side
  • Inline

Files

+1 −1
Original line number Diff line number Diff line
@@ -3,7 +3,7 @@ from conan import ConanFile
class SingleShotAORecipe(ConanFile):
    name = "singleshotao"
    executable = "ds_SingleShotAO"
    version = "2.0.4"
    version = "2.1.0"
    package_type = "application"
    user = "soleil"
    python_requires = "base/[>=1.0]@soleil/stable"
Original line number Diff line number Diff line
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<Title> Tango Device Server User's Guide </Title>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#7F00FF" ALINK="#FF0000">
<html>
<head>

<P><!-------TITLE------></P>
	<title> Tango Device Server User's Guide </title>
</head>

<TABLE BORDER="0" WIDTH="100%">
    <TR>
        <TD ALIGN="left">
			<A HREF="http://www.esrf.fr/" TARGET=new>
			<IMG SRC="http://www.esrf.fr/gifs/logo/80.gif" BORDER=0 Height="60"></A>
		</Td>
        <TD ALIGN="center">
			<A HREF="http://www.elettra.trieste.it/" TARGET=new>
			<IMG SRC="http://www.esrf.fr/computing/cs/tango/elettra_logo.gif" BORDER=0 Height="60"></A>

		</Td>
        <TD ALIGN="center">
			<A HREF="http://www.synchrotron-soleil.fr/" TARGET=new>
			<IMG SRC="http://www.esrf.fr/computing/cs/tango/soleil_logo.gif" BORDER=0 Height="60"></A>
		</Td>
        <TD ALIGN="right">
			<A HREF="http://www.cells.es/" TARGET=new>
			<IMG SRC="http://www.esrf.fr/computing/cs/tango/alba.jpg" BORDER=0 Height="54"></A>
		</Td>
        <TD ALIGN="right">
			<A HREF="http://www.desy.de/html/home/index_eng.html" TARGET=new>
			<IMG SRC="http://www.esrf.fr/computing/cs/tango/desy.gif" BORDER=0 Height="60"></A>
		</Td>
    	 <Td>
			<H2><FONT COLOR="#7F00FF">
			<Center><A HREF="http://www.tango-controls.org/" TARGET="_top">
					 TANGO </a> <Br> Device Server
			</Center></FONT>
		</Td>
    </TR>
</TABLE>

<HR WIDTH="100%"></H5>
<Br>
<body>
	<center>
		<h1>
SingleShotAO Generic Device		<Br>
Device Attributes Description 		<Br> <Br>
SingleShotAO Class	<Br>
			SingleShotAO Generic Device <br>
			Device Attributes Description <br><Br>
			SingleShotAO Class <br>
		</h1>
		<b>
			Revision: - Author: buteau
		</b>
	</center>

	<table Border=2 Cellpadding=3 CELLSPACING=0 WIDTH="100%">
		<tr BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
			<td COLSPAN=4>
				<font Size=+2><center><b>Scalar Attributes</b></center></font>
			</td>
		</tr>
		<tr BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
			<td>
				<center><b>Attribute name</b></center>
			</td>
			<td>
				<center><b>Data Type</b></center>
			</td>
			<td>
				<center><b>R/W Type</b></center>
			</td>
			<td>
				<center><b>Expert</b></center>
			</td>
		</tr>
		<tr>
			<td><b>frequency</b>: <font Size=-1>Sampling frequency for
					ramp generation on the board output channels, in
					Hz.</font>
			</td>
			<td>
				<center>
					<font Size=-1>DEV_DOUBLE</font>
				</center>
			</td>
			<td>
				<center>
					<font Size=-1>READ_WRITE</font>
				</center>
			</td>
			<td>
				<center>
					<font Size=-1>Yes</font>
				</center>
			</td>
		</tr>
	</table>

<Br>
<Table Border=2 Cellpadding=3 CELLSPACING=0 WIDTH="100%">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<Td COLSPAN=4> <Font Size=+2><Center><b>Scalar Attributes</b></td></Font></Center>
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<Td><Center><b>Attribute name</b></td></Center>
<Td><Center><b>Data Type</b></td></Center>
<Td><Center><b>R/W Type</b></td></Center>
<Td><Center><b>Expert</b></td></Center>
<Tr><Td><b>frequency</b>: <Font Size=-1>Sampling frequency for ramp generation on the board output channels, in Hz.</Font></Td>
<Td><Center><Font Size=-1>DEV_DOUBLE</Font></Center></Td><Td><Center><Font Size=-1>READ_WRITE</Font></Center></Td><Td><Center><Font Size=-1>Yes</Font></Center></Td></Tr>

</Table>
</Center>
<Br><Br><Br><Br><Br>

<!--- html Footer --->

<Center>
<Font size=-1>
	<br>
<br>
<TABLE BORDER="1" WIDTH="100%">
    <Tr>
		<!--- Hosted by Sourceforge --->
        <Td Align="Center">
			<Font size=-1>
			<b>TANGO</b> is an open source project hosted by :<br>
			<A href="http://sourceforge.net" Target="new">
					<IMG title="Sourceforge logo"
						alt="Sourceforge logo small"
						src="http://www.esrf.fr/computing/cs/tango/sourceforge.gif"
						border=0> </a>
			</Font>
		</Td>
		<!--- 2 Sourceforge Repositories --->
		<Td Align="Center">
			<Font size=-1>
			Core and Tools :
			<a href="http://tango-cs.cvs.sourceforge.net/tango-cs/" Target="new">
			CVS repository</a> on
			<a href="https://sourceforge.net/projects/tango-cs" Target=new>
			tango-cs project</a>

			<br>
	<table Border=2 Cellpadding=3 CELLSPACING=0 WIDTH="100%">
		<tr BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
			<td COLSPAN=4>
				<center>
					<font Size=+2><b>Dynamic Scalar Attributes</b></font><br>
					X is the channel number ranging from 0 to N-1 (<b>MAO_6208</b>: 8 channels, <b>MAO_6216</b>: 10 channels)
				</center>
			</td>
		</tr>
		<tr BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
			<td>
				<center><b>Attribute name</b></center>
			</td>
			<td>
				<center><b>Data Type</b></center>
			</td>
			<td>
				<center><b>R/W Type</b></center>
			</td>
			<td>
				<center><b>Description</b></center>
			</td>
		</tr>
		<tr>
			<td><b>channelX</b></td>
			<td>
				<center>
					<font Size=-1>DEV_DOUBLE</font>
				</center>
			</td>
			<td>
				<center>
					<font Size=-1>READ_WRITE</font>
				</center>
			</td>
			<td>
				<font Size=-1>Output value for channel X (in V). Valid range: [-10V, +10V]</font>
			</td>
		</tr>
		<tr>
			<td><b>speedX</b></td>
			<td>
				<center>
					<font Size=-1>DEV_DOUBLE</font>
				</center>
			</td>
			<td>
				<center>
					<font Size=-1>READ_WRITE</font>
				</center>
			</td>
			<td>
				<font Size=-1>Speed for ramp generation on channel X (in V/s). If speed is 0, no ramp is generated but direct write on channel output.</font>
			</td>
		</tr>
		<tr>
			<td><b>initialX</b></td>
			<td>
				<center>
					<font Size=-1>DEV_DOUBLE</font>
				</center>
			</td>
			<td>
				<center>
					<font Size=-1>READ_WRITE</font>
				</center>
			</td>
			<td>
				<font Size=-1>Initial value for ramp function on channel X (in V). Defaults to last written value in channel attribute.</font>
			</td>
		</tr>
	</table>
</center>

			Device Servers :
			<a href="http://tango-ds.cvs.sourceforge.net/tango-ds/" Target="new">
					CVS repository</a> on
			<a href="https://sourceforge.net/projects/tango-ds" Target=new>
					tango-ds project</a>
			</Font>
		</Td>
    </Tr>
</Table>
</Font>
</Center>
</body>
</html>
Original line number Diff line number Diff line
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<Title> Tango Device Server User s Guide </Title>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#7F00FF" ALINK="#FF0000">
<html>

<P><!-------TITLE------></P>
<TABLE BORDER="0" WIDTH="100%">
    <TR>
        <TD ALIGN="left">
            <A HREF="http://www.esrf.fr/" TARGET=new>
            <IMG SRC="http://www.esrf.fr/gifs/logo/80.gif" BORDER=0 Height="60"></A>
<head>
    <title> Tango Device Server User s Guide </title>
</head>

        </TD>
        <TD ALIGN="center">
            <A HREF="http://www.elettra.trieste.it/" TARGET=new>
            <IMG SRC="http://www.esrf.fr/computing/cs/tango/elettra_logo.gif" BORDER=0 Height="60"></A>
        </TD>
        <TD ALIGN="center">
            <A HREF="http://www.synchrotron-soleil.fr/" TARGET=new>
            <IMG SRC="http://www.esrf.fr/computing/cs/tango/soleil_logo.gif" BORDER=0 Height="60"></A>
        </TD>

        <TD ALIGN="center">
            <A HREF="http://www.cells.es/" TARGET=new>
            <IMG SRC="http://www.esrf.fr/computing/cs/tango/alba.jpg" BORDER=0 Height="45"></A>
        </TD>
        <TD ALIGN="Right">
            <H2><FONT COLOR="#7F00FF">
            <Br><Center><A HREF="http://www.tango-controls.org/" TARGET="_top"> TANGO </a> 
            </Center></FONT>

       </TD>
    </TR>
    <TR>
        <TD ALIGN="left">
            <A HREF="http://www.desy.de/html/home/index_eng.html" TARGET=new>
            <IMG SRC="http://www.esrf.fr/computing/cs/tango/desy.gif" BORDER=0 Height="44"></A>
        </TD>
        <TD ALIGN="center">
            <A HREF="http://www.maxlab.lu.se/maxlab/max4/index.html" TARGET=new>

            <IMG SRC="http://www.esrf.fr/computing/cs/tango/maxlab.gif" BORDER=0 Height="40"></A>
        </TD>
        <TD ALIGN="center">
            <A HREF="http://www.frm2.tum.de/en/index.html" TARGET=new>
            <IMG SRC="http://www.esrf.fr/computing/cs/tango/frm-2.jpg" BORDER=0 Height="45"></A>
        </TD>
            <TD>
            <!-- Empty -->
        </TD>

        <TD ALIGN="Right">
            <H2><FONT COLOR="#7F00FF">
            <Center> Device Servers
            </Center></FONT>
        </TD>
    </TR>
</TABLE>

<HR WIDTH="100%"></H5>




<HR WIDTH="100%"></H5>
<Br>
<body>
    <center>
        <h1>
SingleShotAO Generic Device		<Br>
Device Description 		<Br> <Br>
SingleShotAO Class	<Br>
            SingleShotAO Generic Device <br>
            Device Description <br> <br>
            SingleShotAO Class <br>
        </h1>
        <b>
            Revision: - Author: buteau
        </b>
    </center>

    <center>
        ADLink boards support for single shot AO operations [PCI-6208 and
        compatible boards]
    </center>

<Center>
ADLink boards support for single shot AO operations [PCI-6208 and compatible boards]
<Br>
<Br>
</Center>

<!--- html Footer --->

<Center>
<Font size=-1>
<br>
<br>
<TABLE BORDER="1" WIDTH="100%">
    <Tr>
		<!--- Hosted by Sourceforge --->
        <Td Align="Center">
			<Font size=-1>
			<b>TANGO</b> is an open source project hosted by :<br>
			<A href="http://sourceforge.net" Target="new">
					<IMG title="Sourceforge logo"
						alt="Sourceforge logo small"
						src="http://www.esrf.fr/computing/cs/tango/sourceforge.gif"
						border=0> </a>
			</Font>
		</Td>
		<!--- 2 Sourceforge Repositories --->
		<Td Align="Center">
			<Font size=-1>
			Core and Tools :
			<a href="http://tango-cs.cvs.sourceforge.net/tango-cs/" Target="new">
			CVS repository</a> on
			<a href="https://sourceforge.net/projects/tango-cs" Target=new>
			tango-cs project</a>

			<br>

			Device Servers :
			<a href="http://tango-ds.cvs.sourceforge.net/tango-ds/" Target="new">
					CVS repository</a> on
			<a href="https://sourceforge.net/projects/tango-ds" Target=new>
					tango-ds project</a>
			</Font>
		</Td>
    </Tr>
</Table>
</Font>
</Center>
</body>
</html>
Original line number Diff line number Diff line
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>

<HEAD>
    <Title> Tango Device Server User's Guide </Title>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#7F00FF" ALINK="#FF0000">

<P><!-------TITLE------></P>

<TABLE BORDER="0" WIDTH="100%">
    <TR>
        <TD ALIGN="left">
			<A HREF="http://www.esrf.fr/" TARGET=new>
			<IMG SRC="http://www.esrf.fr/gifs/logo/80.gif" BORDER=0 Height="60"></A>
		</Td>
        <TD ALIGN="center">
			<A HREF="http://www.elettra.trieste.it/" TARGET=new>
			<IMG SRC="http://www.esrf.fr/computing/cs/tango/elettra_logo.gif" BORDER=0 Height="60"></A>

		</Td>
        <TD ALIGN="center">
			<A HREF="http://www.synchrotron-soleil.fr/" TARGET=new>
			<IMG SRC="http://www.esrf.fr/computing/cs/tango/soleil_logo.gif" BORDER=0 Height="60"></A>
		</Td>
        <TD ALIGN="right">
			<A HREF="http://www.cells.es/" TARGET=new>
			<IMG SRC="http://www.esrf.fr/computing/cs/tango/alba.jpg" BORDER=0 Height="54"></A>
		</Td>
        <TD ALIGN="right">
			<A HREF="http://www.desy.de/html/home/index_eng.html" TARGET=new>
			<IMG SRC="http://www.esrf.fr/computing/cs/tango/desy.gif" BORDER=0 Height="60"></A>
		</Td>
    	 <Td>
			<H2><FONT COLOR="#7F00FF">
			<Center><A HREF="http://www.tango-controls.org/" TARGET="_top">
					 TANGO </a> <Br> Device Server
			</Center></FONT>
		</Td>
    </TR>
</TABLE>

<HR WIDTH="100%"></H5>
<Br>
<BODY>
    <center>
        <h1>
SingleShotAO Generic Device		<Br>
Device Commands Description 		<Br> <Br>
SingleShotAO Class	<Br>
            SingleShotAO Generic Device <br>
            Device Commands Description <br> <br>
            SingleShotAO Class <br>
        </h1>
        <b>
            Revision: - Author: buteau
        </b>
    </center>


<Br>
<Br>
<Br>
<A NAME="Init"><!-- --></A>
<A NAME="Init"><!-- --></A>
    <h2>1 - Init</h2>
    <ul>
<Li><Strong>Description: </Strong> This commands re-initialise a device keeping the same network connection.<Br>
After an Init command executed on a device, it is not necessary for client to re-connect to the device.<Br>
This command first calls the device <i> delete_device() </i>method and then execute its <i> init_device()</i> method.<Br>
For C++ device server, all the memory allocated in the <i> nit_device() </i> method must be freed in the <i> delete_device() </i> method.<Br>
The language device desctructor automatically calls the <i> delete_device() </i> method.<Br>&nbsp
<Li><Strong>Argin:<Br>DEV_VOID</Strong>
 : none.<Br>&nbsp
<Li><Strong>Argout:<Br>DEV_VOID</Strong>
 : none.<Br>&nbsp
<Li><Strong>Command allowed for: </Strong><Ul>
<Li>Tango::FAULT<Li>Tango::ON<Li>Tango::INIT<Li>Tango::MOVING</Ul>
<Br>&nbsp
</ul><Br>
<Br>
<A NAME="State"><!-- --></A>
<A NAME="State"><!-- --></A>
        <Li><Strong>Description: </Strong><br>
            This command re-initialises a device keeping the same network connection. <br>
            After an Init command executed on a device, it is not necessary for the client to re-connect to the device. <br>
            This command first calls the device <i>delete_device()</i> method and then executes its <i>init_device()</i> method. <br>
            For C++ device server, all the memory allocated in the <i>init_device()</i> method must be freed in the <i>delete_device()</i> method.<br>
            The language device destructor automatically calls the <i>delete_device()</i> method.<br>
        </Li>
        <Li><Strong>Argin: DEV_VOID</Strong></Li>
        <Li><Strong>Argout: DEV_VOID</Strong></Li>
        <Li><Strong>Command allowed for: </Strong>
            <Ul>
                <Li>Tango::FAULT</Li>
                <Li>Tango::ON</Li>
                <Li>Tango::INIT</Li>
                <Li>Tango::MOVING</Li>
            </Ul>
        </Li>
    </ul> 
     

    <h2>2 - State</h2>
    <ul>
<Li><Strong>Description: </Strong> This command gets the device state (stored in its <i>device_state</i> data member) and returns it to the caller.<Br>&nbsp
<Li><Strong>Argin:<Br>DEV_VOID</Strong>
 : none.<Br>&nbsp
<Li><Strong>Argout:<Br>DEV_STATE</Strong>
 : State Code<Br>&nbsp
<Li><Strong>Command allowed for: </Strong><Ul>
<Li>Tango::FAULT<Li>Tango::ON<Li>Tango::INIT<Li>Tango::MOVING</Ul>
<Br>&nbsp
</ul><Br>
<Br>
<A NAME="Status"><!-- --></A>
<A NAME="Status"><!-- --></A>
<h2>3 - Status</h2>
<ul>
<Li><Strong>Description: </Strong> This command gets the device status (stored in its <i>device_status</i> data member) and returns it to the caller.<Br>&nbsp
<Li><Strong>Argin:<Br>DEV_VOID</Strong>
 : none.<Br>&nbsp
<Li><Strong>Argout:<Br>CONST_DEV_STRING</Strong>
 : Status description<Br>&nbsp
<Li><Strong>Command allowed for: </Strong><Ul>
<Li>Tango::FAULT<Li>Tango::ON<Li>Tango::INIT<Li>Tango::MOVING</Ul>
<Br>&nbsp
</ul><Br>
<Br>
<A NAME="Abort"><!-- --></A>
<A NAME="Abort"><!-- --></A>
<h2>4 - Abort</h2>
<ul>
<Li><Strong>Description: </Strong> Aborts ramps in progress.<Br>&nbsp
<Li><Strong>Argin:<Br>DEV_VOID</Strong>
 : <Br>&nbsp
<Li><Strong>Argout:<Br>DEV_VOID</Strong>
 : <Br>&nbsp
<Li><Strong>Command allowed for: </Strong><Ul>
<Li>Tango::FAULT<Li>Tango::ON<Li>Tango::INIT<Li>Tango::MOVING</Ul>
<Br>&nbsp
</ul><Br>
<Br>
        <Li><Strong>Description: </Strong> This command gets the device state (stored in its <i>device_state</i> data member) and returns it to the caller.
        <Li><Strong>Argin: DEV_VOID</Strong></Li>
        <Li><Strong>Argout: DEV_STATE</Strong></Li>
        <Li><Strong>Command allowed for: </Strong>
            <Ul>
                <Li>Tango::FAULT</Li>
                <Li>Tango::ON</Li>
                <Li>Tango::INIT</Li>
                <Li>Tango::MOVING</Li>
            </Ul>
        </Li>
    </ul> 
     
<!--- html Footer --->

<Center>
<Font size=-1>
<br>
<br>
<TABLE BORDER="1" WIDTH="100%">
    <Tr>
		<!--- Hosted by Sourceforge --->
        <Td Align="Center">
			<Font size=-1>
			<b>TANGO</b> is an open source project hosted by :<br>
			<A href="http://sourceforge.net" Target="new">
					<IMG title="Sourceforge logo"
						alt="Sourceforge logo small"
						src="http://www.esrf.fr/computing/cs/tango/sourceforge.gif"
						border=0> </a>
			</Font>
		</Td>
		<!--- 2 Sourceforge Repositories --->
		<Td Align="Center">
			<Font size=-1>
			Core and Tools :
			<a href="http://tango-cs.cvs.sourceforge.net/tango-cs/" Target="new">
			CVS repository</a> on
			<a href="https://sourceforge.net/projects/tango-cs" Target=new>
			tango-cs project</a>
    <h2>3 - Status</h2>
    <ul>
        <Li><Strong>Description: </Strong> This command gets the device status (stored in its <i>device_status</i> data member) and returns it to the caller.</Li>
        <Li><Strong>Argin: DEV_VOID</Strong></Li>
        <Li><Strong>Argout: CONST_DEV_STRING</Strong></Li>
        <Li><Strong>Command allowed for: </Strong>
            <Ul>
                <Li>Tango::FAULT</Li>
                <Li>Tango::ON</Li>
                <Li>Tango::INIT</Li>
                <Li>Tango::MOVING</Li>
            </Ul>
        </Li>
    </ul> 
     
			<br>

			Device Servers :
			<a href="http://tango-ds.cvs.sourceforge.net/tango-ds/" Target="new">
					CVS repository</a> on
			<a href="https://sourceforge.net/projects/tango-ds" Target=new>
					tango-ds project</a>
			</Font>
		</Td>
    </Tr>
</Table>
</Font>
</Center>
    <h2>4 - Abort</h2>
    <ul>
        <Li><Strong>Description: </Strong> Aborts ramps in progress.</Li>
        <Li><Strong>Argin: DEV_VOID</Strong></Li>
        <Li><Strong>Argout: DEV_VOID</Strong></Li>
        <Li><Strong>Command allowed for: </Strong>
            <Ul>
                <Li>Tango::FAULT</Li>
                <Li>Tango::ON</Li>
                <Li>Tango::INIT</Li>
                <Li>Tango::MOVING</Li>
            </Ul>
        </Li>
    </ul> 
</body>

</html>
 No newline at end of file
Original line number Diff line number Diff line
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<Title> Tango Device Server User's Guide </Title>
</HEAD>
<html>
    <head>
        <title> Tango Device Server User's Guide </title>
    </head>

<FRAMESET cols="20%,80%">
<FRAME src="DevCommandsList.html" name="DevCommandsList">
<FRAME src="DevCommands.html" name="DevCommands">
</FRAMESET>
<NOFRAMES>
<H2>
Frame Alert</H2>
    <frameset cols="20%,80%">
        <frame src="DevCommandsList.html" name="DevCommandsList">
        <frame src="DevCommands.html" name="DevCommands">
    </frameset>
    <noframes>
        <h2>
            Frame Alert</h2>

<P>
This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.
<BR>
Link to <A HREF="DevCommands.html">Non-frame version.</A></NOFRAMES>
</HTML>
        <p>
            This document is designed to be viewed using the frames feature. If
            you see this message, you are using a non-frame-capable web client.
            <br>
            Link to <a HREF="DevCommands.html">Non-frame version.</a></noframes>
    </html>
Original line number Diff line number Diff line
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<HTML><HEAD>
<TITLE>Commands
</TITLE></HEAD>
<BODY BGCOLOR="white">
<FONT size="+1" ID="FrameHeadingFont">
<B>Commands:</B></FONT>
<Br>
<Br>
<Br>
<A Href="DevCommands.html#Init" TARGET="DevCommands"> Init</a><Br>
<A Href="DevCommands.html#State" TARGET="DevCommands"> State</a><Br>
<A Href="DevCommands.html#Status" TARGET="DevCommands"> Status</a><Br>
<A Href="DevCommands.html#Abort" TARGET="DevCommands"> Abort</a><Br>
<html><head>
        <title>Commands
        </title></head>
    <body BGCOLOR="white">
        <font size="+1" ID="FrameHeadingFont">
            <b>Commands:</b></font>
        <br>
        <br>
        <br>
        <a Href="DevCommands.html#Init" TARGET="DevCommands"> Init</a><br>
        <a Href="DevCommands.html#State" TARGET="DevCommands"> State</a><br>
        <a Href="DevCommands.html#Status" TARGET="DevCommands"> Status</a><br>
        <a Href="DevCommands.html#Abort" TARGET="DevCommands"> Abort</a><br>


</BODY>
</HTML>
    </body>
</html>
Original line number Diff line number Diff line
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<Title> Tango Device Server User's Guide </Title>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#7F00FF" ALINK="#FF0000">
<html>

<P><!-------TITLE------></P>
<head>
    <title> Tango Device Server User's Guide </title>
</head>

<TABLE BORDER="0" WIDTH="100%">
    <TR>
        <TD ALIGN="left">
			<A HREF="http://www.esrf.fr/" TARGET=new>
			<IMG SRC="http://www.esrf.fr/gifs/logo/80.gif" BORDER=0 Height="60"></A>
		</Td>
        <TD ALIGN="center">
			<A HREF="http://www.elettra.trieste.it/" TARGET=new>
			<IMG SRC="http://www.esrf.fr/computing/cs/tango/elettra_logo.gif" BORDER=0 Height="60"></A>

		</Td>
        <TD ALIGN="center">
			<A HREF="http://www.synchrotron-soleil.fr/" TARGET=new>
			<IMG SRC="http://www.esrf.fr/computing/cs/tango/soleil_logo.gif" BORDER=0 Height="60"></A>
		</Td>
        <TD ALIGN="right">
			<A HREF="http://www.cells.es/" TARGET=new>
			<IMG SRC="http://www.esrf.fr/computing/cs/tango/alba.jpg" BORDER=0 Height="54"></A>
		</Td>
        <TD ALIGN="right">
			<A HREF="http://www.desy.de/html/home/index_eng.html" TARGET=new>
			<IMG SRC="http://www.esrf.fr/computing/cs/tango/desy.gif" BORDER=0 Height="60"></A>
		</Td>
    	 <Td>
			<H2><FONT COLOR="#7F00FF">
			<Center><A HREF="http://www.tango-controls.org/" TARGET="_top">
					 TANGO </a> <Br> Device Server
			</Center></FONT>
		</Td>
    </TR>
</TABLE>

<HR WIDTH="100%"></H5>
<Br>
<body>
    <center>
        <h1>
SingleShotAO Generic Device		<Br>
Device Commands Description 		<Br> <Br>
SingleShotAO Class	<Br>
            SingleShotAO Generic Device <br>
            Device Commands Description <br><br>
            SingleShotAO Class <br>
        </h1>
        <b>
            Revision: - Author: buteau
        </b>
    </center>

    <center>
        <br><a Href="DevCommandsFrame.html"> More Details on commands.... </a><br><br>

        <table Border=2 Cellpadding=3 CELLSPACING=0 WIDTH="100%">
            <tr BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
                <td COLSPAN=3>
                    <font Size=+2><center>
                        <b>Device Commands for Operator Level</b>
                    </center></font>
                </td>
            </tr>

            <tr BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
                <td><b>Command name</b></td>
                <td><b>Argument In</b></td>
                <td><b>Argument Out</b></td>
            </tr>
            <tr>
                <td><b>Init</b></td>
                <td>DEV_VOID</td>
                <td>DEV_VOID</td>
            </tr>
            <tr>
                <td><b>State</b></td>
                <td>DEV_VOID</td>
                <td>DEV_STATE</td>
            </tr>
            <tr>
                <td><b>Status</b></td>
                <td>DEV_VOID</td>
                <td>CONST_DEV_STRING</td>
            </tr>
            <tr>
                <td><b>Abort</b></td>
                <td>DEV_VOID</td>
                <td>DEV_VOID</td>
            </tr>

        </table>
    </center>

<Center>
<Br><Br>
<A Href="DevCommandsFrame.html"> More Details on commands.... </a><Br>
<Br> <Br>
<Table Border=2 Cellpadding=3 CELLSPACING=0 WIDTH="100%">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<Td COLSPAN=3> <Font Size=+2><Center><b>Device Commands for Operator Level</b></td></Font></Center>
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<Td><Center><b>Command name</b></td></Center>
<Td><Center><b>Argument In</b></td></Center>
<Td><Center><b>Argument Out</b></td></Center>
<Tr><Td><b>Init</b></Td>
<Td><Font Size=-1>DEV_VOID</Font></Td>
<Td><Font Size=-1>DEV_VOID</Font></Td>
<Tr><Td><b>State</b></Td>
<Td><Font Size=-1>DEV_VOID</Font></Td>
<Td><Font Size=-1>DEV_STATE</Font></Td>
<Tr><Td><b>Status</b></Td>
<Td><Font Size=-1>DEV_VOID</Font></Td>
<Td><Font Size=-1>CONST_DEV_STRING</Font></Td>
<Tr><Td><b>Abort</b></Td>
<Td><Font Size=-1>DEV_VOID</Font></Td>
<Td><Font Size=-1>DEV_VOID</Font></Td>



</Table></Center>

<!--- html Footer --->

<Center>
<Font size=-1>
<br>
<br>
<TABLE BORDER="1" WIDTH="100%">
    <Tr>
		<!--- Hosted by Sourceforge --->
        <Td Align="Center">
			<Font size=-1>
			<b>TANGO</b> is an open source project hosted by :<br>
			<A href="http://sourceforge.net" Target="new">
					<IMG title="Sourceforge logo"
						alt="Sourceforge logo small"
						src="http://www.esrf.fr/computing/cs/tango/sourceforge.gif"
						border=0> </a>
			</Font>
		</Td>
		<!--- 2 Sourceforge Repositories --->
		<Td Align="Center">
			<Font size=-1>
			Core and Tools :
			<a href="http://tango-cs.cvs.sourceforge.net/tango-cs/" Target="new">
			CVS repository</a> on
			<a href="https://sourceforge.net/projects/tango-cs" Target=new>
			tango-cs project</a>

			<br>

			Device Servers :
			<a href="http://tango-ds.cvs.sourceforge.net/tango-ds/" Target="new">
					CVS repository</a> on
			<a href="https://sourceforge.net/projects/tango-ds" Target=new>
					tango-ds project</a>
			</Font>
		</Td>
    </Tr>
</Table>
</Font>
</Center>
</body>

</html>
 No newline at end of file
Original line number Diff line number Diff line
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>

<HEAD>
    <Title> Tango Device Server User's Guide </Title>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#7F00FF" ALINK="#FF0000">

<P><!-------TITLE------></P>

<TABLE BORDER="0" WIDTH="100%">
    <TR>
        <TD ALIGN="left">
			<A HREF="http://www.esrf.fr/" TARGET=new>
			<IMG SRC="http://www.esrf.fr/gifs/logo/80.gif" BORDER=0 Height="60"></A>
		</Td>
        <TD ALIGN="center">
			<A HREF="http://www.elettra.trieste.it/" TARGET=new>
			<IMG SRC="http://www.esrf.fr/computing/cs/tango/elettra_logo.gif" BORDER=0 Height="60"></A>

		</Td>
        <TD ALIGN="center">
			<A HREF="http://www.synchrotron-soleil.fr/" TARGET=new>
			<IMG SRC="http://www.esrf.fr/computing/cs/tango/soleil_logo.gif" BORDER=0 Height="60"></A>
		</Td>
        <TD ALIGN="right">
			<A HREF="http://www.cells.es/" TARGET=new>
			<IMG SRC="http://www.esrf.fr/computing/cs/tango/alba.jpg" BORDER=0 Height="54"></A>
		</Td>
        <TD ALIGN="right">
			<A HREF="http://www.desy.de/html/home/index_eng.html" TARGET=new>
			<IMG SRC="http://www.esrf.fr/computing/cs/tango/desy.gif" BORDER=0 Height="60"></A>
		</Td>
    	 <Td>
			<H2><FONT COLOR="#7F00FF">
			<Center><A HREF="http://www.tango-controls.org/" TARGET="_top">
					 TANGO </a> <Br> Device Server
			</Center></FONT>
		</Td>
    </TR>
</TABLE>

<HR WIDTH="100%"></H5>
<Br>
<BODY>
    <center>
        <h1>
            SingleShotAO Generic Device <Br>
@@ -54,29 +19,71 @@ Revision: - Author: buteau


    <Center>
<Br> <Br> <Br> 
        <Table Border=2 Cellpadding=3 CELLSPACING=0 WIDTH="100%">
            <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<Td COLSPAN=3> <Font Size=+2><Center><b>Device Properties</b></td></Font></Center>
                <Td COLSPAN=3>
                    <Font Size=+2>
                        <Center><b>Device Properties</b>
                </td>
                </Font>
    </Center>
    <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<Td><Center><b>Property name</b></td></Center>
<Td><Center><b>Property type</b></td></Center>
<Td><Center><b>Description</b></td></Center>
<Tr><Td><b><a href=#Dev_DefaultValues>BoardNum </a></b></Td>
<Td><Font Size=-1>Tango::DEV_SHORT</Font></Td>
<Td><Font Size=-1>The the board identifier in the cPCI crate [valid range is 0...7 - no default value] .</Font></Td></Tr>
        <Td>
            <Center><b>Property name</b>
        </td>
        </Center>
        <Td>
            <Center><b>Property type</b>
        </td>
        </Center>
        <Td>
            <Center><b>Description</b>
        </td>
        </Center>
    <Tr>
        <Td><b><a href=#Dev_DefaultValues>BoardNum </a></b></Td>
        <Td>
            <Font Size=-1>Tango::DEV_SHORT</Font>
        </Td>
        <Td>
            <Font Size=-1>The the board identifier in the cPCI crate [valid range is 0...7 - no default value] .</Font>
        </Td>
    </Tr>

<Tr><Td><b><a href=#Dev_DefaultValues>BoardType </a></b></Td>
<Td><Font Size=-1>Tango::DEV_STRING</Font></Td>
<Td><Font Size=-1>The board type [MAO_xxxx - where <xxxx> is the ADlink board identifier - e.g. MAO_6208 - no default value]</Font></Td></Tr>
    <Tr>
        <Td><b><a href=#Dev_DefaultValues>BoardType </a></b></Td>
        <Td>
            <Font Size=-1>Tango::DEV_STRING</Font>
        </Td>
        <Td>
            <Font Size=-1>The board type [MAO_xxxx - where <xxxx> is the ADlink board identifier - e.g. MAO_6208 - no default value]</Font>
        </Td>
    </Tr>

    <Tr>
        <Td><b><a href=#Dev_DefaultValues>EnableRamps </a></b></Td>
        <Td>
            <Font Size=-1>Tango::DEV_BOOLEAN</Font>
        </Td>
        <Td>
            <Font Size=-1>Whether to enable or disable the ramp generation on the board output channels. If false, the speedX and initialX dynamic attributes will not be created for every channel, and the changes will happen instantly. [true/false - default value is true]</Font>
        </Td>

    </Tr>

    <Tr>
        <Td><b><a href=#Dev_DefaultValues>OutputMemorizedChannelsAtInit </a></b></Td>
        <Td>
            <Font Size=-1>Tango::DEV_BOOLEAN</Font>
        </Td>
        <Td>
            <Font Size=-1>Whether to send the memorized values for the channels to the board at the device initialization (the device attribute will show the last memorized value regardless) [true/false - default value is false]</Font>
        </Td>
    </Tr>
    </Table>
    
    </Center>
<Br><Br><Br>
<Br><Br><Br>

<A name=Dev_DefaultValues><!---  ---></a>
    <Font Size=+1>Device Properties Default Values:</Font><Br>
    <Table Border=2 Cellpadding=2 CELLSPACING=2>
        <tr BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
@@ -91,6 +98,14 @@ Revision: - Author: buteau
            <Td>BoardType</Td>
            <td>No default value</td>
        </Tr>
        <Tr>
            <Td>EnableRamps</Td>
            <td>true</td>
        </Tr>
        <Tr>
            <Td>OutputMemorizedChannelsAtInit</Td>
            <td>false</td>
        </Tr>
    </Table>

    <Br><Br><Br>
@@ -99,46 +114,7 @@ There is no Class properties.<Br><Br>
    </Center></b>
    <Br> <Br> <Br>

<!--- html Footer --->

<Center>
<Font size=-1>
<br>
<br>
<TABLE BORDER="1" WIDTH="100%">
    <Tr>
		<!--- Hosted by Sourceforge --->
        <Td Align="Center">
			<Font size=-1>
			<b>TANGO</b> is an open source project hosted by :<br>
			<A href="http://sourceforge.net" Target="new">
					<IMG title="Sourceforge logo"
						alt="Sourceforge logo small"
						src="http://www.esrf.fr/computing/cs/tango/sourceforge.gif"
						border=0> </a>
			</Font>
		</Td>
		<!--- 2 Sourceforge Repositories --->
		<Td Align="Center">
			<Font size=-1>
			Core and Tools :
			<a href="http://tango-cs.cvs.sourceforge.net/tango-cs/" Target="new">
			CVS repository</a> on
			<a href="https://sourceforge.net/projects/tango-cs" Target=new>
			tango-cs project</a>

			<br>

			Device Servers :
			<a href="http://tango-ds.cvs.sourceforge.net/tango-ds/" Target="new">
					CVS repository</a> on
			<a href="https://sourceforge.net/projects/tango-ds" Target=new>
					tango-ds project</a>
			</Font>
		</Td>
    </Tr>
</Table>
</Font>
</Center>
</body>

</html>
 No newline at end of file
Original line number Diff line number Diff line
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<Title> Tango Device Server User's Guide </Title>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#7F00FF" ALINK="#FF0000">
<html>

<P><!-------TITLE------></P>
<head>
    <title> Tango Device Server User's Guide </title>
</head>

<TABLE BORDER="0" WIDTH="100%">
    <TR>
        <TD ALIGN="left">
			<A HREF="http://www.esrf.fr/" TARGET=new>
			<IMG SRC="http://www.esrf.fr/gifs/logo/80.gif" BORDER=0 Height="60"></A>
		</Td>
        <TD ALIGN="center">
			<A HREF="http://www.elettra.trieste.it/" TARGET=new>
			<IMG SRC="http://www.esrf.fr/computing/cs/tango/elettra_logo.gif" BORDER=0 Height="60"></A>

		</Td>
        <TD ALIGN="center">
			<A HREF="http://www.synchrotron-soleil.fr/" TARGET=new>
			<IMG SRC="http://www.esrf.fr/computing/cs/tango/soleil_logo.gif" BORDER=0 Height="60"></A>
		</Td>
        <TD ALIGN="right">
			<A HREF="http://www.cells.es/" TARGET=new>
			<IMG SRC="http://www.esrf.fr/computing/cs/tango/alba.jpg" BORDER=0 Height="54"></A>
		</Td>
        <TD ALIGN="right">
			<A HREF="http://www.desy.de/html/home/index_eng.html" TARGET=new>
			<IMG SRC="http://www.esrf.fr/computing/cs/tango/desy.gif" BORDER=0 Height="60"></A>
		</Td>
    	 <Td>
			<H2><FONT COLOR="#7F00FF">
			<Center><A HREF="http://www.tango-controls.org/" TARGET="_top">
					 TANGO </a> <Br> Device Server
			</Center></FONT>
		</Td>
    </TR>
</TABLE>

<HR WIDTH="100%"></H5>
<Br>
<body>
    <center>
        <h1>
SingleShotAO Generic Device		<Br>
Device States Description 		<Br> <Br>
SingleShotAO Class	<Br>
            SingleShotAO Generic Device <br>
            Device States Description <br> <br>
            SingleShotAO Class <br>
        </h1>
        <b>
            Revision: - Author: buteau
        </b>
    </center>

    <center>
        <table Border=2 Cellpadding=3 CELLSPACING=0 WIDTH="100%">
            <tr BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
                <td COLSPAN=2>
                    <font Size=+2><center>
                        <b>States</b>
                    </center></font>
                </td>
            </tr>

            <tr BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
                <td><center><b>Names</b></center></td>
                <td><center><b>Descriptions</b></center></td>
            </tr>

            <tr>
                <td><b>FAULT</b></td>
                <td><font Size=-1>Hardware / driver failure or fatal error occurred</font></td>
            </tr>

            <tr>
                <td><b>ON</b></td>
                <td><font Size=-1>Device ready to execute AO request</font></td>
            </tr>

            <tr>
                <td><b>INIT</b></td>
                <td><font Size=-1>Device initialization in progress</font></td>
            </tr>

            <tr>
                <td><b>MOVING</b></td>
                <td><font Size=-1>Ramp generation in progress</font></td>
            </tr>
        </table>
    </center>

<Center>
<Br> <Br> <Br> 
<Table Border=2 Cellpadding=3 CELLSPACING=0 WIDTH="100%">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<Td COLSPAN=2> <Font Size=+2><Center><b>States</b></td></Font></Center>
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<Td><Center><b>Names</b></td></Center>
<Td><Center><b>Descriptions</b></td></Center>
<Tr><Td><b>FAULT</b></Td>
<Td><Font Size=-1>Hardware / driver failure or fatal error occurred</Font></Td></Tr>

<Tr><Td><b>ON</b></Td>
<Td><Font Size=-1>Device ready to execute AO request</Font></Td></Tr>

<Tr><Td><b>INIT</b></Td>
<Td><Font Size=-1>Device initialization in progress</Font></Td></Tr>

<Tr><Td><b>MOVING</b></Td>
<Td><Font Size=-1>Ramp generation in progress</Font></Td></Tr>




</Table>
</Center>

<!--- html Footer --->

<Center>
<Font size=-1>
<br>
<br>
<TABLE BORDER="1" WIDTH="100%">
    <Tr>
		<!--- Hosted by Sourceforge --->
        <Td Align="Center">
			<Font size=-1>
			<b>TANGO</b> is an open source project hosted by :<br>
			<A href="http://sourceforge.net" Target="new">
					<IMG title="Sourceforge logo"
						alt="Sourceforge logo small"
						src="http://www.esrf.fr/computing/cs/tango/sourceforge.gif"
						border=0> </a>
			</Font>
		</Td>
		<!--- 2 Sourceforge Repositories --->
		<Td Align="Center">
			<Font size=-1>
			Core and Tools :
			<a href="http://tango-cs.cvs.sourceforge.net/tango-cs/" Target="new">
			CVS repository</a> on
			<a href="https://sourceforge.net/projects/tango-cs" Target=new>
			tango-cs project</a>

			<br>

			Device Servers :
			<a href="http://tango-ds.cvs.sourceforge.net/tango-ds/" Target="new">
					CVS repository</a> on
			<a href="https://sourceforge.net/projects/tango-ds" Target=new>
					tango-ds project</a>
			</Font>
		</Td>
    </Tr>
</Table>
</Font>
</Center>
</body>

</html>
 No newline at end of file
Original line number Diff line number Diff line
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<Title> Tango Device Server User's Guide </Title>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#7F00FF" ALINK="#FF0000">
<html>

<P><!-------TITLE------></P>
<TABLE BORDER="0" WIDTH="100%">
    <TR>
        <TD ALIGN="left">
			<A HREF="http://www.esrf.fr/" TARGET=new>
			<IMG SRC="http://www.esrf.fr/gifs/logo/80.gif" BORDER=0 Height="60"></A>
		</Td>
        <TD ALIGN="center">
			<A HREF="http://www.elettra.trieste.it/" TARGET=new>
			<IMG SRC="http://www.esrf.fr/computing/cs/tango/elettra_logo.gif" BORDER=0 Height="60"></A>
<head>
	<title> Tango Device Server User's Guide </title>
</head>
	
		</Td>
        <TD ALIGN="center">
			<A HREF="http://www.synchrotron-soleil.fr/" TARGET=new>
			<IMG SRC="http://www.esrf.fr/computing/cs/tango/soleil_logo.gif" BORDER=0 Height="60"></A>
		</Td>
        <TD ALIGN="right">
			<A HREF="http://www.cells.es/" TARGET=new>
			<IMG SRC="http://www.esrf.fr/computing/cs/tango/alba.jpg" BORDER=0 Height="54"></A>
		</Td>
        <TD ALIGN="right">
			<A HREF="http://www.desy.de/html/home/index_eng.html" TARGET=new>
			<IMG SRC="http://www.esrf.fr/computing/cs/tango/desy.gif" BORDER=0 Height="60"></A>
		</Td>
    	 <Td>
			<H2><FONT COLOR="#7F00FF">
			<Center><A HREF="http://www.tango-controls.org/" TARGET="_top">
					 TANGO </a> <Br> Device Server
			</Center></FONT>
		</Td>
    </TR>
</TABLE>

<HR WIDTH="100%"></H5>
<body>
	<center>
		<h1>
SingleShotAO Generic Device <Br>
User's Guide <Br><Br>
SingleShotAO Class<Br>

			SingleShotAO Generic Device <br>
			User's Guide <br><Br>
			SingleShotAO Class <br>
		</h1>
		<b>
Revision:  - Author: buteau <Br>
			Revision: - Author: buteau <br>
			Implemented in C++
		</b>
	</center>
<Br>
<Br>
<Br>
<Br>

	<h2>Introduction:</h2>
	<ul>
	ADLink boards support for single shot AO operations [PCI-6208 and compatible boards]<Br>
		<li>ADLink boards support for single shot AO operations [PCI-6208 and compatible boards]</li>
	</ul>
<Br><h2>Class Identification:</h2>

	<h2>Class Identification:</h2>
	<ul>
	<li><b>Contact      :</b>	 at synchrotron-soleil.fr - buteau
	<li><b>Class Family :</b>	InputOutput
	<li><b>Platform     :</b>	All Platforms
	<li><b>Bus          :</b>	Compact PCI
</ul><Br>
		<li><b>Contact :</b> at synchrotron-soleil.fr - buteau</li>
		<li><b>Class Family :</b> InputOutput</li>
		<li><b>Platform :</b> All Platforms</li>
		<li><b>Bus :</b> Compact PCI</li>
	</ul>

	<h2>Class Inheritance:</h2>
	<ul>
		<li> <a href="http://www.esrf.fr/computing/cs/tango/tango_doc/kernel_doc/cpp_doc/"> TANGO_BASE_CLASS</a></li>
		<li> <a
				href="http://www.esrf.fr/computing/cs/tango/tango_doc/kernel_doc/cpp_doc/">
				TANGO_BASE_CLASS</a></li>
		<ul>
			<li> SingleShotAO</li>
		</ul>
	</ul>
	</ul>
</ul>
<Br>
<Br>

	<h2>Class Description:</h2>
	<ul>
	<li> <a href=Description.html>      Device description.</a>
	<li> <a href=Properties.html>       Properties description</a>
	<li> <a href=TangoDevStates.html>   States description</a>
	<li> <a href=DevCommandsTable.html> Commands description</a>
	<li> <a href=Attributes.html>       Attributes description</a>
		<li> <a href=Description.html> Device description.</a> </li>
		<li> <a href=Properties.html> Properties description</a> </li>
		<li> <a href=TangoDevStates.html> States description</a> </li>
		<li> <a href=DevCommandsTable.html> Commands description</a> </li>
		<li> <a href=Attributes.html> Attributes description</a> </li>
	</ul>
<Br>
<Br>
<Br>
	
	<h2>Conclusion:</h2>
	<ul>
	The device server is ready for distribution application programmers.<Br>
	The author will be interested in any feedback which arise from their
	usage of this device server.
		<li>The device server is ready for distribution application programmers.</li>
		<li>The author will be interested in any feedback which arise from their usage of this device server.</li>
	</ul>
<Br>


<!--- html Footer --->

<Center>
<Font size=-1>
<br>
<br>
<TABLE BORDER="1" WIDTH="100%">
    <Tr>
		<!--- Hosted by Sourceforge --->
        <Td Align="Center">
			<Font size=-1>
			<b>TANGO</b> is an open source project hosted by :<br>
			<A href="http://sourceforge.net" Target="new">
					<IMG title="Sourceforge logo"
						alt="Sourceforge logo small"
						src="http://www.esrf.fr/computing/cs/tango/sourceforge.gif"
						border=0> </a>
			</Font>
		</Td>
		<!--- 2 Sourceforge Repositories --->
		<Td Align="Center">
			<Font size=-1>
			Core and Tools :
			<a href="http://tango-cs.cvs.sourceforge.net/tango-cs/" Target="new">
			CVS repository</a> on
			<a href="https://sourceforge.net/projects/tango-cs" Target=new>
			tango-cs project</a>

			<br>

			Device Servers :
			<a href="http://tango-ds.cvs.sourceforge.net/tango-ds/" Target="new">
					CVS repository</a> on
			<a href="https://sourceforge.net/projects/tango-ds" Target=new>
					tango-ds project</a>
			</Font>
		</Td>
    </Tr>
</Table>
</Font>
</Center>
</body>
</html>
+441 −169

File changed.

Preview size limit exceeded, changes collapsed.

+32 −71
Original line number Diff line number Diff line
@@ -110,13 +110,37 @@ public :
 *	The board type [MAO_xxxx - where <xxxx> is the ADlink board identifier - e.g. MAO_6208 - no default value]
 */
	string	boardType;
/**
 *  Whether to enable or disable the ramp generation on the board output channels. If false, the speedX and initialX dynamic attributes will not be created for every channel, and the changes will happen instantly. [true/false - default value is true]
 */
	Tango::DevBoolean	enableRamps;
/**
 *  Whether to write the memorized values to the board at the device initialization. [true/false - default value is false]
 */
	Tango::DevBoolean	outputMemorizedChannelsAtInit;
//@}

/**
 *	@name Device properties
 *	Device property member data.
 *	@name Device properties default values
 *	Device properties default values.
 */
//@{
/**
 *	Default value for boardNum property
 */
	Tango::DevShort	boardNum_default;
/**
 * 	Default value for boardType property
 */
	string	boardType_default;
/**
 *	Default value for enableRamps property
 */
	Tango::DevBoolean	enableRamps_default;
/**
 *	Default value for outputMemorizedChannelsAtInit property
 */
	Tango::DevBoolean	outputMemorizedChannelsAtInit_default;
//@}

/**@name Constructors
@@ -279,76 +303,13 @@ protected :
	//- channel number
	unsigned short m_nb_chan;

  // To be deleted with Tango 8
  //- Template class to store a current value in a Device property.
  //- \param value Value to store.
  //- \param property_name Name to use.
  template <class T>
  void store_value_as_property(T value, std::string property_name)
  {
    Tango::DbDatum current_value(property_name);
    current_value << value;
    Tango::DbData db_data;
    db_data.push_back(current_value);
	
    try
    {
      get_db_device()->put_property(db_data);
    }
    catch(Tango::DevFailed &df)
    {     
      ERROR_STREAM << df << endl;
      RETHROW_DEVFAILED(df,
						"SOFTWARE_FAILURE",
						"Error while storing properties in database",
						"SingleShotAO::store_value_as_property");
	  }
  }

  // To be deleted with Tango 8
  //- Template class to get a memorized attribute stored as a Device property.
  //- \param property_name Name od the property to read.
  template <class T>
  T get_memorized_attribute(const std::string& property_name)
  {
    T value;
    if (!Tango::Util::instance()->_UseDb)
    {
      //- throw exception
	    THROW_DEVFAILED("DEVICE_ERROR",
	                  "No DATA BASE!",
	                  "SingleShotAO::get_memorized_attribute");    
    }
	void	_abort();

    Tango::DbData	dev_prop;
    dev_prop.push_back(Tango::DbDatum(property_name));
	// set the write value of a dynamic attribute
	// used to keep read and write values in sync
	bool setDynamicAttributeWriteValue(const std::string& attrName, double value);

    try
    {
      get_db_device()->get_property(dev_prop);
    }
    catch (Tango::DevFailed &df)
    {
      //- rethrow exception
      RETHROW_DEVFAILED(df,
	                    "DEVICE_ERROR",
	                    "could not get Device properties! [caught Tango::DevFailed]",
	                    "SingleShotAO::get_memorized_attribute");
    }

    if (dev_prop[0].is_empty()==false)
    {
      dev_prop[0] >> value;
    }
    else
    {
      //- throw exception
	    THROW_DEVFAILED("DATA_ERROR",
	                  "No property stored in database!",
	                  "SingleShotAO::get_memorized_attribute");
    }
    return value;
  }
};

}	// namespace_ns
Original line number Diff line number Diff line
@@ -87,7 +87,8 @@ __declspec(dllexport)

#endif

	Tango::DeviceClass *_create_SingleShotAO_class(const char *name) {
	Tango::DeviceClass *_create_SingleShotAO_class(const char *name)
	{
		return SingleShotAO_ns::SingleShotAOClass::init(name);
	}
}
@@ -369,12 +370,17 @@ void SingleShotAOClass::set_default_property()
	string	prop_def;

	vector<string>	vect_data;

	//	Set Default Class Properties
	// ...

	//	Set Default Device Properties
	//- <BoardNum> -----------------------
	prop_name = "BoardNum";
	prop_desc = "The the board identifier in the cPCI crate [valid range is 0...7 - no default value] .";
	prop_def  = "";
	prop_desc = "The board identifier in the cPCI crate [valid range is 0...7 - no default value].";
	prop_def  = "-1";
	vect_data.clear();
	vect_data.push_back("-1");
	if (prop_def.length()>0)
	{
		Tango::DbDatum	data(prop_name);
@@ -385,10 +391,12 @@ void SingleShotAOClass::set_default_property()
	else
		add_wiz_dev_prop(prop_name, prop_desc);

	//- <BoardType> -----------------------
	prop_name = "BoardType";
	prop_desc = "The board type [MAO_xxxx - where <xxxx> is the ADlink board identifier - e.g. MAO_6208 - no default value]";
	prop_def  = "";
	prop_def = "TO_BE_DEFINED";
	vect_data.clear();
	vect_data.push_back("TO_BE_DEFINED");
	if (prop_def.length()>0)
	{
		Tango::DbDatum	data(prop_name);
@@ -399,7 +407,40 @@ void SingleShotAOClass::set_default_property()
	else
		add_wiz_dev_prop(prop_name, prop_desc);

	//- <EnableRamps> -----------------------
	prop_name = "EnableRamps";
	prop_desc = "Whether to enable or disable the ramp generation on the board output channels. If false, the speedX and initialX dynamic attributes will not be created for every channel, and the changes will happen instantly. [true/false - default value is true]";
	prop_def = "true";
	vect_data.clear();
	vect_data.push_back("true");
	if (prop_def.length() > 0)
	{
		Tango::DbDatum data(prop_name);
		data << vect_data;
		dev_def_prop.push_back(data);
		add_wiz_dev_prop(prop_name, prop_desc, prop_def);
	}
	else
		add_wiz_dev_prop(prop_name, prop_desc);
	
	//- <OutputMemorizedChannelsAtInit> -----------------------
	prop_name = "OutputMemorizedChannelsAtInit";
	prop_desc = "Whether to send the memorized values for the channels to the board at the device initialization (the device attribute will show the last memorized value regardless) [true/false - default value is false]";
	prop_def = "false";
	vect_data.clear();
	vect_data.push_back("false");
	if (prop_def.length() > 0)
	{
		Tango::DbDatum data(prop_name);
		data << vect_data;
		dev_def_prop.push_back(data);
		add_wiz_dev_prop(prop_name, prop_desc, prop_def);
	}
	else
		add_wiz_dev_prop(prop_name, prop_desc);
}


//+----------------------------------------------------------------------------
//
// method : 		SingleShotAOClass::write_class_property
@@ -432,107 +473,6 @@ void SingleShotAOClass::write_class_property()
	description << str_desc;
	data.push_back(description);

	//	put cvs or svn location
	string	filename(classname);
	filename += "Class.cpp";
	
	// Create a string with the class ID to
	// get the string into the binary
	string	class_id(ClassId);
	
	// check for cvs information
	string	src_path(CvsPath);
	start = src_path.find("/");
	if (start!=string::npos)
	{
		end   = src_path.find(filename);
		if (end>start)
		{
			string	strloc = src_path.substr(start, end-start);
			//	Check if specific repository
			start = strloc.find("/cvsroot/");
			if (start!=string::npos && start>0)
			{
				string	repository = strloc.substr(0, start);
				if (repository.find("/segfs/")!=string::npos)
					strloc = "ESRF:" + strloc.substr(start, strloc.length()-start);
			}
			Tango::DbDatum	cvs_loc("cvs_location");
			cvs_loc << strloc;
			data.push_back(cvs_loc);
		}
	}
	// check for svn information
	else
	{
		string	src_path(SvnPath);
		start = src_path.find("://");
		if (start!=string::npos)
		{
			end = src_path.find(filename);
			if (end>start)
			{
				header = "$HeadURL: ";
				start = header.length();
				string	strloc = src_path.substr(start, (end-start));
				
				Tango::DbDatum	svn_loc("svn_location");
				svn_loc << strloc;
				data.push_back(svn_loc);
			}
		}
	}

	//	Get CVS or SVN revision tag
	
	// CVS tag
	string	tagname(TagName);
	header = "$Name: ";
	start = header.length();
	string	endstr(" $");
	
	end   = tagname.find(endstr);
	if (end!=string::npos && end>start)
	{
		string	strtag = tagname.substr(start, end-start);
		Tango::DbDatum	cvs_tag("cvs_tag");
		cvs_tag << strtag;
		data.push_back(cvs_tag);
	}
	
	// SVN tag
	string	svnpath(SvnPath);
	header = "$HeadURL: ";
	start = header.length();
	
	end   = svnpath.find(endstr);
	if (end!=string::npos && end>start)
	{
		string	strloc = svnpath.substr(start, end-start);
		
		string tagstr ("/tags/");
		start = strloc.find(tagstr);
		if ( start!=string::npos )
		{
			start = start + tagstr.length();
			end   = strloc.find(filename);
			string	strtag = strloc.substr(start, end-start-1);
			
			Tango::DbDatum	svn_tag("svn_tag");
			svn_tag << strtag;
			data.push_back(svn_tag);
		}
	}

	//	Get URL location
	string	httpServ(HttpServer);
	if (httpServ.length()>0)
	{
		Tango::DbDatum	db_doc_url("doc_url");
		db_doc_url << httpServ;
		data.push_back(db_doc_url);
	}

	//  Put inheritance
	Tango::DbDatum	inher_datum("InheritedFrom");
	vector<string> inheritance;
@@ -540,8 +480,7 @@ void SingleShotAOClass::write_class_property()
	inher_datum << inheritance;
	data.push_back(inher_datum);

	//	Call database and and values
	//--------------------------------------------
	// Call database and add values
	get_db_class()->put_property(data);
}

Original line number Diff line number Diff line
@@ -128,7 +128,7 @@ void SingleShotAOManager::write_frequency(double p_frequency)
// ============================================================================
// SingleShotAOManager::init ()
// ============================================================================ 
void SingleShotAOManager::init(asl::SingleShotAO * p_ssao, unsigned short p_nb_chan, double p_frequency)
void SingleShotAOManager::init(asl::SingleShotAO * p_ssao, unsigned short p_nb_chan, double p_frequency, bool p_enable_ramps)
{
	m_ssao = p_ssao;
	CHECK_SSAO();
@@ -145,6 +145,8 @@ void SingleShotAOManager::init(asl::SingleShotAO * p_ssao, unsigned short p_nb_c
		enable_periodic_msg(true);
	}

	m_enable_ramps = p_enable_ramps;

	// initialize channel indexes (-1 means no ramp in progress)
	// and ramp states
	for (unsigned int l_cpt = 0; l_cpt < m_nb_chan; l_cpt++)
@@ -180,7 +182,6 @@ void SingleShotAOManager::process_message (yat::Message& msg)
		//- THREAD_PERIODIC ------------------
		case yat::TASK_PERIODIC:
		{
			//DEBUG_STREAM << "SingleShotAOManager::handle_message::THREAD_PERIODIC" << std::endl;
			periodic_job_i();
		}
		break;
@@ -191,12 +192,15 @@ void SingleShotAOManager::process_message (yat::Message& msg)
			//- not used in this example
		}
		break;

		//- UNHANDLED MSG --------------------
		default:
		{
			DEBUG_STREAM << "SingleShotAOManager::handle_message::unhandled msg type received" << std::endl;
			break;
		}
	}
}

// ============================================================================
// SingleShotAOManager::periodic_job_i ()
@@ -207,9 +211,12 @@ void SingleShotAOManager::periodic_job_i()
	for (unsigned int l_cpt = 0;l_cpt < m_nb_chan;l_cpt++)
	{
		// test if a ramp step must occur
		if (m_currentIndex[l_cpt] != -1)
		if (m_currentIndex[l_cpt] == -1)
		{
			//DEBUG_STREAM << "Current index for channel" << l_cpt << ": " << m_currentIndex[l_cpt] << endl;
			m_isRunning[l_cpt] = false;
			continue;
		}

		m_isRunning[l_cpt] = true;
		double l_val = 0;
		l_val = m_ramps[l_cpt][m_currentIndex[l_cpt]];
@@ -243,16 +250,12 @@ void SingleShotAOManager::periodic_job_i()
		m_currentIndex[l_cpt] += 1;
		if (m_currentIndex[l_cpt] == m_ramps[l_cpt].capacity())
		{
			DEBUG_STREAM << "Ramp finished for channel" << l_cpt << endl;
			m_currentIndex[l_cpt] = -1;
			m_initials[l_cpt] = m_channels[l_cpt];
			m_ramps[l_cpt].clear();
		}
	}
		else
		{
			m_isRunning[l_cpt] = false;
		}
	}
}

// ============================================================================
@@ -264,13 +267,26 @@ double SingleShotAOManager::get_channel(ChannelId_t p_chIdx)
}

// ============================================================================
// SingleShotAOManager::write_channel ()
// SingleShotAOManager::set_channel ()
// ============================================================================ 
void SingleShotAOManager::write_channel(ChannelId_t p_chIdx, double p_val)
void SingleShotAOManager::set_channel(ChannelId_t p_chIdx, double p_val)
{
	if (m_isRunning[p_chIdx])
	{
		THROW_DEVFAILED("DEVICE_FAILURE",
						"could not write channel : a ramp is still in progress on this channel",
						"SingleShotAOManager::set_channel");
	}
	else
	{
	DEBUG_STREAM << "write_channel : " << p_chIdx << " : " << p_val << " : " << endl;
		m_channels[p_chIdx] = p_val;
	}
}

	if (m_speeds[p_chIdx] == 0.0)
// ============================================================================
// SingleShotAOManager::write_channel_direct ()
// ============================================================================ 
void SingleShotAOManager::write_channel_direct(ChannelId_t p_chIdx, double p_val)
{
	try 
	{
@@ -278,41 +294,33 @@ void SingleShotAOManager::write_channel(ChannelId_t p_chIdx, double p_val)
		m_ssao->write_scaled_channel((adl::ChanId)p_chIdx, p_val);
		m_channels[p_chIdx] = p_val;
		m_initials[p_chIdx] = p_val;
		DEBUG_STREAM << "Writing directly the value" << std::endl;
	}
	catch (const asl::DAQException &de)
	{
		Tango::DevFailed df = daq_to_tango_exception(de);
			ERROR_STREAM << df<< endl;
		ERROR_STREAM << df << std::endl;
		m_state = Tango::FAULT;
		RETHROW_DEVFAILED(df,
			"DRIVER_FAILURE",
			"could not write channel [caught asl::DAQException]",
				"SingleShotAOManager::write_channel");
			"SingleShotAOManager::write_channel_direct");
	}
	catch (...)
	{
			ERROR_STREAM << "SingleShotAOManager::write_channel::unknown exception caught"<<std::endl;
		ERROR_STREAM << "SingleShotAOManager::write_channel_direct::unknown exception caught" << std::endl;
		m_state = Tango::FAULT;
		THROW_DEVFAILED("DRIVER_FAILURE",
			"could not write channel [unknown error]",
				"SingleShotAOManager::write_channel");
		}
			"SingleShotAOManager::write_channel_direct");
	}
	else
	{
		// check if a ramp is not running
		if (!m_isRunning[p_chIdx])
		{
			// check if initial = channel
			if (m_initials[p_chIdx] != p_val)
			{
				if (m_frequency == 0)
				{
					THROW_DEVFAILED("DRIVER_FAILURE",
						"could not set a ramp on this channel. The frequency is 0",
						"SingleShotAOManager::write_channel");
}

// ============================================================================
// SingleShotAOManager::start_channel_ramp ()
// ============================================================================ 
void SingleShotAOManager::start_channel_ramp(ChannelId_t p_chIdx, double p_val)
{
	// ramp determination
	double l_delta = p_val - m_initials[p_chIdx];
	bool isDown = false;
@@ -330,18 +338,12 @@ void SingleShotAOManager::write_channel(ChannelId_t p_chIdx, double p_val)
	l_buffer.force_length(ramp_size);
	
	// check if ramp step is integer or not
				bool isDeltaNotInt = false;
				if (ramp_size != ((size_t)(floor(l_delta))))
				{
				  isDeltaNotInt = true;
				}

	bool isDeltaNotInt = (ramp_size != ((size_t)(floor(l_delta))));
	DEBUG_STREAM << "Real ramp steps number : " << ramp_size << endl;

	for (unsigned int l_cpt = 0; l_cpt < ramp_size; l_cpt++)
	{
				  if ((l_cpt == (ramp_size - 1)) && 
              (isDeltaNotInt))
		if ((l_cpt == (ramp_size - 1)) && (isDeltaNotInt))
		{
			// add the setpoint value at the end of table
			l_buffer[l_cpt] = p_val;
@@ -364,16 +366,47 @@ void SingleShotAOManager::write_channel(ChannelId_t p_chIdx, double p_val)
	m_ramps[p_chIdx].force_length(0);
	m_currentIndex[p_chIdx] = 0;
	m_ramps[p_chIdx] = l_buffer;
				//m_channels[p_chIdx] = m_ramps[p_chIdx][0]; -- soso on ne met rien ici => à l'application
}

// ============================================================================
// SingleShotAOManager::write_channel ()
// ============================================================================ 
void SingleShotAOManager::write_channel(ChannelId_t p_chIdx, double p_val)
{
	DEBUG_STREAM << "write_channel " << p_chIdx << " : " << p_val << endl;

	// if the speed is 0, write the value directly and skip ramp
	if (m_speeds[p_chIdx] == 0.0 || !m_enable_ramps)
	{
		write_channel_direct(p_chIdx, p_val);
		return;
	}
		else

	// if a ramp is running, error
	if (m_isRunning[p_chIdx])
	{
		THROW_DEVFAILED("DEVICE_FAILURE",
			"could not write channel : a ramp is still in progress on this channel",
			"SingleShotAOManager::write_channel");
	}

	// if frequency = 0, error
	if (m_frequency == 0)
	{
		THROW_DEVFAILED("DRIVER_FAILURE",
			"could not set a ramp on this channel. The frequency is 0",
			"SingleShotAOManager::write_channel");
	}

	// if initial = channel, skip
	if (m_initials[p_chIdx] == p_val)
	{
		DEBUG_STREAM << "Initial value is the same as the given value, skipping" << endl;
		return;
	}

	// Create and start a ramp
	start_channel_ramp(p_chIdx, p_val);
}

// ============================================================================
@@ -395,6 +428,12 @@ void SingleShotAOManager::set_initial(ChannelId_t p_chIdx, Intial_t p_initial)
			"could not write initial : a ramp is still in progress on this channel",
			"SingleShotAOManager::set_initial");
	}
	else if (!m_enable_ramps)
	{
		THROW_DEVFAILED("DEVICE_FAILURE",
			"could not write initial : ramps are disabled",
			"SingleShotAOManager::set_initial");
	}
	else
	{
		m_initials[p_chIdx] = p_initial;
@@ -420,12 +459,26 @@ void SingleShotAOManager::set_speed(ChannelId_t p_chIdx, Intial_t p_speed)
			"could not write speed : a ramp is still in progress on this channel",
			"SingleShotAOManager::set_speed");
	}
	else if (!m_enable_ramps)
	{
		THROW_DEVFAILED("DEVICE_FAILURE",
			"could not write speed : ramps are disabled",
			"SingleShotAOManager::set_speed");
	}
	else
	{
		m_speeds[p_chIdx] = p_speed;
	}
}

// ============================================================================
// SingleShotAOManager::is_running ()
// ============================================================================
bool SingleShotAOManager::is_running(ChannelId_t p_chIdx)
{
	return m_isRunning[p_chIdx];
}

// ============================================================================
// SingleShotAOManager::abort ()
// ============================================================================
@@ -444,5 +497,5 @@ void SingleShotAOManager::abort()
		}
	}
}
} // namespace SingleShotAO_ns

} // namespace SingleShotAO_ns
Original line number Diff line number Diff line
@@ -48,21 +48,32 @@ public:
  std::string get_status ();

  //- init
  void init(asl::SingleShotAO * p_ssao, unsigned short p_nb_chan, double p_frequency);
  void init(asl::SingleShotAO *p_ssao, unsigned short p_nb_chan, double p_frequency, bool p_enable_ramps);

  //- get current channel value
  double get_channel(ChannelId_t p_chIdx);

  //- set channel
  // Updates the value for the channel in the device without sending it to hardware
  void set_channel(ChannelId_t p_chIdx, double p_val);

  //- write channel
  // Writes value to the channel to the device and the hardware, with a ramp if speed is not null and EnableRamps property is true
  void write_channel(ChannelId_t p_chIdx, double p_val);

  //- write a channel directly (without ramp)
  void write_channel_direct(ChannelId_t p_chIdx, double p_val);

  //- create and start a ramp for channel
  void start_channel_ramp(ChannelId_t p_chIdx, double p_val);

  //- change period
  void write_frequency(double p_frequency);

  //- get inital
  //- get initial
  Intial_t get_initial(ChannelId_t p_chIdx);

  //- set inital
  //- set initial
  void set_initial(ChannelId_t p_chIdx, Intial_t p_initial);

  //- get speed
@@ -71,6 +82,9 @@ public:
  //- set speed
  void set_speed(ChannelId_t p_chIdx, Intial_t p_speed);

  //- is running
  bool is_running(ChannelId_t p_chIdx);

  //- abort
  void abort();

@@ -95,6 +109,9 @@ private:
  //- frequency
  double m_frequency;

  //-enable ramps
  bool m_enable_ramps;

  //- initial buffer for all channels
  std::map<ChannelId_t, Intial_t> m_initials;