From 1431325e08f51f56d29a32d2af449ad2d78ecfde Mon Sep 17 00:00:00 2001
From: Xavier Elattaoui <xavier.elattaoui@synchrotron-soleil.fr>
Date: Thu, 28 Feb 2008 09:02:05 +0000
Subject: [PATCH] xavier : StateMachine file added !! (oups)

---
 src/AcquireWaveformLecroy.cpp             | 346 ++++++++++++++++--
 src/AcquireWaveformLecroy.dsp             |  22 +-
 src/AcquireWaveformLecroy.dsw             |  29 ++
 src/AcquireWaveformLecroy.h               | 168 +++++++--
 src/AcquireWaveformLecroy.ncb             | Bin 0 -> 58368 bytes
 src/AcquireWaveformLecroy.opt             | Bin 0 -> 48640 bytes
 src/AcquireWaveformLecroyClass.cpp        | 103 +++++-
 src/AcquireWaveformLecroyClass.h          | 405 ++++------------------
 src/AcquireWaveformLecroyStateMachine.cpp | 225 ++++++++++++
 src/ClassFactory.cpp                      |  13 +-
 src/Makefile.VC                           |  15 +-
 src/main.cpp                              |  10 +-
 12 files changed, 891 insertions(+), 445 deletions(-)
 create mode 100644 src/AcquireWaveformLecroy.dsw
 create mode 100644 src/AcquireWaveformLecroy.ncb
 create mode 100644 src/AcquireWaveformLecroy.opt
 create mode 100644 src/AcquireWaveformLecroyStateMachine.cpp

diff --git a/src/AcquireWaveformLecroy.cpp b/src/AcquireWaveformLecroy.cpp
index da6986e..a783c05 100644
--- a/src/AcquireWaveformLecroy.cpp
+++ b/src/AcquireWaveformLecroy.cpp
@@ -1,19 +1,19 @@
-static const char *RcsId = "$Header: /users/chaize/newsvn/cvsroot/Instrumentation/AcquireWaveformLecroy/src/AcquireWaveformLecroy.cpp,v 1.8 2008-02-26 08:32:59 xavela Exp $";
+static const char *RcsId = "$Header: /users/chaize/newsvn/cvsroot/Instrumentation/AcquireWaveformLecroy/src/AcquireWaveformLecroy.cpp,v 1.9 2008-02-28 09:02:05 xavela Exp $";
 //+=============================================================================
 //
-// file :	  AcquireWaveformLecroy.cpp
+// file :         AcquireWaveformLecroy.cpp
 //
 // description :  C++ source for the AcquireWaveformLecroy and its commands. 
-//		  The class is derived from Device. It represents the
-//		  CORBA servant object which will be accessed from the
-//		  network. All commands which can be executed on the
-//		  AcquireWaveformLecroy are implemented in this file.
+//                The class is derived from Device. It represents the
+//                CORBA servant object which will be accessed from the
+//                network. All commands which can be executed on the
+//                AcquireWaveformLecroy are implemented in this file.
 //
-// project :	  TANGO Device Server
+// project :      TANGO Device Server
 //
 // $Author: xavela $
 //
-// $Revision: 1.8 $
+// $Revision: 1.9 $
 //
 // $Log: not supported by cvs2svn $
 // Revision 1.7  2004/10/22 13:24:47  buteau
@@ -48,61 +48,69 @@ static const char *RcsId = "$Header: /users/chaize/newsvn/cvsroot/Instrumentatio
 //
 //-=============================================================================
 //
-//		This file is generated by POGO
+//  		This file is generated by POGO
 //	(Program Obviously used to Generate tango Object)
 //
-//	   (c) - Software Engineering Group - ESRF
+//         (c) - Software Engineering Group - ESRF
 //=============================================================================
 
 
+
 //===================================================================
 //
-//	The folowing table gives the correspondance
+//	The following table gives the correspondance
 //	between commands and method's name.
 //
-//	Command's name	|	Method's name
+//  Command's name|  Method's name
 //	----------------------------------------
-//	State	|	dev_state()
-//	Status	|	dev_status()
+//  State      |  dev_state()
+//  Status     |  dev_status()
+//  WriteRead  |  write_read()
 //
 //===================================================================
 
+
 #include <tango.h>
 #include <AcquireWaveformLecroy.h>
+#include <AcquireWaveformLecroyClass.h>
 
-namespace AcquireWaveformLecroy
+static const int MAX_RESPONSE_LENGTH = 150000;
+
+namespace AcquireWaveformLecroy_ns
 {
 
 //+----------------------------------------------------------------------------
 //
-// method :		AcquireWaveformLecroy::AcquireWaveformLecroy(string &s)
+// method : 		AcquireWaveformLecroy::AcquireWaveformLecroy(string &s)
 // 
-// description :	constructor for simulated AcquireWaveformLecroy
+// description : 	constructor for simulated AcquireWaveformLecroy
 //
 // in : - cl : Pointer to the DeviceClass object
-//	- s : Device name 
+//      - s : Device name 
 //
 //-----------------------------------------------------------------------------
-AcquireWaveformLecroy::AcquireWaveformLecroy(Tango::DeviceClass *cl,string &s):Tango::Device_2Impl(cl,s.c_str())
+AcquireWaveformLecroy::AcquireWaveformLecroy(Tango::DeviceClass *cl,string &s)
+:Tango::Device_3Impl(cl,s.c_str())
 {
 	init_device();
 }
 
-AcquireWaveformLecroy::AcquireWaveformLecroy(Tango::DeviceClass *cl,const char *s):Tango::Device_2Impl(cl,s)
+AcquireWaveformLecroy::AcquireWaveformLecroy(Tango::DeviceClass *cl,const char *s)
+:Tango::Device_3Impl(cl,s)
 {
 	init_device();
 }
 
 AcquireWaveformLecroy::AcquireWaveformLecroy(Tango::DeviceClass *cl,const char *s,const char *d)
-:Tango::Device_2Impl(cl,s,d)
+:Tango::Device_3Impl(cl,s,d)
 {
 	init_device();
 }
 //+----------------------------------------------------------------------------
 //
-// method :		AcquireWaveformLecroy::delete_device()
+// method : 		AcquireWaveformLecroy::delete_device()
 // 
-// description :	will be called at device destruction or at init command.
+// description : 	will be called at device destruction or at init command.
 //
 //-----------------------------------------------------------------------------
 void AcquireWaveformLecroy::delete_device()
@@ -165,13 +173,18 @@ void AcquireWaveformLecroy::delete_device()
 		delete waveform_ptr;
 		waveform_ptr = 0;
 	}
+	if(_deviceResponse)
+	{
+		delete [] _deviceResponse;
+		_deviceResponse = 0;
+	}
 }
 
 //+----------------------------------------------------------------------------
 //
-// method :		AcquireWaveformLecroy::init_device()
+// method : 		AcquireWaveformLecroy::init_device()
 // 
-// description :	will be called at device initialization.
+// description : 	will be called at device initialization.
 //
 //-----------------------------------------------------------------------------
 void AcquireWaveformLecroy::init_device()
@@ -217,6 +230,8 @@ void AcquireWaveformLecroy::init_device()
 	*attr_triggerTime_read = new char[MAX_STRING_LENGTH];
 	::memset(*attr_triggerTime_read, 0, MAX_STRING_LENGTH * sizeof(char));
 
+	_deviceResponse = new char[MAX_RESPONSE_LENGTH];
+
 	//- Initialise variables to default values
 	//--------------------------------------------
 	data_value=0;
@@ -248,9 +263,9 @@ void AcquireWaveformLecroy::init_device()
 
 //+----------------------------------------------------------------------------
 //
-// method :		AcquireWaveformLecroy::readDeviceProperies()
+// method : 		AcquireWaveformLecroy::get_device_property()
 // 
-// description :	Read the device properties from database.
+// description : 	Read the device properties from database.
 //
 //-----------------------------------------------------------------------------
 void AcquireWaveformLecroy::get_device_property()
@@ -262,43 +277,67 @@ void AcquireWaveformLecroy::get_device_property()
 
 	//-	Read device properties from database.(Automatic code generation)
 	//-------------------------------------------------------------
-	Tango::DbData	data;
-	data.push_back(Tango::DbDatum("IPaddress"));
-	data.push_back(Tango::DbDatum("ChannelName"));
+	Tango::DbData	dev_prop;
+	dev_prop.push_back(Tango::DbDatum("IPaddress"));
+	dev_prop.push_back(Tango::DbDatum("ChannelName"));
 
 	//	Call database and extract values
 	//--------------------------------------------
-	get_db_device()->get_property(data);
-	if (data[0].is_empty()==false)	data[0]  >>  iPaddress;
-	if (data[1].is_empty()==false)	data[1]  >>  channelName;
+	if (Tango::Util::instance()->_UseDb==true)
+		get_db_device()->get_property(dev_prop);
+	Tango::DbDatum	def_prop, cl_prop;
+	AcquireWaveformLecroyClass	*ds_class =
+		(static_cast<AcquireWaveformLecroyClass *>(get_device_class()));
+	int	i = -1;
+
+	//	Try to initialize IPaddress from class property
+	cl_prop = ds_class->get_class_property(dev_prop[++i].name);
+	if (cl_prop.is_empty()==false)	cl_prop  >>  iPaddress;
+	//	Try to initialize IPaddress from default device value
+	def_prop = ds_class->get_default_device_property(dev_prop[i].name);
+	if (def_prop.is_empty()==false)	def_prop  >>  iPaddress;
+	//	And try to extract IPaddress value from database
+	if (dev_prop[i].is_empty()==false)	dev_prop[i]  >>  iPaddress;
+
+	//	Try to initialize ChannelName from class property
+	cl_prop = ds_class->get_class_property(dev_prop[++i].name);
+	if (cl_prop.is_empty()==false)	cl_prop  >>  channelName;
+	//	Try to initialize ChannelName from default device value
+	def_prop = ds_class->get_default_device_property(dev_prop[i].name);
+	if (def_prop.is_empty()==false)	def_prop  >>  channelName;
+	//	And try to extract ChannelName value from database
+	if (dev_prop[i].is_empty()==false)	dev_prop[i]  >>  channelName;
+
 
 
 	//-	End of Automatic code generation
 	//-------------------------------------------------------------
 
 	Tango::DbData data_put;
-	if (data[0].is_empty()==true)
+	if (dev_prop[0].is_empty()==true)
 	{
 		Tango::DbDatum	property("IPaddress");
 		property	<<	iPaddress;
 		data_put.push_back(property);
 	}
-	if (data[1].is_empty()==true)
+	if (dev_prop[1].is_empty()==true)
 	{
 		Tango::DbDatum	property("ChannelName");
 		property	<<	channelName;
 		data_put.push_back(property);
 	}
 
+	//	End of Automatic code generation
+	//------------------------------------------------------------------
 	if( !data_put.empty() )
 		get_db_device()->put_property(data_put);
 
 }
 //+----------------------------------------------------------------------------
 //
-// method :		AcquireWaveformLecroy::always_executed_hook()
+// method : 		AcquireWaveformLecroy::always_executed_hook()
 // 
-// description :	method always executed before any command is executed
+// description : 	method always executed before any command is executed
 //
 //-----------------------------------------------------------------------------
 void AcquireWaveformLecroy::always_executed_hook()
@@ -478,6 +517,160 @@ void AcquireWaveformLecroy::read_attr_hardware(vector<long> &attr_list)
 
 	}
 }
+//+----------------------------------------------------------------------------
+//
+// method : 		AcquireWaveformLecroy::read_verticalScaledData
+// 
+// description : 	Extract real attribute values for verticalScaledData acquisition result.
+//
+//-----------------------------------------------------------------------------
+void AcquireWaveformLecroy::read_verticalScaledData(Tango::Attribute &attr)
+{
+	DEBUG_STREAM << "AcquireWaveformLecroy::read_verticalScaledData(Tango::Attribute &attr) entering... "<< endl;
+	//	Add your own code here
+	attr.set_value(attr_verticalScaledData_read, data_length);
+}
+
+//+----------------------------------------------------------------------------
+//
+// method : 		AcquireWaveformLecroy::read_triggerTime
+// 
+// description : 	Extract real attribute values for triggerTime acquisition result.
+//
+//-----------------------------------------------------------------------------
+void AcquireWaveformLecroy::read_triggerTime(Tango::Attribute &attr)
+{
+	DEBUG_STREAM << "AcquireWaveformLecroy::read_triggerTime(Tango::Attribute &attr) entering... "<< endl;
+	//	Add your own code here
+	attr.set_value(attr_triggerTime_read);
+}
+
+//+----------------------------------------------------------------------------
+//
+// method : 		AcquireWaveformLecroy::read_verticalOffset
+// 
+// description : 	Extract real attribute values for verticalOffset acquisition result.
+//
+//-----------------------------------------------------------------------------
+void AcquireWaveformLecroy::read_verticalOffset(Tango::Attribute &attr)
+{
+	DEBUG_STREAM << "AcquireWaveformLecroy::read_verticalOffset(Tango::Attribute &attr) entering... "<< endl;
+	//-	Add your own code here
+	attr.set_value(attr_verticalOffset_read);
+}
+
+//+----------------------------------------------------------------------------
+//
+// method : 		AcquireWaveformLecroy::read_verticalGain
+// 
+// description : 	Extract real attribute values for verticalGain acquisition result.
+//
+//-----------------------------------------------------------------------------
+void AcquireWaveformLecroy::read_verticalGain(Tango::Attribute &attr)
+{
+	DEBUG_STREAM << "AcquireWaveformLecroy::read_verticalGain(Tango::Attribute &attr) entering... "<< endl;
+	//-	Add your own code here
+	attr.set_value(attr_verticalGain_read);
+}
+
+//+----------------------------------------------------------------------------
+//
+// method : 		AcquireWaveformLecroy::read_horizontalOffset
+// 
+// description : 	Extract real attribute values for horizontalOffset acquisition result.
+//
+//-----------------------------------------------------------------------------
+void AcquireWaveformLecroy::read_horizontalOffset(Tango::Attribute &attr)
+{
+	DEBUG_STREAM << "AcquireWaveformLecroy::read_horizontalOffset(Tango::Attribute &attr) entering... "<< endl;
+	//-	Add your own code here
+	attr.set_value(attr_horizontalOffset_read);
+}
+
+//+----------------------------------------------------------------------------
+//
+// method : 		AcquireWaveformLecroy::read_horizontalInterval
+// 
+// description : 	Extract real attribute values for horizontalInterval acquisition result.
+//
+//-----------------------------------------------------------------------------
+void AcquireWaveformLecroy::read_horizontalInterval(Tango::Attribute &attr)
+{
+	DEBUG_STREAM << "AcquireWaveformLecroy::read_horizontalInterval(Tango::Attribute &attr) entering... "<< endl;
+	//-	Add your own code here
+	attr.set_value(attr_horizontalInterval_read);
+}
+
+//+----------------------------------------------------------------------------
+//
+// method : 		AcquireWaveformLecroy::read_nominalBits
+// 
+// description : 	Extract real attribute values for nominalBits acquisition result.
+//
+//-----------------------------------------------------------------------------
+void AcquireWaveformLecroy::read_nominalBits(Tango::Attribute &attr)
+{
+	DEBUG_STREAM << "AcquireWaveformLecroy::read_nominalBits(Tango::Attribute &attr) entering... "<< endl;
+	//-	Add your own code here
+	attr.set_value(attr_nominalBits_read);
+}
+
+//+----------------------------------------------------------------------------
+//
+// method : 		AcquireWaveformLecroy::read_waveArrayCount
+// 
+// description : 	Extract real attribute values for waveArrayCount acquisition result.
+//
+//-----------------------------------------------------------------------------
+void AcquireWaveformLecroy::read_waveArrayCount(Tango::Attribute &attr)
+{
+	DEBUG_STREAM << "AcquireWaveformLecroy::read_waveArrayCount(Tango::Attribute &attr) entering... "<< endl;
+	//-	Add your own code here
+	attr.set_value(attr_waveArrayCount_read);
+}
+
+//+----------------------------------------------------------------------------
+//
+// method : 		AcquireWaveformLecroy::read_waveArray2
+// 
+// description : 	Extract real attribute values for waveArray2 acquisition result.
+//
+//-----------------------------------------------------------------------------
+void AcquireWaveformLecroy::read_waveArray2(Tango::Attribute &attr)
+{
+	DEBUG_STREAM << "AcquireWaveformLecroy::read_waveArray2(Tango::Attribute &attr) entering... "<< endl;
+	//	Add your own code here
+	attr.set_value(attr_waveArray2_read);
+}
+
+//+----------------------------------------------------------------------------
+//
+// method : 		AcquireWaveformLecroy::read_waveArray1
+// 
+// description : 	Extract real attribute values for waveArray1 acquisition result.
+//
+//-----------------------------------------------------------------------------
+void AcquireWaveformLecroy::read_waveArray1(Tango::Attribute &attr)
+{
+	DEBUG_STREAM << "AcquireWaveformLecroy::read_waveArray1(Tango::Attribute &attr) entering... "<< endl;
+	//-	Add your own code here
+	attr.set_value(attr_waveArray1_read);
+}
+
+//+----------------------------------------------------------------------------
+//
+// method : 		AcquireWaveformLecroy::read_rawWaveformData
+// 
+// description : 	Extract real attribute values for rawWaveformData acquisition result.
+//
+//-----------------------------------------------------------------------------
+void AcquireWaveformLecroy::read_rawWaveformData(Tango::Attribute &attr)
+{
+	DEBUG_STREAM << "AcquireWaveformLecroy::read_rawWaveformData(Tango::Attribute &attr) entering... "<< endl;
+	//-	Add your own code here
+	attr.set_value(attr_rawWaveformData_read, data_length);
+}
+
 
 //+----------------------------------------------------------------------------
 //
@@ -487,6 +680,11 @@ void AcquireWaveformLecroy::read_attr_hardware(vector<long> &attr_list)
 //					hardware acquisition result.
 //
 //-----------------------------------------------------------------------------
+#ifdef DEV_IMPL_2
+#ifdef DEV_IMPL_2
+#ifdef DEV_IMPL_2
+#ifdef DEV_IMPL_2
+#ifdef DEV_IMPL_2
 void AcquireWaveformLecroy::read_attr(Tango::Attribute &attr)
 {
 	string &attr_name = attr.get_name();
@@ -562,6 +760,11 @@ void AcquireWaveformLecroy::read_attr(Tango::Attribute &attr)
 	}
 
 }
+#endif
+#endif
+#endif
+#endif
+#endif
 
 //+----------------------------------------------------------------------------
 //
@@ -606,4 +809,73 @@ Tango::DevFailed AcquireWaveformLecroy::lecroy_to_tango_exception(const lecroy::
 	
 }
 
+//+------------------------------------------------------------------
+/**
+ *	method:	AcquireWaveformLecroy::write_read
+ *
+ *	description:	method to execute "WriteRead"
+ *	Command to send a specific command to the Lecroy device
+ *
+ * @param	argin	char command, int lentgh, int bytes_written
+ * @return	bytes written
+ *
+ */
+//+------------------------------------------------------------------
+//Tango::DevLong AcquireWaveformLecroy::write_read(const Tango::DevVarLongStringArray *argin)
+//{
+//	DEBUG_STREAM << "AcquireWaveformLecroy::write_read(): entering... !" << endl;
+//
+//	//	Add your own code to control device here
+//	std::string	cmd_to_send(argin->svalue[0]);
+//	int length = (*argin)dvalue[0];
+//	int bytes_written = -1;
+//
+//	ptr_com->TCP_WriteDevice(cmd_to_send.c_str(), cmd_to_send.size(), true);
+//
+//	//- check if a response is expected (must found ? character)
+//	if(cmd_to_send.find('?')
+//	{
+//		ptr_com->TCP_ReadDevice(response, max_length, &bytes_written);
+//	}
+//
+//	return bytes_written;
+//}
+
+//+------------------------------------------------------------------
+/**
+ *	method:	AcquireWaveformLecroy::write_read
+ *
+ *	description:	method to execute "WriteRead"
+ *	Command to send a specific command to the Lecroy device
+ *
+ * @param	argin	command to send
+ * @return	device response (if any)
+ *
+ */
+//+------------------------------------------------------------------
+Tango::DevString AcquireWaveformLecroy::write_read(Tango::DevString argin)
+{
+	//	POGO has generated a method core with argout allocation.
+	//	If you would like to use a static reference without copying,
+	//	See "TANGO Device Server Programmer's Manual"
+	//		(chapter : Writing a TANGO DS / Exchanging data)
+	//------------------------------------------------------------
+	DEBUG_STREAM << "AcquireWaveformLecroy::write_read(): entering... !" << endl;
+
+	//	Add your own code to control device here
+	std::string	cmd_to_send(argin);
+	int bytes_received = -1;
+
+	ptr_com->TCP_WriteDevice(argin, cmd_to_send.size(), true);
+
+	//- check if a response is expected (must found ? character)
+	strcpy(_deviceResponse, "No response");
+	if( cmd_to_send.find('?') != std::string::npos )
+	{
+		ptr_com->TCP_ReadDevice(_deviceResponse, MAX_RESPONSE_LENGTH, &bytes_received);
+	}
+
+	return _deviceResponse;
+}
+
 }	//	namespace
diff --git a/src/AcquireWaveformLecroy.dsp b/src/AcquireWaveformLecroy.dsp
index 9b55fe7..f21b11d 100644
--- a/src/AcquireWaveformLecroy.dsp
+++ b/src/AcquireWaveformLecroy.dsp
@@ -86,23 +86,39 @@ LINK32=link.exe
 # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
 # Begin Source File
 
+SOURCE=AcquireWaveformLecroy.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=AcquireWaveformLecroyClass.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=AcquireWaveformLecroyStateMachine.cpp
+# End Source File
+# Begin Source File
+
 SOURCE=ClassFactory.cpp
 # End Source File
 # Begin Source File
 
+SOURCE=.\LecroyException.cpp
+# End Source File
+# Begin Source File
+
 SOURCE=main.cpp
 # End Source File
 # Begin Source File
 
-SOURCE=AcquireWaveformLecroy.cpp
+SOURCE=.\SocketException.cpp
 # End Source File
 # Begin Source File
 
-SOURCE=AcquireWaveformLecroyClass.cpp
+SOURCE=.\SocketLecroy.cpp
 # End Source File
 # Begin Source File
 
-SOURCE=AcquireWaveformLecroyStateMachine.cpp
+SOURCE=.\Waveform.cpp
 # End Source File
 # End Group
 # Begin Group "Header Files"
diff --git a/src/AcquireWaveformLecroy.dsw b/src/AcquireWaveformLecroy.dsw
new file mode 100644
index 0000000..8477535
--- /dev/null
+++ b/src/AcquireWaveformLecroy.dsw
@@ -0,0 +1,29 @@
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "AcquireWaveformLecroy"=.\AcquireWaveformLecroy.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
diff --git a/src/AcquireWaveformLecroy.h b/src/AcquireWaveformLecroy.h
index 4c1ed08..9eaf778 100644
--- a/src/AcquireWaveformLecroy.h
+++ b/src/AcquireWaveformLecroy.h
@@ -8,7 +8,7 @@
 //
 // $Author: xavela $
 //
-// $Revision: 1.6 $
+// $Revision: 1.7 $
 //
 // $Log: not supported by cvs2svn $
 // Revision 1.5  2004/10/18 13:17:49  xavela
@@ -47,14 +47,14 @@
 
 #include <tango.h>
 //using namespace Tango;
-#include "..\include\SocketLecroy.h"
-#include "..\include\SocketException.h"
-#include "..\include\Waveform.h"
-#include "..\include\WaveformException.h"
+#include "SocketLecroy.h"
+#include "SocketException.h"
+#include "Waveform.h"
+#include "WaveformException.h"
 
 /**
  * @author	$Author: xavela $
- * @version	$Revision: 1.6 $ $
+ * @version	$Revision: 1.7 $ $
  */
 
  //	Add your own constants definitions here.
@@ -63,7 +63,7 @@ const int MAX_STRING_LENGTH = 256;
 const int MAX_SIZE			= 150000;
 
 
-namespace AcquireWaveformLecroy
+namespace AcquireWaveformLecroy_ns
 {
 
 /**
@@ -83,15 +83,15 @@ namespace AcquireWaveformLecroy
 
 /*
  *	Device States Description:
- *	Tango::OPEN :	The socket TCP IP is successfully opened between the Lecroy scope and
- *			this DServer.
- *	Tango::CLOSE :	The communication between the Lecroy scope and the DServer is closed.
- *	Tango::FAULT :	The communication between the Lecroy scope and the DServer is not done.
- *	Tango::ALARM :	An error occured during a Write or Read command.
+*  Tango::OPEN :   The socket TCP IP is successfully opened between the Lecroy scope and
+ *                  this DServer.
+*  Tango::CLOSE :  The communication between the Lecroy scope and the DServer is closed.
+*  Tango::FAULT :  The communication between the Lecroy scope and the DServer is not done.
+*  Tango::ALARM :  An error occured during a Write or Read command.
  */
 
 
-class AcquireWaveformLecroy: public Tango::Device_2Impl
+class AcquireWaveformLecroy: public Tango::Device_3Impl
 {
 public :
 	//	Add your own data members here
@@ -105,17 +105,17 @@ public :
  *	Attributs member data.
  */
 //@{
-		Tango::DevShort		*attr_rawWaveformData_read;
-		Tango::DevDouble	*attr_verticalScaledData_read;
-		Tango::DevLong		*attr_waveArray1_read;
-		Tango::DevLong		*attr_waveArray2_read;
-		Tango::DevLong		*attr_waveArrayCount_read;
-		Tango::DevShort		*attr_nominalBits_read;
-		Tango::DevDouble	*attr_horizontalInterval_read;
-		Tango::DevDouble	*attr_horizontalOffset_read;
-		Tango::DevDouble	*attr_verticalGain_read;
-		Tango::DevDouble	*attr_verticalOffset_read;
 		Tango::DevString	*attr_triggerTime_read;
+		Tango::DevDouble	*attr_verticalOffset_read;
+		Tango::DevDouble	*attr_verticalGain_read;
+		Tango::DevDouble	*attr_horizontalOffset_read;
+		Tango::DevDouble	*attr_horizontalInterval_read;
+		Tango::DevShort	*attr_nominalBits_read;
+		Tango::DevLong	*attr_waveArrayCount_read;
+		Tango::DevLong	*attr_waveArray2_read;
+		Tango::DevLong	*attr_waveArray1_read;
+		Tango::DevDouble	*attr_verticalScaledData_read;
+		Tango::DevShort	*attr_rawWaveformData_read;
 //@}
 
 /**
@@ -149,14 +149,14 @@ public :
  *	@param cl	Class.
  *	@param s 	Device Name
  */
-	AcquireWaveformLecroy(Tango::DeviceClass *,string &);
+	AcquireWaveformLecroy(Tango::DeviceClass *cl,string &s);
 /**
  * Constructs a newly allocated Command object.
  *
  *	@param cl	Class.
  *	@param s 	Device Name
  */
-	AcquireWaveformLecroy(Tango::DeviceClass *,const char *);
+	AcquireWaveformLecroy(Tango::DeviceClass *cl,const char *s);
 /**
  * Constructs a newly allocated Command object.
  *
@@ -164,7 +164,7 @@ public :
  *	@param s 	Device name
  *	@param d	Device description.
  */
-	AcquireWaveformLecroy(Tango::DeviceClass *,const char *,const char *);
+	AcquireWaveformLecroy(Tango::DeviceClass *cl,const char *s,const char *d);
 //@}
 
 /**@name Destructor
@@ -173,7 +173,7 @@ public :
 /**
  * The object desctructor.
  */	
-	~AcquireWaveformLecroy() { delete_device(); };
+	~AcquireWaveformLecroy() {delete_device();};
 /**
  *	will be called at device destruction or at init command.
  */
@@ -204,9 +204,104 @@ public :
  */
 	virtual void read_attr_hardware(vector<long> &attr_list);
 /**
- *	Extract real attribute values from hardware acquisition result.
+ *	Extract real attribute values for triggerTime acquisition result.
+ */
+	virtual void read_triggerTime(Tango::Attribute &attr);
+/**
+ *	Extract real attribute values for verticalOffset acquisition result.
+ */
+	virtual void read_verticalOffset(Tango::Attribute &attr);
+/**
+ *	Extract real attribute values for verticalGain acquisition result.
+ */
+	virtual void read_verticalGain(Tango::Attribute &attr);
+/**
+ *	Extract real attribute values for horizontalOffset acquisition result.
+ */
+	virtual void read_horizontalOffset(Tango::Attribute &attr);
+/**
+ *	Extract real attribute values for horizontalInterval acquisition result.
+ */
+	virtual void read_horizontalInterval(Tango::Attribute &attr);
+/**
+ *	Extract real attribute values for nominalBits acquisition result.
+ */
+	virtual void read_nominalBits(Tango::Attribute &attr);
+/**
+ *	Extract real attribute values for waveArrayCount acquisition result.
+ */
+	virtual void read_waveArrayCount(Tango::Attribute &attr);
+/**
+ *	Extract real attribute values for waveArray2 acquisition result.
+ */
+	virtual void read_waveArray2(Tango::Attribute &attr);
+/**
+ *	Extract real attribute values for waveArray1 acquisition result.
+ */
+	virtual void read_waveArray1(Tango::Attribute &attr);
+/**
+ *	Extract real attribute values for verticalScaledData acquisition result.
+ */
+	virtual void read_verticalScaledData(Tango::Attribute &attr);
+/**
+ *	Extract real attribute values for rawWaveformData acquisition result.
+ */
+	virtual void read_rawWaveformData(Tango::Attribute &attr);
+/**
+ *	Read/Write allowed for triggerTime attribute.
+ */
+	virtual bool is_triggerTime_allowed(Tango::AttReqType type);
+/**
+ *	Read/Write allowed for verticalOffset attribute.
+ */
+	virtual bool is_verticalOffset_allowed(Tango::AttReqType type);
+/**
+ *	Read/Write allowed for verticalGain attribute.
+ */
+	virtual bool is_verticalGain_allowed(Tango::AttReqType type);
+/**
+ *	Read/Write allowed for horizontalOffset attribute.
+ */
+	virtual bool is_horizontalOffset_allowed(Tango::AttReqType type);
+/**
+ *	Read/Write allowed for horizontalInterval attribute.
+ */
+	virtual bool is_horizontalInterval_allowed(Tango::AttReqType type);
+/**
+ *	Read/Write allowed for nominalBits attribute.
+ */
+	virtual bool is_nominalBits_allowed(Tango::AttReqType type);
+/**
+ *	Read/Write allowed for waveArrayCount attribute.
+ */
+	virtual bool is_waveArrayCount_allowed(Tango::AttReqType type);
+/**
+ *	Read/Write allowed for waveArray2 attribute.
+ */
+	virtual bool is_waveArray2_allowed(Tango::AttReqType type);
+/**
+ *	Read/Write allowed for waveArray1 attribute.
+ */
+	virtual bool is_waveArray1_allowed(Tango::AttReqType type);
+/**
+ *	Read/Write allowed for verticalScaledData attribute.
+ */
+	virtual bool is_verticalScaledData_allowed(Tango::AttReqType type);
+/**
+ *	Read/Write allowed for rawWaveformData attribute.
+ */
+	virtual bool is_rawWaveformData_allowed(Tango::AttReqType type);
+/**
+ *	Execution allowed for WriteRead command.
+ */
+	virtual bool is_WriteRead_allowed(const CORBA::Any &any);
+/**
+ * Command to send a specific command to the Lecroy device
+ *	@param	argin	command to send
+ *	@return	device response (if any)
+ *	@exception DevFailed
  */
-	virtual void read_attr(Tango::Attribute &attr);
+	Tango::DevString	write_read(Tango::DevString);
 
 /**
  *	Read the device properties from database
@@ -222,17 +317,18 @@ public :
 protected :	
 	//	Add your own data members here
 	//-----------------------------------------
-	SocketLecroy	*ptr_com;
-	WaveForm_data	*waveform_ptr;
-	short*	data_value;
-	double* data_scaled_value;
-	long data_length;
-	bool _is_communication_opened;
+	SocketLecroy*	ptr_com;
+	WaveForm_data*	waveform_ptr;
+	char*			_deviceResponse;
+	short*			data_value;
+	double*			data_scaled_value;
+	long			data_length;
+	bool			_is_communication_opened;
 
 	//- Method to convert all lecroy exceptions (type Waveform or Socket exceptions) on Tango exception
 	Tango::DevFailed lecroy_to_tango_exception(const lecroy::LecroyException& de);
 };
 
-}	// namespace
+}	// namespace_ns
 
 #endif	// _ACQUIREWAVEFORMLECROY_H
diff --git a/src/AcquireWaveformLecroy.ncb b/src/AcquireWaveformLecroy.ncb
new file mode 100644
index 0000000000000000000000000000000000000000..e19d554b47c91776a2ff0c9843b793dd64589e25
GIT binary patch
literal 58368
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
AN&o-=

literal 0
HcmV?d00001

diff --git a/src/AcquireWaveformLecroy.opt b/src/AcquireWaveformLecroy.opt
new file mode 100644
index 0000000000000000000000000000000000000000..1e23a12be496b39e63c9ad7bff7917e458e75e83
GIT binary patch
literal 48640
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

literal 0
HcmV?d00001

diff --git a/src/AcquireWaveformLecroyClass.cpp b/src/AcquireWaveformLecroyClass.cpp
index 2524d16..c27c7be 100644
--- a/src/AcquireWaveformLecroyClass.cpp
+++ b/src/AcquireWaveformLecroyClass.cpp
@@ -1,6 +1,6 @@
-static const char *RcsId = "$Header: /users/chaize/newsvn/cvsroot/Instrumentation/AcquireWaveformLecroy/src/AcquireWaveformLecroyClass.cpp,v 1.6 2008-02-26 08:32:59 xavela Exp $";
+static const char *RcsId = "$Header: /users/chaize/newsvn/cvsroot/Instrumentation/AcquireWaveformLecroy/src/AcquireWaveformLecroyClass.cpp,v 1.7 2008-02-28 09:02:05 xavela Exp $";
 
-static const char *TagName = "$Name: not supported by cvs2svn $";
+static const char *TagName   = "$Name: not supported by cvs2svn $";
 
 static const char *FileName= "$Source: /users/chaize/newsvn/cvsroot/Instrumentation/AcquireWaveformLecroy/src/AcquireWaveformLecroyClass.cpp,v $"; 
 
@@ -20,7 +20,7 @@ static const char *RCSfile = "$RCSfile: AcquireWaveformLecroyClass.cpp,v $";
 //
 // $Author: xavela $
 //
-// $Revision: 1.6 $
+// $Revision: 1.7 $
 //
 // $Log: not supported by cvs2svn $
 // Revision 1.5  2004/10/18 13:17:49  xavela
@@ -57,9 +57,50 @@ static const char *RCSfile = "$RCSfile: AcquireWaveformLecroyClass.cpp,v $";
 #include <AcquireWaveformLecroyClass.h>
 
 
-namespace AcquireWaveformLecroy
+//+----------------------------------------------------------------------------
+/**
+ *	Create AcquireWaveformLecroyClass singleton and return it in a C function for Python usage
+ */
+//+----------------------------------------------------------------------------
+extern "C" {
+#ifdef WIN32
+
+__declspec(dllexport)
+
+#endif
+
+	Tango::DeviceClass *_create_AcquireWaveformLecroy_class(const char *name) {
+		return AcquireWaveformLecroy_ns::AcquireWaveformLecroyClass::init(name);
+	}
+}
+
+
+namespace AcquireWaveformLecroy_ns
+{
+//+----------------------------------------------------------------------------
+//
+// method : 		WriteReadCmd::execute()
+// 
+// description : 	method to trigger the execution of the command.
+//                PLEASE DO NOT MODIFY this method core without pogo   
+//
+// in : - device : The device on which the command must be excuted
+//		- in_any : The command input data
+//
+// returns : The command output data (packed in the Any object)
+//
+//-----------------------------------------------------------------------------
+CORBA::Any *WriteReadCmd::execute(Tango::DeviceImpl *device,const CORBA::Any &in_any)
 {
 
+	cout2 << "WriteReadCmd::execute(): arrived" << endl;
+
+	Tango::DevString	argin;
+	extract(in_any, argin);
+
+	return insert((static_cast<AcquireWaveformLecroy *>(device))->write_read(argin));
+}
+
 
 
 //
@@ -148,6 +189,11 @@ AcquireWaveformLecroyClass *AcquireWaveformLecroyClass::instance()
 //-----------------------------------------------------------------------------
 void AcquireWaveformLecroyClass::command_factory()
 {
+	command_list.push_back(new WriteReadCmd("WriteRead",
+		Tango::DEV_STRING, Tango::DEV_STRING,
+		"command to send",
+		"device response (if any)",
+		Tango::EXPERT));
 
 	//	add polling if any
 	for (unsigned int i=0 ; i<command_list.size(); i++)
@@ -238,9 +284,58 @@ void AcquireWaveformLecroyClass::device_factory(const Tango::DevVarStringArray *
 	//-------------------------------------------------------------
 
 }
+//+----------------------------------------------------------------------------
+//	Method: AcquireWaveformLecroyClass::attribute_factory(vector<Tango::Attr *> &att_list)
+//-----------------------------------------------------------------------------
+void AcquireWaveformLecroyClass::attribute_factory(vector<Tango::Attr *> &att_list)
+{
+	//	Attribute : triggerTime
+	triggerTimeAttrib	*trigger_time = new triggerTimeAttrib();
+	att_list.push_back(trigger_time);
+
+	//	Attribute : verticalOffset
+	verticalOffsetAttrib	*vertical_offset = new verticalOffsetAttrib();
+	att_list.push_back(vertical_offset);
+
+	//	Attribute : verticalGain
+	verticalGainAttrib	*vertical_gain = new verticalGainAttrib();
+	att_list.push_back(vertical_gain);
+
+	//	Attribute : horizontalOffset
+	horizontalOffsetAttrib	*horizontal_offset = new horizontalOffsetAttrib();
+	att_list.push_back(horizontal_offset);
 
+	//	Attribute : horizontalInterval
+	horizontalIntervalAttrib	*horizontal_interval = new horizontalIntervalAttrib();
+	att_list.push_back(horizontal_interval);
 
+	//	Attribute : nominalBits
+	nominalBitsAttrib	*nominal_bits = new nominalBitsAttrib();
+	att_list.push_back(nominal_bits);
 
+	//	Attribute : waveArrayCount
+	waveArrayCountAttrib	*wave_array_count = new waveArrayCountAttrib();
+	att_list.push_back(wave_array_count);
+
+	//	Attribute : waveArray2
+	waveArray2Attrib	*wave_array2 = new waveArray2Attrib();
+	att_list.push_back(wave_array2);
+
+	//	Attribute : waveArray1
+	waveArray1Attrib	*wave_array1 = new waveArray1Attrib();
+	att_list.push_back(wave_array1);
+
+	//	Attribute : verticalScaledData
+	verticalScaledDataAttrib	*vertical_scaled_data = new verticalScaledDataAttrib();
+	att_list.push_back(vertical_scaled_data);
+
+	//	Attribute : rawWaveformData
+	rawWaveformDataAttrib	*raw_waveform_data = new rawWaveformDataAttrib();
+	att_list.push_back(raw_waveform_data);
+
+	//	End of Automatic code generation
+	//-------------------------------------------------------------
+}
 
 //+----------------------------------------------------------------------------
 //
diff --git a/src/AcquireWaveformLecroyClass.h b/src/AcquireWaveformLecroyClass.h
index 5d29fd4..3161fdc 100644
--- a/src/AcquireWaveformLecroyClass.h
+++ b/src/AcquireWaveformLecroyClass.h
@@ -12,7 +12,7 @@
 //
 // $Author: xavela $
 //
-// $Revision: 1.6 $
+// $Revision: 1.7 $
 //
 // $Log: not supported by cvs2svn $
 // Revision 1.5  2004/10/18 13:17:49  xavela
@@ -49,23 +49,11 @@
 #include <AcquireWaveformLecroy.h>
 
 
-namespace AcquireWaveformLecroy
+namespace AcquireWaveformLecroy_ns
 {
 //=====================================
 //	Define classes for attributes
 //=====================================
-class verticalScaledDataAttrib: public Tango::SpectrumAttr
-{
-public:
-	verticalScaledDataAttrib():SpectrumAttr("verticalScaledData", Tango::DEV_DOUBLE, Tango::READ, 150000) {};
-	~verticalScaledDataAttrib() {};
-	
-	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
-	{(static_cast<AcquireWaveformLecroy *>(dev))->read_verticalScaledData(att);}
-	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
-	{return (static_cast<AcquireWaveformLecroy *>(dev))->is_verticalScaledData_allowed(ty);}
-};
-
 class rawWaveformDataAttrib: public Tango::SpectrumAttr
 {
 public:
@@ -78,159 +66,6 @@ public:
 	{return (static_cast<AcquireWaveformLecroy *>(dev))->is_rawWaveformData_allowed(ty);}
 };
 
-class triggerTimeAttrib: public Tango::Attr
-{
-public:
-	triggerTimeAttrib():Attr("triggerTime", Tango::DEV_STRING, Tango::READ) {};
-	~triggerTimeAttrib() {};
-	
-	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
-	{(static_cast<AcquireWaveformLecroy *>(dev))->read_triggerTime(att);}
-	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
-	{return (static_cast<AcquireWaveformLecroy *>(dev))->is_triggerTime_allowed(ty);}
-};
-
-class verticalOffsetAttrib: public Tango::Attr
-{
-public:
-	verticalOffsetAttrib():Attr("verticalOffset", Tango::DEV_DOUBLE, Tango::READ) {};
-	~verticalOffsetAttrib() {};
-	
-	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
-	{(static_cast<AcquireWaveformLecroy *>(dev))->read_verticalOffset(att);}
-	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
-	{return (static_cast<AcquireWaveformLecroy *>(dev))->is_verticalOffset_allowed(ty);}
-};
-
-class verticalGainAttrib: public Tango::Attr
-{
-public:
-	verticalGainAttrib():Attr("verticalGain", Tango::DEV_DOUBLE, Tango::READ) {};
-	~verticalGainAttrib() {};
-	
-	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
-	{(static_cast<AcquireWaveformLecroy *>(dev))->read_verticalGain(att);}
-	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
-	{return (static_cast<AcquireWaveformLecroy *>(dev))->is_verticalGain_allowed(ty);}
-};
-
-class horizontalOffsetAttrib: public Tango::Attr
-{
-public:
-	horizontalOffsetAttrib():Attr("horizontalOffset", Tango::DEV_DOUBLE, Tango::READ) {};
-	~horizontalOffsetAttrib() {};
-	
-	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
-	{(static_cast<AcquireWaveformLecroy *>(dev))->read_horizontalOffset(att);}
-	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
-	{return (static_cast<AcquireWaveformLecroy *>(dev))->is_horizontalOffset_allowed(ty);}
-};
-
-class horizontalIntervalAttrib: public Tango::Attr
-{
-public:
-	horizontalIntervalAttrib():Attr("horizontalInterval", Tango::DEV_DOUBLE, Tango::READ) {};
-	~horizontalIntervalAttrib() {};
-	
-	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
-	{(static_cast<AcquireWaveformLecroy *>(dev))->read_horizontalInterval(att);}
-	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
-	{return (static_cast<AcquireWaveformLecroy *>(dev))->is_horizontalInterval_allowed(ty);}
-};
-
-class nominalBitsAttrib: public Tango::Attr
-{
-public:
-	nominalBitsAttrib():Attr("nominalBits", Tango::DEV_SHORT, Tango::READ) {};
-	~nominalBitsAttrib() {};
-	
-	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
-	{(static_cast<AcquireWaveformLecroy *>(dev))->read_nominalBits(att);}
-	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
-	{return (static_cast<AcquireWaveformLecroy *>(dev))->is_nominalBits_allowed(ty);}
-};
-
-class waveArrayCountAttrib: public Tango::Attr
-{
-public:
-	waveArrayCountAttrib():Attr("waveArrayCount", Tango::DEV_LONG, Tango::READ) {};
-	~waveArrayCountAttrib() {};
-	
-	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
-	{(static_cast<AcquireWaveformLecroy *>(dev))->read_waveArrayCount(att);}
-	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
-	{return (static_cast<AcquireWaveformLecroy *>(dev))->is_waveArrayCount_allowed(ty);}
-};
-
-class waveArray2Attrib: public Tango::Attr
-{
-public:
-	waveArray2Attrib():Attr("waveArray2", Tango::DEV_LONG, Tango::READ) {};
-	~waveArray2Attrib() {};
-	
-	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
-	{(static_cast<AcquireWaveformLecroy *>(dev))->read_waveArray2(att);}
-	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
-	{return (static_cast<AcquireWaveformLecroy *>(dev))->is_waveArray2_allowed(ty);}
-};
-
-class waveArray1Attrib: public Tango::Attr
-{
-public:
-	waveArray1Attrib():Attr("waveArray1", Tango::DEV_LONG, Tango::READ) {};
-	~waveArray1Attrib() {};
-	
-	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
-	{(static_cast<AcquireWaveformLecroy *>(dev))->read_waveArray1(att);}
-	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
-	{return (static_cast<AcquireWaveformLecroy *>(dev))->is_waveArray1_allowed(ty);}
-};
-
-//=========================================
-//	Define classes for commands
-//=========================================
-//
-// The AcquireWaveformLecroyClass singleton definition
-//
-
-class AcquireWaveformLecroyClass : public Tango::DeviceClass
-{
-public:
-//	properties member data
-
-//	add your own data members here
-//------------------------------------
-
-public:
-	Tango::DbData	cl_prop;
-	Tango::DbData	cl_def_prop;
-	Tango::DbData	dev_def_prop;
-
-//	Method prototypes
-	static AcquireWaveformLecroyClass *init(const char *);
-	static AcquireWaveformLecroyClass *instance();
-	~AcquireWaveformLecroyClass();
-	Tango::DbDatum	get_class_property(string &);
-	Tango::DbDatum	get_default_device_property(string &);
-	Tango::DbDatum	get_default_class_property(string &);
-	
-protected:
-	AcquireWaveformLecroyClass(string &);
-	static AcquireWaveformLecroyClass *_instance;
-	void command_factory();
-	void get_class_property();
-	void attribute_factory(vector<Tango::Attr *> &);
-	void write_class_property();
-	void set_default_property();
-
-private:
-	void device_factory(const Tango::DevVarStringArray *);
-};
-
-
-}	//	//=====================================
-//	Define classes for attributes
-//=====================================
 class verticalScaledDataAttrib: public Tango::SpectrumAttr
 {
 public:
@@ -243,64 +78,52 @@ public:
 	{return (static_cast<AcquireWaveformLecroy *>(dev))->is_verticalScaledData_allowed(ty);}
 };
 
-class rawWaveformDataAttrib: public Tango::SpectrumAttr
-{
-public:
-	rawWaveformDataAttrib():SpectrumAttr("rawWaveformData", Tango::DEV_SHORT, Tango::READ, 150000) {};
-	~rawWaveformDataAttrib() {};
-	
-	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
-	{(static_cast<AcquireWaveformLecroy *>(dev))->read_rawWaveformData(att);}
-	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
-	{return (static_cast<AcquireWaveformLecroy *>(dev))->is_rawWaveformData_allowed(ty);}
-};
-
-class triggerTimeAttrib: public Tango::Attr
+class waveArray1Attrib: public Tango::Attr
 {
 public:
-	triggerTimeAttrib():Attr("triggerTime", Tango::DEV_STRING, Tango::READ) {};
-	~triggerTimeAttrib() {};
+	waveArray1Attrib():Attr("waveArray1", Tango::DEV_LONG, Tango::READ) {};
+	~waveArray1Attrib() {};
 	
 	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
-	{(static_cast<AcquireWaveformLecroy *>(dev))->read_triggerTime(att);}
+	{(static_cast<AcquireWaveformLecroy *>(dev))->read_waveArray1(att);}
 	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
-	{return (static_cast<AcquireWaveformLecroy *>(dev))->is_triggerTime_allowed(ty);}
+	{return (static_cast<AcquireWaveformLecroy *>(dev))->is_waveArray1_allowed(ty);}
 };
 
-class verticalOffsetAttrib: public Tango::Attr
+class waveArray2Attrib: public Tango::Attr
 {
 public:
-	verticalOffsetAttrib():Attr("verticalOffset", Tango::DEV_DOUBLE, Tango::READ) {};
-	~verticalOffsetAttrib() {};
+	waveArray2Attrib():Attr("waveArray2", Tango::DEV_LONG, Tango::READ) {};
+	~waveArray2Attrib() {};
 	
 	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
-	{(static_cast<AcquireWaveformLecroy *>(dev))->read_verticalOffset(att);}
+	{(static_cast<AcquireWaveformLecroy *>(dev))->read_waveArray2(att);}
 	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
-	{return (static_cast<AcquireWaveformLecroy *>(dev))->is_verticalOffset_allowed(ty);}
+	{return (static_cast<AcquireWaveformLecroy *>(dev))->is_waveArray2_allowed(ty);}
 };
 
-class verticalGainAttrib: public Tango::Attr
+class waveArrayCountAttrib: public Tango::Attr
 {
 public:
-	verticalGainAttrib():Attr("verticalGain", Tango::DEV_DOUBLE, Tango::READ) {};
-	~verticalGainAttrib() {};
+	waveArrayCountAttrib():Attr("waveArrayCount", Tango::DEV_LONG, Tango::READ) {};
+	~waveArrayCountAttrib() {};
 	
 	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
-	{(static_cast<AcquireWaveformLecroy *>(dev))->read_verticalGain(att);}
+	{(static_cast<AcquireWaveformLecroy *>(dev))->read_waveArrayCount(att);}
 	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
-	{return (static_cast<AcquireWaveformLecroy *>(dev))->is_verticalGain_allowed(ty);}
+	{return (static_cast<AcquireWaveformLecroy *>(dev))->is_waveArrayCount_allowed(ty);}
 };
 
-class horizontalOffsetAttrib: public Tango::Attr
+class nominalBitsAttrib: public Tango::Attr
 {
 public:
-	horizontalOffsetAttrib():Attr("horizontalOffset", Tango::DEV_DOUBLE, Tango::READ) {};
-	~horizontalOffsetAttrib() {};
+	nominalBitsAttrib():Attr("nominalBits", Tango::DEV_SHORT, Tango::READ) {};
+	~nominalBitsAttrib() {};
 	
 	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
-	{(static_cast<AcquireWaveformLecroy *>(dev))->read_horizontalOffset(att);}
+	{(static_cast<AcquireWaveformLecroy *>(dev))->read_nominalBits(att);}
 	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
-	{return (static_cast<AcquireWaveformLecroy *>(dev))->is_horizontalOffset_allowed(ty);}
+	{return (static_cast<AcquireWaveformLecroy *>(dev))->is_nominalBits_allowed(ty);}
 };
 
 class horizontalIntervalAttrib: public Tango::Attr
@@ -315,190 +138,81 @@ public:
 	{return (static_cast<AcquireWaveformLecroy *>(dev))->is_horizontalInterval_allowed(ty);}
 };
 
-class nominalBitsAttrib: public Tango::Attr
+class horizontalOffsetAttrib: public Tango::Attr
 {
 public:
-	nominalBitsAttrib():Attr("nominalBits", Tango::DEV_SHORT, Tango::READ) {};
-	~nominalBitsAttrib() {};
+	horizontalOffsetAttrib():Attr("horizontalOffset", Tango::DEV_DOUBLE, Tango::READ) {};
+	~horizontalOffsetAttrib() {};
 	
 	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
-	{(static_cast<AcquireWaveformLecroy *>(dev))->read_nominalBits(att);}
+	{(static_cast<AcquireWaveformLecroy *>(dev))->read_horizontalOffset(att);}
 	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
-	{return (static_cast<AcquireWaveformLecroy *>(dev))->is_nominalBits_allowed(ty);}
+	{return (static_cast<AcquireWaveformLecroy *>(dev))->is_horizontalOffset_allowed(ty);}
 };
 
-class waveArrayCountAttrib: public Tango::Attr
+class verticalGainAttrib: public Tango::Attr
 {
 public:
-	waveArrayCountAttrib():Attr("waveArrayCount", Tango::DEV_LONG, Tango::READ) {};
-	~waveArrayCountAttrib() {};
+	verticalGainAttrib():Attr("verticalGain", Tango::DEV_DOUBLE, Tango::READ) {};
+	~verticalGainAttrib() {};
 	
 	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
-	{(static_cast<AcquireWaveformLecroy *>(dev))->read_waveArrayCount(att);}
+	{(static_cast<AcquireWaveformLecroy *>(dev))->read_verticalGain(att);}
 	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
-	{return (static_cast<AcquireWaveformLecroy *>(dev))->is_waveArrayCount_allowed(ty);}
+	{return (static_cast<AcquireWaveformLecroy *>(dev))->is_verticalGain_allowed(ty);}
 };
 
-class waveArray2Attrib: public Tango::Attr
+class verticalOffsetAttrib: public Tango::Attr
 {
 public:
-	waveArray2Attrib():Attr("waveArray2", Tango::DEV_LONG, Tango::READ) {};
-	~waveArray2Attrib() {};
+	verticalOffsetAttrib():Attr("verticalOffset", Tango::DEV_DOUBLE, Tango::READ) {};
+	~verticalOffsetAttrib() {};
 	
 	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
-	{(static_cast<AcquireWaveformLecroy *>(dev))->read_waveArray2(att);}
+	{(static_cast<AcquireWaveformLecroy *>(dev))->read_verticalOffset(att);}
 	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
-	{return (static_cast<AcquireWaveformLecroy *>(dev))->is_waveArray2_allowed(ty);}
+	{return (static_cast<AcquireWaveformLecroy *>(dev))->is_verticalOffset_allowed(ty);}
 };
 
-class waveArray1Attrib: public Tango::Attr
+class triggerTimeAttrib: public Tango::Attr
 {
 public:
-	waveArray1Attrib():Attr("waveArray1", Tango::DEV_LONG, Tango::READ) {};
-	~waveArray1Attrib() {};
+	triggerTimeAttrib():Attr("triggerTime", Tango::DEV_STRING, Tango::READ) {};
+	~triggerTimeAttrib() {};
 	
 	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
-	{(static_cast<AcquireWaveformLecroy *>(dev))->read_waveArray1(att);}
+	{(static_cast<AcquireWaveformLecroy *>(dev))->read_triggerTime(att);}
 	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
-	{return (static_cast<AcquireWaveformLecroy *>(dev))->is_waveArray1_allowed(ty);}
-};
-
-//=========================================
-//	Define classes for commands
-//=========================================
-//
-// The AcquireWaveformLecroyClass singleton definition
-//
-
-class AcquireWaveformLecroyClass : public Tango::DeviceClass
-{
-public:
-//	properties member data
-
-//	add your own data members here
-//------------------------------------
-
-public:
-	Tango::DbData	cl_prop;
-	Tango::DbData	cl_def_prop;
-	Tango::DbData	dev_def_prop;
-
-//	Method prototypes
-	static AcquireWaveformLecroyClass *init(const char *);
-	static AcquireWaveformLecroyClass *instance();
-	~AcquireWaveformLecroyClass();
-	Tango::DbDatum	get_class_property(string &);
-	Tango::DbDatum	get_default_device_property(string &);
-	Tango::DbDatum	get_default_class_property(string &);
-	
-protected:
-	AcquireWaveformLecroyClass(string &);
-	static AcquireWaveformLecroyClass *_instance;
-	void command_factory();
-	void get_class_property();
-	void attribute_factory(vector<Tango::Attr *> &);
-	void write_class_property();
-	void set_default_property();
-
-private:
-	void device_factory(const Tango::DevVarStringArray *);
+	{return (static_cast<AcquireWaveformLecroy *>(dev))->is_triggerTime_allowed(ty);}
 };
 
-
-}	//	//=====================================
-//	Define classes for attributes
-//=====================================
 //=========================================
 //	Define classes for commands
 //=========================================
-//
-// The AcquireWaveformLecroyClass singleton definition
-//
-
-class AcquireWaveformLecroyClass : public Tango::DeviceClass
+class WriteReadCmd : public Tango::Command
 {
 public:
-//	properties member data
-
-//	add your own data members here
-//------------------------------------
-
-public:
-	Tango::DbData	cl_prop;
-	Tango::DbData	cl_def_prop;
-	Tango::DbData	dev_def_prop;
-
-//	Method prototypes
-	static AcquireWaveformLecroyClass *init(const char *);
-	static AcquireWaveformLecroyClass *instance();
-	~AcquireWaveformLecroyClass();
-	Tango::DbDatum	get_class_property(string &);
-	Tango::DbDatum	get_default_device_property(string &);
-	Tango::DbDatum	get_default_class_property(string &);
+	WriteReadCmd(const char   *name,
+	               Tango::CmdArgType in,
+				   Tango::CmdArgType out,
+				   const char        *in_desc,
+				   const char        *out_desc,
+				   Tango::DispLevel  level)
+	:Command(name,in,out,in_desc,out_desc, level)	{};
+
+	WriteReadCmd(const char   *name,
+	               Tango::CmdArgType in,
+				   Tango::CmdArgType out)
+	:Command(name,in,out)	{};
+	~WriteReadCmd() {};
 	
-protected:
-	AcquireWaveformLecroyClass(string &);
-	static AcquireWaveformLecroyClass *_instance;
-	void command_factory();
-	void get_class_property();
-	void write_class_property();
-	void set_default_property();
-
-private:
-	void device_factory(const Tango::DevVarStringArray *);
+	virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any);
+	virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any)
+	{return (static_cast<AcquireWaveformLecroy *>(dev))->is_WriteRead_allowed(any);}
 };
 
 
-}	//	//=====================================
-//	Define classes for attributes
-//=====================================
-//=========================================
-//	Define classes for commands
-//=========================================
-//
-// The AcquireWaveformLecroyClass singleton definition
-//
-
-class AcquireWaveformLecroyClass : public Tango::DeviceClass
-{
-public:
-//	properties member data
 
-//	add your own data members here
-//------------------------------------
-
-public:
-	Tango::DbData	cl_prop;
-	Tango::DbData	cl_def_prop;
-	Tango::DbData	dev_def_prop;
-
-//	Method prototypes
-	static AcquireWaveformLecroyClass *init(const char *);
-	static AcquireWaveformLecroyClass *instance();
-	~AcquireWaveformLecroyClass();
-	Tango::DbDatum	get_class_property(string &);
-	Tango::DbDatum	get_default_device_property(string &);
-	Tango::DbDatum	get_default_class_property(string &);
-	
-protected:
-	AcquireWaveformLecroyClass(string &);
-	static AcquireWaveformLecroyClass *_instance;
-	void command_factory();
-	void get_class_property();
-	void write_class_property();
-	void set_default_property();
-
-private:
-	void device_factory(const Tango::DevVarStringArray *);
-};
-
-
-}	//	//=====================================
-//	Define classes for attributes
-//=====================================
-//=========================================
-//	Define classes for commands
-//=========================================
 //
 // The AcquireWaveformLecroyClass singleton definition
 //
@@ -529,6 +243,7 @@ protected:
 	static AcquireWaveformLecroyClass *_instance;
 	void command_factory();
 	void get_class_property();
+	void attribute_factory(vector<Tango::Attr *> &);
 	void write_class_property();
 	void set_default_property();
 
diff --git a/src/AcquireWaveformLecroyStateMachine.cpp b/src/AcquireWaveformLecroyStateMachine.cpp
new file mode 100644
index 0000000..2171191
--- /dev/null
+++ b/src/AcquireWaveformLecroyStateMachine.cpp
@@ -0,0 +1,225 @@
+static const char *RcsId = "$Header: /users/chaize/newsvn/cvsroot/Instrumentation/AcquireWaveformLecroy/src/AcquireWaveformLecroyStateMachine.cpp,v 1.1 2008-02-28 09:02:05 xavela Exp $";
+//+=============================================================================
+//
+// file :         AcquireWaveformLecroyStateMachine.cpp
+//
+// description :  C++ source for the AcquireWaveformLecroy and its alowed. 
+//                method for commands and attributes
+//
+// project :      TANGO Device Server
+//
+// $Author: xavela $
+//
+// $Revision: 1.1 $
+//
+// $Log: not supported by cvs2svn $
+//
+// copyleft :     European Synchrotron Radiation Facility
+//                BP 220, Grenoble 38043
+//                FRANCE
+//
+//-=============================================================================
+//
+//  		This file is generated by POGO
+//	(Program Obviously used to Generate tango Object)
+//
+//         (c) - Software Engineering Group - ESRF
+//=============================================================================
+
+#include <tango.h>
+#include <AcquireWaveformLecroy.h>
+#include <AcquireWaveformLecroyClass.h>
+
+/*====================================================================
+ *	This file contains the methods to allow commands and attributes
+ * read or write execution.
+ *
+ * If you wand to add your own code, add it between 
+ * the "End/Re-Start of Generated Code" comments.
+ *
+ * If you want, you can also add your own methods.
+ *====================================================================
+ */
+
+namespace AcquireWaveformLecroy_ns
+{
+
+//=================================================
+//		Attributes Allowed Methods
+//=================================================
+
+//+----------------------------------------------------------------------------
+//
+// method : 		AcquireWaveformLecroy::is_triggerTime_allowed
+// 
+// description : 	Read/Write allowed for triggerTime attribute.
+//
+//-----------------------------------------------------------------------------
+bool AcquireWaveformLecroy::is_triggerTime_allowed(Tango::AttReqType type)
+{
+		//	End of Generated Code
+
+		//	Re-Start of Generated Code
+	return true;
+}
+//+----------------------------------------------------------------------------
+//
+// method : 		AcquireWaveformLecroy::is_verticalOffset_allowed
+// 
+// description : 	Read/Write allowed for verticalOffset attribute.
+//
+//-----------------------------------------------------------------------------
+bool AcquireWaveformLecroy::is_verticalOffset_allowed(Tango::AttReqType type)
+{
+		//	End of Generated Code
+
+		//	Re-Start of Generated Code
+	return true;
+}
+//+----------------------------------------------------------------------------
+//
+// method : 		AcquireWaveformLecroy::is_verticalGain_allowed
+// 
+// description : 	Read/Write allowed for verticalGain attribute.
+//
+//-----------------------------------------------------------------------------
+bool AcquireWaveformLecroy::is_verticalGain_allowed(Tango::AttReqType type)
+{
+		//	End of Generated Code
+
+		//	Re-Start of Generated Code
+	return true;
+}
+//+----------------------------------------------------------------------------
+//
+// method : 		AcquireWaveformLecroy::is_horizontalOffset_allowed
+// 
+// description : 	Read/Write allowed for horizontalOffset attribute.
+//
+//-----------------------------------------------------------------------------
+bool AcquireWaveformLecroy::is_horizontalOffset_allowed(Tango::AttReqType type)
+{
+		//	End of Generated Code
+
+		//	Re-Start of Generated Code
+	return true;
+}
+//+----------------------------------------------------------------------------
+//
+// method : 		AcquireWaveformLecroy::is_horizontalInterval_allowed
+// 
+// description : 	Read/Write allowed for horizontalInterval attribute.
+//
+//-----------------------------------------------------------------------------
+bool AcquireWaveformLecroy::is_horizontalInterval_allowed(Tango::AttReqType type)
+{
+		//	End of Generated Code
+
+		//	Re-Start of Generated Code
+	return true;
+}
+//+----------------------------------------------------------------------------
+//
+// method : 		AcquireWaveformLecroy::is_nominalBits_allowed
+// 
+// description : 	Read/Write allowed for nominalBits attribute.
+//
+//-----------------------------------------------------------------------------
+bool AcquireWaveformLecroy::is_nominalBits_allowed(Tango::AttReqType type)
+{
+		//	End of Generated Code
+
+		//	Re-Start of Generated Code
+	return true;
+}
+//+----------------------------------------------------------------------------
+//
+// method : 		AcquireWaveformLecroy::is_waveArrayCount_allowed
+// 
+// description : 	Read/Write allowed for waveArrayCount attribute.
+//
+//-----------------------------------------------------------------------------
+bool AcquireWaveformLecroy::is_waveArrayCount_allowed(Tango::AttReqType type)
+{
+		//	End of Generated Code
+
+		//	Re-Start of Generated Code
+	return true;
+}
+//+----------------------------------------------------------------------------
+//
+// method : 		AcquireWaveformLecroy::is_waveArray2_allowed
+// 
+// description : 	Read/Write allowed for waveArray2 attribute.
+//
+//-----------------------------------------------------------------------------
+bool AcquireWaveformLecroy::is_waveArray2_allowed(Tango::AttReqType type)
+{
+		//	End of Generated Code
+
+		//	Re-Start of Generated Code
+	return true;
+}
+//+----------------------------------------------------------------------------
+//
+// method : 		AcquireWaveformLecroy::is_waveArray1_allowed
+// 
+// description : 	Read/Write allowed for waveArray1 attribute.
+//
+//-----------------------------------------------------------------------------
+bool AcquireWaveformLecroy::is_waveArray1_allowed(Tango::AttReqType type)
+{
+		//	End of Generated Code
+
+		//	Re-Start of Generated Code
+	return true;
+}
+//+----------------------------------------------------------------------------
+//
+// method : 		AcquireWaveformLecroy::is_rawWaveformData_allowed
+// 
+// description : 	Read/Write allowed for rawWaveformData attribute.
+//
+//-----------------------------------------------------------------------------
+bool AcquireWaveformLecroy::is_rawWaveformData_allowed(Tango::AttReqType type)
+{
+		//	End of Generated Code
+
+		//	Re-Start of Generated Code
+	return true;
+}
+//+----------------------------------------------------------------------------
+//
+// method : 		AcquireWaveformLecroy::is_verticalScaledData_allowed
+// 
+// description : 	Read/Write allowed for verticalScaledData attribute.
+//
+//-----------------------------------------------------------------------------
+bool AcquireWaveformLecroy::is_verticalScaledData_allowed(Tango::AttReqType type)
+{
+		//	End of Generated Code
+
+		//	Re-Start of Generated Code
+	return true;
+}
+
+//=================================================
+//		Commands Allowed Methods
+//=================================================
+
+//+----------------------------------------------------------------------------
+//
+// method : 		AcquireWaveformLecroy::is_WriteRead_allowed
+// 
+// description : 	Execution allowed for WriteRead command.
+//
+//-----------------------------------------------------------------------------
+bool AcquireWaveformLecroy::is_WriteRead_allowed(const CORBA::Any &any)
+{
+		//	End of Generated Code
+
+		//	Re-Start of Generated Code
+	return true;
+}
+
+}	// namespace AcquireWaveformLecroy_ns
diff --git a/src/ClassFactory.cpp b/src/ClassFactory.cpp
index d1760e2..4ee815e 100644
--- a/src/ClassFactory.cpp
+++ b/src/ClassFactory.cpp
@@ -1,4 +1,4 @@
-static const char *RcsId = "$Header: /users/chaize/newsvn/cvsroot/Instrumentation/AcquireWaveformLecroy/src/ClassFactory.cpp,v 1.4 2004-10-18 13:17:49 xavela Exp $";
+static const char *RcsId = "$Header: /users/chaize/newsvn/cvsroot/Instrumentation/AcquireWaveformLecroy/src/ClassFactory.cpp,v 1.5 2008-02-28 09:02:05 xavela Exp $";
 //+=============================================================================
 //
 // file :        ClassFactory.cpp
@@ -12,9 +12,14 @@ static const char *RcsId = "$Header: /users/chaize/newsvn/cvsroot/Instrumentatio
 //
 // $Author: xavela $
 //
-// $Revision: 1.4 $
+// $Revision: 1.5 $
 //
 // $Log: not supported by cvs2svn $
+// Revision 1.4  2004/10/18 13:17:49  xavela
+// xavier : add an attr waveArray2.
+// Sorts attr in expert and operator view with Pogo.
+// Inconsistencies removed.
+//
 // Revision 1.3  2004/10/07 09:21:18  xavela
 // xavier : no cout now.
 //
@@ -45,12 +50,12 @@ static const char *RcsId = "$Header: /users/chaize/newsvn/cvsroot/Instrumentatio
  *	Create AcquireWaveformLecroyClass singleton and store it in DServer object.
  *
  * @author	$Author: xavela $
- * @version	$Revision: 1.4 $ $
+ * @version	$Revision: 1.5 $ $
  */
 
 void Tango::DServer::class_factory()
 {
 
-	add_class(AcquireWaveformLecroy::AcquireWaveformLecroyClass::init("AcquireWaveformLecroy"));
+	add_class(AcquireWaveformLecroy_ns::AcquireWaveformLecroyClass::init("AcquireWaveformLecroy"));
 
 }
diff --git a/src/Makefile.VC b/src/Makefile.VC
index 38929f4..5d00135 100644
--- a/src/Makefile.VC
+++ b/src/Makefile.VC
@@ -36,19 +36,8 @@ LISTEOBJ = \
    $(OBJDIR)\$(device_server).OBJ\
    $(OBJDIR)\ClassFactory.OBJ\
    $(OBJDIR)\main.OBJ\
-   $(OBJDIR)\$(device_server)Class.OBJ
-
-SRCS            =    \
-    $(device_server).CPP\
-   LecroyException.CPP\
-   SocketLecroy.CPP\
-   SocketException.CPP\
-   Waveform.CPP\
-   WaveformException.CPP\
-   ClassFactory.CPP\
-   main.CPP \
-   $(device_server)Class.CPP
-
+   $(OBJDIR)\$(device_server)StateMachine.OBJ\
+   $(OBJDIR)\$(device_server)Class.OBJ
 
 # --------------------------------------
 !include $(make_dir)\common_target.opt
diff --git a/src/main.cpp b/src/main.cpp
index 7d99251..bb4bdb2 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -1,4 +1,4 @@
-static const char *RcsId = "$Header: /users/chaize/newsvn/cvsroot/Instrumentation/AcquireWaveformLecroy/src/main.cpp,v 1.4 2004-10-18 13:17:49 xavela Exp $";
+static const char *RcsId = "$Header: /users/chaize/newsvn/cvsroot/Instrumentation/AcquireWaveformLecroy/src/main.cpp,v 1.5 2008-02-28 09:02:05 xavela Exp $";
 //+=============================================================================
 //
 // file :        main.cpp
@@ -12,9 +12,14 @@ static const char *RcsId = "$Header: /users/chaize/newsvn/cvsroot/Instrumentatio
 //
 // $Author: xavela $
 //
-// $Revision: 1.4 $ $
+// $Revision: 1.5 $ $
 //
 // $Log: not supported by cvs2svn $
+// Revision 1.4  2004/10/18 13:17:49  xavela
+// xavier : add an attr waveArray2.
+// Sorts attr in expert and operator view with Pogo.
+// Inconsistencies removed.
+//
 // Revision 1.3  2004/10/07 09:21:19  xavela
 // xavier : no cout now.
 //
@@ -78,6 +83,5 @@ int main(int argc,char *argv[])
 	//	clean ORB, threads.....
 	//--------------------------
 	tg->server_cleanup();
-	
 	return(0);
 }
-- 
GitLab