Skip to content
Snippets Groups Projects
Commit 061063df authored by Xavier ELATTAOUI's avatar Xavier ELATTAOUI
Browse files

xavier :

ajout de la commande WriteRead
parent 3fc15547
Branches
Tags
No related merge requests found
static const char *RcsId = "$Header: /users/chaize/newsvn/cvsroot/Instrumentation/AcquireWaveformLecroy/src/AcquireWaveformLecroy.cpp,v 1.7 2004-10-22 13:24:47 buteau Exp $"; 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 $";
//+============================================================================= //+=============================================================================
// //
// file : AcquireWaveformLecroy.cpp // file : AcquireWaveformLecroy.cpp
...@@ -11,11 +11,14 @@ static const char *RcsId = "$Header: /users/chaize/newsvn/cvsroot/Instrumentatio ...@@ -11,11 +11,14 @@ static const char *RcsId = "$Header: /users/chaize/newsvn/cvsroot/Instrumentatio
// //
// project : TANGO Device Server // project : TANGO Device Server
// //
// $Author: buteau $ // $Author: xavela $
// //
// $Revision: 1.7 $ // $Revision: 1.8 $
// //
// $Log: not supported by cvs2svn $ // $Log: not supported by cvs2svn $
// Revision 1.7 2004/10/22 13:24:47 buteau
// Second code reread. Minor modifications
//
// Revision 1.6 2004/10/18 13:17:49 xavela // Revision 1.6 2004/10/18 13:17:49 xavela
// xavier : add an attr waveArray2. // xavier : add an attr waveArray2.
// Sorts attr in expert and operator view with Pogo. // Sorts attr in expert and operator view with Pogo.
...@@ -157,7 +160,11 @@ void AcquireWaveformLecroy::delete_device() ...@@ -157,7 +160,11 @@ void AcquireWaveformLecroy::delete_device()
SocketLecroy::delete_instance(ptr_com); SocketLecroy::delete_instance(ptr_com);
//- delete the Waveform_Data obj //- delete the Waveform_Data obj
if(waveform_ptr)
{
delete waveform_ptr; delete waveform_ptr;
waveform_ptr = 0;
}
} }
//+---------------------------------------------------------------------------- //+----------------------------------------------------------------------------
...@@ -215,37 +222,27 @@ void AcquireWaveformLecroy::init_device() ...@@ -215,37 +222,27 @@ void AcquireWaveformLecroy::init_device()
data_value=0; data_value=0;
data_length = 0; data_length = 0;
ptr_com = 0; ptr_com = 0;
waveform_ptr = 0;
get_device_property(); get_device_property();
//- create the com obj //- create the com obj
ptr_com = SocketLecroy::get_instance(); ptr_com = SocketLecroy::get_instance();
//- init communication _is_communication_opened = false;
try
//- create the waveform obj
waveform_ptr = new WaveForm_data(channelName);
if ( !waveform_ptr )
{ {
ptr_com->TCP_Connect( (char*)iPaddress.c_str() ); set_state(Tango::FAULT);
set_state(Tango::OPEN); set_status("OUT OF MEMORY : objects cannot be created !");
set_status("The communication is OK.");
} }
catch(const lecroy::SocketException & se) else
{ {
set_state(Tango::FAULT); set_state(Tango::ALARM);
set_status("The communication is not well opened."); set_status("Communication is not yet opened.");
Tango::DevFailed df = lecroy_to_tango_exception(se);
Tango::Except::re_throw_exception(df,
(const char*) "TCP_CONNECTION_FAILED",
(const char*) "Cannot built a socket connection.",
(const char*) "AcquireWaveformLecroy::init_device()",
Tango::PANIC
);
} }
//- create the waveform obj
waveform_ptr = new WaveForm_data(channelName);
set_state(Tango::ON);
set_status("Ready to acquire waveform.");
} }
...@@ -293,6 +290,7 @@ void AcquireWaveformLecroy::get_device_property() ...@@ -293,6 +290,7 @@ void AcquireWaveformLecroy::get_device_property()
data_put.push_back(property); data_put.push_back(property);
} }
if( !data_put.empty() )
get_db_device()->put_property(data_put); get_db_device()->put_property(data_put);
} }
...@@ -306,6 +304,31 @@ void AcquireWaveformLecroy::get_device_property() ...@@ -306,6 +304,31 @@ void AcquireWaveformLecroy::get_device_property()
void AcquireWaveformLecroy::always_executed_hook() void AcquireWaveformLecroy::always_executed_hook()
{ {
//- init communication
if ( !_is_communication_opened )
{
try
{
ptr_com->TCP_Connect( (char*)iPaddress.c_str() );
_is_communication_opened = true;
set_state(Tango::OPEN);
set_status("The communication is OK.");
}
catch(const lecroy::SocketException & se)
{
_is_communication_opened = false;
set_state(Tango::FAULT);
set_status("The communication is not well opened.");
Tango::DevFailed df = lecroy_to_tango_exception(se);
Tango::Except::re_throw_exception(df,
(const char*) "TCP_CONNECTION_FAILED",
(const char*) "Cannot built a socket connection.",
(const char*) "AcquireWaveformLecroy::init_device()",
Tango::PANIC
);
}
}
//- Get the waveform data and description( ADC resolution, horizontal and vertical infos, data length ...) //- Get the waveform data and description( ADC resolution, horizontal and vertical infos, data length ...)
try try
{ {
......
# Microsoft Developer Studio Project File - Name="AcquireWaveformLecroy" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Console Application" 0x0103
CFG=AcquireWaveformLecroy - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "AcquireWaveformLecroy.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "AcquireWaveformLecroy.mak" CFG="AcquireWaveformLecroy - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "AcquireWaveformLecroy - Win32 Release" (based on "Win32 (x86) Console Application")
!MESSAGE "AcquireWaveformLecroy - Win32 Debug" (based on "Win32 (x86) Console Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "AcquireWaveformLecroy - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
!ELSEIF "$(CFG)" == "AcquireWaveformLecroy - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "debug"
# PROP Intermediate_Dir "debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
# ADD CPP /nologo /MTd /W3 /Gm /GR /GX /ZI /Od /I "$(TANGO_HOME)\include\win32" /I "." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "_WINSTATIC" /FR /YX /FD /GZ /c
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 tangod.lib log4tangod.lib COS4d.lib omniDynamic4d.lib omniORB4d.lib omnithreadd.lib mswsock.lib ws2_32.lib comctl32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"$(TANGO_HOME)\lib\win32\debug"
!ENDIF
# Begin Target
# Name "AcquireWaveformLecroy - Win32 Release"
# Name "AcquireWaveformLecroy - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=ClassFactory.cpp
# End Source File
# Begin Source File
SOURCE=main.cpp
# End Source File
# 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
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=AcquireWaveformLecroy.h
# End Source File
# Begin Source File
SOURCE=AcquireWaveformLecroyClass.h
# End Source File
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Target
# End Project
...@@ -8,9 +8,14 @@ ...@@ -8,9 +8,14 @@
// //
// $Author: xavela $ // $Author: xavela $
// //
// $Revision: 1.5 $ // $Revision: 1.6 $
// //
// $Log: not supported by cvs2svn $ // $Log: not supported by cvs2svn $
// Revision 1.5 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.4 2004/10/07 09:21:18 xavela // Revision 1.4 2004/10/07 09:21:18 xavela
// xavier : no cout now. // xavier : no cout now.
// //
...@@ -49,7 +54,7 @@ ...@@ -49,7 +54,7 @@
/** /**
* @author $Author: xavela $ * @author $Author: xavela $
* @version $Revision: 1.5 $ $ * @version $Revision: 1.6 $ $
*/ */
// Add your own constants definitions here. // Add your own constants definitions here.
...@@ -222,6 +227,7 @@ protected : ...@@ -222,6 +227,7 @@ protected :
short* data_value; short* data_value;
double* data_scaled_value; double* data_scaled_value;
long data_length; long data_length;
bool _is_communication_opened;
//- Method to convert all lecroy exceptions (type Waveform or Socket exceptions) on Tango exception //- Method to convert all lecroy exceptions (type Waveform or Socket exceptions) on Tango exception
Tango::DevFailed lecroy_to_tango_exception(const lecroy::LecroyException& de); Tango::DevFailed lecroy_to_tango_exception(const lecroy::LecroyException& de);
......
static const char *RcsId = "$Header: /users/chaize/newsvn/cvsroot/Instrumentation/AcquireWaveformLecroy/src/AcquireWaveformLecroyClass.cpp,v 1.5 2004-10-18 13:17:49 xavela Exp $"; 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 *TagName = "$Name: not supported by cvs2svn $"; static const char *TagName = "$Name: not supported by cvs2svn $";
...@@ -20,9 +20,14 @@ static const char *RCSfile = "$RCSfile: AcquireWaveformLecroyClass.cpp,v $"; ...@@ -20,9 +20,14 @@ static const char *RCSfile = "$RCSfile: AcquireWaveformLecroyClass.cpp,v $";
// //
// $Author: xavela $ // $Author: xavela $
// //
// $Revision: 1.5 $ // $Revision: 1.6 $
// //
// $Log: not supported by cvs2svn $ // $Log: not supported by cvs2svn $
// Revision 1.5 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.4 2004/10/07 09:21:18 xavela // Revision 1.4 2004/10/07 09:21:18 xavela
// xavier : no cout now. // xavier : no cout now.
// //
...@@ -77,6 +82,8 @@ AcquireWaveformLecroyClass::AcquireWaveformLecroyClass(string &s):DeviceClass(s) ...@@ -77,6 +82,8 @@ AcquireWaveformLecroyClass::AcquireWaveformLecroyClass(string &s):DeviceClass(s)
{ {
cout2 << "Entering AcquireWaveformLecroyClass constructor" << endl; cout2 << "Entering AcquireWaveformLecroyClass constructor" << endl;
set_default_property();
get_class_property();
write_class_property(); write_class_property();
cout2 << "Leaving AcquireWaveformLecroyClass constructor" << endl; cout2 << "Leaving AcquireWaveformLecroyClass constructor" << endl;
...@@ -148,6 +155,54 @@ void AcquireWaveformLecroyClass::command_factory() ...@@ -148,6 +155,54 @@ void AcquireWaveformLecroyClass::command_factory()
} }
} }
//+----------------------------------------------------------------------------
//
// method : AcquireWaveformLecroyClass::get_class_property
//
// description : Get the class property for specified name.
//
// in : string name : The property name
//
//+----------------------------------------------------------------------------
Tango::DbDatum AcquireWaveformLecroyClass::get_class_property(string &prop_name)
{
for (unsigned int i=0 ; i<cl_prop.size() ; i++)
if (cl_prop[i].name == prop_name)
return cl_prop[i];
// if not found, return an empty DbDatum
return Tango::DbDatum(prop_name);
}
//+----------------------------------------------------------------------------
//
// method : AcquireWaveformLecroyClass::get_default_device_property()
//
// description : Return the default value for device property.
//
//-----------------------------------------------------------------------------
Tango::DbDatum AcquireWaveformLecroyClass::get_default_device_property(string &prop_name)
{
for (unsigned int i=0 ; i<dev_def_prop.size() ; i++)
if (dev_def_prop[i].name == prop_name)
return dev_def_prop[i];
// if not found, return an empty DbDatum
return Tango::DbDatum(prop_name);
}
//+----------------------------------------------------------------------------
//
// method : AcquireWaveformLecroyClass::get_default_class_property()
//
// description : Return the default value for class property.
//
//-----------------------------------------------------------------------------
Tango::DbDatum AcquireWaveformLecroyClass::get_default_class_property(string &prop_name)
{
for (unsigned int i=0 ; i<cl_def_prop.size() ; i++)
if (cl_def_prop[i].name == prop_name)
return cl_def_prop[i];
// if not found, return an empty DbDatum
return Tango::DbDatum(prop_name);
}
//+---------------------------------------------------------------------------- //+----------------------------------------------------------------------------
// //
// method : AcquireWaveformLecroyClass::device_factory // method : AcquireWaveformLecroyClass::device_factory
...@@ -161,149 +216,104 @@ void AcquireWaveformLecroyClass::command_factory() ...@@ -161,149 +216,104 @@ void AcquireWaveformLecroyClass::command_factory()
void AcquireWaveformLecroyClass::device_factory(const Tango::DevVarStringArray *devlist_ptr) void AcquireWaveformLecroyClass::device_factory(const Tango::DevVarStringArray *devlist_ptr)
{ {
for (long i=0 ; i < devlist_ptr->length() ; i++) // Create all devices.(Automatic code generation)
//-------------------------------------------------------------
for (unsigned long i=0 ; i < devlist_ptr->length() ; i++)
{ {
cout4 << "Device name : " << (*devlist_ptr)[i].in() << endl; cout4 << "Device name : " << (*devlist_ptr)[i].in() << endl;
// Create device and add it into the device list // Create devices and add it into the device list
//---------------------------------------------------- //----------------------------------------------------
device_list.push_back(new AcquireWaveformLecroy(this, (*devlist_ptr)[i])); device_list.push_back(new AcquireWaveformLecroy(this, (*devlist_ptr)[i]));
// Export device to the outside world // Export device to the outside world
// Check before id database used. // Check before if database used.
//--------------------------------------------- //---------------------------------------------
if (Tango::Util::_UseDb == true) if ((Tango::Util::_UseDb == true) && (Tango::Util::_FileDb == false))
export_device(device_list.back()); export_device(device_list.back());
else else
export_device(device_list.back(), (*devlist_ptr)[i]); export_device(device_list.back(), (*devlist_ptr)[i]);
} }
// End of Automatic code generation
//-------------------------------------------------------------
}
//+----------------------------------------------------------------------------
//
// method : AcquireWaveformLecroyClass::get_class_property()
//
// description : Read the class properties from database.
//
//-----------------------------------------------------------------------------
void AcquireWaveformLecroyClass::get_class_property()
{
// Initialize your default values here (if not done with POGO).
//------------------------------------------------------------------
// Read class properties from database.(Automatic code generation)
//------------------------------------------------------------------
// Call database and extract values
//--------------------------------------------
if (Tango::Util::instance()->_UseDb==true)
get_db_class()->get_property(cl_prop);
Tango::DbDatum def_prop;
int i = -1;
// End of Automatic code generation
//------------------------------------------------------------------
} }
//+---------------------------------------------------------------------------- //+----------------------------------------------------------------------------
// Method: AcquireWaveformLecroyClass::attribute_factory(vector<Tango::Attr *> &att_list) //
// method : AcquireWaveformLecroyClass::set_default_property
//
// description: Set default property (class and device) for wizard.
// For each property, add to wizard property name and description
// If default value has been set, add it to wizard property and
// store it in a DbDatum.
//
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
void AcquireWaveformLecroyClass::attribute_factory(vector<Tango::Attr *> &att_list) void AcquireWaveformLecroyClass::set_default_property()
{
string prop_name;
string prop_desc;
string prop_def;
vector<string> vect_data;
// Set Default Class Properties
// Set Default Device Properties
prop_name = "IPaddress";
prop_desc = "The IP address of the Lecroy scope to build a connection with.";
prop_def = "";
if (prop_def.length()>0)
{ {
// Attribute : rawWaveformData Tango::DbDatum data(prop_name);
Tango::SpectrumAttr *raw_waveform_data = data << vect_data ;
new Tango::SpectrumAttr("rawWaveformData", Tango::DEV_SHORT, 150000); dev_def_prop.push_back(data);
Tango::UserDefaultAttrProp raw_waveform_data_prop; add_wiz_dev_prop(prop_name, prop_desc, prop_def);
raw_waveform_data_prop.set_label("Raw Waveform Data"); }
raw_waveform_data_prop.set_unit("data"); else
raw_waveform_data_prop.set_display_unit("data"); add_wiz_dev_prop(prop_name, prop_desc);
raw_waveform_data_prop.set_format("%d");
raw_waveform_data_prop.set_description("Gets the raw waveform data.\nMaximum size set to 150000 data by default."); prop_name = "ChannelName";
raw_waveform_data->set_default_properties(raw_waveform_data_prop); prop_desc = "The name of channel on which the acquisition will be done.\nThis name must be composed with two caracters : (a letter followed by a number)\nC for a physical channel\nF for a calculated waveform\nM for a memorised waveform\n...\nExample : C2 (is the channel 2)\nDefault : C1 (channel 1";
att_list.push_back(raw_waveform_data); prop_def = "";
if (prop_def.length()>0)
// Attribute : verticalScaledData {
Tango::SpectrumAttr *vertical_scaled_data = Tango::DbDatum data(prop_name);
new Tango::SpectrumAttr("verticalScaledData", Tango::DEV_DOUBLE, 150000); data << vect_data ;
Tango::UserDefaultAttrProp vertical_scaled_data_prop; dev_def_prop.push_back(data);
vertical_scaled_data_prop.set_label("Vertical Scaled Data"); add_wiz_dev_prop(prop_name, prop_desc, prop_def);
vertical_scaled_data_prop.set_unit("data"); }
vertical_scaled_data_prop.set_display_unit("data"); else
vertical_scaled_data_prop.set_format("%d"); add_wiz_dev_prop(prop_name, prop_desc);
vertical_scaled_data_prop.set_description("Gets the scaled waveform data.\nMaximum size set to 150000 data by default.");
vertical_scaled_data->set_default_properties(vertical_scaled_data_prop);
att_list.push_back(vertical_scaled_data);
// Attribute : waveArray1
Tango::Attr *wave_array1 =
new Tango::Attr("waveArray1", Tango::DEV_LONG, Tango::READ);
Tango::UserDefaultAttrProp wave_array1_prop;
wave_array1_prop.set_label("Wave Array 1");
wave_array1_prop.set_unit("data");
wave_array1_prop.set_display_unit("data");
wave_array1_prop.set_format("%d");
wave_array1_prop.set_description("Length of the first array.\nThis second array contains data of simples\nwaveforms.");
wave_array1->set_default_properties(wave_array1_prop);
wave_array1->set_disp_level(Tango::EXPERT);
att_list.push_back(wave_array1);
// Attribute : waveArray2
Tango::Attr *wave_array2 =
new Tango::Attr("waveArray2", Tango::DEV_LONG, Tango::READ);
Tango::UserDefaultAttrProp wave_array2_prop;
wave_array2_prop.set_label("Wave Array 2");
wave_array2_prop.set_unit("data");
wave_array2_prop.set_display_unit("data");
wave_array2_prop.set_format("%d");
wave_array2_prop.set_description("Length of the second array.\nThis second array contains data of complex\nwaveforms (as FFT, Extrema ....).");
wave_array2->set_default_properties(wave_array2_prop);
wave_array2->set_disp_level(Tango::EXPERT);
att_list.push_back(wave_array2);
// Attribute : waveArrayCount
Tango::Attr *wave_array_count =
new Tango::Attr("waveArrayCount", Tango::DEV_LONG, Tango::READ);
Tango::UserDefaultAttrProp wave_array_count_prop;
wave_array_count_prop.set_label("Wave Array Count");
wave_array_count_prop.set_unit("data");
wave_array_count_prop.set_display_unit("data");
wave_array_count_prop.set_format("%d");
wave_array_count_prop.set_description("Length of the two arrays.\nIf the length of wavearray1 is different of this\nlength that's means data are present in the\narray wavearray2. Which is used for complex\ndata as math operations on a waveform.");
wave_array_count->set_default_properties(wave_array_count_prop);
att_list.push_back(wave_array_count);
// Attribute : nominalBits
Tango::Attr *nominal_bits =
new Tango::Attr("nominalBits", Tango::DEV_SHORT, Tango::READ);
Tango::UserDefaultAttrProp nominal_bits_prop;
nominal_bits_prop.set_label("Nominal Bits");
nominal_bits_prop.set_display_unit("bits");
nominal_bits_prop.set_format("%d");
nominal_bits_prop.set_description("ADC resolution.\nFor simple data this ADC is an 8 bits resolution\nelse it's can be 10 up to 12 bits");
nominal_bits->set_default_properties(nominal_bits_prop);
nominal_bits->set_disp_level(Tango::EXPERT);
att_list.push_back(nominal_bits);
// Attribute : horizontalInterval
Tango::Attr *horizontal_interval =
new Tango::Attr("horizontalInterval", Tango::DEV_DOUBLE, Tango::READ);
Tango::UserDefaultAttrProp horizontal_interval_prop;
horizontal_interval_prop.set_label("Horizontal Interval");
horizontal_interval_prop.set_description("Sampling interval for time domain waveforms\nNeeded to scale the waveform data stored\nin the rawWaveformData attribute.");
horizontal_interval->set_default_properties(horizontal_interval_prop);
horizontal_interval->set_disp_level(Tango::EXPERT);
att_list.push_back(horizontal_interval);
// Attribute : horizontalOffset
Tango::Attr *horizontal_offset =
new Tango::Attr("horizontalOffset", Tango::DEV_DOUBLE, Tango::READ);
Tango::UserDefaultAttrProp horizontal_offset_prop;
horizontal_offset_prop.set_label("Horizontal Offset");
horizontal_offset_prop.set_description("Trigger offset for the first sweep of the trigger,\nseconds between the trigger and the first \ndata point.\nNeeded to scale the waveform data stored\nin the rawWaveformData attribute.");
horizontal_offset->set_default_properties(horizontal_offset_prop);
horizontal_offset->set_disp_level(Tango::EXPERT);
att_list.push_back(horizontal_offset);
// Attribute : verticalGain
Tango::Attr *vertical_gain =
new Tango::Attr("verticalGain", Tango::DEV_DOUBLE, Tango::READ);
Tango::UserDefaultAttrProp vertical_gain_prop;
vertical_gain_prop.set_label("Vertical Gain");
vertical_gain_prop.set_description("The vertical gain.\nUsed to scale the waveform data stored in\n the rawWaveformData attribute.");
vertical_gain->set_default_properties(vertical_gain_prop);
vertical_gain->set_disp_level(Tango::EXPERT);
att_list.push_back(vertical_gain);
// Attribute : verticalOffset
Tango::Attr *vertical_offset =
new Tango::Attr("verticalOffset", Tango::DEV_DOUBLE, Tango::READ);
Tango::UserDefaultAttrProp vertical_offset_prop;
vertical_offset_prop.set_label("Vertical Offset");
vertical_offset_prop.set_description("Needed to scale the waveform data stored\nin the rawWaveformData attribute.");
vertical_offset->set_default_properties(vertical_offset_prop);
vertical_offset->set_disp_level(Tango::EXPERT);
att_list.push_back(vertical_offset);
// Attribute : triggerTime
Tango::Attr *trigger_time =
new Tango::Attr("triggerTime", Tango::DEV_STRING, Tango::READ);
Tango::UserDefaultAttrProp trigger_time_prop;
trigger_time_prop.set_label("Trigger Time");
trigger_time->set_default_properties(trigger_time_prop);
att_list.push_back(trigger_time);
} }
//+---------------------------------------------------------------------------- //+----------------------------------------------------------------------------
...@@ -320,69 +330,89 @@ void AcquireWaveformLecroyClass::write_class_property() ...@@ -320,69 +330,89 @@ void AcquireWaveformLecroyClass::write_class_property()
if (Tango::Util::_UseDb == false) if (Tango::Util::_UseDb == false)
return; return;
// Prepeare DbDatum Tango::DbData data;
//-------------------------------------------- string classname = get_name();
string header;
string::size_type start, end;
// Put title
Tango::DbDatum title("ProjectTitle"); Tango::DbDatum title("ProjectTitle");
string str_title("Acquire_Waveform_Lecroy_Prj"); string str_title("Acquire_Waveform_Lecroy_Prj");
title << str_title; title << str_title;
data.push_back(title);
// Put Description
Tango::DbDatum description("Description"); Tango::DbDatum description("Description");
string str_desc("This class allows the acquisition of a waveform (the description and the data),\n\ vector<string> str_desc;
from a specific channel and from any Lecroy scope series.\n\ str_desc.push_back("This class allows the acquisition of a waveform (the description and the data),");
The description is a structure which contains in particular :\n\ str_desc.push_back("from a specific channel and from any Lecroy scope series.");
the length of the array 1 (the raw data)\n\ str_desc.push_back("The description is a structure which contains in particular :");
th"); str_desc.push_back("the length of the array 1 (the raw data)");
str_desc.push_back("the length of the array 2 (2nd part of the calculated waveform data, if any)");
str_desc.push_back("the timebase");
str_desc.push_back("the total length of the acquired data (lgth array1 + lgth array2)");
str_desc.push_back(".... its represents the context of the acquisition.");
str_desc.push_back("");
str_desc.push_back("NOTE :");
str_desc.push_back("for all Lecroy scope, the port number is the same : 1861");
description << str_desc; description << str_desc;
data.push_back(description);
// Use the doc_url field to store all information // put cvs location
// on the server version and CVS string rcsId(RcsId);
string::size_type pos, len; string filename(classname);
start = rcsId.find("/");
// 1) Manage module name if (start!=string::npos)
// get rid of the $RCSfile: prefix and of Class.cpp suffix {
string classname = RCSfile; filename += "Class.cpp";
end = rcsId.find(filename);
pos = classname.find("$RCSfile: "); if (end>start)
len = classname.length(); {
string strloc = rcsId.substr(start, end-start);
if (pos != string::npos) // Check if specific repository
classname= classname.substr(pos+10, len- pos-10); start = strloc.find("/cvsroot/");
if (start!=string::npos && start>0)
pos = classname.find ("Class.cpp",0); {
if (pos != string::npos) string repository = strloc.substr(0, start);
classname=classname.substr(0,pos); if (repository.find("/segfs/")!=string::npos)
strloc = "ESRF:" + strloc.substr(start, strloc.length()-start);
// 2) Manage version number with SOLEIL CVS rules }
// tag name is in the form : release_1_0 ==> transform it to 1.0 Tango::DbDatum cvs_loc("cvs_location");
// cvs_loc << strloc;
string version ; data.push_back(cvs_loc);
string str_TagName=string(TagName); }
}
pos = str_TagName.find_first_of("_",0);
if (pos != string::npos)
version= str_TagName.substr(pos+1, 3);
pos = version.find_first_of("_",0);
if (pos != string::npos)
version[pos] = '.';
// Store all info in the str_url property
string str_url= "Documentation URL = " + string(HttpServer) + classname +"-" + version + "/index.html" + "\n";
str_url= str_url + " Version CVS Tag = " + string(TagName)+ "\n";
str_url= str_url + " CVS location = " + string(FileName)+ "\n";
Tango::DbDatum doc_url("doc_url"); // Get CVS tag revision
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);
}
doc_url << str_url; // 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);
}
// Push everything in DataBase // Put inheritance
Tango::DbDatum inher_datum("InheritedFrom");
vector<string> inheritance;
inheritance.push_back("Device_3Impl");
inher_datum << inheritance;
data.push_back(inher_datum);
Tango::DbData data;
data.push_back(title);
data.push_back(description);
data.push_back(doc_url);
// Call database and and values // Call database and and values
//-------------------------------------------- //--------------------------------------------
get_db_class()->put_property(data); get_db_class()->put_property(data);
......
...@@ -12,9 +12,14 @@ ...@@ -12,9 +12,14 @@
// //
// $Author: xavela $ // $Author: xavela $
// //
// $Revision: 1.5 $ // $Revision: 1.6 $
// //
// $Log: not supported by cvs2svn $ // $Log: not supported by cvs2svn $
// Revision 1.5 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.4 2004/10/07 09:21:18 xavela // Revision 1.4 2004/10/07 09:21:18 xavela
// xavier : no cout now. // xavier : no cout now.
// //
...@@ -41,14 +46,326 @@ ...@@ -41,14 +46,326 @@
#define _ACQUIREWAVEFORMLECROYCLASS_H #define _ACQUIREWAVEFORMLECROYCLASS_H
#include <tango.h> #include <tango.h>
#include <AcquireWaveformLecroy.h>
namespace AcquireWaveformLecroy namespace AcquireWaveformLecroy
{ {
// //=====================================
// 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:
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
{
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 // 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:
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:
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
{
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 // The AcquireWaveformLecroyClass singleton definition
// //
...@@ -56,29 +373,170 @@ namespace AcquireWaveformLecroy ...@@ -56,29 +373,170 @@ namespace AcquireWaveformLecroy
class AcquireWaveformLecroyClass : public Tango::DeviceClass class AcquireWaveformLecroyClass : public Tango::DeviceClass
{ {
public: public:
// properties member data
// add your own data members here // add your own data members here
//------------------------------------ //------------------------------------
public: public:
Tango::DbData cl_prop;
Tango::DbData cl_def_prop;
Tango::DbData dev_def_prop;
// Method prototypes // Method prototypes
static AcquireWaveformLecroyClass *init(const char *); static AcquireWaveformLecroyClass *init(const char *);
static AcquireWaveformLecroyClass *instance(); static AcquireWaveformLecroyClass *instance();
~AcquireWaveformLecroyClass(); ~AcquireWaveformLecroyClass();
Tango::DbDatum get_class_property(string &);
Tango::DbDatum get_default_device_property(string &);
Tango::DbDatum get_default_class_property(string &);
protected: protected:
AcquireWaveformLecroyClass(string &); AcquireWaveformLecroyClass(string &);
static AcquireWaveformLecroyClass *_instance; static AcquireWaveformLecroyClass *_instance;
void command_factory(); void command_factory();
void get_class_property();
void attribute_factory(vector<Tango::Attr *> &); void attribute_factory(vector<Tango::Attr *> &);
void write_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
//
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
//
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
//
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: private:
void device_factory(const Tango::DevVarStringArray *); void device_factory(const Tango::DevVarStringArray *);
}; };
} // namespace AcquireWaveformLecroy } // namespace AcquireWaveformLecroy_ns
#endif // _ACQUIREWAVEFORMLECROYCLASS_H #endif // _ACQUIREWAVEFORMLECROYCLASS_H
...@@ -3,7 +3,7 @@ device_server= AcquireWaveformLecroy ...@@ -3,7 +3,7 @@ device_server= AcquireWaveformLecroy
# #
# Des includes particuliers # Des includes particuliers
# Mettre /Ic:\monchemininclude /:\monautrechemininclude # Mettre /Ic:\monchemininclude /:\monautrechemininclude
INCUSER= /I..include\SocketLecroy.h/I..include\Waveform.h/I..include\LecroyException.h/I..include\SocketException.h/I..include\WaveformException.h/I..include\Xstring.h #INCUSER= /I..include\SocketLecroy.h/I..include\Waveform.h/I..include\LecroyException.h/I..include\SocketException.h/I..include\WaveformException.h/I..include\Xstring.h
# #
# et vos Librairies # et vos Librairies
# style # style
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment