diff --git a/doc/doc_html/Attributes.html b/doc/doc_html/Attributes.html index 8d6992fdc674724862de4737b2c762b4da4edd62..70c5c1b662736bd7b9430c246ab5c5cb88eaf3c8 100644 --- a/doc/doc_html/Attributes.html +++ b/doc/doc_html/Attributes.html @@ -28,7 +28,7 @@ Device Attributes Description </h1> <Br> <b> -Revision: 1.2 - Author: abeilleg +Revision: 1.6 - Author: abeilleg </b> </center> diff --git a/doc/doc_html/Description.html b/doc/doc_html/Description.html new file mode 100644 index 0000000000000000000000000000000000000000..27eb2df8f8fb28b6f6f40e272ec2b212f90a4fc1 --- /dev/null +++ b/doc/doc_html/Description.html @@ -0,0 +1,62 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<HTML> +<HEAD> +<Title> Tango Device Server User's Guide </Title> + <META NAME="GENERATOR" CONTENT="Mozilla/3.01Gold (X11; I; HP-UX B.10.20 9000/735) [Netscape]"> +</HEAD> +<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#FF0000" ALINK="#FF0000"> + +<P><!-------TITLE------></P> +<table width="100%" height="20%"><tr> +<td align=LEFT> +<FONT COLOR="#0000FF"><FONT SIZE=+4>Synchrotron </FONT></FONT> +<FONT COLOR="#0000FF"><FONT SIZE=+4>Soleil</FONT></FONT> +<H5>Saint-Aubin - BP 48 91192 GIF-sur-YVETTE CEDEX<BR> +</td><td> +<A href="http://www.synchrotron-soleil.fr/"> +<IMG SRC="http://controle/images/logo-150.gif" + ALT="SOLEIL Logo" ALIGN=RIGHT border="0"></A> +</td></tr></table> + +<HR WIDTH="100%"></H5> + +<Br> +<center> +<h1> +Retriggered Continuous Anolog Output<Br> +Device Description +</h1> +<Br> +<b> +Revision: 1.6 - Author: abeilleg +</b> +</center> + + +<Center> +<Br> +<Br> +<Br> +<Br> +<Br> +<Br> +This Page Must Be Filled by <Br> +The Programmer +</Center> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<HTML> +<HEAD> +<Title> Tango Device Server User's Guide </Title> + <META NAME="GENERATOR" CONTENT="Mozilla/3.01Gold (X11; I; HP-UX B.10.20 9000/735) [Netscape]"> +</HEAD> +<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#FF0000" ALINK="#FF0000"> + +<P><!-------TITLE------></P> + +<Center> +<Br> +<HR WIDTH="100%"></H5> +<H3>(c) SOLEIL : Groupe ICA Contr�le et Acquisitions </H33> +</Center> +</body> +</html> diff --git a/doc/doc_html/DevCommands.html b/doc/doc_html/DevCommands.html index 427a541681f87fca7bdb0ca073bd84a0e6dee78d..55f704049bb97450626a6cd7cdc0cbc49c1b95eb 100644 --- a/doc/doc_html/DevCommands.html +++ b/doc/doc_html/DevCommands.html @@ -28,7 +28,7 @@ Device Commands Description </h1> <Br> <b> -Revision: 1.2 - Author: abeilleg +Revision: 1.6 - Author: abeilleg </b> </center> diff --git a/doc/doc_html/DevCommandsTable.html b/doc/doc_html/DevCommandsTable.html index 6e6f2d091a80fbdf143762328ba10ea1b3da633b..921dd8fb1faf0c6f87172482a10e41eab098d78b 100644 --- a/doc/doc_html/DevCommandsTable.html +++ b/doc/doc_html/DevCommandsTable.html @@ -28,7 +28,7 @@ Device Commands Description </h1> <Br> <b> -Revision: 1.2 - Author: abeilleg +Revision: 1.6 - Author: abeilleg </b> </center> diff --git a/doc/doc_html/Properties.html b/doc/doc_html/Properties.html index 20a5c16750aef20cec9589e4f3d3449a92c7dabf..d42fab108d897c6ee5a5796f016f9e3f2e5de62c 100644 --- a/doc/doc_html/Properties.html +++ b/doc/doc_html/Properties.html @@ -28,7 +28,7 @@ Properties Description </h1> <Br> <b> -Revision: 1.2 - Author: abeilleg +Revision: 1.6 - Author: abeilleg </b> </center> @@ -57,7 +57,8 @@ Revision: 1.2 - Author: abeilleg <Tr><Td>TriggerSource</Td> <Td>Tango::DEV_USHORT</Td> -<Td>The trigger source. Analog trigger DTRIG or ATRIG.</Td></Tr> +<Td>The trigger source.The possible values are internal trigger INTRIG, digital trigger +DTRIG or analog trigger ATRIG.</Td></Tr> <Tr><Td>ATRIGSelection</Td> <Td>Tango::DEV_USHORT</Td> @@ -161,6 +162,15 @@ AORefA and AORefB with EXTERN.</Td></Tr> <Td>Array of double</Td> <Td>The waveform for channel 7 (attribute persistency).</Td></Tr> +<Tr><Td>FilePath</Td> +<Td>string</Td> +<Td>The path to waveforms persistancy files</Td></Tr> + +<Tr><Td>ConversionSource</Td> +<Td>Tango::DEV_USHORT</Td> +<Td>Set the AO conversion signal source (i.e. DAC sampling source). +Use one of the following: INTERNAL, EXTSAMPLING.</Td></Tr> + </Table> <Br><Br><Br> diff --git a/doc/doc_html/TangoDevStates.html b/doc/doc_html/TangoDevStates.html index b83a8258dd304f5f583dc253f28bd20df4e0fb7e..284fcb5ec68c83c8fa253b535d109464f718825c 100644 --- a/doc/doc_html/TangoDevStates.html +++ b/doc/doc_html/TangoDevStates.html @@ -28,7 +28,7 @@ Device States Description </h1> <Br> <b> -Revision: 1.2 - Author: abeilleg +Revision: 1.6 - Author: abeilleg </b> </center> diff --git a/doc/doc_html/index.html b/doc/doc_html/index.html index 11f45a33bdcadd36c0fa208023c94822ccdcf640..ecf0e9209f93d871797a75c6c50ecfd82c8492a0 100644 --- a/doc/doc_html/index.html +++ b/doc/doc_html/index.html @@ -28,7 +28,7 @@ Device Server User's Guide </h1> <Br> <b> -Revision: 1.2 - Author: abeilleg +Revision: 1.6 - Author: abeilleg </b> </center> <Br> diff --git a/src/Doxyfile b/src/Doxyfile index 3c1785bdf12225d5a9bfb236e15ea32889709a68..951283a4ec89a360ea3d46f603e0aef620e3f158 100644 --- a/src/Doxyfile +++ b/src/Doxyfile @@ -30,7 +30,7 @@ PROJECT_NUMBER = # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. -OUTPUT_DIRECTORY = D:\RetrigAO\src/doc_html +OUTPUT_DIRECTORY = T:\DEV\flocvs\RetrigAO\src/doc_html # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this @@ -304,7 +304,7 @@ WARN_LOGFILE = # directories like "/usr/src/myproject". Separate the files or directories # with spaces. -INPUT = D:\RetrigAO\src +INPUT = T:\DEV\flocvs\RetrigAO\src # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp diff --git a/src/RetrigAO.cpp b/src/RetrigAO.cpp index 78de6a934cbec9ead1a91da9edfc833f000a0841..92594d861939619f6fee69d66dba7d16e0457e8d 100644 --- a/src/RetrigAO.cpp +++ b/src/RetrigAO.cpp @@ -1,4 +1,4 @@ -static const char *RcsId = "$Header: /users/chaize/newsvn/cvsroot/InputOutput/ADLINK/RetrigAO/src/RetrigAO.cpp,v 1.11 2007-06-29 15:45:57 abeilleg Exp $"; +static const char *RcsId = "$Header: /users/chaize/newsvn/cvsroot/InputOutput/ADLINK/RetrigAO/src/RetrigAO.cpp,v 1.12 2009-07-31 06:53:51 flanglois Exp $"; //+============================================================================= // // file : RetrigAO.cpp @@ -11,11 +11,14 @@ static const char *RcsId = "$Header: /users/chaize/newsvn/cvsroot/InputOutput/AD // // project : TANGO Device Server // -// $Author: abeilleg $ +// $Author: flanglois $ // -// $Revision: 1.11 $ +// $Revision: 1.12 $ // // $Log: not supported by cvs2svn $ +// Revision 1.11 2007/06/29 15:45:57 abeilleg +// bug fix on properties management. +// // Revision 1.10 2007/06/25 10:19:05 abeilleg // save data in files+bug fix on config cpy // @@ -629,6 +632,9 @@ void RetrigAO::init_device() } _config.set_output_rate(frequency); + + // configure the conversion source (sampling timer) + _config.set_conversion_source((adl::AOConversionSource)conversionSource); //when stop command will be call, the waveform will be generated until its end before stopping //config.set_stop_mode (adl::wait_end_waveform); @@ -706,6 +712,9 @@ void RetrigAO::get_device_property() filePath = "\\\\DeviceServers\\configFiles\\RetrigAO\\"; + std::string default_conv_src = "INTERNAL"; + conversionSource = adl::ao_internal_timer; + // Read device properties from database.(Automatic code generation) //------------------------------------------------------------- Tango::DbData data; @@ -739,10 +748,42 @@ void RetrigAO::get_device_property() data.push_back(Tango::DbDatum("Channel6Waveform")); data.push_back(Tango::DbDatum("Channel7Waveform")); data.push_back(Tango::DbDatum("FilePath")); + data.push_back(Tango::DbDatum("ConversionSource")); // Call database and extract values //-------------------------------------------- get_db_device()->get_property(data); + if (data[0].is_empty()==false) data[0] >> boardNum; + if (data[1].is_empty()==false) data[1] >> frequency; + if (data[2].is_empty()==false) data[2] >> triggerMode; + if (data[3].is_empty()==false) data[3] >> triggerSource; + if (data[4].is_empty()==false) data[4] >> aTRIGSelection; + if (data[5].is_empty()==false) data[5] >> aTRIGLevel; + if (data[6].is_empty()==false) data[6] >> dTRIGPolarity; + if (data[7].is_empty()==false) data[7] >> aORefA; + if (data[8].is_empty()==false) data[8] >> aORefB; + if (data[9].is_empty()==false) data[9] >> polarity; + if (data[10].is_empty()==false) data[10] >> aORefSource; + if (data[11].is_empty()==false) data[11] >> channel0Enable; + if (data[12].is_empty()==false) data[12] >> channel1Enable; + if (data[13].is_empty()==false) data[13] >> channel2Enable; + if (data[14].is_empty()==false) data[14] >> channel3Enable; + if (data[15].is_empty()==false) data[15] >> channel4Enable; + if (data[16].is_empty()==false) data[16] >> channel5Enable; + if (data[17].is_empty()==false) data[17] >> channel6Enable; + if (data[18].is_empty()==false) data[18] >> channel7Enable; + if (data[19].is_empty()==false) data[19] >> bufferDepth; + if (data[20].is_empty()==false) data[20] >> delay; + if (data[21].is_empty()==false) data[21] >> channel0Waveform; + if (data[22].is_empty()==false) data[22] >> channel1Waveform; + if (data[23].is_empty()==false) data[23] >> channel2Waveform; + if (data[24].is_empty()==false) data[24] >> channel3Waveform; + if (data[25].is_empty()==false) data[25] >> channel4Waveform; + if (data[26].is_empty()==false) data[26] >> channel5Waveform; + if (data[27].is_empty()==false) data[27] >> channel6Waveform; + if (data[28].is_empty()==false) data[28] >> channel7Waveform; + if (data[29].is_empty()==false) data[29] >> filePath; + if (data[30].is_empty()==false) data[30] >> conversionSource; // End of Automatic code generation @@ -1111,6 +1152,27 @@ void RetrigAO::get_device_property() { data[29] >> filePath; } + + //------------------------------------------------------------- + if (data[30].is_empty()==false) + { + string conv; + data[30] >> conv; + if(conv == "INTERNAL") + conversionSource = adl::ao_internal_timer; + else if(conv == "EXTSAMPLING") + conversionSource = adl::ao_external_afio; + else + WARN_STREAM<<"ContinuousAO::get_device_property: the value of conversionSource is not valid" + <<"using default value "<<default_conv_src<<endl; + } + else + { + Tango::DbDatum property("ConversionSource"); + property << default_conv_src; + data_put.push_back(property); + WARN_STREAM<<"ConversionSource property is not set in database, loading default value in database:"<<default_conv_src<<endl; + } //-----------------------attribute persistancy------------------ /* if (data[21].is_empty()==false) data[21] >> channel0Waveform; if (data[22].is_empty()==false) data[22] >> channel1Waveform; diff --git a/src/RetrigAO.h b/src/RetrigAO.h index 5f0103c48e22e686f9c0e4e73d0e4a678802e6da..b2713d2b54c240ff30b7b803648e970f7c7b1821 100644 --- a/src/RetrigAO.h +++ b/src/RetrigAO.h @@ -6,11 +6,14 @@ // // project : Retriggered Continuous Anolog Output // -// $Author: abeilleg $ +// $Author: flanglois $ // -// $Revision: 1.6 $ +// $Revision: 1.7 $ // // $Log: not supported by cvs2svn $ +// Revision 1.6 2007/06/25 10:19:06 abeilleg +// save data in files+bug fix on config cpy +// // Revision 1.5 2006/09/18 10:32:52 abeilleg // added internal software support. // @@ -49,8 +52,8 @@ //using namespace Tango; /** - * @author $Author: abeilleg $ - * @version $Revision: 1.6 $ $ + * @author $Author: flanglois $ + * @version $Revision: 1.7 $ $ */ // Add your own constants definitions here. @@ -236,6 +239,11 @@ public : * The path to waveforms persistancy files */ string filePath; +/** + * Set the AO conversion signal source (i.e. DAC sampling source). + * Use one of the following: INTERNAL, EXTSAMPLING. + */ + Tango::DevUShort conversionSource; //@} /**@name Constructors