diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000000000000000000000000000000000000..647b539192ad155eedc5af04d4fee991b64f55ab
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "deps/vg"]
+	path = deps/vg
+	url = https://gitlab.elettra.eu/cs/ds/vg.git
diff --git a/deps/vg b/deps/vg
new file mode 160000
index 0000000000000000000000000000000000000000..889596b9c313ed2acdad64a064f37e3a5fd41d6f
--- /dev/null
+++ b/deps/vg
@@ -0,0 +1 @@
+Subproject commit 889596b9c313ed2acdad64a064f37e3a5fd41d6f
diff --git a/src/ClassFactory.cpp b/src/ClassFactory.cpp
deleted file mode 100644
index 273657a29a54e591c73cef184bd25fac1af76851..0000000000000000000000000000000000000000
--- a/src/ClassFactory.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-/*----- PROTECTED REGION ID(Tpg300::ClassFactory.cpp) ENABLED START -----*/
-static const char *RcsId = "$Id: ClassFactory.cpp,v 1.4 2012-09-10 08:01:04 mdm Exp $";
-//=============================================================================
-//
-// file :        ClassFactory.cpp
-//
-// description : C++ source for the class_factory method of the DServer
-//               device class. This method is responsible for the creation of
-//               all class singleton for a device server. It is called
-//               at device server startup.
-//
-// project :     Blzer Tpg 300.
-//
-// $Author: mdm $
-//
-// $Revision: 1.4 $
-// $Date: 2012-09-10 08:01:04 $
-//
-// SVN only:
-// $HeadURL:  $
-//
-// CVS only:
-// $Source: /home/cvsadm/cvsroot/fermi/servers/tpg300/src/ClassFactory.cpp,v $
-// $Log: ClassFactory.cpp,v $
-// Revision 1.4  2012-09-10 08:01:04  mdm
-// Bugfix in thread and on off commands
-//
-//
-//=============================================================================
-//                This file is generated by POGO
-//        (Program Obviously used to Generate tango Object)
-//=============================================================================
-
-
-#include <tango.h>
-#include <Tpg300Class.h>
-
-//	Add class header files if needed
-
-
-/**
- *	Create Tpg300 Class singleton and store it in DServer object.
- */
-
-void Tango::DServer::class_factory()
-{
-	//	Add method class init if needed
-	
-	add_class(Tpg300_ns::Tpg300Class::init("Tpg300"));
-}
-
-/*----- PROTECTED REGION END -----*/
diff --git a/src/MultiClassesFactory.cpp b/src/MultiClassesFactory.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..ec71340703e44dc7de2b1f35b3d4ebbb95770823
--- /dev/null
+++ b/src/MultiClassesFactory.cpp
@@ -0,0 +1,46 @@
+//=============================================================================
+//
+// file :        MultiClassessFactory.cpp
+//
+// description : C++ source for the class_factory method of the DServer
+//               device class. This method is responsible for the creation of
+//               all class singleton for a device server. It is called
+//               at device server startup.
+//
+//
+//
+// This file is part of Tango device class.
+//
+// Tango is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Tango is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Tango.  If not, see <http://www.gnu.org/licenses/>.
+//
+//
+//
+//=============================================================================
+//                This file is generated by POGO
+//        (Program Obviously used to Generate tango Object)
+//=============================================================================
+
+#include <tango.h>
+#include <Tpg300Class.h>
+#include <VgClass.h>
+
+/**
+ *	Create Class singletons and store them in DServer object.
+ */
+
+void Tango::DServer::class_factory()
+{
+	add_class(Tpg300_ns::Tpg300Class::init("Tpg300"));
+	add_class(Vg_ns::VgClass::init("Vg"));
+}
diff --git a/src/Tpg300.cpp b/src/Tpg300.cpp
index 719d1080890bcd889d2a7147e08f84ff206e9cec..239d8fc060a12dea96ea381f18015b94ccf7de4b 100644
--- a/src/Tpg300.cpp
+++ b/src/Tpg300.cpp
@@ -53,21 +53,19 @@ static const char *RcsId = "$Id: Tpg300.cpp,v 1.8 2016-10-18 15:53:02 claudio Ex
 
 #include "devicestate.h"
 
-/*----- PROTECTED REGION END -----*/
-
+/*----- PROTECTED REGION END -----*/	//	Tpg300.cpp
 
 /**
- *	Tpg300 class description:
- *	Total pressure gauge and controller
+ *  Tpg300 class description:
+ *    Total pressure gauge and controller
  */
 
 //================================================================
-//
 //  The following table gives the correspondence
 //  between command and method names.
 //
 //  Command name         |  Method name
-//----------------------------------------------------------------
+//================================================================
 //  State                |  Inherited (no method)
 //  Status               |  Inherited (no method)
 //  SensorOn             |  sensor_on
@@ -82,25 +80,47 @@ static const char *RcsId = "$Id: Tpg300.cpp,v 1.8 2016-10-18 15:53:02 claudio Ex
 //  UnregisterName       |  unregister_name
 //================================================================
 
+//================================================================
+//  Attributes managed are:
+//================================================================
+//  Pressure_0      |  Tango::DevDouble	Scalar
+//  Pressure_1      |  Tango::DevDouble	Scalar
+//  Pressure_2      |  Tango::DevDouble	Scalar
+//  Pressure_3      |  Tango::DevDouble	Scalar
+//  State_0         |  Tango::DevState	Scalar
+//  State_1         |  Tango::DevState	Scalar
+//  State_2         |  Tango::DevState	Scalar
+//  State_3         |  Tango::DevState	Scalar
+//  Status_0        |  Tango::DevString	Scalar
+//  Status_1        |  Tango::DevString	Scalar
+//  Status_2        |  Tango::DevString	Scalar
+//  Status_3        |  Tango::DevString	Scalar
+//  Name_0          |  Tango::DevString	Scalar
+//  Name_1          |  Tango::DevString	Scalar
+//  Name_2          |  Tango::DevString	Scalar
+//  Name_3          |  Tango::DevString	Scalar
+//  DeviceState     |  Tango::DevUChar	Scalar
+//  DeviceStatus    |  Tango::DevString	Scalar
+//  SetPointStatus  |  Tango::DevBoolean	Spectrum  ( max = 6)
+//================================================================
+
 namespace Tpg300_ns
 {
-	/*----- PROTECTED REGION ID(Tpg300::namespace_starting) ENABLED START -----*/
+/*----- PROTECTED REGION ID(Tpg300::namespace_starting) ENABLED START -----*/
 
 	//	static initializations
 
 	/*----- PROTECTED REGION END -----*/	//	Tpg300::namespace_starting
 
-
-
 //--------------------------------------------------------
 /**
- *	Method      : Tpg300::Tpg300()
- *	Description : Constructors for a Tango device
- *	              implementing the class Tpg300
+ *	Method     : Tpg300::Tpg300()
+ *	Description: Constructors for a Tango device
+ *                implementing the classTpg300
  */
 //--------------------------------------------------------
-Tpg300::Tpg300(Tango::DeviceClass *cl, string &s)
- 	: TANGO_BASE_CLASS(cl, s.c_str())
+Tpg300::Tpg300(Tango::DeviceClass *cl, std::string &s)
+ : TANGO_BASE_CLASS(cl, s.c_str())
 {
 	/*----- PROTECTED REGION ID(Tpg300::constructor_1) ENABLED START -----*/
 
@@ -110,7 +130,7 @@ Tpg300::Tpg300(Tango::DeviceClass *cl, string &s)
 }
 //--------------------------------------------------------
 Tpg300::Tpg300(Tango::DeviceClass *cl, const char *s)
- 	: TANGO_BASE_CLASS(cl, s)
+ : TANGO_BASE_CLASS(cl, s)
 {
 	/*----- PROTECTED REGION ID(Tpg300::constructor_2) ENABLED START -----*/
 
@@ -120,7 +140,7 @@ Tpg300::Tpg300(Tango::DeviceClass *cl, const char *s)
 }
 //--------------------------------------------------------
 Tpg300::Tpg300(Tango::DeviceClass *cl, const char *s, const char *d)
- 	: TANGO_BASE_CLASS(cl, s, d)
+ : TANGO_BASE_CLASS(cl, s, d)
 {
 	/*----- PROTECTED REGION ID(Tpg300::constructor_3) ENABLED START -----*/
 
@@ -128,16 +148,21 @@ Tpg300::Tpg300(Tango::DeviceClass *cl, const char *s, const char *d)
 
 	/*----- PROTECTED REGION END -----*/	//	Tpg300::constructor_3
 }
-
+//--------------------------------------------------------
+Tpg300::~Tpg300()
+{
+	delete_device();
+}
 
 //--------------------------------------------------------
 /**
- *	Method      : Tpg300::delete_device()()
- *	Description : will be called at device destruction or at init command
+ *	Method     : Tpg300::delete_device()
+ *	Description: will be called at device destruction or at init command
  */
 //--------------------------------------------------------
 void Tpg300::delete_device()
 {
+	DEBUG_STREAM << "Tpg300::delete_device() " << device_name << std::endl;
 	/*----- PROTECTED REGION ID(Tpg300::delete_device) ENABLED START -----*/
 
 	DEBUG_STREAM << "Tpg300::delete_device() delete device " << device_name << endl;
@@ -232,20 +257,17 @@ void Tpg300::delete_device()
 	delete[] attr_DeviceState_read;
 	delete[] attr_DeviceStatus_read;
 	delete[] attr_SetPointStatus_read;
-	
 }
 
-
 //--------------------------------------------------------
 /**
- *	Method      : Tpg300::init_device()
- *	Description : //	will be called at device initialization.
+ *	Method     : Tpg300::init_device()
+ *	Description: will be called at device initialization.
  */
 //--------------------------------------------------------
 void Tpg300::init_device()
 {
-	DEBUG_STREAM << "Tpg300::init_device() create device " << device_name << endl;
-
+	DEBUG_STREAM << "Tpg300::init_device() create device " << device_name << std::endl;
 	/*----- PROTECTED REGION ID(Tpg300::init_device_before) ENABLED START -----*/
 
 	set_state(Tango::INIT);
@@ -267,10 +289,11 @@ void Tpg300::init_device()
 	init_completed = false;
 
 	/*----- PROTECTED REGION END -----*/	//	Tpg300::init_device_before
-	
-	//	Get the device properties (if any) from database
+
+
+	//	Get the device properties from database
 	get_device_property();
-	
+
 	attr_Pressure_0_read = new Tango::DevDouble[1];
 	attr_Pressure_1_read = new Tango::DevDouble[1];
 	attr_Pressure_2_read = new Tango::DevDouble[1];
@@ -290,7 +313,6 @@ void Tpg300::init_device()
 	attr_DeviceState_read = new Tango::DevUChar[1];
 	attr_DeviceStatus_read = new Tango::DevString[1];
 	attr_SetPointStatus_read = new Tango::DevBoolean[6];
-	
 	/*----- PROTECTED REGION ID(Tpg300::init_device) ENABLED START -----*/
 
 	Tpg300Utils::string_alloc(attr_Status_0_read);
@@ -348,12 +370,10 @@ void Tpg300::init_device()
 	/*----- PROTECTED REGION END -----*/	//	Tpg300::init_device
 }
 
-
-
 //--------------------------------------------------------
 /**
- *	Method      : Tpg300::get_device_property()
- *	Description : //	Add your own code to initialize
+ *	Method     : Tpg300::get_device_property()
+ *	Description: Read database to initialize property data members.
  */
 //--------------------------------------------------------
 void Tpg300::get_device_property()
@@ -378,7 +398,7 @@ void Tpg300::get_device_property()
 		//	Call database and extract values
 		if (Tango::Util::instance()->_UseDb==true)
 			get_db_device()->get_property(dev_prop);
-	
+
 		//	get instance on Tpg300Class to get class property
 		Tango::DbDatum	def_prop, cl_prop;
 		Tpg300Class	*ds_class =
@@ -429,8 +449,8 @@ void Tpg300::get_device_property()
 		//	And try to extract ProxySleep value from database
 		if (dev_prop[i].is_empty()==false)	dev_prop[i]  >>  proxySleep;
 
-
 	}
+
 	/*----- PROTECTED REGION ID(Tpg300::get_device_property_after) ENABLED START -----*/
 
 	if(dev_prop[0].is_empty())
@@ -484,18 +504,17 @@ void Tpg300::get_device_property()
     }
 
 	/*----- PROTECTED REGION END -----*/	//	Tpg300::get_device_property_after
-
 }
 
 //--------------------------------------------------------
 /**
- *	Method      : Tpg300::always_executed_hook()
- *	Description : method always executed before any command is executed
+ *	Method     : Tpg300::always_executed_hook()
+ *	Description: method always executed before any command is executed
  */
 //--------------------------------------------------------
 void Tpg300::always_executed_hook()
 {
-	INFO_STREAM << "Tpg300::always_executed_hook()  " << device_name << endl;
+	DEBUG_STREAM << "Tpg300::always_executed_hook()  " << device_name << std::endl;
 	/*----- PROTECTED REGION ID(Tpg300::always_executed_hook) ENABLED START -----*/
 
 	if(init_completed)
@@ -508,38 +527,49 @@ void Tpg300::always_executed_hook()
 	/*----- PROTECTED REGION END -----*/	//	Tpg300::always_executed_hook
 }
 
-
-
 //--------------------------------------------------------
 /**
- *	Method      : Tpg300::read_attr_hardware()
- *	Description : Hardware acquisition for attributes.
+ *	Method     : Tpg300::read_attr_hardware()
+ *	Description: Hardware acquisition for attributes
  */
 //--------------------------------------------------------
-void Tpg300::read_attr_hardware(vector<long> &attr_list)
+void Tpg300::read_attr_hardware(TANGO_UNUSED(std::vector<long> &attr_list))
 {
-	DEBUG_STREAM << "Tpg300::read_attr_hardware(vector<long> &attr_list) entering... " << endl;
+	DEBUG_STREAM << "Tpg300::read_attr_hardware(std::vector<long> &attr_list) entering... " << std::endl;
 	/*----- PROTECTED REGION ID(Tpg300::read_attr_hardware) ENABLED START -----*/
 
 	//	Add your own code
 
 	/*----- PROTECTED REGION END -----*/	//	Tpg300::read_attr_hardware
-
 }
-
+//--------------------------------------------------------
+/**
+ *	Method     : Tpg300::write_attr_hardware()
+ *	Description: Hardware writing for attributes
+ */
+//--------------------------------------------------------
+void Tpg300::write_attr_hardware(TANGO_UNUSED(std::vector<long> &attr_list))
+{
+	DEBUG_STREAM << "Tpg300::write_attr_hardware(std::vector<long> &attr_list) entering... " << std::endl;
+	/*----- PROTECTED REGION ID(Tpg300::write_attr_hardware) ENABLED START -----*/
+	/* clang-format on */
+	//	Add your own code
+	/* clang-format off */
+	/*----- PROTECTED REGION END -----*/	//	Tpg300::write_attr_hardware
+}
 
 //--------------------------------------------------------
 /**
- *	Read Pressure_0 attribute
- *	Description: 
+ *	Read attribute Pressure_0 related method
+ *
  *
  *	Data type:	Tango::DevDouble
- *	Attr type:	Scalar 
+ *	Attr type:	Scalar
  */
 //--------------------------------------------------------
 void Tpg300::read_Pressure_0(Tango::Attribute &attr)
 {
-	DEBUG_STREAM << "Tpg300::read_Pressure_0(Tango::Attribute &attr) entering... " << endl;
+	DEBUG_STREAM << "Tpg300::read_Pressure_0(Tango::Attribute &attr) entering... " << std::endl;
 	/*----- PROTECTED REGION ID(Tpg300::read_Pressure_0) ENABLED START -----*/
 
 	*attr_Pressure_0_read = channel_0->get_pressure();
@@ -550,16 +580,16 @@ void Tpg300::read_Pressure_0(Tango::Attribute &attr)
 }
 //--------------------------------------------------------
 /**
- *	Read Pressure_1 attribute
- *	Description: 
+ *	Read attribute Pressure_1 related method
+ *
  *
  *	Data type:	Tango::DevDouble
- *	Attr type:	Scalar 
+ *	Attr type:	Scalar
  */
 //--------------------------------------------------------
 void Tpg300::read_Pressure_1(Tango::Attribute &attr)
 {
-	DEBUG_STREAM << "Tpg300::read_Pressure_1(Tango::Attribute &attr) entering... " << endl;
+	DEBUG_STREAM << "Tpg300::read_Pressure_1(Tango::Attribute &attr) entering... " << std::endl;
 	/*----- PROTECTED REGION ID(Tpg300::read_Pressure_1) ENABLED START -----*/
 
 	*attr_Pressure_1_read = channel_1->get_pressure();
@@ -570,16 +600,16 @@ void Tpg300::read_Pressure_1(Tango::Attribute &attr)
 }
 //--------------------------------------------------------
 /**
- *	Read Pressure_2 attribute
- *	Description: 
+ *	Read attribute Pressure_2 related method
+ *
  *
  *	Data type:	Tango::DevDouble
- *	Attr type:	Scalar 
+ *	Attr type:	Scalar
  */
 //--------------------------------------------------------
 void Tpg300::read_Pressure_2(Tango::Attribute &attr)
 {
-	DEBUG_STREAM << "Tpg300::read_Pressure_2(Tango::Attribute &attr) entering... " << endl;
+	DEBUG_STREAM << "Tpg300::read_Pressure_2(Tango::Attribute &attr) entering... " << std::endl;
 	/*----- PROTECTED REGION ID(Tpg300::read_Pressure_2) ENABLED START -----*/
 
 	*attr_Pressure_2_read = channel_2->get_pressure();
@@ -590,16 +620,16 @@ void Tpg300::read_Pressure_2(Tango::Attribute &attr)
 }
 //--------------------------------------------------------
 /**
- *	Read Pressure_3 attribute
- *	Description: 
+ *	Read attribute Pressure_3 related method
+ *
  *
  *	Data type:	Tango::DevDouble
- *	Attr type:	Scalar 
+ *	Attr type:	Scalar
  */
 //--------------------------------------------------------
 void Tpg300::read_Pressure_3(Tango::Attribute &attr)
 {
-	DEBUG_STREAM << "Tpg300::read_Pressure_3(Tango::Attribute &attr) entering... " << endl;
+	DEBUG_STREAM << "Tpg300::read_Pressure_3(Tango::Attribute &attr) entering... " << std::endl;
 	/*----- PROTECTED REGION ID(Tpg300::read_Pressure_3) ENABLED START -----*/
 
 	*attr_Pressure_3_read = channel_3->get_pressure();
@@ -610,16 +640,16 @@ void Tpg300::read_Pressure_3(Tango::Attribute &attr)
 }
 //--------------------------------------------------------
 /**
- *	Read State_0 attribute
- *	Description: 
+ *	Read attribute State_0 related method
+ *
  *
  *	Data type:	Tango::DevState
- *	Attr type:	Scalar 
+ *	Attr type:	Scalar
  */
 //--------------------------------------------------------
 void Tpg300::read_State_0(Tango::Attribute &attr)
 {
-	DEBUG_STREAM << "Tpg300::read_State_0(Tango::Attribute &attr) entering... " << endl;
+	DEBUG_STREAM << "Tpg300::read_State_0(Tango::Attribute &attr) entering... " << std::endl;
 	/*----- PROTECTED REGION ID(Tpg300::read_State_0) ENABLED START -----*/
 
 	*attr_State_0_read = channel_0->get_state();
@@ -630,16 +660,16 @@ void Tpg300::read_State_0(Tango::Attribute &attr)
 }
 //--------------------------------------------------------
 /**
- *	Read State_1 attribute
- *	Description: 
+ *	Read attribute State_1 related method
+ *
  *
  *	Data type:	Tango::DevState
- *	Attr type:	Scalar 
+ *	Attr type:	Scalar
  */
 //--------------------------------------------------------
 void Tpg300::read_State_1(Tango::Attribute &attr)
 {
-	DEBUG_STREAM << "Tpg300::read_State_1(Tango::Attribute &attr) entering... " << endl;
+	DEBUG_STREAM << "Tpg300::read_State_1(Tango::Attribute &attr) entering... " << std::endl;
 	/*----- PROTECTED REGION ID(Tpg300::read_State_1) ENABLED START -----*/
 
 	*attr_State_1_read = channel_1->get_state();
@@ -650,16 +680,16 @@ void Tpg300::read_State_1(Tango::Attribute &attr)
 }
 //--------------------------------------------------------
 /**
- *	Read State_2 attribute
- *	Description: 
+ *	Read attribute State_2 related method
+ *
  *
  *	Data type:	Tango::DevState
- *	Attr type:	Scalar 
+ *	Attr type:	Scalar
  */
 //--------------------------------------------------------
 void Tpg300::read_State_2(Tango::Attribute &attr)
 {
-	DEBUG_STREAM << "Tpg300::read_State_2(Tango::Attribute &attr) entering... " << endl;
+	DEBUG_STREAM << "Tpg300::read_State_2(Tango::Attribute &attr) entering... " << std::endl;
 	/*----- PROTECTED REGION ID(Tpg300::read_State_2) ENABLED START -----*/
 
 	*attr_State_2_read = channel_2->get_state();
@@ -670,16 +700,16 @@ void Tpg300::read_State_2(Tango::Attribute &attr)
 }
 //--------------------------------------------------------
 /**
- *	Read State_3 attribute
- *	Description: 
+ *	Read attribute State_3 related method
+ *
  *
  *	Data type:	Tango::DevState
- *	Attr type:	Scalar 
+ *	Attr type:	Scalar
  */
 //--------------------------------------------------------
 void Tpg300::read_State_3(Tango::Attribute &attr)
 {
-	DEBUG_STREAM << "Tpg300::read_State_3(Tango::Attribute &attr) entering... " << endl;
+	DEBUG_STREAM << "Tpg300::read_State_3(Tango::Attribute &attr) entering... " << std::endl;
 	/*----- PROTECTED REGION ID(Tpg300::read_State_3) ENABLED START -----*/
 
 	*attr_State_3_read = channel_3->get_state();
@@ -690,16 +720,16 @@ void Tpg300::read_State_3(Tango::Attribute &attr)
 }
 //--------------------------------------------------------
 /**
- *	Read Status_0 attribute
- *	Description: 
+ *	Read attribute Status_0 related method
+ *
  *
  *	Data type:	Tango::DevString
- *	Attr type:	Scalar 
+ *	Attr type:	Scalar
  */
 //--------------------------------------------------------
 void Tpg300::read_Status_0(Tango::Attribute &attr)
 {
-	DEBUG_STREAM << "Tpg300::read_Status_0(Tango::Attribute &attr) entering... " << endl;
+	DEBUG_STREAM << "Tpg300::read_Status_0(Tango::Attribute &attr) entering... " << std::endl;
 	/*----- PROTECTED REGION ID(Tpg300::read_Status_0) ENABLED START -----*/
 
 	Tpg300Utils::string_copy(attr_Status_0_read, channel_0->get_status());
@@ -710,16 +740,16 @@ void Tpg300::read_Status_0(Tango::Attribute &attr)
 }
 //--------------------------------------------------------
 /**
- *	Read Status_1 attribute
- *	Description: 
+ *	Read attribute Status_1 related method
+ *
  *
  *	Data type:	Tango::DevString
- *	Attr type:	Scalar 
+ *	Attr type:	Scalar
  */
 //--------------------------------------------------------
 void Tpg300::read_Status_1(Tango::Attribute &attr)
 {
-	DEBUG_STREAM << "Tpg300::read_Status_1(Tango::Attribute &attr) entering... " << endl;
+	DEBUG_STREAM << "Tpg300::read_Status_1(Tango::Attribute &attr) entering... " << std::endl;
 	/*----- PROTECTED REGION ID(Tpg300::read_Status_1) ENABLED START -----*/
 
 	Tpg300Utils::string_copy(attr_Status_1_read, channel_1->get_status());
@@ -730,16 +760,16 @@ void Tpg300::read_Status_1(Tango::Attribute &attr)
 }
 //--------------------------------------------------------
 /**
- *	Read Status_2 attribute
- *	Description: 
+ *	Read attribute Status_2 related method
+ *
  *
  *	Data type:	Tango::DevString
- *	Attr type:	Scalar 
+ *	Attr type:	Scalar
  */
 //--------------------------------------------------------
 void Tpg300::read_Status_2(Tango::Attribute &attr)
 {
-	DEBUG_STREAM << "Tpg300::read_Status_2(Tango::Attribute &attr) entering... " << endl;
+	DEBUG_STREAM << "Tpg300::read_Status_2(Tango::Attribute &attr) entering... " << std::endl;
 	/*----- PROTECTED REGION ID(Tpg300::read_Status_2) ENABLED START -----*/
 
 	Tpg300Utils::string_copy(attr_Status_2_read, channel_2->get_status());
@@ -750,16 +780,16 @@ void Tpg300::read_Status_2(Tango::Attribute &attr)
 }
 //--------------------------------------------------------
 /**
- *	Read Status_3 attribute
- *	Description: 
+ *	Read attribute Status_3 related method
+ *
  *
  *	Data type:	Tango::DevString
- *	Attr type:	Scalar 
+ *	Attr type:	Scalar
  */
 //--------------------------------------------------------
 void Tpg300::read_Status_3(Tango::Attribute &attr)
 {
-	DEBUG_STREAM << "Tpg300::read_Status_3(Tango::Attribute &attr) entering... " << endl;
+	DEBUG_STREAM << "Tpg300::read_Status_3(Tango::Attribute &attr) entering... " << std::endl;
 	/*----- PROTECTED REGION ID(Tpg300::read_Status_3) ENABLED START -----*/
 
 	Tpg300Utils::string_copy(attr_Status_3_read, channel_3->get_status());
@@ -770,16 +800,16 @@ void Tpg300::read_Status_3(Tango::Attribute &attr)
 }
 //--------------------------------------------------------
 /**
- *	Read Name_0 attribute
- *	Description: 
+ *	Read attribute Name_0 related method
+ *
  *
  *	Data type:	Tango::DevString
- *	Attr type:	Scalar 
+ *	Attr type:	Scalar
  */
 //--------------------------------------------------------
 void Tpg300::read_Name_0(Tango::Attribute &attr)
 {
-	DEBUG_STREAM << "Tpg300::read_Name_0(Tango::Attribute &attr) entering... " << endl;
+	DEBUG_STREAM << "Tpg300::read_Name_0(Tango::Attribute &attr) entering... " << std::endl;
 	/*----- PROTECTED REGION ID(Tpg300::read_Name_0) ENABLED START -----*/
 
 	Tpg300Utils::string_copy(attr_Name_0_read, channel_0->get_name());
@@ -790,16 +820,16 @@ void Tpg300::read_Name_0(Tango::Attribute &attr)
 }
 //--------------------------------------------------------
 /**
- *	Read Name_1 attribute
- *	Description: 
+ *	Read attribute Name_1 related method
+ *
  *
  *	Data type:	Tango::DevString
- *	Attr type:	Scalar 
+ *	Attr type:	Scalar
  */
 //--------------------------------------------------------
 void Tpg300::read_Name_1(Tango::Attribute &attr)
 {
-	DEBUG_STREAM << "Tpg300::read_Name_1(Tango::Attribute &attr) entering... " << endl;
+	DEBUG_STREAM << "Tpg300::read_Name_1(Tango::Attribute &attr) entering... " << std::endl;
 	/*----- PROTECTED REGION ID(Tpg300::read_Name_1) ENABLED START -----*/
 
 	Tpg300Utils::string_copy(attr_Name_1_read, channel_1->get_name());
@@ -810,16 +840,16 @@ void Tpg300::read_Name_1(Tango::Attribute &attr)
 }
 //--------------------------------------------------------
 /**
- *	Read Name_2 attribute
- *	Description: 
+ *	Read attribute Name_2 related method
+ *
  *
  *	Data type:	Tango::DevString
- *	Attr type:	Scalar 
+ *	Attr type:	Scalar
  */
 //--------------------------------------------------------
 void Tpg300::read_Name_2(Tango::Attribute &attr)
 {
-	DEBUG_STREAM << "Tpg300::read_Name_2(Tango::Attribute &attr) entering... " << endl;
+	DEBUG_STREAM << "Tpg300::read_Name_2(Tango::Attribute &attr) entering... " << std::endl;
 	/*----- PROTECTED REGION ID(Tpg300::read_Name_2) ENABLED START -----*/
 
 	Tpg300Utils::string_copy(attr_Name_2_read, channel_2->get_name());
@@ -830,16 +860,16 @@ void Tpg300::read_Name_2(Tango::Attribute &attr)
 }
 //--------------------------------------------------------
 /**
- *	Read Name_3 attribute
- *	Description: 
+ *	Read attribute Name_3 related method
+ *
  *
  *	Data type:	Tango::DevString
- *	Attr type:	Scalar 
+ *	Attr type:	Scalar
  */
 //--------------------------------------------------------
 void Tpg300::read_Name_3(Tango::Attribute &attr)
 {
-	DEBUG_STREAM << "Tpg300::read_Name_3(Tango::Attribute &attr) entering... " << endl;
+	DEBUG_STREAM << "Tpg300::read_Name_3(Tango::Attribute &attr) entering... " << std::endl;
 	/*----- PROTECTED REGION ID(Tpg300::read_Name_3) ENABLED START -----*/
 
 	Tpg300Utils::string_copy(attr_Name_3_read, channel_3->get_name());
@@ -850,16 +880,16 @@ void Tpg300::read_Name_3(Tango::Attribute &attr)
 }
 //--------------------------------------------------------
 /**
- *	Read DeviceState attribute
- *	Description: 
+ *	Read attribute DeviceState related method
+ *
  *
  *	Data type:	Tango::DevUChar
- *	Attr type:	Scalar 
+ *	Attr type:	Scalar
  */
 //--------------------------------------------------------
 void Tpg300::read_DeviceState(Tango::Attribute &attr)
 {
-	DEBUG_STREAM << "Tpg300::read_DeviceState(Tango::Attribute &attr) entering... " << endl;
+	DEBUG_STREAM << "Tpg300::read_DeviceState(Tango::Attribute &attr) entering... " << std::endl;
 	/*----- PROTECTED REGION ID(Tpg300::read_DeviceState) ENABLED START -----*/
 
 	//	Set the attribute value
@@ -867,23 +897,21 @@ void Tpg300::read_DeviceState(Tango::Attribute &attr)
 
 	/*----- PROTECTED REGION END -----*/	//	Tpg300::read_DeviceState
 }
-
 //--------------------------------------------------------
 /**
- *	Write DeviceState attribute values to hardware.
+ *	Write attribute DeviceState related method
+ *
  *
  *	Data type:	Tango::DevUChar
- *	Attr type:	Scalar 
+ *	Attr type:	Scalar
  */
 //--------------------------------------------------------
 void Tpg300::write_DeviceState(Tango::WAttribute &attr)
 {
-	DEBUG_STREAM << "Tpg300::write_DeviceState(Tango::Attribute &attr) entering... " << endl;
-	
+	DEBUG_STREAM << "Tpg300::write_DeviceState(Tango::WAttribute &attr) entering... " << std::endl;
 	//	Retrieve write value
 	Tango::DevUChar	w_val;
 	attr.get_write_value(w_val);
-	
 	/*----- PROTECTED REGION ID(Tpg300::write_DeviceState) ENABLED START -----*/
 
 	if (w_val >= DEVICESTATE_T_SIZE) {
@@ -894,19 +922,18 @@ void Tpg300::write_DeviceState(Tango::WAttribute &attr)
 
 	/*----- PROTECTED REGION END -----*/	//	Tpg300::write_DeviceState
 }
-
 //--------------------------------------------------------
 /**
- *	Read DeviceStatus attribute
- *	Description: 
+ *	Read attribute DeviceStatus related method
+ *
  *
  *	Data type:	Tango::DevString
- *	Attr type:	Scalar 
+ *	Attr type:	Scalar
  */
 //--------------------------------------------------------
 void Tpg300::read_DeviceStatus(Tango::Attribute &attr)
 {
-	DEBUG_STREAM << "Tpg300::read_DeviceStatus(Tango::Attribute &attr) entering... " << endl;
+	DEBUG_STREAM << "Tpg300::read_DeviceStatus(Tango::Attribute &attr) entering... " << std::endl;
 	/*----- PROTECTED REGION ID(Tpg300::read_DeviceStatus) ENABLED START -----*/
 
 	//	Set the attribute value
@@ -916,16 +943,16 @@ void Tpg300::read_DeviceStatus(Tango::Attribute &attr)
 }
 //--------------------------------------------------------
 /**
- *	Read SetPointStatus attribute
- *	Description: 
+ *	Read attribute SetPointStatus related method
+ *
  *
  *	Data type:	Tango::DevBoolean
- *	Attr type:	Spectrum  max = 6
+ *	Attr type:	Spectrum max = 6
  */
 //--------------------------------------------------------
 void Tpg300::read_SetPointStatus(Tango::Attribute &attr)
 {
-	DEBUG_STREAM << "Tpg300::read_SetPointStatus(Tango::Attribute &attr) entering... " << endl;
+	DEBUG_STREAM << "Tpg300::read_SetPointStatus(Tango::Attribute &attr) entering... " << std::endl;
 	/*----- PROTECTED REGION ID(Tpg300::read_SetPointStatus) ENABLED START -----*/
 
 	try
@@ -944,40 +971,32 @@ void Tpg300::read_SetPointStatus(Tango::Attribute &attr)
 
 //--------------------------------------------------------
 /**
- *	Method      : Tpg300::Tpg300Class::add_dynamic_attributes()
- *	Description : Create the dynamic attributes if any
- *	              for specified device.
+ *	Method     : Tpg300::add_dynamic_attributes()
+ *	Description: Create the dynamic attributes if any
+ *                for specified device.
  */
 //--------------------------------------------------------
 void Tpg300::add_dynamic_attributes()
 {
-	/*----- PROTECTED REGION ID(Tpg300::Class::add_dynamic_attributes) ENABLED START -----*/
-
+	/*----- PROTECTED REGION ID(Tpg300::add_dynamic_attributes) ENABLED START -----*/
+	/* clang-format on */
 	//	Add your own code to create and add dynamic attributes if any
-
-	/*----- PROTECTED REGION END -----*/	//	Tpg300::Class::add_dynamic_attributes
-
+	/* clang-format off */
+	/*----- PROTECTED REGION END -----*/	//	Tpg300::add_dynamic_attributes
 }
 
-
-
-//========================================================
-//	Command execution methods
-//========================================================
-
 //--------------------------------------------------------
 /**
- *	Execute the SensorOn command:
+ *	Command SensorOn related method
  *	Description: Start measuring channel n
  *
  *	@param argin Channel
- *	             [0,3]
- *	@returns 
+ *	[0,3]
  */
 //--------------------------------------------------------
 void Tpg300::sensor_on(Tango::DevShort argin)
 {
-	DEBUG_STREAM << "Tpg300::SensorOn()  - " << device_name << endl;
+	DEBUG_STREAM << "Tpg300::SensorOn()  - " << device_name << std::endl;
 	/*----- PROTECTED REGION ID(Tpg300::sensor_on) ENABLED START -----*/
 
 	switch(argin)
@@ -999,22 +1018,19 @@ void Tpg300::sensor_on(Tango::DevShort argin)
 		break;
 	}
 	/*----- PROTECTED REGION END -----*/	//	Tpg300::sensor_on
-
 }
-
 //--------------------------------------------------------
 /**
- *	Execute the SensorOff command:
+ *	Command SensorOff related method
  *	Description: Stop measuring channel n
  *
  *	@param argin Channel
- *	             [0,3]
- *	@returns 
+ *	[0,3]
  */
 //--------------------------------------------------------
 void Tpg300::sensor_off(Tango::DevShort argin)
 {
-	DEBUG_STREAM << "Tpg300::SensorOff()  - " << device_name << endl;
+	DEBUG_STREAM << "Tpg300::SensorOff()  - " << device_name << std::endl;
 	/*----- PROTECTED REGION ID(Tpg300::sensor_off) ENABLED START -----*/
 
 	switch(argin)
@@ -1037,32 +1053,29 @@ void Tpg300::sensor_off(Tango::DevShort argin)
 	}
 
 	/*----- PROTECTED REGION END -----*/	//	Tpg300::sensor_off
-
 }
-
 //--------------------------------------------------------
 /**
- *	Execute the WriteLowerThreshold command:
+ *	Command WriteLowerThreshold related method
  *	Description: Set setpoint lower threshold
  *
  *	@param argin Setpoint, Pressure
- *	             
- *	             Setpoint
- *	             0 -> Switching function 1
- *	             1 -> Switching function 2
- *	             2 -> Switching function 3
- *	             3 -> Switching function 4
- *	             4 -> Switching function A
- *	             5 -> Switching function B
- *	             
- *	             Pressure
- *	             [1.0E-11, 9.9E+3]
- *	@returns 
+ *	
+ *	Setpoint
+ *	0 -> Switching function 1
+ *	1 -> Switching function 2
+ *	2 -> Switching function 3
+ *	3 -> Switching function 4
+ *	4 -> Switching function A
+ *	5 -> Switching function B
+ *	
+ *	Pressure
+ *	[1.0E-11, 9.9E+3]
  */
 //--------------------------------------------------------
 void Tpg300::write_lower_threshold(const Tango::DevVarDoubleArray *argin)
 {
-	DEBUG_STREAM << "Tpg300::WriteLowerThreshold()  - " << device_name << endl;
+	DEBUG_STREAM << "Tpg300::WriteLowerThreshold()  - " << device_name << std::endl;
 	/*----- PROTECTED REGION ID(Tpg300::write_lower_threshold) ENABLED START -----*/
 
 	//	Add your own code
@@ -1096,28 +1109,26 @@ void Tpg300::write_lower_threshold(const Tango::DevVarDoubleArray *argin)
 	}
 
 	/*----- PROTECTED REGION END -----*/	//	Tpg300::write_lower_threshold
-
 }
-
 //--------------------------------------------------------
 /**
- *	Execute the ReadLowerThreshold command:
+ *	Command ReadLowerThreshold related method
  *	Description: Get setpoint lower threshold
  *
  *	@param argin Setpoint
- *	             0 -> Switching function 1
- *	             1 -> Switching function 2
- *	             2 -> Switching function 3
- *	             3 -> Switching function 4
- *	             4 -> Switching function A
- *	             5 -> Switching function B
+ *	0 -> Switching function 1
+ *	1 -> Switching function 2
+ *	2 -> Switching function 3
+ *	3 -> Switching function 4
+ *	4 -> Switching function A
+ *	5 -> Switching function B
  *	@returns Pressure
  */
 //--------------------------------------------------------
 Tango::DevDouble Tpg300::read_lower_threshold(Tango::DevShort argin)
 {
 	Tango::DevDouble argout;
-	DEBUG_STREAM << "Tpg300::ReadLowerThreshold()  - " << device_name << endl;
+	DEBUG_STREAM << "Tpg300::ReadLowerThreshold()  - " << device_name << std::endl;
 	/*----- PROTECTED REGION ID(Tpg300::read_lower_threshold) ENABLED START -----*/
 
 	//	Add your own code
@@ -1147,33 +1158,30 @@ Tango::DevDouble Tpg300::read_lower_threshold(Tango::DevShort argin)
 	}
 
 	/*----- PROTECTED REGION END -----*/	//	Tpg300::read_lower_threshold
-
 	return argout;
 }
-
 //--------------------------------------------------------
 /**
- *	Execute the WriteUpperThreshold command:
+ *	Command WriteUpperThreshold related method
  *	Description: Set setpoint upper threshold
  *
  *	@param argin Setpoint, Pressure
- *	             
- *	             Setpoint
- *	             0 -> Switching function 1
- *	             1 -> Switching function 2
- *	             2 -> Switching function 3
- *	             3 -> Switching function 4
- *	             4 -> Switching function A
- *	             5 -> Switching function B
- *	             
- *	             Pressure
- *	             [1.0E-11, 9.9E+3]
- *	@returns 
+ *	
+ *	Setpoint
+ *	0 -> Switching function 1
+ *	1 -> Switching function 2
+ *	2 -> Switching function 3
+ *	3 -> Switching function 4
+ *	4 -> Switching function A
+ *	5 -> Switching function B
+ *	
+ *	Pressure
+ *	[1.0E-11, 9.9E+3]
  */
 //--------------------------------------------------------
 void Tpg300::write_upper_threshold(const Tango::DevVarDoubleArray *argin)
 {
-	DEBUG_STREAM << "Tpg300::WriteUpperThreshold()  - " << device_name << endl;
+	DEBUG_STREAM << "Tpg300::WriteUpperThreshold()  - " << device_name << std::endl;
 	/*----- PROTECTED REGION ID(Tpg300::write_upper_threshold) ENABLED START -----*/
 
 	//	Add your own code
@@ -1207,28 +1215,26 @@ void Tpg300::write_upper_threshold(const Tango::DevVarDoubleArray *argin)
 	}
 
 	/*----- PROTECTED REGION END -----*/	//	Tpg300::write_upper_threshold
-
 }
-
 //--------------------------------------------------------
 /**
- *	Execute the ReadUpperThreshold command:
+ *	Command ReadUpperThreshold related method
  *	Description: Get setpoint upper threshold
  *
  *	@param argin Setpoint
- *	             0 -> Switching function 1
- *	             1 -> Switching function 2
- *	             2 -> Switching function 3
- *	             3 -> Switching function 4
- *	             4 -> Switching function A
- *	             5 -> Switching function B
+ *	0 -> Switching function 1
+ *	1 -> Switching function 2
+ *	2 -> Switching function 3
+ *	3 -> Switching function 4
+ *	4 -> Switching function A
+ *	5 -> Switching function B
  *	@returns Pressure
  */
 //--------------------------------------------------------
 Tango::DevDouble Tpg300::read_upper_threshold(Tango::DevShort argin)
 {
 	Tango::DevDouble argout;
-	DEBUG_STREAM << "Tpg300::ReadUpperThreshold()  - " << device_name << endl;
+	DEBUG_STREAM << "Tpg300::ReadUpperThreshold()  - " << device_name << std::endl;
 	/*----- PROTECTED REGION ID(Tpg300::read_upper_threshold) ENABLED START -----*/
 
 	//	Add your own code
@@ -1258,38 +1264,36 @@ Tango::DevDouble Tpg300::read_upper_threshold(Tango::DevShort argin)
 	}
 
 	/*----- PROTECTED REGION END -----*/	//	Tpg300::read_upper_threshold
-
 	return argout;
 }
-
 //--------------------------------------------------------
 /**
- *	Execute the ReadSensorSource command:
+ *	Command ReadSensorSource related method
  *	Description: Get setpoint source
  *
  *	@param argin Setpoint
- *	             0 -> Switching function 1
- *	             1 -> Switching function 2
- *	             2 -> Switching function 3
- *	             3 -> Switching function 4
- *	             4 -> Switching function A
- *	             5 -> Switching function B
+ *	0 -> Switching function 1
+ *	1 -> Switching function 2
+ *	2 -> Switching function 3
+ *	3 -> Switching function 4
+ *	4 -> Switching function A
+ *	5 -> Switching function B
  *	@returns Source
- *	         0 -> No assignment
- *	         1 -> Measuring circuit A1
- *	         2 -> Measuring circuit A2
- *	         3 -> Measuring circuit B1
- *	         4 -> Measuring circuit B2
- *	         5 -> Measuring circuit A1 (for self monitoring)
- *	         6 -> Measuring circuit A2 (for self monitoring)
- *	         7 -> Measuring circuit B1 (for self monitoring)
- *	         8 -> Measuring circuit B2 (for self monitoring)
+ *	0 -> No assignment
+ *	1 -> Measuring circuit A1
+ *	2 -> Measuring circuit A2
+ *	3 -> Measuring circuit B1
+ *	4 -> Measuring circuit B2
+ *	5 -> Measuring circuit A1 (for self monitoring)
+ *	6 -> Measuring circuit A2 (for self monitoring)
+ *	7 -> Measuring circuit B1 (for self monitoring)
+ *	8 -> Measuring circuit B2 (for self monitoring)
  */
 //--------------------------------------------------------
 Tango::DevShort Tpg300::read_sensor_source(Tango::DevShort argin)
 {
 	Tango::DevShort argout;
-	DEBUG_STREAM << "Tpg300::ReadSensorSource()  - " << device_name << endl;
+	DEBUG_STREAM << "Tpg300::ReadSensorSource()  - " << device_name << std::endl;
 	/*----- PROTECTED REGION ID(Tpg300::read_sensor_source) ENABLED START -----*/
 
 	switch(argin)
@@ -1318,41 +1322,38 @@ Tango::DevShort Tpg300::read_sensor_source(Tango::DevShort argin)
 	}
 
 	/*----- PROTECTED REGION END -----*/	//	Tpg300::read_sensor_source
-
 	return argout;
 }
-
 //--------------------------------------------------------
 /**
- *	Execute the WriteSensorSource command:
+ *	Command WriteSensorSource related method
  *	Description: Set setpoint switching function
  *
  *	@param argin Setpoint, Source
- *	             
- *	             Setpoint
- *	             0 -> Switching function 1
- *	             1 -> Switching function 2
- *	             2 -> Switching function 3
- *	             3 -> Switching function 4
- *	             4 -> Switching function A
- *	             5 -> Switching function B
- *	             
- *	             Source:
- *	             0 -> No assignment
- *	             1 -> Measuring circuit A1
- *	             2 -> Measuring circuit A2
- *	             3 -> Measuring circuit B1
- *	             4 -> Measuring circuit B2
- *	             5 -> Measuring circuit A1 (for self monitoring)
- *	             6 -> Measuring circuit A2 (for self monitoring)
- *	             7 -> Measuring circuit B1 (for self monitoring)
- *	             8 -> Measuring circuit B2 (for self monitoring)
- *	@returns 
+ *	
+ *	Setpoint
+ *	0 -> Switching function 1
+ *	1 -> Switching function 2
+ *	2 -> Switching function 3
+ *	3 -> Switching function 4
+ *	4 -> Switching function A
+ *	5 -> Switching function B
+ *	
+ *	Source:
+ *	0 -> No assignment
+ *	1 -> Measuring circuit A1
+ *	2 -> Measuring circuit A2
+ *	3 -> Measuring circuit B1
+ *	4 -> Measuring circuit B2
+ *	5 -> Measuring circuit A1 (for self monitoring)
+ *	6 -> Measuring circuit A2 (for self monitoring)
+ *	7 -> Measuring circuit B1 (for self monitoring)
+ *	8 -> Measuring circuit B2 (for self monitoring)
  */
 //--------------------------------------------------------
 void Tpg300::write_sensor_source(const Tango::DevVarShortArray *argin)
 {
-	DEBUG_STREAM << "Tpg300::WriteSensorSource()  - " << device_name << endl;
+	DEBUG_STREAM << "Tpg300::WriteSensorSource()  - " << device_name << std::endl;
 	/*----- PROTECTED REGION ID(Tpg300::write_sensor_source) ENABLED START -----*/
 
 	if(argin->length() != 2)
@@ -1387,27 +1388,24 @@ void Tpg300::write_sensor_source(const Tango::DevVarShortArray *argin)
 	}
 
 	/*----- PROTECTED REGION END -----*/	//	Tpg300::write_sensor_source
-
 }
-
 //--------------------------------------------------------
 /**
- *	Execute the RegisterName command:
+ *	Command RegisterName related method
  *	Description: Set channel name
  *
  *	@param argin Channel, Name
- *	             
- *	             Channel
- *	             [0,3]
- *	             
- *	             Name
- *	             max 64 characters
- *	@returns 
+ *	
+ *	Channel
+ *	[0,3]
+ *	
+ *	Name
+ *	max 64 characters
  */
 //--------------------------------------------------------
 void Tpg300::register_name(const Tango::DevVarLongStringArray *argin)
 {
-	DEBUG_STREAM << "Tpg300::RegisterName()  - " << device_name << endl;
+	DEBUG_STREAM << "Tpg300::RegisterName()  - " << device_name << std::endl;
 	/*----- PROTECTED REGION ID(Tpg300::register_name) ENABLED START -----*/
 
 	if(argin->lvalue.length() != 1 || argin->svalue.length() != 1)
@@ -1439,22 +1437,19 @@ void Tpg300::register_name(const Tango::DevVarLongStringArray *argin)
 	}
 
 	/*----- PROTECTED REGION END -----*/	//	Tpg300::register_name
-
 }
-
 //--------------------------------------------------------
 /**
- *	Execute the UnregisterName command:
+ *	Command UnregisterName related method
  *	Description: Unregister channel name
  *
  *	@param argin Channel
- *	             [0,3]
- *	@returns 
+ *	[0,3]
  */
 //--------------------------------------------------------
 void Tpg300::unregister_name(Tango::DevShort argin)
 {
-	DEBUG_STREAM << "Tpg300::UnregisterName()  - " << device_name << endl;
+	DEBUG_STREAM << "Tpg300::UnregisterName()  - " << device_name << std::endl;
 	/*----- PROTECTED REGION ID(Tpg300::unregister_name) ENABLED START -----*/
 
 	switch(argin)
@@ -1477,11 +1472,24 @@ void Tpg300::unregister_name(Tango::DevShort argin)
 	}
 
 	/*----- PROTECTED REGION END -----*/	//	Tpg300::unregister_name
-
+}
+//--------------------------------------------------------
+/**
+ *	Method     : Tpg300::add_dynamic_commands()
+ *	Description: Create the dynamic commands if any
+ *                for specified device.
+ */
+//--------------------------------------------------------
+void Tpg300::add_dynamic_commands()
+{
+	/*----- PROTECTED REGION ID(Tpg300::add_dynamic_commands) ENABLED START -----*/
+	/* clang-format on */
+	//	Add your own code to create and add dynamic commands if any
+	/* clang-format off */
+	/*----- PROTECTED REGION END -----*/	//	Tpg300::add_dynamic_commands
 }
 
-
-	/*----- PROTECTED REGION ID(Tpg300::namespace_ending) ENABLED START -----*/
+/*----- PROTECTED REGION ID(Tpg300::namespace_ending) ENABLED START -----*/
 
 //========================================================
 //	Utilities methods
diff --git a/src/Tpg300.h b/src/Tpg300.h
index 9aaa427c1511b9c0c6555574d4157d5f597d884d..a4c301a30e3381f6664f919fafcd01055c9d220e 100644
--- a/src/Tpg300.h
+++ b/src/Tpg300.h
@@ -40,17 +40,27 @@
 
 #include <tango.h>
 
-/*----- PROTECTED REGION END -----*/
-
+/*----- PROTECTED REGION END -----*/	//	Tpg300.h
+
+#ifdef TANGO_LOG
+	// cppTango after c934adea (Merge branch 'remove-cout-definition' into 'main', 2022-05-23)
+	// nothing to do
+#else
+	// cppTango 9.3-backports and older
+	#define TANGO_LOG       cout
+	#define TANGO_LOG_INFO  cout2
+	#define TANGO_LOG_DEBUG cout3
+#endif // TANGO_LOG
 
 /**
- *	Tpg300 class Description:
- *	Total pressure gauge and controller
+ *  Tpg300 class description:
+ *    Total pressure gauge and controller
  */
 
+
 namespace Tpg300_ns
 {
-	/*----- PROTECTED REGION ID(Tpg300::Additional Class Declarations) ENABLED START -----*/
+/*----- PROTECTED REGION ID(Tpg300::Additional Class Declarations) ENABLED START -----*/
 
 class Tpg300Proxy;
 class Tpg300Channel;
@@ -60,13 +70,10 @@ class Tpg300Thread;
 
 	/*----- PROTECTED REGION END -----*/	//	Tpg300::Additional Class Declarations
 
-
 class Tpg300 : public TANGO_BASE_CLASS
-
 {
 
-
-	/*----- PROTECTED REGION ID(Tpg300::Data Members) ENABLED START -----*/
+/*----- PROTECTED REGION ID(Tpg300::Data Members) ENABLED START -----*/
 
 	omni_mutex* stop_mutex;
 	omni_condition* stop_condition;
@@ -88,17 +95,16 @@ class Tpg300 : public TANGO_BASE_CLASS
 
 	/*----- PROTECTED REGION END -----*/	//	Tpg300::Data Members
 
-
 //	Device property data members
-public:		//	SerialDevice:	
-	string	serialDevice;
+public:
+	//	SerialDevice:	
+	std::string	serialDevice;
 	//	Timeout:	Milliseconds
 	Tango::DevULong	timeout;
 	//	ThreadSleep:	Millisecond
 	Tango::DevULong	threadSleep;
 	//	ProxySleep:	Millisecond
 	Tango::DevULong	proxySleep;
-	
 
 //	Attribute data members
 public:
@@ -122,26 +128,24 @@ public:
 	Tango::DevString	*attr_DeviceStatus_read;
 	Tango::DevBoolean	*attr_SetPointStatus_read;
 
-
-
 //	Constructors and destructors
 public:
 	/**
-	 * Constructs a newly allocated Command object.
+	 * Constructs a newly device object.
 	 *
 	 *	@param cl	Class.
 	 *	@param s 	Device Name
 	 */
-	Tpg300(Tango::DeviceClass *cl,string &s);
+	Tpg300(Tango::DeviceClass *cl,std::string &s);
 	/**
-	 * Constructs a newly allocated Command object.
+	 * Constructs a newly device object.
 	 *
 	 *	@param cl	Class.
 	 *	@param s 	Device Name
 	 */
 	Tpg300(Tango::DeviceClass *cl,const char *s);
 	/**
-	 * Constructs a newly allocated Command object.
+	 * Constructs a newly device object.
 	 *
 	 *	@param cl	Class.
 	 *	@param s 	Device name
@@ -149,27 +153,26 @@ public:
 	 */
 	Tpg300(Tango::DeviceClass *cl,const char *s,const char *d);
 	/**
-	 * The object destructor.
-	 */	
-	~Tpg300() {delete_device();};
-
+	 * The device object destructor.
+	 */
+	~Tpg300();
 
 
 //	Miscellaneous methods
 public:
-	/**
+	/*
 	 *	will be called at device destruction or at init command.
 	 */
 	void delete_device();
-	/**
+	/*
 	 *	Initialize the device
 	 */
 	virtual void init_device();
-	/**
+	/*
 	 *	Read the device properties from database
 	 */
-	 void get_device_property();
-	/**
+	void get_device_property();
+	/*
 	 *	Always executed method before execution command method.
 	 */
 	virtual void always_executed_hook();
@@ -177,330 +180,393 @@ public:
 
 //	Attribute methods
 public:
-	/**
-	 *	Method      : Tpg300::read_attr_hardware()
-	 *	Description : Hardware acquisition for attributes.
+	//--------------------------------------------------------
+	/*
+	 *	Method     : Tpg300::read_attr_hardware()
+	 *	Description: Hardware acquisition for attributes.
 	 */
-	virtual void read_attr_hardware(vector<long> &attr_list);
-
-
-	/**
-	 *	Pressure_0 attribute related methods.
-	 *	Description: 
-	 *
-	 *	Data type:	Tango::DevDouble
-	 *	Attr type:	Scalar 
+	//--------------------------------------------------------
+	virtual void read_attr_hardware(std::vector<long> &attr_list);
+	//--------------------------------------------------------
+	/*
+	 *	Method     : Tpg300::write_attr_hardware()
+	 *	Description: Hardware writing for attributes.
 	 */
+	//--------------------------------------------------------
+	virtual void write_attr_hardware(std::vector<long> &attr_list);
+
+/**
+ *	Attribute Pressure_0 related methods
+ *
+ *
+ *	Data type:	Tango::DevDouble
+ *	Attr type:	Scalar
+ */
 	virtual void read_Pressure_0(Tango::Attribute &attr);
 	virtual bool is_Pressure_0_allowed(Tango::AttReqType type);
-
-
-
-	/**
-	 *	Pressure_1 attribute related methods.
-	 *	Description: 
-	 *
-	 *	Data type:	Tango::DevDouble
-	 *	Attr type:	Scalar 
-	 */
+/**
+ *	Attribute Pressure_1 related methods
+ *
+ *
+ *	Data type:	Tango::DevDouble
+ *	Attr type:	Scalar
+ */
 	virtual void read_Pressure_1(Tango::Attribute &attr);
 	virtual bool is_Pressure_1_allowed(Tango::AttReqType type);
-
-
-
-	/**
-	 *	Pressure_2 attribute related methods.
-	 *	Description: 
-	 *
-	 *	Data type:	Tango::DevDouble
-	 *	Attr type:	Scalar 
-	 */
+/**
+ *	Attribute Pressure_2 related methods
+ *
+ *
+ *	Data type:	Tango::DevDouble
+ *	Attr type:	Scalar
+ */
 	virtual void read_Pressure_2(Tango::Attribute &attr);
 	virtual bool is_Pressure_2_allowed(Tango::AttReqType type);
-
-
-
-	/**
-	 *	Pressure_3 attribute related methods.
-	 *	Description: 
-	 *
-	 *	Data type:	Tango::DevDouble
-	 *	Attr type:	Scalar 
-	 */
+/**
+ *	Attribute Pressure_3 related methods
+ *
+ *
+ *	Data type:	Tango::DevDouble
+ *	Attr type:	Scalar
+ */
 	virtual void read_Pressure_3(Tango::Attribute &attr);
 	virtual bool is_Pressure_3_allowed(Tango::AttReqType type);
-
-
-
-	/**
-	 *	State_0 attribute related methods.
-	 *	Description: 
-	 *
-	 *	Data type:	Tango::DevState
-	 *	Attr type:	Scalar 
-	 */
+/**
+ *	Attribute State_0 related methods
+ *
+ *
+ *	Data type:	Tango::DevState
+ *	Attr type:	Scalar
+ */
 	virtual void read_State_0(Tango::Attribute &attr);
 	virtual bool is_State_0_allowed(Tango::AttReqType type);
-
-
-
-	/**
-	 *	State_1 attribute related methods.
-	 *	Description: 
-	 *
-	 *	Data type:	Tango::DevState
-	 *	Attr type:	Scalar 
-	 */
+/**
+ *	Attribute State_1 related methods
+ *
+ *
+ *	Data type:	Tango::DevState
+ *	Attr type:	Scalar
+ */
 	virtual void read_State_1(Tango::Attribute &attr);
 	virtual bool is_State_1_allowed(Tango::AttReqType type);
-
-
-
-	/**
-	 *	State_2 attribute related methods.
-	 *	Description: 
-	 *
-	 *	Data type:	Tango::DevState
-	 *	Attr type:	Scalar 
-	 */
+/**
+ *	Attribute State_2 related methods
+ *
+ *
+ *	Data type:	Tango::DevState
+ *	Attr type:	Scalar
+ */
 	virtual void read_State_2(Tango::Attribute &attr);
 	virtual bool is_State_2_allowed(Tango::AttReqType type);
-
-
-
-	/**
-	 *	State_3 attribute related methods.
-	 *	Description: 
-	 *
-	 *	Data type:	Tango::DevState
-	 *	Attr type:	Scalar 
-	 */
+/**
+ *	Attribute State_3 related methods
+ *
+ *
+ *	Data type:	Tango::DevState
+ *	Attr type:	Scalar
+ */
 	virtual void read_State_3(Tango::Attribute &attr);
 	virtual bool is_State_3_allowed(Tango::AttReqType type);
-
-
-
-	/**
-	 *	Status_0 attribute related methods.
-	 *	Description: 
-	 *
-	 *	Data type:	Tango::DevString
-	 *	Attr type:	Scalar 
-	 */
+/**
+ *	Attribute Status_0 related methods
+ *
+ *
+ *	Data type:	Tango::DevString
+ *	Attr type:	Scalar
+ */
 	virtual void read_Status_0(Tango::Attribute &attr);
 	virtual bool is_Status_0_allowed(Tango::AttReqType type);
-
-
-
-	/**
-	 *	Status_1 attribute related methods.
-	 *	Description: 
-	 *
-	 *	Data type:	Tango::DevString
-	 *	Attr type:	Scalar 
-	 */
+/**
+ *	Attribute Status_1 related methods
+ *
+ *
+ *	Data type:	Tango::DevString
+ *	Attr type:	Scalar
+ */
 	virtual void read_Status_1(Tango::Attribute &attr);
 	virtual bool is_Status_1_allowed(Tango::AttReqType type);
-
-
-
-	/**
-	 *	Status_2 attribute related methods.
-	 *	Description: 
-	 *
-	 *	Data type:	Tango::DevString
-	 *	Attr type:	Scalar 
-	 */
+/**
+ *	Attribute Status_2 related methods
+ *
+ *
+ *	Data type:	Tango::DevString
+ *	Attr type:	Scalar
+ */
 	virtual void read_Status_2(Tango::Attribute &attr);
 	virtual bool is_Status_2_allowed(Tango::AttReqType type);
-
-
-
-	/**
-	 *	Status_3 attribute related methods.
-	 *	Description: 
-	 *
-	 *	Data type:	Tango::DevString
-	 *	Attr type:	Scalar 
-	 */
+/**
+ *	Attribute Status_3 related methods
+ *
+ *
+ *	Data type:	Tango::DevString
+ *	Attr type:	Scalar
+ */
 	virtual void read_Status_3(Tango::Attribute &attr);
 	virtual bool is_Status_3_allowed(Tango::AttReqType type);
-
-
-
-	/**
-	 *	Name_0 attribute related methods.
-	 *	Description: 
-	 *
-	 *	Data type:	Tango::DevString
-	 *	Attr type:	Scalar 
-	 */
+/**
+ *	Attribute Name_0 related methods
+ *
+ *
+ *	Data type:	Tango::DevString
+ *	Attr type:	Scalar
+ */
 	virtual void read_Name_0(Tango::Attribute &attr);
 	virtual bool is_Name_0_allowed(Tango::AttReqType type);
-
-
-
-	/**
-	 *	Name_1 attribute related methods.
-	 *	Description: 
-	 *
-	 *	Data type:	Tango::DevString
-	 *	Attr type:	Scalar 
-	 */
+/**
+ *	Attribute Name_1 related methods
+ *
+ *
+ *	Data type:	Tango::DevString
+ *	Attr type:	Scalar
+ */
 	virtual void read_Name_1(Tango::Attribute &attr);
 	virtual bool is_Name_1_allowed(Tango::AttReqType type);
-
-
-
-	/**
-	 *	Name_2 attribute related methods.
-	 *	Description: 
-	 *
-	 *	Data type:	Tango::DevString
-	 *	Attr type:	Scalar 
-	 */
+/**
+ *	Attribute Name_2 related methods
+ *
+ *
+ *	Data type:	Tango::DevString
+ *	Attr type:	Scalar
+ */
 	virtual void read_Name_2(Tango::Attribute &attr);
 	virtual bool is_Name_2_allowed(Tango::AttReqType type);
-
-
-
-	/**
-	 *	Name_3 attribute related methods.
-	 *	Description: 
-	 *
-	 *	Data type:	Tango::DevString
-	 *	Attr type:	Scalar 
-	 */
+/**
+ *	Attribute Name_3 related methods
+ *
+ *
+ *	Data type:	Tango::DevString
+ *	Attr type:	Scalar
+ */
 	virtual void read_Name_3(Tango::Attribute &attr);
 	virtual bool is_Name_3_allowed(Tango::AttReqType type);
-
-
-
-	/**
-	 *	DeviceState attribute related methods.
-	 *	Description: 
-	 *
-	 *	Data type:	Tango::DevUChar
-	 *	Attr type:	Scalar 
-	 */
+/**
+ *	Attribute DeviceState related methods
+ *
+ *
+ *	Data type:	Tango::DevUChar
+ *	Attr type:	Scalar
+ */
 	virtual void read_DeviceState(Tango::Attribute &attr);
 	virtual void write_DeviceState(Tango::WAttribute &attr);
 	virtual bool is_DeviceState_allowed(Tango::AttReqType type);
-
-
-
-	/**
-	 *	DeviceStatus attribute related methods.
-	 *	Description: 
-	 *
-	 *	Data type:	Tango::DevString
-	 *	Attr type:	Scalar 
-	 */
+/**
+ *	Attribute DeviceStatus related methods
+ *
+ *
+ *	Data type:	Tango::DevString
+ *	Attr type:	Scalar
+ */
 	virtual void read_DeviceStatus(Tango::Attribute &attr);
 	virtual bool is_DeviceStatus_allowed(Tango::AttReqType type);
-
-
-
-	/**
-	 *	SetPointStatus attribute related methods.
-	 *	Description: 
-	 *
-	 *	Data type:	Tango::DevBoolean
-	 *	Attr type:	Spectrum  max = 6
-	 */
+/**
+ *	Attribute SetPointStatus related methods
+ *
+ *
+ *	Data type:	Tango::DevBoolean
+ *	Attr type:	Spectrum max = 6
+ */
 	virtual void read_SetPointStatus(Tango::Attribute &attr);
 	virtual bool is_SetPointStatus_allowed(Tango::AttReqType type);
 
 
-
+	//--------------------------------------------------------
 	/**
-	 *	Method      : Tpg300::add_dynamic_attributes()
-	 *	Description : Add dynamic attributes if any.
+	 *	Method     : Tpg300::add_dynamic_attributes()
+	 *	Description: Add dynamic attributes if any.
 	 */
-		void add_dynamic_attributes();
+	//--------------------------------------------------------
+	void add_dynamic_attributes();
+
 
-//	Command related methods
-public: 
 
 
+//	Command related methods
+public:
 	/**
-	 *	Command SensorOn related methods.
+	 *	Command SensorOn related method
+	 *	Description: Start measuring channel n
+	 *
+	 *	@param argin Channel
+	 *	[0,3]
 	 */
-	void sensor_on(Tango::DevShort argin);
+	virtual void sensor_on(Tango::DevShort argin);
 	virtual bool is_SensorOn_allowed(const CORBA::Any &any);
-
 	/**
-	 *	Command SensorOff related methods.
+	 *	Command SensorOff related method
+	 *	Description: Stop measuring channel n
+	 *
+	 *	@param argin Channel
+	 *	[0,3]
 	 */
-	void sensor_off(Tango::DevShort argin);
+	virtual void sensor_off(Tango::DevShort argin);
 	virtual bool is_SensorOff_allowed(const CORBA::Any &any);
-
 	/**
-	 *	Command WriteLowerThreshold related methods.
-	 */
-	void write_lower_threshold(const Tango::DevVarDoubleArray *argin);
+	 *	Command WriteLowerThreshold related method
+	 *	Description: Set setpoint lower threshold
+	 *
+	 *	@param argin Setpoint, Pressure
+	 *	
+	 *	Setpoint
+	 *	0 -> Switching function 1
+	 *	1 -> Switching function 2
+	 *	2 -> Switching function 3
+	 *	3 -> Switching function 4
+	 *	4 -> Switching function A
+	 *	5 -> Switching function B
+	 *	
+	 *	Pressure
+	 *	[1.0E-11, 9.9E+3]
+	 */
+	virtual void write_lower_threshold(const Tango::DevVarDoubleArray *argin);
 	virtual bool is_WriteLowerThreshold_allowed(const CORBA::Any &any);
-
 	/**
-	 *	Command ReadLowerThreshold related methods.
-	 */
-	Tango::DevDouble read_lower_threshold(Tango::DevShort argin);
+	 *	Command ReadLowerThreshold related method
+	 *	Description: Get setpoint lower threshold
+	 *
+	 *	@param argin Setpoint
+	 *	0 -> Switching function 1
+	 *	1 -> Switching function 2
+	 *	2 -> Switching function 3
+	 *	3 -> Switching function 4
+	 *	4 -> Switching function A
+	 *	5 -> Switching function B
+	 *	@returns Pressure
+	 */
+	virtual Tango::DevDouble read_lower_threshold(Tango::DevShort argin);
 	virtual bool is_ReadLowerThreshold_allowed(const CORBA::Any &any);
-
 	/**
-	 *	Command WriteUpperThreshold related methods.
-	 */
-	void write_upper_threshold(const Tango::DevVarDoubleArray *argin);
+	 *	Command WriteUpperThreshold related method
+	 *	Description: Set setpoint upper threshold
+	 *
+	 *	@param argin Setpoint, Pressure
+	 *	
+	 *	Setpoint
+	 *	0 -> Switching function 1
+	 *	1 -> Switching function 2
+	 *	2 -> Switching function 3
+	 *	3 -> Switching function 4
+	 *	4 -> Switching function A
+	 *	5 -> Switching function B
+	 *	
+	 *	Pressure
+	 *	[1.0E-11, 9.9E+3]
+	 */
+	virtual void write_upper_threshold(const Tango::DevVarDoubleArray *argin);
 	virtual bool is_WriteUpperThreshold_allowed(const CORBA::Any &any);
-
 	/**
-	 *	Command ReadUpperThreshold related methods.
-	 */
-	Tango::DevDouble read_upper_threshold(Tango::DevShort argin);
+	 *	Command ReadUpperThreshold related method
+	 *	Description: Get setpoint upper threshold
+	 *
+	 *	@param argin Setpoint
+	 *	0 -> Switching function 1
+	 *	1 -> Switching function 2
+	 *	2 -> Switching function 3
+	 *	3 -> Switching function 4
+	 *	4 -> Switching function A
+	 *	5 -> Switching function B
+	 *	@returns Pressure
+	 */
+	virtual Tango::DevDouble read_upper_threshold(Tango::DevShort argin);
 	virtual bool is_ReadUpperThreshold_allowed(const CORBA::Any &any);
-
 	/**
-	 *	Command ReadSensorSource related methods.
-	 */
-	Tango::DevShort read_sensor_source(Tango::DevShort argin);
+	 *	Command ReadSensorSource related method
+	 *	Description: Get setpoint source
+	 *
+	 *	@param argin Setpoint
+	 *	0 -> Switching function 1
+	 *	1 -> Switching function 2
+	 *	2 -> Switching function 3
+	 *	3 -> Switching function 4
+	 *	4 -> Switching function A
+	 *	5 -> Switching function B
+	 *	@returns Source
+	 *	0 -> No assignment
+	 *	1 -> Measuring circuit A1
+	 *	2 -> Measuring circuit A2
+	 *	3 -> Measuring circuit B1
+	 *	4 -> Measuring circuit B2
+	 *	5 -> Measuring circuit A1 (for self monitoring)
+	 *	6 -> Measuring circuit A2 (for self monitoring)
+	 *	7 -> Measuring circuit B1 (for self monitoring)
+	 *	8 -> Measuring circuit B2 (for self monitoring)
+	 */
+	virtual Tango::DevShort read_sensor_source(Tango::DevShort argin);
 	virtual bool is_ReadSensorSource_allowed(const CORBA::Any &any);
-
 	/**
-	 *	Command WriteSensorSource related methods.
-	 */
-	void write_sensor_source(const Tango::DevVarShortArray *argin);
+	 *	Command WriteSensorSource related method
+	 *	Description: Set setpoint switching function
+	 *
+	 *	@param argin Setpoint, Source
+	 *	
+	 *	Setpoint
+	 *	0 -> Switching function 1
+	 *	1 -> Switching function 2
+	 *	2 -> Switching function 3
+	 *	3 -> Switching function 4
+	 *	4 -> Switching function A
+	 *	5 -> Switching function B
+	 *	
+	 *	Source:
+	 *	0 -> No assignment
+	 *	1 -> Measuring circuit A1
+	 *	2 -> Measuring circuit A2
+	 *	3 -> Measuring circuit B1
+	 *	4 -> Measuring circuit B2
+	 *	5 -> Measuring circuit A1 (for self monitoring)
+	 *	6 -> Measuring circuit A2 (for self monitoring)
+	 *	7 -> Measuring circuit B1 (for self monitoring)
+	 *	8 -> Measuring circuit B2 (for self monitoring)
+	 */
+	virtual void write_sensor_source(const Tango::DevVarShortArray *argin);
 	virtual bool is_WriteSensorSource_allowed(const CORBA::Any &any);
-
 	/**
-	 *	Command RegisterName related methods.
-	 */
-	void register_name(const Tango::DevVarLongStringArray *argin);
+	 *	Command RegisterName related method
+	 *	Description: Set channel name
+	 *
+	 *	@param argin Channel, Name
+	 *	
+	 *	Channel
+	 *	[0,3]
+	 *	
+	 *	Name
+	 *	max 64 characters
+	 */
+	virtual void register_name(const Tango::DevVarLongStringArray *argin);
 	virtual bool is_RegisterName_allowed(const CORBA::Any &any);
-
 	/**
-	 *	Command UnregisterName related methods.
+	 *	Command UnregisterName related method
+	 *	Description: Unregister channel name
+	 *
+	 *	@param argin Channel
+	 *	[0,3]
 	 */
-	void unregister_name(Tango::DevShort argin);
+	virtual void unregister_name(Tango::DevShort argin);
 	virtual bool is_UnregisterName_allowed(const CORBA::Any &any);
 
 
+	//--------------------------------------------------------
+	/**
+	 *	Method     : Tpg300::add_dynamic_commands()
+	 *	Description: Add dynamic commands if any.
+	 */
+	//--------------------------------------------------------
+	void add_dynamic_commands();
 
-	/*----- PROTECTED REGION ID(Tpg300::Additional Method prototypes) ENABLED START -----*/
+/*----- PROTECTED REGION ID(Tpg300::Additional Method prototypes) ENABLED START -----*/
 
 	void update_state();
 
 	void update_status();
 
 	/*----- PROTECTED REGION END -----*/	//	Tpg300::Additional Method prototypes
-
 };
 
-	/*----- PROTECTED REGION ID(Tpg300::Additional Classes Definitions) ENABLED START -----*/
+/*----- PROTECTED REGION ID(Tpg300::Additional Classes Definitions) ENABLED START -----*/
 
 	//	Additional Classes definitions
 
 	/*----- PROTECTED REGION END -----*/	//	Tpg300::Additional Classes Definitions
 
-} //	namespace
+}	//	End of namespace
 
-#endif	//	TPG300_H
+#endif   //	Tpg300_H
diff --git a/src/Tpg300.xmi b/src/Tpg300.xmi
index dd88085d07c84ccf977ace7475fa09a24af9fb64..1bb7890f2b609177e745833ea30e1cb82ee04762 100644
--- a/src/Tpg300.xmi
+++ b/src/Tpg300.xmi
@@ -1,10 +1,9 @@
 <?xml version="1.0" encoding="ASCII"?>
 <pogoDsl:PogoSystem xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:pogoDsl="http://www.esrf.fr/tango/pogo/PogoDsl">
-  <classes name="Tpg300">
-    <description description="Total pressure gauge and controller" title="Blzer Tpg 300" sourcePath="/home/lorenzo/src/a/fermi/servers/tpg300/src" language="Cpp" filestogenerate="XMI   file,Code files" hasAbstractCommand="false" hasAbstractAttribute="false">
+  <classes name="Tpg300" pogoRevision="9.7">
+    <description description="Total pressure gauge and controller" title="Blzer Tpg 300" sourcePath="/home/alessio/Sources/git-trees/tpg300/src" language="Cpp" filestogenerate="XMI   file,Code files,Protected Regions" hasMandatoryProperty="false" hasConcreteProperty="true" hasAbstractCommand="false" hasAbstractAttribute="false">
       <inheritances classname="Device_Impl" sourcePath=""/>
       <identification contact="at elettra.trieste.it - marco.demarco" author="marco.demarco" emailDomain="elettra.trieste.it" classFamily="Vacuum" siteSpecific="" platform="All Platforms" bus="Serial Line" manufacturer="Blzer" reference="Tpg 300"/>
-      <comments commandsTable="//================================================================&#xA;//&#xA;//  The following table gives the correspondence&#xA;//  between command and method names.&#xA;//&#xA;//  Command name         |  Method name&#xA;//----------------------------------------------------------------&#xA;//  State                |  Inherited (no method)&#xA;//  Status               |  Inherited (no method)&#xA;//  SensorOn             |  sensor_on&#xA;//  SensorOff            |  sensor_off&#xA;//  WriteLowerThreshold  |  write_lower_threshold&#xA;//  ReadLowerThreshold   |  read_lower_threshold&#xA;//  WriteUpperThreshold  |  write_upper_threshold&#xA;//  ReadUpperThreshold   |  read_upper_threshold&#xA;//  ReadSensorSource     |  read_sensor_source&#xA;//  WriteSensorSource    |  write_sensor_source&#xA;//  RegisterName         |  register_name&#xA;//  UnregisterName       |  unregister_name&#xA;//================================================================"/>
     </description>
     <deviceProperties name="SerialDevice" description="">
       <type xsi:type="pogoDsl:StringType"/>
@@ -26,7 +25,7 @@
       <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
       <DefaultPropValue>1500</DefaultPropValue>
     </deviceProperties>
-    <commands name="State" description="This command gets the device state (stored in its device_state data member) and returns it to the caller." execMethod="dev_state" displayLevel="OPERATOR">
+    <commands name="State" description="This command gets the device state (stored in its device_state data member) and returns it to the caller." execMethod="dev_state" displayLevel="OPERATOR" polledPeriod="0">
       <argin description="none">
         <type xsi:type="pogoDsl:VoidType"/>
       </argin>
@@ -35,7 +34,7 @@
       </argout>
       <status abstract="true" inherited="true" concrete="true"/>
     </commands>
-    <commands name="Status" description="This command gets the device status (stored in its device_status data member) and returns it to the caller." execMethod="dev_status" displayLevel="OPERATOR">
+    <commands name="Status" description="This command gets the device status (stored in its device_status data member) and returns it to the caller." execMethod="dev_status" displayLevel="OPERATOR" polledPeriod="0">
       <argin description="none">
         <type xsi:type="pogoDsl:VoidType"/>
       </argin>
@@ -44,7 +43,7 @@
       </argout>
       <status abstract="true" inherited="true" concrete="true"/>
     </commands>
-    <commands name="SensorOn" description="Start measuring channel n" execMethod="sensor_on" displayLevel="EXPERT">
+    <commands name="SensorOn" description="Start measuring channel n" execMethod="sensor_on" displayLevel="EXPERT" polledPeriod="0">
       <argin description="Channel&#xA;[0,3]">
         <type xsi:type="pogoDsl:ShortType"/>
       </argin>
@@ -53,7 +52,7 @@
       </argout>
       <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
     </commands>
-    <commands name="SensorOff" description="Stop measuring channel n" execMethod="sensor_off" displayLevel="EXPERT">
+    <commands name="SensorOff" description="Stop measuring channel n" execMethod="sensor_off" displayLevel="EXPERT" polledPeriod="0">
       <argin description="Channel&#xA;[0,3]">
         <type xsi:type="pogoDsl:ShortType"/>
       </argin>
@@ -62,7 +61,7 @@
       </argout>
       <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
     </commands>
-    <commands name="WriteLowerThreshold" description="Set setpoint lower threshold" execMethod="write_lower_threshold" displayLevel="EXPERT">
+    <commands name="WriteLowerThreshold" description="Set setpoint lower threshold" execMethod="write_lower_threshold" displayLevel="EXPERT" polledPeriod="0">
       <argin description="Setpoint, Pressure&#xA;&#xA;Setpoint&#xA;0 -> Switching function 1&#xA;1 -> Switching function 2&#xA;2 -> Switching function 3&#xA;3 -> Switching function 4&#xA;4 -> Switching function A&#xA;5 -> Switching function B&#xA;&#xA;Pressure&#xA;[1.0E-11, 9.9E+3]">
         <type xsi:type="pogoDsl:DoubleArrayType"/>
       </argin>
@@ -71,7 +70,7 @@
       </argout>
       <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
     </commands>
-    <commands name="ReadLowerThreshold" description="Get setpoint lower threshold" execMethod="read_lower_threshold" displayLevel="EXPERT">
+    <commands name="ReadLowerThreshold" description="Get setpoint lower threshold" execMethod="read_lower_threshold" displayLevel="EXPERT" polledPeriod="0">
       <argin description="Setpoint&#xA;0 -> Switching function 1&#xA;1 -> Switching function 2&#xA;2 -> Switching function 3&#xA;3 -> Switching function 4&#xA;4 -> Switching function A&#xA;5 -> Switching function B">
         <type xsi:type="pogoDsl:ShortType"/>
       </argin>
@@ -80,7 +79,7 @@
       </argout>
       <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
     </commands>
-    <commands name="WriteUpperThreshold" description="Set setpoint upper threshold" execMethod="write_upper_threshold" displayLevel="EXPERT">
+    <commands name="WriteUpperThreshold" description="Set setpoint upper threshold" execMethod="write_upper_threshold" displayLevel="EXPERT" polledPeriod="0">
       <argin description="Setpoint, Pressure&#xA;&#xA;Setpoint&#xA;0 -> Switching function 1&#xA;1 -> Switching function 2&#xA;2 -> Switching function 3&#xA;3 -> Switching function 4&#xA;4 -> Switching function A&#xA;5 -> Switching function B&#xA;&#xA;Pressure&#xA;[1.0E-11, 9.9E+3]">
         <type xsi:type="pogoDsl:DoubleArrayType"/>
       </argin>
@@ -89,7 +88,7 @@
       </argout>
       <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
     </commands>
-    <commands name="ReadUpperThreshold" description="Get setpoint upper threshold" execMethod="read_upper_threshold" displayLevel="EXPERT">
+    <commands name="ReadUpperThreshold" description="Get setpoint upper threshold" execMethod="read_upper_threshold" displayLevel="EXPERT" polledPeriod="0">
       <argin description="Setpoint&#xA;0 -> Switching function 1&#xA;1 -> Switching function 2&#xA;2 -> Switching function 3&#xA;3 -> Switching function 4&#xA;4 -> Switching function A&#xA;5 -> Switching function B">
         <type xsi:type="pogoDsl:ShortType"/>
       </argin>
@@ -98,7 +97,7 @@
       </argout>
       <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
     </commands>
-    <commands name="ReadSensorSource" description="Get setpoint source" execMethod="read_sensor_source" displayLevel="EXPERT">
+    <commands name="ReadSensorSource" description="Get setpoint source" execMethod="read_sensor_source" displayLevel="EXPERT" polledPeriod="0">
       <argin description="Setpoint&#xA;0 -> Switching function 1&#xA;1 -> Switching function 2&#xA;2 -> Switching function 3&#xA;3 -> Switching function 4&#xA;4 -> Switching function A&#xA;5 -> Switching function B">
         <type xsi:type="pogoDsl:ShortType"/>
       </argin>
@@ -107,7 +106,7 @@
       </argout>
       <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
     </commands>
-    <commands name="WriteSensorSource" description="Set setpoint switching function" execMethod="write_sensor_source" displayLevel="EXPERT">
+    <commands name="WriteSensorSource" description="Set setpoint switching function" execMethod="write_sensor_source" displayLevel="EXPERT" polledPeriod="0">
       <argin description="Setpoint, Source&#xA;&#xA;Setpoint&#xA;0 -> Switching function 1&#xA;1 -> Switching function 2&#xA;2 -> Switching function 3&#xA;3 -> Switching function 4&#xA;4 -> Switching function A&#xA;5 -> Switching function B&#xA;&#xA;Source:&#xA;0 -> No assignment&#xA;1 -> Measuring circuit A1&#xA;2 -> Measuring circuit A2&#xA;3 -> Measuring circuit B1&#xA;4 -> Measuring circuit B2&#xA;5 -> Measuring circuit A1 (for self monitoring)&#xA;6 -> Measuring circuit A2 (for self monitoring)&#xA;7 -> Measuring circuit B1 (for self monitoring)&#xA;8 -> Measuring circuit B2 (for self monitoring)">
         <type xsi:type="pogoDsl:ShortArrayType"/>
       </argin>
@@ -116,7 +115,7 @@
       </argout>
       <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
     </commands>
-    <commands name="RegisterName" description="Set channel name" execMethod="register_name" displayLevel="EXPERT">
+    <commands name="RegisterName" description="Set channel name" execMethod="register_name" displayLevel="EXPERT" polledPeriod="0">
       <argin description="Channel, Name&#xA;&#xA;Channel&#xA;[0,3]&#xA;&#xA;Name&#xA;max 64 characters">
         <type xsi:type="pogoDsl:LongStringArrayType"/>
       </argin>
@@ -125,7 +124,7 @@
       </argout>
       <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
     </commands>
-    <commands name="UnregisterName" description="Unregister channel name" execMethod="unregister_name" displayLevel="EXPERT">
+    <commands name="UnregisterName" description="Unregister channel name" execMethod="unregister_name" displayLevel="EXPERT" polledPeriod="0">
       <argin description="Channel&#xA;[0,3]">
         <type xsi:type="pogoDsl:ShortType"/>
       </argin>
@@ -134,7 +133,7 @@
       </argout>
       <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
     </commands>
-    <attributes name="Pressure_0" attType="Scalar" rwType="READ" displayLevel="OPERATOR" maxX="" maxY="" allocReadMember="true">
+    <attributes name="Pressure_0" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" allocReadMember="true">
       <dataType xsi:type="pogoDsl:DoubleType"/>
       <changeEvent fire="false" libCheckCriteria="true"/>
       <archiveEvent fire="false" libCheckCriteria="true"/>
@@ -142,7 +141,7 @@
       <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
       <properties description="" label="" unit="mbar" standardUnit="mbar" displayUnit="mbar" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
     </attributes>
-    <attributes name="Pressure_1" attType="Scalar" rwType="READ" displayLevel="OPERATOR" maxX="" maxY="" allocReadMember="true">
+    <attributes name="Pressure_1" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" allocReadMember="true">
       <dataType xsi:type="pogoDsl:DoubleType"/>
       <changeEvent fire="false" libCheckCriteria="true"/>
       <archiveEvent fire="false" libCheckCriteria="true"/>
@@ -150,7 +149,7 @@
       <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
       <properties description="" label="" unit="mbar" standardUnit="mbar" displayUnit="mbar" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
     </attributes>
-    <attributes name="Pressure_2" attType="Scalar" rwType="READ" displayLevel="OPERATOR" maxX="" maxY="" allocReadMember="true">
+    <attributes name="Pressure_2" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" allocReadMember="true">
       <dataType xsi:type="pogoDsl:DoubleType"/>
       <changeEvent fire="false" libCheckCriteria="true"/>
       <archiveEvent fire="false" libCheckCriteria="true"/>
@@ -158,7 +157,7 @@
       <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
       <properties description="" label="" unit="mbar" standardUnit="mbar" displayUnit="mbar" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
     </attributes>
-    <attributes name="Pressure_3" attType="Scalar" rwType="READ" displayLevel="OPERATOR" maxX="" maxY="" allocReadMember="true">
+    <attributes name="Pressure_3" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" allocReadMember="true">
       <dataType xsi:type="pogoDsl:DoubleType"/>
       <changeEvent fire="false" libCheckCriteria="true"/>
       <archiveEvent fire="false" libCheckCriteria="true"/>
@@ -166,7 +165,7 @@
       <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
       <properties description="" label="" unit="mbar" standardUnit="mbar" displayUnit="mbar" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
     </attributes>
-    <attributes name="State_0" attType="Scalar" rwType="READ" displayLevel="EXPERT" maxX="" maxY="" allocReadMember="true">
+    <attributes name="State_0" attType="Scalar" rwType="READ" displayLevel="EXPERT" polledPeriod="0" maxX="" maxY="" allocReadMember="true">
       <dataType xsi:type="pogoDsl:StateType"/>
       <changeEvent fire="false" libCheckCriteria="true"/>
       <archiveEvent fire="false" libCheckCriteria="true"/>
@@ -174,7 +173,7 @@
       <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
       <properties description="" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
     </attributes>
-    <attributes name="State_1" attType="Scalar" rwType="READ" displayLevel="EXPERT" maxX="" maxY="" allocReadMember="true">
+    <attributes name="State_1" attType="Scalar" rwType="READ" displayLevel="EXPERT" polledPeriod="0" maxX="" maxY="" allocReadMember="true">
       <dataType xsi:type="pogoDsl:StateType"/>
       <changeEvent fire="false" libCheckCriteria="true"/>
       <archiveEvent fire="false" libCheckCriteria="true"/>
@@ -182,7 +181,7 @@
       <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
       <properties description="" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
     </attributes>
-    <attributes name="State_2" attType="Scalar" rwType="READ" displayLevel="EXPERT" maxX="" maxY="" allocReadMember="true">
+    <attributes name="State_2" attType="Scalar" rwType="READ" displayLevel="EXPERT" polledPeriod="0" maxX="" maxY="" allocReadMember="true">
       <dataType xsi:type="pogoDsl:StateType"/>
       <changeEvent fire="false" libCheckCriteria="true"/>
       <archiveEvent fire="false" libCheckCriteria="true"/>
@@ -190,7 +189,7 @@
       <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
       <properties description="" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
     </attributes>
-    <attributes name="State_3" attType="Scalar" rwType="READ" displayLevel="EXPERT" maxX="" maxY="" allocReadMember="true">
+    <attributes name="State_3" attType="Scalar" rwType="READ" displayLevel="EXPERT" polledPeriod="0" maxX="" maxY="" allocReadMember="true">
       <dataType xsi:type="pogoDsl:StateType"/>
       <changeEvent fire="false" libCheckCriteria="true"/>
       <archiveEvent fire="false" libCheckCriteria="true"/>
@@ -198,7 +197,7 @@
       <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
       <properties description="" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
     </attributes>
-    <attributes name="Status_0" attType="Scalar" rwType="READ" displayLevel="EXPERT" maxX="" maxY="" allocReadMember="true">
+    <attributes name="Status_0" attType="Scalar" rwType="READ" displayLevel="EXPERT" polledPeriod="0" maxX="" maxY="" allocReadMember="true">
       <dataType xsi:type="pogoDsl:StringType"/>
       <changeEvent fire="false" libCheckCriteria="true"/>
       <archiveEvent fire="false" libCheckCriteria="true"/>
@@ -206,7 +205,7 @@
       <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
       <properties description="" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
     </attributes>
-    <attributes name="Status_1" attType="Scalar" rwType="READ" displayLevel="EXPERT" maxX="" maxY="" allocReadMember="true">
+    <attributes name="Status_1" attType="Scalar" rwType="READ" displayLevel="EXPERT" polledPeriod="0" maxX="" maxY="" allocReadMember="true">
       <dataType xsi:type="pogoDsl:StringType"/>
       <changeEvent fire="false" libCheckCriteria="true"/>
       <archiveEvent fire="false" libCheckCriteria="true"/>
@@ -214,7 +213,7 @@
       <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
       <properties description="" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
     </attributes>
-    <attributes name="Status_2" attType="Scalar" rwType="READ" displayLevel="EXPERT" maxX="" maxY="" allocReadMember="true">
+    <attributes name="Status_2" attType="Scalar" rwType="READ" displayLevel="EXPERT" polledPeriod="0" maxX="" maxY="" allocReadMember="true">
       <dataType xsi:type="pogoDsl:StringType"/>
       <changeEvent fire="false" libCheckCriteria="true"/>
       <archiveEvent fire="false" libCheckCriteria="true"/>
@@ -222,7 +221,7 @@
       <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
       <properties description="" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
     </attributes>
-    <attributes name="Status_3" attType="Scalar" rwType="READ" displayLevel="EXPERT" maxX="" maxY="" allocReadMember="true">
+    <attributes name="Status_3" attType="Scalar" rwType="READ" displayLevel="EXPERT" polledPeriod="0" maxX="" maxY="" allocReadMember="true">
       <dataType xsi:type="pogoDsl:StringType"/>
       <changeEvent fire="false" libCheckCriteria="true"/>
       <archiveEvent fire="false" libCheckCriteria="true"/>
@@ -230,7 +229,7 @@
       <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
       <properties description="" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
     </attributes>
-    <attributes name="Name_0" attType="Scalar" rwType="READ" displayLevel="EXPERT" maxX="" maxY="" allocReadMember="true">
+    <attributes name="Name_0" attType="Scalar" rwType="READ" displayLevel="EXPERT" polledPeriod="0" maxX="" maxY="" allocReadMember="true">
       <dataType xsi:type="pogoDsl:StringType"/>
       <changeEvent fire="false" libCheckCriteria="true"/>
       <archiveEvent fire="false" libCheckCriteria="true"/>
@@ -238,7 +237,7 @@
       <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
       <properties description="" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
     </attributes>
-    <attributes name="Name_1" attType="Scalar" rwType="READ" displayLevel="EXPERT" maxX="" maxY="" allocReadMember="true">
+    <attributes name="Name_1" attType="Scalar" rwType="READ" displayLevel="EXPERT" polledPeriod="0" maxX="" maxY="" allocReadMember="true">
       <dataType xsi:type="pogoDsl:StringType"/>
       <changeEvent fire="false" libCheckCriteria="true"/>
       <archiveEvent fire="false" libCheckCriteria="true"/>
@@ -246,7 +245,7 @@
       <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
       <properties description="" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
     </attributes>
-    <attributes name="Name_2" attType="Scalar" rwType="READ" displayLevel="EXPERT" maxX="" maxY="" allocReadMember="true">
+    <attributes name="Name_2" attType="Scalar" rwType="READ" displayLevel="EXPERT" polledPeriod="0" maxX="" maxY="" allocReadMember="true">
       <dataType xsi:type="pogoDsl:StringType"/>
       <changeEvent fire="false" libCheckCriteria="true"/>
       <archiveEvent fire="false" libCheckCriteria="true"/>
@@ -254,7 +253,7 @@
       <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
       <properties description="" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
     </attributes>
-    <attributes name="Name_3" attType="Scalar" rwType="READ" displayLevel="EXPERT" maxX="" maxY="" allocReadMember="true">
+    <attributes name="Name_3" attType="Scalar" rwType="READ" displayLevel="EXPERT" polledPeriod="0" maxX="" maxY="" allocReadMember="true">
       <dataType xsi:type="pogoDsl:StringType"/>
       <changeEvent fire="false" libCheckCriteria="true"/>
       <archiveEvent fire="false" libCheckCriteria="true"/>
@@ -262,7 +261,7 @@
       <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
       <properties description="" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
     </attributes>
-    <attributes name="DeviceState" attType="Scalar" rwType="READ_WRITE" displayLevel="OPERATOR" maxX="" maxY="" memorized="true" allocReadMember="true">
+    <attributes name="DeviceState" attType="Scalar" rwType="READ_WRITE" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" memorized="true" allocReadMember="true">
       <dataType xsi:type="pogoDsl:UCharType"/>
       <changeEvent fire="false" libCheckCriteria="true"/>
       <archiveEvent fire="false" libCheckCriteria="true"/>
@@ -270,7 +269,7 @@
       <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
       <properties description="" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
     </attributes>
-    <attributes name="DeviceStatus" attType="Scalar" rwType="READ" displayLevel="OPERATOR" maxX="" maxY="" allocReadMember="true">
+    <attributes name="DeviceStatus" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" allocReadMember="true">
       <dataType xsi:type="pogoDsl:StringType"/>
       <changeEvent fire="false" libCheckCriteria="true"/>
       <archiveEvent fire="false" libCheckCriteria="true"/>
@@ -278,7 +277,7 @@
       <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
       <properties description="" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
     </attributes>
-    <attributes name="SetPointStatus" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" maxX="6" maxY="" allocReadMember="true">
+    <attributes name="SetPointStatus" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="6" maxY="" allocReadMember="true">
       <dataType xsi:type="pogoDsl:BooleanType"/>
       <changeEvent fire="false" libCheckCriteria="true"/>
       <archiveEvent fire="false" libCheckCriteria="true"/>
@@ -298,6 +297,6 @@
     <states name="FAULT" description="">
       <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
     </states>
-    <preferences docHome="./doc_html" makefileHome="/usr/local/tango-7.2.6/share/pogo/preferences"/>
+    <preferences docHome="./doc_html" makefileHome="$(TANGO_HOME)"/>
   </classes>
 </pogoDsl:PogoSystem>
diff --git a/src/Tpg300Class.cpp b/src/Tpg300Class.cpp
index cd2530d884c9dfbd90ecfd38e52daca728c5eacf..ff691ddaeb9b607ad80dc3b6483f1bba49282a2b 100644
--- a/src/Tpg300Class.cpp
+++ b/src/Tpg300Class.cpp
@@ -11,7 +11,7 @@ static const char *HttpServer = "http://www.esrf.eu/computing/cs/tango/tango_doc
 // description : C++ source for the Tpg300Class. A singleton
 //               class derived from DeviceClass. It implements the
 //               command list and all properties and methods required
-//               by the «name» once per process.
+//               by the �name� once per process.
 //
 // project :     Blzer Tpg 300.
 //
@@ -41,7 +41,7 @@ static const char *HttpServer = "http://www.esrf.eu/computing/cs/tango/tango_doc
 
 #include <Tpg300Class.h>
 
-/*----- PROTECTED REGION END -----*/
+/*----- PROTECTED REGION END -----*/	//	Tpg300Class.cpp
 
 //-------------------------------------------------------------------
 /**
@@ -61,39 +61,38 @@ __declspec(dllexport)
 	}
 }
 
-
 namespace Tpg300_ns
 {
-
-
 //===================================================================
 //	Initialize pointer for singleton pattern
 //===================================================================
 Tpg300Class *Tpg300Class::_instance = NULL;
 
+//===================================================================
+//	Class constants
+//===================================================================
+const long SetPointStatusAttrib::X_DATA_SIZE;
 //--------------------------------------------------------
 /**
- * method : 		Tpg300Class::Tpg300Class(string &s)
+ * method : 		Tpg300Class::Tpg300Class(std::string &s)
  * description : 	constructor for the Tpg300Class
  *
  * @param s	The class name
  */
 //--------------------------------------------------------
-Tpg300Class::Tpg300Class(string &s):DeviceClass(s)
+Tpg300Class::Tpg300Class(std::string &s):Tango::DeviceClass(s)
 {
-	cout2 << "Entering Tpg300Class constructor" << endl;
+	TANGO_LOG_INFO << "Entering Tpg300Class constructor" << std::endl;
 	set_default_property();
-	get_class_property();
 	write_class_property();
 
-	/*----- PROTECTED REGION ID(Tpg300::Class::constructor) ENABLED START -----*/
+	/*----- PROTECTED REGION ID(Tpg300Class::constructor) ENABLED START -----*/
 
-	/*----- PROTECTED REGION END -----*/	//	Tpg300::Class::constructor
+	/*----- PROTECTED REGION END -----*/	//	Tpg300Class::constructor
 
-	cout2 << "Leaving Tpg300Class constructor" << endl;
+	TANGO_LOG_INFO << "Leaving Tpg300Class constructor" << std::endl;
 }
 
-
 //--------------------------------------------------------
 /**
  * method : 		Tpg300Class::~Tpg300Class()
@@ -102,9 +101,9 @@ Tpg300Class::Tpg300Class(string &s):DeviceClass(s)
 //--------------------------------------------------------
 Tpg300Class::~Tpg300Class()
 {
-	/*----- PROTECTED REGION ID(Tpg300::Class::destructor) ENABLED START -----*/
+	/*----- PROTECTED REGION ID(Tpg300Class::destructor) ENABLED START -----*/
 
-	/*----- PROTECTED REGION END -----*/	//	Tpg300::Class::destructor
+	/*----- PROTECTED REGION END -----*/	//	Tpg300Class::destructor
 
 	_instance = NULL;
 }
@@ -125,14 +124,14 @@ Tpg300Class *Tpg300Class::init(const char *name)
 	{
 		try
 		{
-			string s(name);
+			std::string s(name);
 			_instance = new Tpg300Class(s);
 		}
-		catch (bad_alloc)
+		catch (std::bad_alloc &)
 		{
 			throw;
-		}		
-	}		
+		}
+	}
 	return _instance;
 }
 
@@ -147,7 +146,7 @@ Tpg300Class *Tpg300Class::instance()
 {
 	if (_instance == NULL)
 	{
-		cerr << "Class is not initialised !!" << endl;
+		std::cerr << "Class is not initialized !!" << std::endl;
 		exit(-1);
 	}
 	return _instance;
@@ -155,7 +154,6 @@ Tpg300Class *Tpg300Class::instance()
 
 
 
-
 //===================================================================
 //	Command execution method calls
 //===================================================================
@@ -172,13 +170,13 @@ Tpg300Class *Tpg300Class::instance()
 //--------------------------------------------------------
 CORBA::Any *SensorOnClass::execute(Tango::DeviceImpl *device, const CORBA::Any &in_any)
 {
-	cout2 << "SensorOnClass::execute(): arrived" << endl;
-
-	Tango::DevShort	argin;
+	TANGO_LOG_INFO << "SensorOnClass::execute(): arrived" << std::endl;
+	Tango::DevShort argin;
 	extract(in_any, argin);
 	((static_cast<Tpg300 *>(device))->sensor_on(argin));
 	return new CORBA::Any();
 }
+
 //--------------------------------------------------------
 /**
  * method : 		SensorOffClass::execute()
@@ -192,13 +190,13 @@ CORBA::Any *SensorOnClass::execute(Tango::DeviceImpl *device, const CORBA::Any &
 //--------------------------------------------------------
 CORBA::Any *SensorOffClass::execute(Tango::DeviceImpl *device, const CORBA::Any &in_any)
 {
-	cout2 << "SensorOffClass::execute(): arrived" << endl;
-
-	Tango::DevShort	argin;
+	TANGO_LOG_INFO << "SensorOffClass::execute(): arrived" << std::endl;
+	Tango::DevShort argin;
 	extract(in_any, argin);
 	((static_cast<Tpg300 *>(device))->sensor_off(argin));
 	return new CORBA::Any();
 }
+
 //--------------------------------------------------------
 /**
  * method : 		WriteLowerThresholdClass::execute()
@@ -212,13 +210,13 @@ CORBA::Any *SensorOffClass::execute(Tango::DeviceImpl *device, const CORBA::Any
 //--------------------------------------------------------
 CORBA::Any *WriteLowerThresholdClass::execute(Tango::DeviceImpl *device, const CORBA::Any &in_any)
 {
-	cout2 << "WriteLowerThresholdClass::execute(): arrived" << endl;
-
-	const Tango::DevVarDoubleArray	*argin;
+	TANGO_LOG_INFO << "WriteLowerThresholdClass::execute(): arrived" << std::endl;
+	const Tango::DevVarDoubleArray *argin;
 	extract(in_any, argin);
 	((static_cast<Tpg300 *>(device))->write_lower_threshold(argin));
 	return new CORBA::Any();
 }
+
 //--------------------------------------------------------
 /**
  * method : 		ReadLowerThresholdClass::execute()
@@ -232,12 +230,12 @@ CORBA::Any *WriteLowerThresholdClass::execute(Tango::DeviceImpl *device, const C
 //--------------------------------------------------------
 CORBA::Any *ReadLowerThresholdClass::execute(Tango::DeviceImpl *device, const CORBA::Any &in_any)
 {
-	cout2 << "ReadLowerThresholdClass::execute(): arrived" << endl;
-
-	Tango::DevShort	argin;
+	TANGO_LOG_INFO << "ReadLowerThresholdClass::execute(): arrived" << std::endl;
+	Tango::DevShort argin;
 	extract(in_any, argin);
 	return insert((static_cast<Tpg300 *>(device))->read_lower_threshold(argin));
 }
+
 //--------------------------------------------------------
 /**
  * method : 		WriteUpperThresholdClass::execute()
@@ -251,13 +249,13 @@ CORBA::Any *ReadLowerThresholdClass::execute(Tango::DeviceImpl *device, const CO
 //--------------------------------------------------------
 CORBA::Any *WriteUpperThresholdClass::execute(Tango::DeviceImpl *device, const CORBA::Any &in_any)
 {
-	cout2 << "WriteUpperThresholdClass::execute(): arrived" << endl;
-
-	const Tango::DevVarDoubleArray	*argin;
+	TANGO_LOG_INFO << "WriteUpperThresholdClass::execute(): arrived" << std::endl;
+	const Tango::DevVarDoubleArray *argin;
 	extract(in_any, argin);
 	((static_cast<Tpg300 *>(device))->write_upper_threshold(argin));
 	return new CORBA::Any();
 }
+
 //--------------------------------------------------------
 /**
  * method : 		ReadUpperThresholdClass::execute()
@@ -271,12 +269,12 @@ CORBA::Any *WriteUpperThresholdClass::execute(Tango::DeviceImpl *device, const C
 //--------------------------------------------------------
 CORBA::Any *ReadUpperThresholdClass::execute(Tango::DeviceImpl *device, const CORBA::Any &in_any)
 {
-	cout2 << "ReadUpperThresholdClass::execute(): arrived" << endl;
-
-	Tango::DevShort	argin;
+	TANGO_LOG_INFO << "ReadUpperThresholdClass::execute(): arrived" << std::endl;
+	Tango::DevShort argin;
 	extract(in_any, argin);
 	return insert((static_cast<Tpg300 *>(device))->read_upper_threshold(argin));
 }
+
 //--------------------------------------------------------
 /**
  * method : 		ReadSensorSourceClass::execute()
@@ -290,12 +288,12 @@ CORBA::Any *ReadUpperThresholdClass::execute(Tango::DeviceImpl *device, const CO
 //--------------------------------------------------------
 CORBA::Any *ReadSensorSourceClass::execute(Tango::DeviceImpl *device, const CORBA::Any &in_any)
 {
-	cout2 << "ReadSensorSourceClass::execute(): arrived" << endl;
-
-	Tango::DevShort	argin;
+	TANGO_LOG_INFO << "ReadSensorSourceClass::execute(): arrived" << std::endl;
+	Tango::DevShort argin;
 	extract(in_any, argin);
 	return insert((static_cast<Tpg300 *>(device))->read_sensor_source(argin));
 }
+
 //--------------------------------------------------------
 /**
  * method : 		WriteSensorSourceClass::execute()
@@ -309,13 +307,13 @@ CORBA::Any *ReadSensorSourceClass::execute(Tango::DeviceImpl *device, const CORB
 //--------------------------------------------------------
 CORBA::Any *WriteSensorSourceClass::execute(Tango::DeviceImpl *device, const CORBA::Any &in_any)
 {
-	cout2 << "WriteSensorSourceClass::execute(): arrived" << endl;
-
-	const Tango::DevVarShortArray	*argin;
+	TANGO_LOG_INFO << "WriteSensorSourceClass::execute(): arrived" << std::endl;
+	const Tango::DevVarShortArray *argin;
 	extract(in_any, argin);
 	((static_cast<Tpg300 *>(device))->write_sensor_source(argin));
 	return new CORBA::Any();
 }
+
 //--------------------------------------------------------
 /**
  * method : 		RegisterNameClass::execute()
@@ -329,13 +327,13 @@ CORBA::Any *WriteSensorSourceClass::execute(Tango::DeviceImpl *device, const COR
 //--------------------------------------------------------
 CORBA::Any *RegisterNameClass::execute(Tango::DeviceImpl *device, const CORBA::Any &in_any)
 {
-	cout2 << "RegisterNameClass::execute(): arrived" << endl;
-
-	const Tango::DevVarLongStringArray	*argin;
+	TANGO_LOG_INFO << "RegisterNameClass::execute(): arrived" << std::endl;
+	const Tango::DevVarLongStringArray *argin;
 	extract(in_any, argin);
 	((static_cast<Tpg300 *>(device))->register_name(argin));
 	return new CORBA::Any();
 }
+
 //--------------------------------------------------------
 /**
  * method : 		UnregisterNameClass::execute()
@@ -349,30 +347,24 @@ CORBA::Any *RegisterNameClass::execute(Tango::DeviceImpl *device, const CORBA::A
 //--------------------------------------------------------
 CORBA::Any *UnregisterNameClass::execute(Tango::DeviceImpl *device, const CORBA::Any &in_any)
 {
-	cout2 << "UnregisterNameClass::execute(): arrived" << endl;
-
-	Tango::DevShort	argin;
+	TANGO_LOG_INFO << "UnregisterNameClass::execute(): arrived" << std::endl;
+	Tango::DevShort argin;
 	extract(in_any, argin);
 	((static_cast<Tpg300 *>(device))->unregister_name(argin));
 	return new CORBA::Any();
 }
 
 
-
-
 //===================================================================
 //	Properties management
 //===================================================================
-
 //--------------------------------------------------------
 /**
- * method : 		Tpg300Class::get_class_property
- * description : 	Get the class property for specified name.
- *
- * @param	name  The property name
+ *	Method     : Tpg300Class::get_class_property()
+ *	Description: Get the class property for specified name.
  */
 //--------------------------------------------------------
-Tango::DbDatum Tpg300Class::get_class_property(string &prop_name)
+Tango::DbDatum Tpg300Class::get_class_property(std::string &prop_name)
 {
 	for (unsigned int i=0 ; i<cl_prop.size() ; i++)
 		if (cl_prop[i].name == prop_name)
@@ -381,14 +373,13 @@ Tango::DbDatum Tpg300Class::get_class_property(string &prop_name)
 	return Tango::DbDatum(prop_name);
 }
 
-
 //--------------------------------------------------------
 /**
- *	Method      : Tpg300::Tpg300Class::get_default_device_property()()
- *	Description : Return the default value for device property.
+ *	Method     : Tpg300Class::get_default_device_property()
+ *	Description: Return the default value for device property.
  */
 //--------------------------------------------------------
-Tango::DbDatum Tpg300Class::get_default_device_property(string &prop_name)
+Tango::DbDatum Tpg300Class::get_default_device_property(std::string &prop_name)
 {
 	for (unsigned int i=0 ; i<dev_def_prop.size() ; i++)
 		if (dev_def_prop[i].name == prop_name)
@@ -397,14 +388,13 @@ Tango::DbDatum Tpg300Class::get_default_device_property(string &prop_name)
 	return Tango::DbDatum(prop_name);
 }
 
-
 //--------------------------------------------------------
 /**
- *	Method      : Tpg300::Tpg300Class::get_default_class_property()()
- *	Description : Return the default value for class property.
+ *	Method     : Tpg300Class::get_default_class_property()
+ *	Description: Return the default value for class property.
  */
 //--------------------------------------------------------
-Tango::DbDatum Tpg300Class::get_default_class_property(string &prop_name)
+Tango::DbDatum Tpg300Class::get_default_class_property(std::string &prop_name)
 {
 	for (unsigned int i=0 ; i<cl_def_prop.size() ; i++)
 		if (cl_def_prop[i].name == prop_name)
@@ -416,38 +406,26 @@ Tango::DbDatum Tpg300Class::get_default_class_property(string &prop_name)
 
 //--------------------------------------------------------
 /**
- *	Method      : Tpg300::Tpg300Class::get_class_property()
- *	Description : //	Add your own code to initialize
- */
-//--------------------------------------------------------
-void Tpg300Class::get_class_property()
-{
-}
-
-
-//--------------------------------------------------------
-/**
- *	Method      : Tpg300::Tpg300Class::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.
+ *	Method     : Tpg300Class::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 Tpg300Class::set_default_property()
 {
-	string	prop_name;
-	string	prop_desc;
-	string	prop_def;
-	vector<string>	vect_data;
-	
-	//	Set Default Class Properties
+	std::string	prop_name;
+	std::string	prop_desc;
+	std::string	prop_def;
+	std::vector<std::string>	vect_data;
 
-	//	Set Default Device Properties
+	//	Set Default Class Properties
 
+	//	Set Default device Properties
 	prop_name = "SerialDevice";
 	prop_desc = "";
-	prop_def  = "undefined\n";
+	prop_def  = "undefined";
 	vect_data.clear();
 	vect_data.push_back("undefined");
 	if (prop_def.length()>0)
@@ -459,10 +437,9 @@ void Tpg300Class::set_default_property()
 	}
 	else
 		add_wiz_dev_prop(prop_name, prop_desc);
-
 	prop_name = "Timeout";
 	prop_desc = "Milliseconds";
-	prop_def  = "2500\n";
+	prop_def  = "2500";
 	vect_data.clear();
 	vect_data.push_back("2500");
 	if (prop_def.length()>0)
@@ -474,10 +451,9 @@ void Tpg300Class::set_default_property()
 	}
 	else
 		add_wiz_dev_prop(prop_name, prop_desc);
-
 	prop_name = "ThreadSleep";
 	prop_desc = "Millisecond";
-	prop_def  = "1500\n";
+	prop_def  = "1500";
 	vect_data.clear();
 	vect_data.push_back("1500");
 	if (prop_def.length()>0)
@@ -489,10 +465,9 @@ void Tpg300Class::set_default_property()
 	}
 	else
 		add_wiz_dev_prop(prop_name, prop_desc);
-
 	prop_name = "ProxySleep";
 	prop_desc = "Millisecond";
-	prop_def  = "1500\n";
+	prop_def  = "1500";
 	vect_data.clear();
 	vect_data.push_back("1500");
 	if (prop_def.length()>0)
@@ -506,11 +481,10 @@ void Tpg300Class::set_default_property()
 		add_wiz_dev_prop(prop_name, prop_desc);
 }
 
-
 //--------------------------------------------------------
 /**
- *	Method      : Tpg300::Tpg300Class::write_class_property()
- *	Description : Set class description fields as property in database
+ *	Method     : Tpg300Class::write_class_property()
+ *	Description: Set class description fields as property in database
  */
 //--------------------------------------------------------
 void Tpg300Class::write_class_property()
@@ -520,124 +494,26 @@ void Tpg300Class::write_class_property()
 		return;
 
 	Tango::DbData	data;
-	string	classname = get_name();
-	string	header;
-	string::size_type	start, end;
+	std::string	classname = get_name();
+	std::string	header;
 
 	//	Put title
 	Tango::DbDatum	title("ProjectTitle");
-	string	str_title("Blzer Tpg 300");
+	std::string	str_title("Blzer Tpg 300");
 	title << str_title;
 	data.push_back(title);
 
 	//	Put Description
 	Tango::DbDatum	description("Description");
-	vector<string>	str_desc;
+	std::vector<std::string>	str_desc;
 	str_desc.push_back("Total pressure gauge and controller");
 	description << str_desc;
 	data.push_back(description);
-		
-	//	put cvs or svn location
-	string	filename("Tpg300");
-	filename += "Class.cpp";
-	
-	// check for cvs information
-	string	src_path(CvsPath);
-	start = src_path.find("/");
-	if (start!=string::npos)
-	{
-		end   = src_path.find(filename);
-		if (end>start)
-		{
-			string	strloc = src_path.substr(start, end-start);
-			//	Check if specific repository
-			start = strloc.find("/cvsroot/");
-			if (start!=string::npos && start>0)
-			{
-				string	repository = strloc.substr(0, start);
-				if (repository.find("/segfs/")!=string::npos)
-					strloc = "ESRF:" + strloc.substr(start, strloc.length()-start);
-			}
-			Tango::DbDatum	cvs_loc("cvs_location");
-			cvs_loc << strloc;
-			data.push_back(cvs_loc);
-		}
-	}
-	// check for svn information
-	else
-	{
-		string	src_path(SvnPath);
-		start = src_path.find("://");
-		if (start!=string::npos)
-		{
-			end = src_path.find(filename);
-			if (end>start)
-			{
-				header = "$HeadURL: ";
-				start = header.length();
-				string	strloc = src_path.substr(start, (end-start));
-				
-				Tango::DbDatum	svn_loc("svn_location");
-				svn_loc << strloc;
-				data.push_back(svn_loc);
-			}
-		}
-	}
-
-	//	Get CVS or SVN revision tag
-	
-	// CVS tag
-	string	tagname(TagName);
-	header = "$Name: ";
-	start = header.length();
-	string	endstr(" $");
-	
-	end   = tagname.find(endstr);
-	if (end!=string::npos && end>start)
-	{
-		string	strtag = tagname.substr(start, end-start);
-		Tango::DbDatum	cvs_tag("cvs_tag");
-		cvs_tag << strtag;
-		data.push_back(cvs_tag);
-	}
-	
-	// SVN tag
-	string	svnpath(SvnPath);
-	header = "$HeadURL: ";
-	start = header.length();
-	
-	end   = svnpath.find(endstr);
-	if (end!=string::npos && end>start)
-	{
-		string	strloc = svnpath.substr(start, end-start);
-		
-		string tagstr ("/tags/");
-		start = strloc.find(tagstr);
-		if ( start!=string::npos )
-		{
-			start = start + tagstr.length();
-			end   = strloc.find(filename);
-			string	strtag = strloc.substr(start, end-start-1);
-			
-			Tango::DbDatum	svn_tag("svn_tag");
-			svn_tag << strtag;
-			data.push_back(svn_tag);
-		}
-	}
-
-	//	Get URL location
-	string	httpServ(HttpServer);
-	if (httpServ.length()>0)
-	{
-		Tango::DbDatum	db_doc_url("doc_url");
-		db_doc_url << httpServ;
-		data.push_back(db_doc_url);
-	}
 
 	//  Put inheritance
 	Tango::DbDatum	inher_datum("InheritedFrom");
-	vector<string> inheritance;
-	inheritance.push_back("Device_Impl");
+	std::vector<std::string> inheritance;
+	inheritance.push_back("TANGO_BASE_CLASS");
 	inher_datum << inheritance;
 	data.push_back(inher_datum);
 
@@ -645,37 +521,30 @@ void Tpg300Class::write_class_property()
 	get_db_class()->put_property(data);
 }
 
-
-
-
 //===================================================================
 //	Factory methods
 //===================================================================
 
-
 //--------------------------------------------------------
 /**
- * method : 		Tpg300Class::device_factory
- * description : 	Create the device object(s)
- *                  and store them in the device list
- *
- * @param	*devlist_ptr	The device name list
+ *	Method     : Tpg300Class::device_factory()
+ *	Description: Create the device object(s)
+ *                and store them in the device list
  */
 //--------------------------------------------------------
 void Tpg300Class::device_factory(const Tango::DevVarStringArray *devlist_ptr)
 {
-
-	/*----- PROTECTED REGION ID(Tpg300::Class::device_factory_before) ENABLED START -----*/
+	/*----- PROTECTED REGION ID(Tpg300Class::device_factory_before) ENABLED START -----*/
 
 	//	Add your own code
 
-	/*----- PROTECTED REGION END -----*/	//	Tpg300::Class::device_factory_before
+	/*----- PROTECTED REGION END -----*/	//	Tpg300Class::device_factory_before
 
 	//	Create devices and add it into the device list
 	for (unsigned long i=0 ; i<devlist_ptr->length() ; i++)
 	{
-		cout4 << "Device name : " << (*devlist_ptr)[i].in() << endl;
-		device_list.push_back(new Tpg300(this, (*devlist_ptr)[i]));							 
+		TANGO_LOG_DEBUG << "Device name : " << (*devlist_ptr)[i].in() << std::endl;
+		device_list.push_back(new Tpg300(this, (*devlist_ptr)[i]));
 	}
 
 	//	Manage dynamic attributes if any
@@ -695,571 +564,508 @@ void Tpg300Class::device_factory(const Tango::DevVarStringArray *devlist_ptr)
 			export_device(dev, dev->get_name().c_str());
 	}
 
-	/*----- PROTECTED REGION ID(Tpg300::Class::device_factory_after) ENABLED START -----*/
+	/*----- PROTECTED REGION ID(Tpg300Class::device_factory_after) ENABLED START -----*/
 
 	//	Add your own code
 
-	/*----- PROTECTED REGION END -----*/	//	Tpg300::Class::device_factory_after
-
-	
+	/*----- PROTECTED REGION END -----*/	//	Tpg300Class::device_factory_after
 }
-
-
 //--------------------------------------------------------
 /**
- *	Method      : Tpg300::Tpg300Class::attribute_factory()
- *	Description : Create the attribute object(s)
- *	              and store them in the attribute list
+ *	Method     : Tpg300Class::attribute_factory()
+ *	Description: Create the attribute object(s)
+ *                and store them in the attribute list
  */
 //--------------------------------------------------------
-void Tpg300Class::attribute_factory(vector<Tango::Attr *> &att_list)
+void Tpg300Class::attribute_factory(std::vector<Tango::Attr *> &att_list)
 {
-	/*----- PROTECTED REGION ID(Tpg300::Class::attribute_factory_before) ENABLED START -----*/
+	/*----- PROTECTED REGION ID(Tpg300Class::attribute_factory_before) ENABLED START -----*/
 
 	//	Add your own code
 
-	/*----- PROTECTED REGION END -----*/	//	Tpg300::Class::attribute_factory_before
-
-
+	/*----- PROTECTED REGION END -----*/	//	Tpg300Class::attribute_factory_before
 	//	Attribute : Pressure_0
 	Pressure_0Attrib	*pressure_0 = new Pressure_0Attrib();
 	Tango::UserDefaultAttrProp	pressure_0_prop;
-	//	description	not set for	Pressure_0
-	//	label	not set for	Pressure_0
+	//	description	not set for Pressure_0
+	//	label	not set for Pressure_0
 	pressure_0_prop.set_unit("mbar");
 	pressure_0_prop.set_standard_unit("mbar");
 	pressure_0_prop.set_display_unit("mbar");
-	//	format	not set for	Pressure_0
-	//	max_value	not set for	Pressure_0
-	//	min_value	not set for	Pressure_0
-	//	max_alarm	not set for	Pressure_0
-	//	min_alarm	not set for	Pressure_0
-	//	max_warning	not set for	Pressure_0
-	//	min_warning	not set for	Pressure_0
-	//	delta_t	not set for	Pressure_0
-	//	delta_val	not set for	Pressure_0
+	//	format	not set for Pressure_0
+	//	max_value	not set for Pressure_0
+	//	min_value	not set for Pressure_0
+	//	max_alarm	not set for Pressure_0
+	//	min_alarm	not set for Pressure_0
+	//	max_warning	not set for Pressure_0
+	//	min_warning	not set for Pressure_0
+	//	delta_t	not set for Pressure_0
+	//	delta_val	not set for Pressure_0
 	pressure_0->set_default_properties(pressure_0_prop);
 	//	Not Polled
 	pressure_0->set_disp_level(Tango::OPERATOR);
-	//	Not memorized
-
-	//	Pressure_0 does not fire change event
-	//	Pressure_0 does not fire archive event
-	//	Pressure_0 does not fire data_ready event
+	//	Not Memorized
 	att_list.push_back(pressure_0);
 
 	//	Attribute : Pressure_1
 	Pressure_1Attrib	*pressure_1 = new Pressure_1Attrib();
 	Tango::UserDefaultAttrProp	pressure_1_prop;
-	//	description	not set for	Pressure_1
-	//	label	not set for	Pressure_1
+	//	description	not set for Pressure_1
+	//	label	not set for Pressure_1
 	pressure_1_prop.set_unit("mbar");
 	pressure_1_prop.set_standard_unit("mbar");
 	pressure_1_prop.set_display_unit("mbar");
-	//	format	not set for	Pressure_1
-	//	max_value	not set for	Pressure_1
-	//	min_value	not set for	Pressure_1
-	//	max_alarm	not set for	Pressure_1
-	//	min_alarm	not set for	Pressure_1
-	//	max_warning	not set for	Pressure_1
-	//	min_warning	not set for	Pressure_1
-	//	delta_t	not set for	Pressure_1
-	//	delta_val	not set for	Pressure_1
+	//	format	not set for Pressure_1
+	//	max_value	not set for Pressure_1
+	//	min_value	not set for Pressure_1
+	//	max_alarm	not set for Pressure_1
+	//	min_alarm	not set for Pressure_1
+	//	max_warning	not set for Pressure_1
+	//	min_warning	not set for Pressure_1
+	//	delta_t	not set for Pressure_1
+	//	delta_val	not set for Pressure_1
 	pressure_1->set_default_properties(pressure_1_prop);
 	//	Not Polled
 	pressure_1->set_disp_level(Tango::OPERATOR);
-	//	Not memorized
-
-	//	Pressure_1 does not fire change event
-	//	Pressure_1 does not fire archive event
-	//	Pressure_1 does not fire data_ready event
+	//	Not Memorized
 	att_list.push_back(pressure_1);
 
 	//	Attribute : Pressure_2
 	Pressure_2Attrib	*pressure_2 = new Pressure_2Attrib();
 	Tango::UserDefaultAttrProp	pressure_2_prop;
-	//	description	not set for	Pressure_2
-	//	label	not set for	Pressure_2
+	//	description	not set for Pressure_2
+	//	label	not set for Pressure_2
 	pressure_2_prop.set_unit("mbar");
 	pressure_2_prop.set_standard_unit("mbar");
 	pressure_2_prop.set_display_unit("mbar");
-	//	format	not set for	Pressure_2
-	//	max_value	not set for	Pressure_2
-	//	min_value	not set for	Pressure_2
-	//	max_alarm	not set for	Pressure_2
-	//	min_alarm	not set for	Pressure_2
-	//	max_warning	not set for	Pressure_2
-	//	min_warning	not set for	Pressure_2
-	//	delta_t	not set for	Pressure_2
-	//	delta_val	not set for	Pressure_2
+	//	format	not set for Pressure_2
+	//	max_value	not set for Pressure_2
+	//	min_value	not set for Pressure_2
+	//	max_alarm	not set for Pressure_2
+	//	min_alarm	not set for Pressure_2
+	//	max_warning	not set for Pressure_2
+	//	min_warning	not set for Pressure_2
+	//	delta_t	not set for Pressure_2
+	//	delta_val	not set for Pressure_2
 	pressure_2->set_default_properties(pressure_2_prop);
 	//	Not Polled
 	pressure_2->set_disp_level(Tango::OPERATOR);
-	//	Not memorized
-
-	//	Pressure_2 does not fire change event
-	//	Pressure_2 does not fire archive event
-	//	Pressure_2 does not fire data_ready event
+	//	Not Memorized
 	att_list.push_back(pressure_2);
 
 	//	Attribute : Pressure_3
 	Pressure_3Attrib	*pressure_3 = new Pressure_3Attrib();
 	Tango::UserDefaultAttrProp	pressure_3_prop;
-	//	description	not set for	Pressure_3
-	//	label	not set for	Pressure_3
+	//	description	not set for Pressure_3
+	//	label	not set for Pressure_3
 	pressure_3_prop.set_unit("mbar");
 	pressure_3_prop.set_standard_unit("mbar");
 	pressure_3_prop.set_display_unit("mbar");
-	//	format	not set for	Pressure_3
-	//	max_value	not set for	Pressure_3
-	//	min_value	not set for	Pressure_3
-	//	max_alarm	not set for	Pressure_3
-	//	min_alarm	not set for	Pressure_3
-	//	max_warning	not set for	Pressure_3
-	//	min_warning	not set for	Pressure_3
-	//	delta_t	not set for	Pressure_3
-	//	delta_val	not set for	Pressure_3
+	//	format	not set for Pressure_3
+	//	max_value	not set for Pressure_3
+	//	min_value	not set for Pressure_3
+	//	max_alarm	not set for Pressure_3
+	//	min_alarm	not set for Pressure_3
+	//	max_warning	not set for Pressure_3
+	//	min_warning	not set for Pressure_3
+	//	delta_t	not set for Pressure_3
+	//	delta_val	not set for Pressure_3
 	pressure_3->set_default_properties(pressure_3_prop);
 	//	Not Polled
 	pressure_3->set_disp_level(Tango::OPERATOR);
-	//	Not memorized
-
-	//	Pressure_3 does not fire change event
-	//	Pressure_3 does not fire archive event
-	//	Pressure_3 does not fire data_ready event
+	//	Not Memorized
 	att_list.push_back(pressure_3);
 
 	//	Attribute : State_0
 	State_0Attrib	*state_0 = new State_0Attrib();
 	Tango::UserDefaultAttrProp	state_0_prop;
-	//	description	not set for	State_0
-	//	label	not set for	State_0
-	//	unit	not set for	State_0
-	//	standard_unit	not set for	State_0
-	//	display_unit	not set for	State_0
-	//	format	not set for	State_0
-	//	max_value	not set for	State_0
-	//	min_value	not set for	State_0
-	//	max_alarm	not set for	State_0
-	//	min_alarm	not set for	State_0
-	//	max_warning	not set for	State_0
-	//	min_warning	not set for	State_0
-	//	delta_t	not set for	State_0
-	//	delta_val	not set for	State_0
+	//	description	not set for State_0
+	//	label	not set for State_0
+	//	unit	not set for State_0
+	//	standard_unit	not set for State_0
+	//	display_unit	not set for State_0
+	//	format	not set for State_0
+	//	max_value	not set for State_0
+	//	min_value	not set for State_0
+	//	max_alarm	not set for State_0
+	//	min_alarm	not set for State_0
+	//	max_warning	not set for State_0
+	//	min_warning	not set for State_0
+	//	delta_t	not set for State_0
+	//	delta_val	not set for State_0
 	state_0->set_default_properties(state_0_prop);
 	//	Not Polled
 	state_0->set_disp_level(Tango::EXPERT);
-	//	Not memorized
-
-	//	State_0 does not fire change event
-	//	State_0 does not fire archive event
-	//	State_0 does not fire data_ready event
+	//	Not Memorized
 	att_list.push_back(state_0);
 
 	//	Attribute : State_1
 	State_1Attrib	*state_1 = new State_1Attrib();
 	Tango::UserDefaultAttrProp	state_1_prop;
-	//	description	not set for	State_1
-	//	label	not set for	State_1
-	//	unit	not set for	State_1
-	//	standard_unit	not set for	State_1
-	//	display_unit	not set for	State_1
-	//	format	not set for	State_1
-	//	max_value	not set for	State_1
-	//	min_value	not set for	State_1
-	//	max_alarm	not set for	State_1
-	//	min_alarm	not set for	State_1
-	//	max_warning	not set for	State_1
-	//	min_warning	not set for	State_1
-	//	delta_t	not set for	State_1
-	//	delta_val	not set for	State_1
+	//	description	not set for State_1
+	//	label	not set for State_1
+	//	unit	not set for State_1
+	//	standard_unit	not set for State_1
+	//	display_unit	not set for State_1
+	//	format	not set for State_1
+	//	max_value	not set for State_1
+	//	min_value	not set for State_1
+	//	max_alarm	not set for State_1
+	//	min_alarm	not set for State_1
+	//	max_warning	not set for State_1
+	//	min_warning	not set for State_1
+	//	delta_t	not set for State_1
+	//	delta_val	not set for State_1
 	state_1->set_default_properties(state_1_prop);
 	//	Not Polled
 	state_1->set_disp_level(Tango::EXPERT);
-	//	Not memorized
-
-	//	State_1 does not fire change event
-	//	State_1 does not fire archive event
-	//	State_1 does not fire data_ready event
+	//	Not Memorized
 	att_list.push_back(state_1);
 
 	//	Attribute : State_2
 	State_2Attrib	*state_2 = new State_2Attrib();
 	Tango::UserDefaultAttrProp	state_2_prop;
-	//	description	not set for	State_2
-	//	label	not set for	State_2
-	//	unit	not set for	State_2
-	//	standard_unit	not set for	State_2
-	//	display_unit	not set for	State_2
-	//	format	not set for	State_2
-	//	max_value	not set for	State_2
-	//	min_value	not set for	State_2
-	//	max_alarm	not set for	State_2
-	//	min_alarm	not set for	State_2
-	//	max_warning	not set for	State_2
-	//	min_warning	not set for	State_2
-	//	delta_t	not set for	State_2
-	//	delta_val	not set for	State_2
+	//	description	not set for State_2
+	//	label	not set for State_2
+	//	unit	not set for State_2
+	//	standard_unit	not set for State_2
+	//	display_unit	not set for State_2
+	//	format	not set for State_2
+	//	max_value	not set for State_2
+	//	min_value	not set for State_2
+	//	max_alarm	not set for State_2
+	//	min_alarm	not set for State_2
+	//	max_warning	not set for State_2
+	//	min_warning	not set for State_2
+	//	delta_t	not set for State_2
+	//	delta_val	not set for State_2
 	state_2->set_default_properties(state_2_prop);
 	//	Not Polled
 	state_2->set_disp_level(Tango::EXPERT);
-	//	Not memorized
-
-	//	State_2 does not fire change event
-	//	State_2 does not fire archive event
-	//	State_2 does not fire data_ready event
+	//	Not Memorized
 	att_list.push_back(state_2);
 
 	//	Attribute : State_3
 	State_3Attrib	*state_3 = new State_3Attrib();
 	Tango::UserDefaultAttrProp	state_3_prop;
-	//	description	not set for	State_3
-	//	label	not set for	State_3
-	//	unit	not set for	State_3
-	//	standard_unit	not set for	State_3
-	//	display_unit	not set for	State_3
-	//	format	not set for	State_3
-	//	max_value	not set for	State_3
-	//	min_value	not set for	State_3
-	//	max_alarm	not set for	State_3
-	//	min_alarm	not set for	State_3
-	//	max_warning	not set for	State_3
-	//	min_warning	not set for	State_3
-	//	delta_t	not set for	State_3
-	//	delta_val	not set for	State_3
+	//	description	not set for State_3
+	//	label	not set for State_3
+	//	unit	not set for State_3
+	//	standard_unit	not set for State_3
+	//	display_unit	not set for State_3
+	//	format	not set for State_3
+	//	max_value	not set for State_3
+	//	min_value	not set for State_3
+	//	max_alarm	not set for State_3
+	//	min_alarm	not set for State_3
+	//	max_warning	not set for State_3
+	//	min_warning	not set for State_3
+	//	delta_t	not set for State_3
+	//	delta_val	not set for State_3
 	state_3->set_default_properties(state_3_prop);
 	//	Not Polled
 	state_3->set_disp_level(Tango::EXPERT);
-	//	Not memorized
-
-	//	State_3 does not fire change event
-	//	State_3 does not fire archive event
-	//	State_3 does not fire data_ready event
+	//	Not Memorized
 	att_list.push_back(state_3);
 
 	//	Attribute : Status_0
 	Status_0Attrib	*status_0 = new Status_0Attrib();
 	Tango::UserDefaultAttrProp	status_0_prop;
-	//	description	not set for	Status_0
-	//	label	not set for	Status_0
-	//	unit	not set for	Status_0
-	//	standard_unit	not set for	Status_0
-	//	display_unit	not set for	Status_0
-	//	format	not set for	Status_0
-	//	max_value	not set for	Status_0
-	//	min_value	not set for	Status_0
-	//	max_alarm	not set for	Status_0
-	//	min_alarm	not set for	Status_0
-	//	max_warning	not set for	Status_0
-	//	min_warning	not set for	Status_0
-	//	delta_t	not set for	Status_0
-	//	delta_val	not set for	Status_0
+	//	description	not set for Status_0
+	//	label	not set for Status_0
+	//	unit	not set for Status_0
+	//	standard_unit	not set for Status_0
+	//	display_unit	not set for Status_0
+	//	format	not set for Status_0
+	//	max_value	not set for Status_0
+	//	min_value	not set for Status_0
+	//	max_alarm	not set for Status_0
+	//	min_alarm	not set for Status_0
+	//	max_warning	not set for Status_0
+	//	min_warning	not set for Status_0
+	//	delta_t	not set for Status_0
+	//	delta_val	not set for Status_0
 	status_0->set_default_properties(status_0_prop);
 	//	Not Polled
 	status_0->set_disp_level(Tango::EXPERT);
-	//	Not memorized
-
-	//	Status_0 does not fire change event
-	//	Status_0 does not fire archive event
-	//	Status_0 does not fire data_ready event
+	//	Not Memorized
 	att_list.push_back(status_0);
 
 	//	Attribute : Status_1
 	Status_1Attrib	*status_1 = new Status_1Attrib();
 	Tango::UserDefaultAttrProp	status_1_prop;
-	//	description	not set for	Status_1
-	//	label	not set for	Status_1
-	//	unit	not set for	Status_1
-	//	standard_unit	not set for	Status_1
-	//	display_unit	not set for	Status_1
-	//	format	not set for	Status_1
-	//	max_value	not set for	Status_1
-	//	min_value	not set for	Status_1
-	//	max_alarm	not set for	Status_1
-	//	min_alarm	not set for	Status_1
-	//	max_warning	not set for	Status_1
-	//	min_warning	not set for	Status_1
-	//	delta_t	not set for	Status_1
-	//	delta_val	not set for	Status_1
+	//	description	not set for Status_1
+	//	label	not set for Status_1
+	//	unit	not set for Status_1
+	//	standard_unit	not set for Status_1
+	//	display_unit	not set for Status_1
+	//	format	not set for Status_1
+	//	max_value	not set for Status_1
+	//	min_value	not set for Status_1
+	//	max_alarm	not set for Status_1
+	//	min_alarm	not set for Status_1
+	//	max_warning	not set for Status_1
+	//	min_warning	not set for Status_1
+	//	delta_t	not set for Status_1
+	//	delta_val	not set for Status_1
 	status_1->set_default_properties(status_1_prop);
 	//	Not Polled
 	status_1->set_disp_level(Tango::EXPERT);
-	//	Not memorized
-
-	//	Status_1 does not fire change event
-	//	Status_1 does not fire archive event
-	//	Status_1 does not fire data_ready event
+	//	Not Memorized
 	att_list.push_back(status_1);
 
 	//	Attribute : Status_2
 	Status_2Attrib	*status_2 = new Status_2Attrib();
 	Tango::UserDefaultAttrProp	status_2_prop;
-	//	description	not set for	Status_2
-	//	label	not set for	Status_2
-	//	unit	not set for	Status_2
-	//	standard_unit	not set for	Status_2
-	//	display_unit	not set for	Status_2
-	//	format	not set for	Status_2
-	//	max_value	not set for	Status_2
-	//	min_value	not set for	Status_2
-	//	max_alarm	not set for	Status_2
-	//	min_alarm	not set for	Status_2
-	//	max_warning	not set for	Status_2
-	//	min_warning	not set for	Status_2
-	//	delta_t	not set for	Status_2
-	//	delta_val	not set for	Status_2
+	//	description	not set for Status_2
+	//	label	not set for Status_2
+	//	unit	not set for Status_2
+	//	standard_unit	not set for Status_2
+	//	display_unit	not set for Status_2
+	//	format	not set for Status_2
+	//	max_value	not set for Status_2
+	//	min_value	not set for Status_2
+	//	max_alarm	not set for Status_2
+	//	min_alarm	not set for Status_2
+	//	max_warning	not set for Status_2
+	//	min_warning	not set for Status_2
+	//	delta_t	not set for Status_2
+	//	delta_val	not set for Status_2
 	status_2->set_default_properties(status_2_prop);
 	//	Not Polled
 	status_2->set_disp_level(Tango::EXPERT);
-	//	Not memorized
-
-	//	Status_2 does not fire change event
-	//	Status_2 does not fire archive event
-	//	Status_2 does not fire data_ready event
+	//	Not Memorized
 	att_list.push_back(status_2);
 
 	//	Attribute : Status_3
 	Status_3Attrib	*status_3 = new Status_3Attrib();
 	Tango::UserDefaultAttrProp	status_3_prop;
-	//	description	not set for	Status_3
-	//	label	not set for	Status_3
-	//	unit	not set for	Status_3
-	//	standard_unit	not set for	Status_3
-	//	display_unit	not set for	Status_3
-	//	format	not set for	Status_3
-	//	max_value	not set for	Status_3
-	//	min_value	not set for	Status_3
-	//	max_alarm	not set for	Status_3
-	//	min_alarm	not set for	Status_3
-	//	max_warning	not set for	Status_3
-	//	min_warning	not set for	Status_3
-	//	delta_t	not set for	Status_3
-	//	delta_val	not set for	Status_3
+	//	description	not set for Status_3
+	//	label	not set for Status_3
+	//	unit	not set for Status_3
+	//	standard_unit	not set for Status_3
+	//	display_unit	not set for Status_3
+	//	format	not set for Status_3
+	//	max_value	not set for Status_3
+	//	min_value	not set for Status_3
+	//	max_alarm	not set for Status_3
+	//	min_alarm	not set for Status_3
+	//	max_warning	not set for Status_3
+	//	min_warning	not set for Status_3
+	//	delta_t	not set for Status_3
+	//	delta_val	not set for Status_3
 	status_3->set_default_properties(status_3_prop);
 	//	Not Polled
 	status_3->set_disp_level(Tango::EXPERT);
-	//	Not memorized
-
-	//	Status_3 does not fire change event
-	//	Status_3 does not fire archive event
-	//	Status_3 does not fire data_ready event
+	//	Not Memorized
 	att_list.push_back(status_3);
 
 	//	Attribute : Name_0
 	Name_0Attrib	*name_0 = new Name_0Attrib();
 	Tango::UserDefaultAttrProp	name_0_prop;
-	//	description	not set for	Name_0
-	//	label	not set for	Name_0
-	//	unit	not set for	Name_0
-	//	standard_unit	not set for	Name_0
-	//	display_unit	not set for	Name_0
-	//	format	not set for	Name_0
-	//	max_value	not set for	Name_0
-	//	min_value	not set for	Name_0
-	//	max_alarm	not set for	Name_0
-	//	min_alarm	not set for	Name_0
-	//	max_warning	not set for	Name_0
-	//	min_warning	not set for	Name_0
-	//	delta_t	not set for	Name_0
-	//	delta_val	not set for	Name_0
+	//	description	not set for Name_0
+	//	label	not set for Name_0
+	//	unit	not set for Name_0
+	//	standard_unit	not set for Name_0
+	//	display_unit	not set for Name_0
+	//	format	not set for Name_0
+	//	max_value	not set for Name_0
+	//	min_value	not set for Name_0
+	//	max_alarm	not set for Name_0
+	//	min_alarm	not set for Name_0
+	//	max_warning	not set for Name_0
+	//	min_warning	not set for Name_0
+	//	delta_t	not set for Name_0
+	//	delta_val	not set for Name_0
 	name_0->set_default_properties(name_0_prop);
 	//	Not Polled
 	name_0->set_disp_level(Tango::EXPERT);
-	//	Not memorized
-
-	//	Name_0 does not fire change event
-	//	Name_0 does not fire archive event
-	//	Name_0 does not fire data_ready event
+	//	Not Memorized
 	att_list.push_back(name_0);
 
 	//	Attribute : Name_1
 	Name_1Attrib	*name_1 = new Name_1Attrib();
 	Tango::UserDefaultAttrProp	name_1_prop;
-	//	description	not set for	Name_1
-	//	label	not set for	Name_1
-	//	unit	not set for	Name_1
-	//	standard_unit	not set for	Name_1
-	//	display_unit	not set for	Name_1
-	//	format	not set for	Name_1
-	//	max_value	not set for	Name_1
-	//	min_value	not set for	Name_1
-	//	max_alarm	not set for	Name_1
-	//	min_alarm	not set for	Name_1
-	//	max_warning	not set for	Name_1
-	//	min_warning	not set for	Name_1
-	//	delta_t	not set for	Name_1
-	//	delta_val	not set for	Name_1
+	//	description	not set for Name_1
+	//	label	not set for Name_1
+	//	unit	not set for Name_1
+	//	standard_unit	not set for Name_1
+	//	display_unit	not set for Name_1
+	//	format	not set for Name_1
+	//	max_value	not set for Name_1
+	//	min_value	not set for Name_1
+	//	max_alarm	not set for Name_1
+	//	min_alarm	not set for Name_1
+	//	max_warning	not set for Name_1
+	//	min_warning	not set for Name_1
+	//	delta_t	not set for Name_1
+	//	delta_val	not set for Name_1
 	name_1->set_default_properties(name_1_prop);
 	//	Not Polled
 	name_1->set_disp_level(Tango::EXPERT);
-	//	Not memorized
-
-	//	Name_1 does not fire change event
-	//	Name_1 does not fire archive event
-	//	Name_1 does not fire data_ready event
+	//	Not Memorized
 	att_list.push_back(name_1);
 
 	//	Attribute : Name_2
 	Name_2Attrib	*name_2 = new Name_2Attrib();
 	Tango::UserDefaultAttrProp	name_2_prop;
-	//	description	not set for	Name_2
-	//	label	not set for	Name_2
-	//	unit	not set for	Name_2
-	//	standard_unit	not set for	Name_2
-	//	display_unit	not set for	Name_2
-	//	format	not set for	Name_2
-	//	max_value	not set for	Name_2
-	//	min_value	not set for	Name_2
-	//	max_alarm	not set for	Name_2
-	//	min_alarm	not set for	Name_2
-	//	max_warning	not set for	Name_2
-	//	min_warning	not set for	Name_2
-	//	delta_t	not set for	Name_2
-	//	delta_val	not set for	Name_2
+	//	description	not set for Name_2
+	//	label	not set for Name_2
+	//	unit	not set for Name_2
+	//	standard_unit	not set for Name_2
+	//	display_unit	not set for Name_2
+	//	format	not set for Name_2
+	//	max_value	not set for Name_2
+	//	min_value	not set for Name_2
+	//	max_alarm	not set for Name_2
+	//	min_alarm	not set for Name_2
+	//	max_warning	not set for Name_2
+	//	min_warning	not set for Name_2
+	//	delta_t	not set for Name_2
+	//	delta_val	not set for Name_2
 	name_2->set_default_properties(name_2_prop);
 	//	Not Polled
 	name_2->set_disp_level(Tango::EXPERT);
-	//	Not memorized
-
-	//	Name_2 does not fire change event
-	//	Name_2 does not fire archive event
-	//	Name_2 does not fire data_ready event
+	//	Not Memorized
 	att_list.push_back(name_2);
 
 	//	Attribute : Name_3
 	Name_3Attrib	*name_3 = new Name_3Attrib();
 	Tango::UserDefaultAttrProp	name_3_prop;
-	//	description	not set for	Name_3
-	//	label	not set for	Name_3
-	//	unit	not set for	Name_3
-	//	standard_unit	not set for	Name_3
-	//	display_unit	not set for	Name_3
-	//	format	not set for	Name_3
-	//	max_value	not set for	Name_3
-	//	min_value	not set for	Name_3
-	//	max_alarm	not set for	Name_3
-	//	min_alarm	not set for	Name_3
-	//	max_warning	not set for	Name_3
-	//	min_warning	not set for	Name_3
-	//	delta_t	not set for	Name_3
-	//	delta_val	not set for	Name_3
+	//	description	not set for Name_3
+	//	label	not set for Name_3
+	//	unit	not set for Name_3
+	//	standard_unit	not set for Name_3
+	//	display_unit	not set for Name_3
+	//	format	not set for Name_3
+	//	max_value	not set for Name_3
+	//	min_value	not set for Name_3
+	//	max_alarm	not set for Name_3
+	//	min_alarm	not set for Name_3
+	//	max_warning	not set for Name_3
+	//	min_warning	not set for Name_3
+	//	delta_t	not set for Name_3
+	//	delta_val	not set for Name_3
 	name_3->set_default_properties(name_3_prop);
 	//	Not Polled
 	name_3->set_disp_level(Tango::EXPERT);
-	//	Not memorized
-
-	//	Name_3 does not fire change event
-	//	Name_3 does not fire archive event
-	//	Name_3 does not fire data_ready event
+	//	Not Memorized
 	att_list.push_back(name_3);
 
 	//	Attribute : DeviceState
 	DeviceStateAttrib	*devicestate = new DeviceStateAttrib();
 	Tango::UserDefaultAttrProp	devicestate_prop;
-	//	description	not set for	DeviceState
-	//	label	not set for	DeviceState
-	//	unit	not set for	DeviceState
-	//	standard_unit	not set for	DeviceState
-	//	display_unit	not set for	DeviceState
-	//	format	not set for	DeviceState
-	//	max_value	not set for	DeviceState
-	//	min_value	not set for	DeviceState
-	//	max_alarm	not set for	DeviceState
-	//	min_alarm	not set for	DeviceState
-	//	max_warning	not set for	DeviceState
-	//	min_warning	not set for	DeviceState
-	//	delta_t	not set for	DeviceState
-	//	delta_val	not set for	DeviceState
+	//	description	not set for DeviceState
+	//	label	not set for DeviceState
+	//	unit	not set for DeviceState
+	//	standard_unit	not set for DeviceState
+	//	display_unit	not set for DeviceState
+	//	format	not set for DeviceState
+	//	max_value	not set for DeviceState
+	//	min_value	not set for DeviceState
+	//	max_alarm	not set for DeviceState
+	//	min_alarm	not set for DeviceState
+	//	max_warning	not set for DeviceState
+	//	min_warning	not set for DeviceState
+	//	delta_t	not set for DeviceState
+	//	delta_val	not set for DeviceState
 	devicestate->set_default_properties(devicestate_prop);
 	//	Not Polled
 	devicestate->set_disp_level(Tango::OPERATOR);
 	devicestate->set_memorized();
 	devicestate->set_memorized_init(false);
-	//	DeviceState does not fire change event
-	//	DeviceState does not fire archive event
-	//	DeviceState does not fire data_ready event
 	att_list.push_back(devicestate);
 
 	//	Attribute : DeviceStatus
 	DeviceStatusAttrib	*devicestatus = new DeviceStatusAttrib();
 	Tango::UserDefaultAttrProp	devicestatus_prop;
-	//	description	not set for	DeviceStatus
-	//	label	not set for	DeviceStatus
-	//	unit	not set for	DeviceStatus
-	//	standard_unit	not set for	DeviceStatus
-	//	display_unit	not set for	DeviceStatus
-	//	format	not set for	DeviceStatus
-	//	max_value	not set for	DeviceStatus
-	//	min_value	not set for	DeviceStatus
-	//	max_alarm	not set for	DeviceStatus
-	//	min_alarm	not set for	DeviceStatus
-	//	max_warning	not set for	DeviceStatus
-	//	min_warning	not set for	DeviceStatus
-	//	delta_t	not set for	DeviceStatus
-	//	delta_val	not set for	DeviceStatus
+	//	description	not set for DeviceStatus
+	//	label	not set for DeviceStatus
+	//	unit	not set for DeviceStatus
+	//	standard_unit	not set for DeviceStatus
+	//	display_unit	not set for DeviceStatus
+	//	format	not set for DeviceStatus
+	//	max_value	not set for DeviceStatus
+	//	min_value	not set for DeviceStatus
+	//	max_alarm	not set for DeviceStatus
+	//	min_alarm	not set for DeviceStatus
+	//	max_warning	not set for DeviceStatus
+	//	min_warning	not set for DeviceStatus
+	//	delta_t	not set for DeviceStatus
+	//	delta_val	not set for DeviceStatus
 	devicestatus->set_default_properties(devicestatus_prop);
 	//	Not Polled
 	devicestatus->set_disp_level(Tango::OPERATOR);
-	//	Not memorized
-
-	//	DeviceStatus does not fire change event
-	//	DeviceStatus does not fire archive event
-	//	DeviceStatus does not fire data_ready event
+	//	Not Memorized
 	att_list.push_back(devicestatus);
 
 	//	Attribute : SetPointStatus
 	SetPointStatusAttrib	*setpointstatus = new SetPointStatusAttrib();
 	Tango::UserDefaultAttrProp	setpointstatus_prop;
-	//	description	not set for	SetPointStatus
-	//	label	not set for	SetPointStatus
-	//	unit	not set for	SetPointStatus
-	//	standard_unit	not set for	SetPointStatus
-	//	display_unit	not set for	SetPointStatus
-	//	format	not set for	SetPointStatus
-	//	max_value	not set for	SetPointStatus
-	//	min_value	not set for	SetPointStatus
-	//	max_alarm	not set for	SetPointStatus
-	//	min_alarm	not set for	SetPointStatus
-	//	max_warning	not set for	SetPointStatus
-	//	min_warning	not set for	SetPointStatus
-	//	delta_t	not set for	SetPointStatus
-	//	delta_val	not set for	SetPointStatus
+	//	description	not set for SetPointStatus
+	//	label	not set for SetPointStatus
+	//	unit	not set for SetPointStatus
+	//	standard_unit	not set for SetPointStatus
+	//	display_unit	not set for SetPointStatus
+	//	format	not set for SetPointStatus
+	//	max_value	not set for SetPointStatus
+	//	min_value	not set for SetPointStatus
+	//	max_alarm	not set for SetPointStatus
+	//	min_alarm	not set for SetPointStatus
+	//	max_warning	not set for SetPointStatus
+	//	min_warning	not set for SetPointStatus
+	//	delta_t	not set for SetPointStatus
+	//	delta_val	not set for SetPointStatus
 	setpointstatus->set_default_properties(setpointstatus_prop);
 	//	Not Polled
 	setpointstatus->set_disp_level(Tango::OPERATOR);
-	//	Not memorized
-
-	//	SetPointStatus does not fire change event
-	//	SetPointStatus does not fire archive event
-	//	SetPointStatus does not fire data_ready event
+	//	Not Memorized
 	att_list.push_back(setpointstatus);
 
 
 	//	Create a list of static attributes
 	create_static_attribute_list(get_class_attr()->get_attr_list());
-
-	/*----- PROTECTED REGION ID(Tpg300::Class::attribute_factory_after) ENABLED START -----*/
+	/*----- PROTECTED REGION ID(Tpg300Class::attribute_factory_after) ENABLED START -----*/
 
 	//	Add your own code
 
-	/*----- PROTECTED REGION END -----*/	//	Tpg300::Class::attribute_factory_after
-
+	/*----- PROTECTED REGION END -----*/	//	Tpg300Class::attribute_factory_after
 }
-
-
 //--------------------------------------------------------
 /**
- *	Method      : Tpg300::Tpg300Class::command_factory()
- *	Description : Create the command object(s)
- *	              and store them in the command list
+ *	Method     : Tpg300Class::pipe_factory()
+ *	Description: Create the pipe object(s)
+ *                and store them in the pipe list
+ */
+//--------------------------------------------------------
+void Tpg300Class::pipe_factory()
+{
+	/*----- PROTECTED REGION ID(Tpg300Class::pipe_factory_before) ENABLED START -----*/
+	/* clang-format on */
+	//	Add your own code
+	/* clang-format off */
+	/*----- PROTECTED REGION END -----*/	//	Tpg300Class::pipe_factory_before
+	/*----- PROTECTED REGION ID(Tpg300Class::pipe_factory_after) ENABLED START -----*/
+	/* clang-format on */
+	//	Add your own code
+	/* clang-format off */
+	/*----- PROTECTED REGION END -----*/	//	Tpg300Class::pipe_factory_after
+}
+//--------------------------------------------------------
+/**
+ *	Method     : Tpg300Class::command_factory()
+ *	Description: Create the command object(s)
+ *                and store them in the command list
  */
 //--------------------------------------------------------
 void Tpg300Class::command_factory()
 {
-	/*----- PROTECTED REGION ID(Tpg300::Class::command_factory_before) ENABLED START -----*/
+	/*----- PROTECTED REGION ID(Tpg300Class::command_factory_before) ENABLED START -----*/
 
-	/*----- PROTECTED REGION END -----*/	//	Tpg300::Class::command_factory_before
+	/*----- PROTECTED REGION END -----*/	//	Tpg300Class::command_factory_before
 
+
+	//	Command SensorOn
 	SensorOnClass	*pSensorOnCmd =
 		new SensorOnClass("SensorOn",
 			Tango::DEV_SHORT, Tango::DEV_VOID,
@@ -1267,6 +1073,8 @@ void Tpg300Class::command_factory()
 			"",
 			Tango::EXPERT);
 	command_list.push_back(pSensorOnCmd);
+
+	//	Command SensorOff
 	SensorOffClass	*pSensorOffCmd =
 		new SensorOffClass("SensorOff",
 			Tango::DEV_SHORT, Tango::DEV_VOID,
@@ -1274,6 +1082,8 @@ void Tpg300Class::command_factory()
 			"",
 			Tango::EXPERT);
 	command_list.push_back(pSensorOffCmd);
+
+	//	Command WriteLowerThreshold
 	WriteLowerThresholdClass	*pWriteLowerThresholdCmd =
 		new WriteLowerThresholdClass("WriteLowerThreshold",
 			Tango::DEVVAR_DOUBLEARRAY, Tango::DEV_VOID,
@@ -1281,6 +1091,8 @@ void Tpg300Class::command_factory()
 			"",
 			Tango::EXPERT);
 	command_list.push_back(pWriteLowerThresholdCmd);
+
+	//	Command ReadLowerThreshold
 	ReadLowerThresholdClass	*pReadLowerThresholdCmd =
 		new ReadLowerThresholdClass("ReadLowerThreshold",
 			Tango::DEV_SHORT, Tango::DEV_DOUBLE,
@@ -1288,6 +1100,8 @@ void Tpg300Class::command_factory()
 			"Pressure",
 			Tango::EXPERT);
 	command_list.push_back(pReadLowerThresholdCmd);
+
+	//	Command WriteUpperThreshold
 	WriteUpperThresholdClass	*pWriteUpperThresholdCmd =
 		new WriteUpperThresholdClass("WriteUpperThreshold",
 			Tango::DEVVAR_DOUBLEARRAY, Tango::DEV_VOID,
@@ -1295,6 +1109,8 @@ void Tpg300Class::command_factory()
 			"",
 			Tango::EXPERT);
 	command_list.push_back(pWriteUpperThresholdCmd);
+
+	//	Command ReadUpperThreshold
 	ReadUpperThresholdClass	*pReadUpperThresholdCmd =
 		new ReadUpperThresholdClass("ReadUpperThreshold",
 			Tango::DEV_SHORT, Tango::DEV_DOUBLE,
@@ -1302,6 +1118,8 @@ void Tpg300Class::command_factory()
 			"Pressure",
 			Tango::EXPERT);
 	command_list.push_back(pReadUpperThresholdCmd);
+
+	//	Command ReadSensorSource
 	ReadSensorSourceClass	*pReadSensorSourceCmd =
 		new ReadSensorSourceClass("ReadSensorSource",
 			Tango::DEV_SHORT, Tango::DEV_SHORT,
@@ -1309,6 +1127,8 @@ void Tpg300Class::command_factory()
 			"Source\n0 -> No assignment\n1 -> Measuring circuit A1\n2 -> Measuring circuit A2\n3 -> Measuring circuit B1\n4 -> Measuring circuit B2\n5 -> Measuring circuit A1 (for self monitoring)\n6 -> Measuring circuit A2 (for self monitoring)\n7 -> Measuring circuit B1 (for self monitoring)\n8 -> Measuring circuit B2 (for self monitoring)",
 			Tango::EXPERT);
 	command_list.push_back(pReadSensorSourceCmd);
+
+	//	Command WriteSensorSource
 	WriteSensorSourceClass	*pWriteSensorSourceCmd =
 		new WriteSensorSourceClass("WriteSensorSource",
 			Tango::DEVVAR_SHORTARRAY, Tango::DEV_VOID,
@@ -1316,6 +1136,8 @@ void Tpg300Class::command_factory()
 			"",
 			Tango::EXPERT);
 	command_list.push_back(pWriteSensorSourceCmd);
+
+	//	Command RegisterName
 	RegisterNameClass	*pRegisterNameCmd =
 		new RegisterNameClass("RegisterName",
 			Tango::DEVVAR_LONGSTRINGARRAY, Tango::DEV_VOID,
@@ -1323,6 +1145,8 @@ void Tpg300Class::command_factory()
 			"",
 			Tango::EXPERT);
 	command_list.push_back(pRegisterNameCmd);
+
+	//	Command UnregisterName
 	UnregisterNameClass	*pUnregisterNameCmd =
 		new UnregisterNameClass("UnregisterName",
 			Tango::DEV_SHORT, Tango::DEV_VOID,
@@ -1331,44 +1155,37 @@ void Tpg300Class::command_factory()
 			Tango::EXPERT);
 	command_list.push_back(pUnregisterNameCmd);
 
-	/*----- PROTECTED REGION ID(Tpg300::Class::command_factory_after) ENABLED START -----*/
-
-	/*----- PROTECTED REGION END -----*/	//	Tpg300::Class::command_factory_after
+	/*----- PROTECTED REGION ID(Tpg300Class::command_factory_after) ENABLED START -----*/
 
+	/*----- PROTECTED REGION END -----*/	//	Tpg300Class::command_factory_after
 }
 
-
-
-
 //===================================================================
 //	Dynamic attributes related methods
 //===================================================================
 
-
 //--------------------------------------------------------
 /**
  * method : 		Tpg300Class::create_static_attribute_list
  * description : 	Create the a list of static attributes
  *
- * @param	att_list	the ceated attribute list 
+ * @param	att_list	the created attribute list
  */
 //--------------------------------------------------------
-void Tpg300Class::create_static_attribute_list(vector<Tango::Attr *> &att_list)
+void Tpg300Class::create_static_attribute_list(std::vector<Tango::Attr *> &att_list)
 {
 	for (unsigned long i=0 ; i<att_list.size() ; i++)
 	{
-		string att_name(att_list[i]->get_name());
+		std::string att_name(att_list[i]->get_name());
 		transform(att_name.begin(), att_name.end(), att_name.begin(), ::tolower);
 		defaultAttList.push_back(att_name);
 	}
 
-	cout2 << defaultAttList.size() << " attributes in default list" << endl;
+	TANGO_LOG_INFO << defaultAttList.size() << " attributes in default list" << std::endl;
 
+	/*----- PROTECTED REGION ID(Tpg300Class::create_static_att_list) ENABLED START -----*/
 
-	/*----- PROTECTED REGION ID(Tpg300::Class::create_static_att_list) ENABLED START -----*/
-
-	/*----- PROTECTED REGION END -----*/	//	Tpg300::Class::create_static_att_list
-
+	/*----- PROTECTED REGION END -----*/	//	Tpg300Class::create_static_att_list
 }
 
 
@@ -1381,42 +1198,55 @@ void Tpg300Class::create_static_attribute_list(vector<Tango::Attr *> &att_list)
  * @param	list of all attributes
  */
 //--------------------------------------------------------
-void Tpg300Class::erase_dynamic_attributes(const Tango::DevVarStringArray *devlist_ptr, vector<Tango::Attr *> &att_list)
+void Tpg300Class::erase_dynamic_attributes(const Tango::DevVarStringArray *devlist_ptr, std::vector<Tango::Attr *> &att_list)
 {
 	Tango::Util *tg = Tango::Util::instance();
 
 	for (unsigned long i=0 ; i<devlist_ptr->length() ; i++)
-	{	
-		Tango::DeviceImpl *dev_impl = tg->get_device_by_name(((string)(*devlist_ptr)[i]).c_str());
+	{
+		Tango::DeviceImpl *dev_impl = tg->get_device_by_name(((std::string)(*devlist_ptr)[i]).c_str());
 		Tpg300 *dev = static_cast<Tpg300 *> (dev_impl);
-		
-		vector<Tango::Attribute *> &dev_att_list = dev->get_device_attr()->get_attribute_list();
-		vector<Tango::Attribute *>::iterator ite_att;
+
+		std::vector<Tango::Attribute *> &dev_att_list = dev->get_device_attr()->get_attribute_list();
+		std::vector<Tango::Attribute *>::iterator ite_att;
 		for (ite_att=dev_att_list.begin() ; ite_att != dev_att_list.end() ; ++ite_att)
 		{
-			string att_name((*ite_att)->get_name_lower());
+			std::string att_name((*ite_att)->get_name_lower());
 			if ((att_name == "state") || (att_name == "status"))
 				continue;
-			vector<string>::iterator ite_str = find(defaultAttList.begin(), defaultAttList.end(), att_name);
+			std::vector<std::string>::iterator ite_str = find(defaultAttList.begin(), defaultAttList.end(), att_name);
 			if (ite_str == defaultAttList.end())
 			{
-				cout2 << att_name << " is a UNWANTED dynamic attribute for device " << (*devlist_ptr)[i] << endl;
+				TANGO_LOG_INFO << att_name << " is a UNWANTED dynamic attribute for device " << (*devlist_ptr)[i] << std::endl;
 				Tango::Attribute &att = dev->get_device_attr()->get_attr_by_name(att_name.c_str());
-				dev->remove_attribute(att_list[att.get_attr_idx()],true);
+				dev->remove_attribute(att_list[att.get_attr_idx()], true, false);
 				--ite_att;
 			}
 		}
 	}
-	/*----- PROTECTED REGION ID(Tpg300::Class::erase_dynamic_attributes) ENABLED START -----*/
-
-	/*----- PROTECTED REGION END -----*/	//	Tpg300::Class::erase_dynamic_attributes
+	/*----- PROTECTED REGION ID(Tpg300Class::erase_dynamic_attributes) ENABLED START -----*/
 
+	/*----- PROTECTED REGION END -----*/	//	Tpg300Class::erase_dynamic_attributes
 }
 
+//--------------------------------------------------------
+/**
+ *	Method     : Tpg300Class::get_attr_object_by_name()
+ *	Description: returns Tango::Attr * object found by name
+ */
+//--------------------------------------------------------
+Tango::Attr *Tpg300Class::get_attr_object_by_name(std::vector<Tango::Attr *> &att_list, std::string attname)
+{
+	std::vector<Tango::Attr *>::iterator it;
+	for (it=att_list.begin() ; it<att_list.end() ; ++it)
+		if ((*it)->get_name()==attname)
+			return (*it);
+	//	Attr does not exist
+	return NULL;
+}
 
 
-	/*----- PROTECTED REGION ID(Tpg300::Class::Additional Methods) ENABLED START -----*/
-
-	/*----- PROTECTED REGION END -----*/	//	Tpg300::Class::Additional Methods
+/*----- PROTECTED REGION ID(Tpg300Class::Additional Methods) ENABLED START -----*/
 
+	/*----- PROTECTED REGION END -----*/	//	Tpg300Class::Additional Methods
 } //	namespace
diff --git a/src/Tpg300Class.h b/src/Tpg300Class.h
index 7dc4b90f4f92346ca2323ca0a7ee71faec26c7b2..b6320f0c80589ac3c4acd3e3a510e8f9642a43af 100644
--- a/src/Tpg300Class.h
+++ b/src/Tpg300Class.h
@@ -41,15 +41,14 @@
 #include <tango.h>
 #include <Tpg300.h>
 
-/*----- PROTECTED REGION END -----*/
+/*----- PROTECTED REGION END -----*/	//	Tpg300Class.h
+
 
 namespace Tpg300_ns
 {
-	/*----- PROTECTED REGION ID(Tpg300::classes for dynamic creation) ENABLED START -----*/
-
-	/*----- PROTECTED REGION END -----*/	//	Tpg300::classes for dynamic creation
-
+/*----- PROTECTED REGION ID(Tpg300Class::classes for dynamic creation) ENABLED START -----*/
 
+	/*----- PROTECTED REGION END -----*/	//	Tpg300Class::classes for dynamic creation
 
 //=========================================
 //	Define classes for attributes
@@ -59,9 +58,8 @@ class Pressure_0Attrib: public Tango::Attr
 {
 public:
 	Pressure_0Attrib():Attr("Pressure_0",
-	                   Tango::DEV_DOUBLE, Tango::READ) {};
-	~Pressure_0Attrib() {};
-	
+			Tango::DEV_DOUBLE, Tango::READ) {}
+	~Pressure_0Attrib() {}
 	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
 		{(static_cast<Tpg300 *>(dev))->read_Pressure_0(att);}
 	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
@@ -73,9 +71,8 @@ class Pressure_1Attrib: public Tango::Attr
 {
 public:
 	Pressure_1Attrib():Attr("Pressure_1",
-	                   Tango::DEV_DOUBLE, Tango::READ) {};
-	~Pressure_1Attrib() {};
-	
+			Tango::DEV_DOUBLE, Tango::READ) {}
+	~Pressure_1Attrib() {}
 	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
 		{(static_cast<Tpg300 *>(dev))->read_Pressure_1(att);}
 	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
@@ -87,9 +84,8 @@ class Pressure_2Attrib: public Tango::Attr
 {
 public:
 	Pressure_2Attrib():Attr("Pressure_2",
-	                   Tango::DEV_DOUBLE, Tango::READ) {};
-	~Pressure_2Attrib() {};
-	
+			Tango::DEV_DOUBLE, Tango::READ) {}
+	~Pressure_2Attrib() {}
 	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
 		{(static_cast<Tpg300 *>(dev))->read_Pressure_2(att);}
 	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
@@ -101,9 +97,8 @@ class Pressure_3Attrib: public Tango::Attr
 {
 public:
 	Pressure_3Attrib():Attr("Pressure_3",
-	                   Tango::DEV_DOUBLE, Tango::READ) {};
-	~Pressure_3Attrib() {};
-	
+			Tango::DEV_DOUBLE, Tango::READ) {}
+	~Pressure_3Attrib() {}
 	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
 		{(static_cast<Tpg300 *>(dev))->read_Pressure_3(att);}
 	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
@@ -115,9 +110,8 @@ class State_0Attrib: public Tango::Attr
 {
 public:
 	State_0Attrib():Attr("State_0",
-	                   Tango::DEV_STATE, Tango::READ) {};
-	~State_0Attrib() {};
-	
+			Tango::DEV_STATE, Tango::READ) {}
+	~State_0Attrib() {}
 	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
 		{(static_cast<Tpg300 *>(dev))->read_State_0(att);}
 	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
@@ -129,9 +123,8 @@ class State_1Attrib: public Tango::Attr
 {
 public:
 	State_1Attrib():Attr("State_1",
-	                   Tango::DEV_STATE, Tango::READ) {};
-	~State_1Attrib() {};
-	
+			Tango::DEV_STATE, Tango::READ) {}
+	~State_1Attrib() {}
 	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
 		{(static_cast<Tpg300 *>(dev))->read_State_1(att);}
 	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
@@ -143,9 +136,8 @@ class State_2Attrib: public Tango::Attr
 {
 public:
 	State_2Attrib():Attr("State_2",
-	                   Tango::DEV_STATE, Tango::READ) {};
-	~State_2Attrib() {};
-	
+			Tango::DEV_STATE, Tango::READ) {}
+	~State_2Attrib() {}
 	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
 		{(static_cast<Tpg300 *>(dev))->read_State_2(att);}
 	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
@@ -157,9 +149,8 @@ class State_3Attrib: public Tango::Attr
 {
 public:
 	State_3Attrib():Attr("State_3",
-	                   Tango::DEV_STATE, Tango::READ) {};
-	~State_3Attrib() {};
-	
+			Tango::DEV_STATE, Tango::READ) {}
+	~State_3Attrib() {}
 	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
 		{(static_cast<Tpg300 *>(dev))->read_State_3(att);}
 	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
@@ -171,9 +162,8 @@ class Status_0Attrib: public Tango::Attr
 {
 public:
 	Status_0Attrib():Attr("Status_0",
-	                   Tango::DEV_STRING, Tango::READ) {};
-	~Status_0Attrib() {};
-	
+			Tango::DEV_STRING, Tango::READ) {}
+	~Status_0Attrib() {}
 	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
 		{(static_cast<Tpg300 *>(dev))->read_Status_0(att);}
 	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
@@ -185,9 +175,8 @@ class Status_1Attrib: public Tango::Attr
 {
 public:
 	Status_1Attrib():Attr("Status_1",
-	                   Tango::DEV_STRING, Tango::READ) {};
-	~Status_1Attrib() {};
-	
+			Tango::DEV_STRING, Tango::READ) {}
+	~Status_1Attrib() {}
 	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
 		{(static_cast<Tpg300 *>(dev))->read_Status_1(att);}
 	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
@@ -199,9 +188,8 @@ class Status_2Attrib: public Tango::Attr
 {
 public:
 	Status_2Attrib():Attr("Status_2",
-	                   Tango::DEV_STRING, Tango::READ) {};
-	~Status_2Attrib() {};
-	
+			Tango::DEV_STRING, Tango::READ) {}
+	~Status_2Attrib() {}
 	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
 		{(static_cast<Tpg300 *>(dev))->read_Status_2(att);}
 	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
@@ -213,9 +201,8 @@ class Status_3Attrib: public Tango::Attr
 {
 public:
 	Status_3Attrib():Attr("Status_3",
-	                   Tango::DEV_STRING, Tango::READ) {};
-	~Status_3Attrib() {};
-	
+			Tango::DEV_STRING, Tango::READ) {}
+	~Status_3Attrib() {}
 	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
 		{(static_cast<Tpg300 *>(dev))->read_Status_3(att);}
 	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
@@ -227,9 +214,8 @@ class Name_0Attrib: public Tango::Attr
 {
 public:
 	Name_0Attrib():Attr("Name_0",
-	                   Tango::DEV_STRING, Tango::READ) {};
-	~Name_0Attrib() {};
-	
+			Tango::DEV_STRING, Tango::READ) {}
+	~Name_0Attrib() {}
 	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
 		{(static_cast<Tpg300 *>(dev))->read_Name_0(att);}
 	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
@@ -241,9 +227,8 @@ class Name_1Attrib: public Tango::Attr
 {
 public:
 	Name_1Attrib():Attr("Name_1",
-	                   Tango::DEV_STRING, Tango::READ) {};
-	~Name_1Attrib() {};
-	
+			Tango::DEV_STRING, Tango::READ) {}
+	~Name_1Attrib() {}
 	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
 		{(static_cast<Tpg300 *>(dev))->read_Name_1(att);}
 	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
@@ -255,9 +240,8 @@ class Name_2Attrib: public Tango::Attr
 {
 public:
 	Name_2Attrib():Attr("Name_2",
-	                   Tango::DEV_STRING, Tango::READ) {};
-	~Name_2Attrib() {};
-	
+			Tango::DEV_STRING, Tango::READ) {}
+	~Name_2Attrib() {}
 	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
 		{(static_cast<Tpg300 *>(dev))->read_Name_2(att);}
 	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
@@ -269,9 +253,8 @@ class Name_3Attrib: public Tango::Attr
 {
 public:
 	Name_3Attrib():Attr("Name_3",
-	                   Tango::DEV_STRING, Tango::READ) {};
-	~Name_3Attrib() {};
-	
+			Tango::DEV_STRING, Tango::READ) {}
+	~Name_3Attrib() {}
 	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
 		{(static_cast<Tpg300 *>(dev))->read_Name_3(att);}
 	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
@@ -283,9 +266,8 @@ class DeviceStateAttrib: public Tango::Attr
 {
 public:
 	DeviceStateAttrib():Attr("DeviceState",
-	                   Tango::DEV_UCHAR, Tango::READ_WRITE) {};
-	~DeviceStateAttrib() {};
-	
+			Tango::DEV_UCHAR, Tango::READ_WRITE) {}
+	~DeviceStateAttrib() {}
 	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
 		{(static_cast<Tpg300 *>(dev))->read_DeviceState(att);}
 	virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att)
@@ -299,9 +281,8 @@ class DeviceStatusAttrib: public Tango::Attr
 {
 public:
 	DeviceStatusAttrib():Attr("DeviceStatus",
-	                   Tango::DEV_STRING, Tango::READ) {};
-	~DeviceStatusAttrib() {};
-	
+			Tango::DEV_STRING, Tango::READ) {}
+	~DeviceStatusAttrib() {}
 	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
 		{(static_cast<Tpg300 *>(dev))->read_DeviceStatus(att);}
 	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
@@ -312,10 +293,11 @@ public:
 class SetPointStatusAttrib: public Tango::SpectrumAttr
 {
 public:
+	// Constants for SetPointStatus attribute
+	const static long X_DATA_SIZE = 6;
 	SetPointStatusAttrib():SpectrumAttr("SetPointStatus",
-	                   Tango::DEV_BOOLEAN, Tango::READ, 6) {};
-	~SetPointStatusAttrib() {};
-	
+			Tango::DEV_BOOLEAN, Tango::READ, SetPointStatusAttrib::X_DATA_SIZE) {}
+	~SetPointStatusAttrib() {}
 	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
 		{(static_cast<Tpg300 *>(dev))->read_SetPointStatus(att);}
 	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
@@ -323,9 +305,6 @@ public:
 };
 
 
-
-
-
 //=========================================
 //	Define classes for commands
 //=========================================
@@ -333,20 +312,20 @@ public:
 class SensorOnClass : public Tango::Command
 {
 public:
-	SensorOnClass(const char   *name,
+	SensorOnClass(const char   *cmd_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)	{};
+	:Command(cmd_name,in,out,in_desc,out_desc, level)	{}
 
-	SensorOnClass(const char   *name,
+	SensorOnClass(const char   *cmd_name,
 	               Tango::CmdArgType in,
 				   Tango::CmdArgType out)
-	:Command(name,in,out)	{};
-	~SensorOnClass() {};
-	
+	:Command(cmd_name,in,out)	{}
+	~SensorOnClass() {}
+
 	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<Tpg300 *>(dev))->is_SensorOn_allowed(any);}
@@ -356,20 +335,20 @@ public:
 class SensorOffClass : public Tango::Command
 {
 public:
-	SensorOffClass(const char   *name,
+	SensorOffClass(const char   *cmd_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)	{};
+	:Command(cmd_name,in,out,in_desc,out_desc, level)	{}
 
-	SensorOffClass(const char   *name,
+	SensorOffClass(const char   *cmd_name,
 	               Tango::CmdArgType in,
 				   Tango::CmdArgType out)
-	:Command(name,in,out)	{};
-	~SensorOffClass() {};
-	
+	:Command(cmd_name,in,out)	{}
+	~SensorOffClass() {}
+
 	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<Tpg300 *>(dev))->is_SensorOff_allowed(any);}
@@ -379,20 +358,20 @@ public:
 class WriteLowerThresholdClass : public Tango::Command
 {
 public:
-	WriteLowerThresholdClass(const char   *name,
+	WriteLowerThresholdClass(const char   *cmd_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)	{};
+	:Command(cmd_name,in,out,in_desc,out_desc, level)	{}
 
-	WriteLowerThresholdClass(const char   *name,
+	WriteLowerThresholdClass(const char   *cmd_name,
 	               Tango::CmdArgType in,
 				   Tango::CmdArgType out)
-	:Command(name,in,out)	{};
-	~WriteLowerThresholdClass() {};
-	
+	:Command(cmd_name,in,out)	{}
+	~WriteLowerThresholdClass() {}
+
 	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<Tpg300 *>(dev))->is_WriteLowerThreshold_allowed(any);}
@@ -402,20 +381,20 @@ public:
 class ReadLowerThresholdClass : public Tango::Command
 {
 public:
-	ReadLowerThresholdClass(const char   *name,
+	ReadLowerThresholdClass(const char   *cmd_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)	{};
+	:Command(cmd_name,in,out,in_desc,out_desc, level)	{}
 
-	ReadLowerThresholdClass(const char   *name,
+	ReadLowerThresholdClass(const char   *cmd_name,
 	               Tango::CmdArgType in,
 				   Tango::CmdArgType out)
-	:Command(name,in,out)	{};
-	~ReadLowerThresholdClass() {};
-	
+	:Command(cmd_name,in,out)	{}
+	~ReadLowerThresholdClass() {}
+
 	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<Tpg300 *>(dev))->is_ReadLowerThreshold_allowed(any);}
@@ -425,20 +404,20 @@ public:
 class WriteUpperThresholdClass : public Tango::Command
 {
 public:
-	WriteUpperThresholdClass(const char   *name,
+	WriteUpperThresholdClass(const char   *cmd_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)	{};
+	:Command(cmd_name,in,out,in_desc,out_desc, level)	{}
 
-	WriteUpperThresholdClass(const char   *name,
+	WriteUpperThresholdClass(const char   *cmd_name,
 	               Tango::CmdArgType in,
 				   Tango::CmdArgType out)
-	:Command(name,in,out)	{};
-	~WriteUpperThresholdClass() {};
-	
+	:Command(cmd_name,in,out)	{}
+	~WriteUpperThresholdClass() {}
+
 	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<Tpg300 *>(dev))->is_WriteUpperThreshold_allowed(any);}
@@ -448,20 +427,20 @@ public:
 class ReadUpperThresholdClass : public Tango::Command
 {
 public:
-	ReadUpperThresholdClass(const char   *name,
+	ReadUpperThresholdClass(const char   *cmd_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)	{};
+	:Command(cmd_name,in,out,in_desc,out_desc, level)	{}
 
-	ReadUpperThresholdClass(const char   *name,
+	ReadUpperThresholdClass(const char   *cmd_name,
 	               Tango::CmdArgType in,
 				   Tango::CmdArgType out)
-	:Command(name,in,out)	{};
-	~ReadUpperThresholdClass() {};
-	
+	:Command(cmd_name,in,out)	{}
+	~ReadUpperThresholdClass() {}
+
 	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<Tpg300 *>(dev))->is_ReadUpperThreshold_allowed(any);}
@@ -471,20 +450,20 @@ public:
 class ReadSensorSourceClass : public Tango::Command
 {
 public:
-	ReadSensorSourceClass(const char   *name,
+	ReadSensorSourceClass(const char   *cmd_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)	{};
+	:Command(cmd_name,in,out,in_desc,out_desc, level)	{}
 
-	ReadSensorSourceClass(const char   *name,
+	ReadSensorSourceClass(const char   *cmd_name,
 	               Tango::CmdArgType in,
 				   Tango::CmdArgType out)
-	:Command(name,in,out)	{};
-	~ReadSensorSourceClass() {};
-	
+	:Command(cmd_name,in,out)	{}
+	~ReadSensorSourceClass() {}
+
 	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<Tpg300 *>(dev))->is_ReadSensorSource_allowed(any);}
@@ -494,20 +473,20 @@ public:
 class WriteSensorSourceClass : public Tango::Command
 {
 public:
-	WriteSensorSourceClass(const char   *name,
+	WriteSensorSourceClass(const char   *cmd_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)	{};
+	:Command(cmd_name,in,out,in_desc,out_desc, level)	{}
 
-	WriteSensorSourceClass(const char   *name,
+	WriteSensorSourceClass(const char   *cmd_name,
 	               Tango::CmdArgType in,
 				   Tango::CmdArgType out)
-	:Command(name,in,out)	{};
-	~WriteSensorSourceClass() {};
-	
+	:Command(cmd_name,in,out)	{}
+	~WriteSensorSourceClass() {}
+
 	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<Tpg300 *>(dev))->is_WriteSensorSource_allowed(any);}
@@ -517,20 +496,20 @@ public:
 class RegisterNameClass : public Tango::Command
 {
 public:
-	RegisterNameClass(const char   *name,
+	RegisterNameClass(const char   *cmd_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)	{};
+	:Command(cmd_name,in,out,in_desc,out_desc, level)	{}
 
-	RegisterNameClass(const char   *name,
+	RegisterNameClass(const char   *cmd_name,
 	               Tango::CmdArgType in,
 				   Tango::CmdArgType out)
-	:Command(name,in,out)	{};
-	~RegisterNameClass() {};
-	
+	:Command(cmd_name,in,out)	{}
+	~RegisterNameClass() {}
+
 	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<Tpg300 *>(dev))->is_RegisterName_allowed(any);}
@@ -540,80 +519,73 @@ public:
 class UnregisterNameClass : public Tango::Command
 {
 public:
-	UnregisterNameClass(const char   *name,
+	UnregisterNameClass(const char   *cmd_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)	{};
+	:Command(cmd_name,in,out,in_desc,out_desc, level)	{}
 
-	UnregisterNameClass(const char   *name,
+	UnregisterNameClass(const char   *cmd_name,
 	               Tango::CmdArgType in,
 				   Tango::CmdArgType out)
-	:Command(name,in,out)	{};
-	~UnregisterNameClass() {};
-	
+	:Command(cmd_name,in,out)	{}
+	~UnregisterNameClass() {}
+
 	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<Tpg300 *>(dev))->is_UnregisterName_allowed(any);}
 };
 
 
-
-
-
 /**
- *	The TemplateDevServClass singleton definition
+ *	The Tpg300Class singleton definition
  */
 
-class
 #ifdef _TG_WINDOWS_
-	__declspec(dllexport)
+class __declspec(dllexport)  Tpg300Class : public Tango::DeviceClass
+#else
+class Tpg300Class : public Tango::DeviceClass
 #endif
-	Tpg300Class : public Tango::DeviceClass
 {
-	/*----- PROTECTED REGION ID(Tpg300::Additionnal DServer data members) ENABLED START -----*/
-
-	/*----- PROTECTED REGION END -----*/	//	Tpg300::Additionnal DServer data members
-
-
-
-public:
-//	write class properties data members
-	Tango::DbData	cl_prop;
-	Tango::DbData	cl_def_prop;
-	Tango::DbData	dev_def_prop;
-
-//	Method prototypes
-	static Tpg300Class *init(const char *);
-	static Tpg300Class *instance();
-	~Tpg300Class();
-	Tango::DbDatum	get_class_property(string &);
-	Tango::DbDatum	get_default_device_property(string &);
-	Tango::DbDatum	get_default_class_property(string &);
-	
-protected:
-	Tpg300Class(string &);
-	static Tpg300Class *_instance;
-	void command_factory();
-	void attribute_factory(vector<Tango::Attr *> &);
-	void write_class_property();
-	void set_default_property();
-	void get_class_property();
-	string get_cvstag();
-	string get_cvsroot();
-
-private:
-	void device_factory(const Tango::DevVarStringArray *);
-	void create_static_attribute_list(vector<Tango::Attr *> &);
-	void erase_dynamic_attributes(const Tango::DevVarStringArray *,vector<Tango::Attr *> &);
-	vector<string>	defaultAttList;
-
-
+	/*----- PROTECTED REGION ID(Tpg300Class::Additional DServer data members) ENABLED START -----*/
+
+	/*----- PROTECTED REGION END -----*/	//	Tpg300Class::Additional DServer data members
+
+	public:
+		//	write class properties data members
+		Tango::DbData	cl_prop;
+		Tango::DbData	cl_def_prop;
+		Tango::DbData	dev_def_prop;
+		//	Method prototypes
+		static Tpg300Class *init(const char *);
+		static Tpg300Class *instance();
+		~Tpg300Class();
+		Tango::DbDatum	get_class_property(std::string &);
+		Tango::DbDatum	get_default_device_property(std::string &);
+		Tango::DbDatum	get_default_class_property(std::string &);
+
+	protected:
+		Tpg300Class(std::string &);
+		static Tpg300Class *_instance;
+		void command_factory();
+		void attribute_factory(std::vector<Tango::Attr *> &);
+		void pipe_factory();
+		void write_class_property();
+		void set_default_property();
+		void get_class_property();
+		std::string get_cvstag();
+		std::string get_cvsroot();
+
+	private:
+		void device_factory(TANGO_UNUSED(const Tango::DevVarStringArray *));
+		void create_static_attribute_list(std::vector<Tango::Attr *> &);
+		void erase_dynamic_attributes(const Tango::DevVarStringArray *,std::vector<Tango::Attr *> &);
+		std::vector<std::string>	defaultAttList;
+		Tango::Attr *get_attr_object_by_name(std::vector<Tango::Attr *> &att_list, std::string attname);
 };
 
-}	//	namespace
-
-#endif	//	TPG300CLASS_H
+}	//	End of namespace
 
+#endif   //	Tpg300_H
diff --git a/src/Tpg300StateMachine.cpp b/src/Tpg300StateMachine.cpp
index 4afb61099b54002dffc8ab603215eafa860fef56..cffc9f27c3c3b57b868d52910ae9915076156aba 100644
--- a/src/Tpg300StateMachine.cpp
+++ b/src/Tpg300StateMachine.cpp
@@ -38,706 +38,540 @@ static const char *RcsId = "$Id: Tpg300StateMachine.cpp,v 1.5 2013-06-05 14:59:1
 #include <Tpg300Class.h>
 #include "Tpg300Channel.h"
 
-/*----- PROTECTED REGION END -----*/
+/*----- PROTECTED REGION END -----*/	//	Tpg300::Tpg300StateMachine.cpp
 
+//================================================================
+//  States  |  Description
+//================================================================
+//  ON      |  
+//  OFF     |  
+//  ALARM   |  
+//  FAULT   |  
 
-/*
- * Tpg300 states description:
- *
- * ON :	 
- * OFF :	 
- * ALARM :	 
- * FAULT :	 
- */
 
 namespace Tpg300_ns
 {
-
 //=================================================
 //		Attributes Allowed Methods
 //=================================================
 
 //--------------------------------------------------------
 /**
- *	Method      : Tpg300::is_Pressure_0State_allowed()
- *	Description : Execution allowed for Pressure_0 attribute.
+ *	Method     : Tpg300::is_Pressure_0_allowed()
+ *	Description: Execution allowed for Pressure_0 attribute
  */
 //--------------------------------------------------------
-
-bool Tpg300::is_Pressure_0_allowed(Tango::AttReqType type)
+bool Tpg300::is_Pressure_0_allowed(TANGO_UNUSED(Tango::AttReqType type))
 {
-		//	Not any excluded states for Pressure_0 attribute in READ access.
-	
-	/*----- PROTECTED REGION ID(Tpg300::read_Pressure_0StateAllowed_READ) ENABLED START -----*/
-
-	if(!init_completed)
-		return false;
-
-	if(channel_0->get_state() == Tango::FAULT)
-		return false;
-
-	if(channel_0->get_state() == Tango::UNKNOWN)
-		return false;
-
-	if(channel_0->get_state() == Tango::DISABLE)
-		return false;
-
-	if(channel_0->get_state() == Tango::OFF)
-		return false;
-
-	/*----- PROTECTED REGION END -----*/	//	Tpg300::read_Pressure_0StateAllowed_READ
 
+	//	Not any excluded states for Pressure_0 attribute in read access.
+	/*----- PROTECTED REGION ID(Tpg300::Pressure_0StateAllowed_READ) ENABLED START -----*/
+	/* clang-format on */
+	/* clang-format off */
+	/*----- PROTECTED REGION END -----*/	//	Tpg300::Pressure_0StateAllowed_READ
 	return true;
 }
 
 //--------------------------------------------------------
 /**
- *	Method      : Tpg300::is_Pressure_1State_allowed()
- *	Description : Execution allowed for Pressure_1 attribute.
+ *	Method     : Tpg300::is_Pressure_1_allowed()
+ *	Description: Execution allowed for Pressure_1 attribute
  */
 //--------------------------------------------------------
-
-bool Tpg300::is_Pressure_1_allowed(Tango::AttReqType type)
+bool Tpg300::is_Pressure_1_allowed(TANGO_UNUSED(Tango::AttReqType type))
 {
-		//	Not any excluded states for Pressure_1 attribute in READ access.
-	
-	/*----- PROTECTED REGION ID(Tpg300::read_Pressure_1StateAllowed_READ) ENABLED START -----*/
-
-	if(!init_completed)
-		return false;
-
-	if(channel_1->get_state() == Tango::FAULT)
-		return false;
-
-	if(channel_1->get_state() == Tango::UNKNOWN)
-		return false;
-
-	if(channel_1->get_state() == Tango::DISABLE)
-		return false;
-
-	if(channel_1->get_state() == Tango::OFF)
-		return false;
-
-	/*----- PROTECTED REGION END -----*/	//	Tpg300::read_Pressure_1StateAllowed_READ
 
+	//	Not any excluded states for Pressure_1 attribute in read access.
+	/*----- PROTECTED REGION ID(Tpg300::Pressure_1StateAllowed_READ) ENABLED START -----*/
+	/* clang-format on */
+	/* clang-format off */
+	/*----- PROTECTED REGION END -----*/	//	Tpg300::Pressure_1StateAllowed_READ
 	return true;
 }
 
 //--------------------------------------------------------
 /**
- *	Method      : Tpg300::is_Pressure_2State_allowed()
- *	Description : Execution allowed for Pressure_2 attribute.
+ *	Method     : Tpg300::is_Pressure_2_allowed()
+ *	Description: Execution allowed for Pressure_2 attribute
  */
 //--------------------------------------------------------
-
-bool Tpg300::is_Pressure_2_allowed(Tango::AttReqType type)
+bool Tpg300::is_Pressure_2_allowed(TANGO_UNUSED(Tango::AttReqType type))
 {
-		//	Not any excluded states for Pressure_2 attribute in READ access.
-	
-	/*----- PROTECTED REGION ID(Tpg300::read_Pressure_2StateAllowed_READ) ENABLED START -----*/
-
-	if(!init_completed)
-		return false;
-
-	if(channel_2->get_state() == Tango::FAULT)
-		return false;
-
-	if(channel_2->get_state() == Tango::UNKNOWN)
-		return false;
-
-	if(channel_2->get_state() == Tango::DISABLE)
-		return false;
-
-	if(channel_2->get_state() == Tango::OFF)
-		return false;
-
-	/*----- PROTECTED REGION END -----*/	//	Tpg300::read_Pressure_2StateAllowed_READ
 
+	//	Not any excluded states for Pressure_2 attribute in read access.
+	/*----- PROTECTED REGION ID(Tpg300::Pressure_2StateAllowed_READ) ENABLED START -----*/
+	/* clang-format on */
+	/* clang-format off */
+	/*----- PROTECTED REGION END -----*/	//	Tpg300::Pressure_2StateAllowed_READ
 	return true;
 }
 
 //--------------------------------------------------------
 /**
- *	Method      : Tpg300::is_Pressure_3State_allowed()
- *	Description : Execution allowed for Pressure_3 attribute.
+ *	Method     : Tpg300::is_Pressure_3_allowed()
+ *	Description: Execution allowed for Pressure_3 attribute
  */
 //--------------------------------------------------------
-
-bool Tpg300::is_Pressure_3_allowed(Tango::AttReqType type)
+bool Tpg300::is_Pressure_3_allowed(TANGO_UNUSED(Tango::AttReqType type))
 {
-		//	Not any excluded states for Pressure_3 attribute in READ access.
-	
-	/*----- PROTECTED REGION ID(Tpg300::read_Pressure_3StateAllowed_READ) ENABLED START -----*/
-
-	if(!init_completed)
-		return false;
-
-	if(channel_3->get_state() == Tango::FAULT)
-		return false;
-
-	if(channel_3->get_state() == Tango::UNKNOWN)
-		return false;
-
-	if(channel_3->get_state() == Tango::DISABLE)
-		return false;
-
-	if(channel_3->get_state() == Tango::OFF)
-		return false;
-
-	/*----- PROTECTED REGION END -----*/	//	Tpg300::read_Pressure_3StateAllowed_READ
 
+	//	Not any excluded states for Pressure_3 attribute in read access.
+	/*----- PROTECTED REGION ID(Tpg300::Pressure_3StateAllowed_READ) ENABLED START -----*/
+	/* clang-format on */
+	/* clang-format off */
+	/*----- PROTECTED REGION END -----*/	//	Tpg300::Pressure_3StateAllowed_READ
 	return true;
 }
 
 //--------------------------------------------------------
 /**
- *	Method      : Tpg300::is_State_0State_allowed()
- *	Description : Execution allowed for State_0 attribute.
+ *	Method     : Tpg300::is_State_0_allowed()
+ *	Description: Execution allowed for State_0 attribute
  */
 //--------------------------------------------------------
-
-bool Tpg300::is_State_0_allowed(Tango::AttReqType type)
+bool Tpg300::is_State_0_allowed(TANGO_UNUSED(Tango::AttReqType type))
 {
-		//	Not any excluded states for State_0 attribute in READ access.
-	
-	/*----- PROTECTED REGION ID(Tpg300::read_State_0StateAllowed_READ) ENABLED START -----*/
-
-	if(!init_completed)
-		return false;
-
-	/*----- PROTECTED REGION END -----*/	//	Tpg300::read_State_0StateAllowed_READ
 
+	//	Not any excluded states for State_0 attribute in read access.
+	/*----- PROTECTED REGION ID(Tpg300::State_0StateAllowed_READ) ENABLED START -----*/
+	/* clang-format on */
+	/* clang-format off */
+	/*----- PROTECTED REGION END -----*/	//	Tpg300::State_0StateAllowed_READ
 	return true;
 }
 
 //--------------------------------------------------------
 /**
- *	Method      : Tpg300::is_State_1State_allowed()
- *	Description : Execution allowed for State_1 attribute.
+ *	Method     : Tpg300::is_State_1_allowed()
+ *	Description: Execution allowed for State_1 attribute
  */
 //--------------------------------------------------------
-
-bool Tpg300::is_State_1_allowed(Tango::AttReqType type)
+bool Tpg300::is_State_1_allowed(TANGO_UNUSED(Tango::AttReqType type))
 {
-		//	Not any excluded states for State_1 attribute in READ access.
-	
-	/*----- PROTECTED REGION ID(Tpg300::read_State_1StateAllowed_READ) ENABLED START -----*/
-
-	if(!init_completed)
-		return false;
-
-	/*----- PROTECTED REGION END -----*/	//	Tpg300::read_State_1StateAllowed_READ
 
+	//	Not any excluded states for State_1 attribute in read access.
+	/*----- PROTECTED REGION ID(Tpg300::State_1StateAllowed_READ) ENABLED START -----*/
+	/* clang-format on */
+	/* clang-format off */
+	/*----- PROTECTED REGION END -----*/	//	Tpg300::State_1StateAllowed_READ
 	return true;
 }
 
 //--------------------------------------------------------
 /**
- *	Method      : Tpg300::is_State_2State_allowed()
- *	Description : Execution allowed for State_2 attribute.
+ *	Method     : Tpg300::is_State_2_allowed()
+ *	Description: Execution allowed for State_2 attribute
  */
 //--------------------------------------------------------
-
-bool Tpg300::is_State_2_allowed(Tango::AttReqType type)
+bool Tpg300::is_State_2_allowed(TANGO_UNUSED(Tango::AttReqType type))
 {
-		//	Not any excluded states for State_2 attribute in READ access.
-	
-	/*----- PROTECTED REGION ID(Tpg300::read_State_2StateAllowed_READ) ENABLED START -----*/
-
-	if(!init_completed)
-		return false;
-
-	/*----- PROTECTED REGION END -----*/	//	Tpg300::read_State_2StateAllowed_READ
 
+	//	Not any excluded states for State_2 attribute in read access.
+	/*----- PROTECTED REGION ID(Tpg300::State_2StateAllowed_READ) ENABLED START -----*/
+	/* clang-format on */
+	/* clang-format off */
+	/*----- PROTECTED REGION END -----*/	//	Tpg300::State_2StateAllowed_READ
 	return true;
 }
 
 //--------------------------------------------------------
 /**
- *	Method      : Tpg300::is_State_3State_allowed()
- *	Description : Execution allowed for State_3 attribute.
+ *	Method     : Tpg300::is_State_3_allowed()
+ *	Description: Execution allowed for State_3 attribute
  */
 //--------------------------------------------------------
-
-bool Tpg300::is_State_3_allowed(Tango::AttReqType type)
+bool Tpg300::is_State_3_allowed(TANGO_UNUSED(Tango::AttReqType type))
 {
-		//	Not any excluded states for State_3 attribute in READ access.
-	
-	/*----- PROTECTED REGION ID(Tpg300::read_State_3StateAllowed_READ) ENABLED START -----*/
-
-	if(!init_completed)
-		return false;
-
-	/*----- PROTECTED REGION END -----*/	//	Tpg300::read_State_3StateAllowed_READ
 
+	//	Not any excluded states for State_3 attribute in read access.
+	/*----- PROTECTED REGION ID(Tpg300::State_3StateAllowed_READ) ENABLED START -----*/
+	/* clang-format on */
+	/* clang-format off */
+	/*----- PROTECTED REGION END -----*/	//	Tpg300::State_3StateAllowed_READ
 	return true;
 }
 
 //--------------------------------------------------------
 /**
- *	Method      : Tpg300::is_Status_0State_allowed()
- *	Description : Execution allowed for Status_0 attribute.
+ *	Method     : Tpg300::is_Status_0_allowed()
+ *	Description: Execution allowed for Status_0 attribute
  */
 //--------------------------------------------------------
-
-bool Tpg300::is_Status_0_allowed(Tango::AttReqType type)
+bool Tpg300::is_Status_0_allowed(TANGO_UNUSED(Tango::AttReqType type))
 {
-		//	Not any excluded states for Status_0 attribute in READ access.
-	
-	/*----- PROTECTED REGION ID(Tpg300::read_Status_0StateAllowed_READ) ENABLED START -----*/
-
-	if(!init_completed)
-		return false;
-
-	/*----- PROTECTED REGION END -----*/	//	Tpg300::read_Status_0StateAllowed_READ
 
+	//	Not any excluded states for Status_0 attribute in read access.
+	/*----- PROTECTED REGION ID(Tpg300::Status_0StateAllowed_READ) ENABLED START -----*/
+	/* clang-format on */
+	/* clang-format off */
+	/*----- PROTECTED REGION END -----*/	//	Tpg300::Status_0StateAllowed_READ
 	return true;
 }
 
 //--------------------------------------------------------
 /**
- *	Method      : Tpg300::is_Status_1State_allowed()
- *	Description : Execution allowed for Status_1 attribute.
+ *	Method     : Tpg300::is_Status_1_allowed()
+ *	Description: Execution allowed for Status_1 attribute
  */
 //--------------------------------------------------------
-
-bool Tpg300::is_Status_1_allowed(Tango::AttReqType type)
+bool Tpg300::is_Status_1_allowed(TANGO_UNUSED(Tango::AttReqType type))
 {
-		//	Not any excluded states for Status_1 attribute in READ access.
-	
-	/*----- PROTECTED REGION ID(Tpg300::read_Status_1StateAllowed_READ) ENABLED START -----*/
-
-	if(!init_completed)
-		return false;
-
-	/*----- PROTECTED REGION END -----*/	//	Tpg300::read_Status_1StateAllowed_READ
 
+	//	Not any excluded states for Status_1 attribute in read access.
+	/*----- PROTECTED REGION ID(Tpg300::Status_1StateAllowed_READ) ENABLED START -----*/
+	/* clang-format on */
+	/* clang-format off */
+	/*----- PROTECTED REGION END -----*/	//	Tpg300::Status_1StateAllowed_READ
 	return true;
 }
 
 //--------------------------------------------------------
 /**
- *	Method      : Tpg300::is_Status_2State_allowed()
- *	Description : Execution allowed for Status_2 attribute.
+ *	Method     : Tpg300::is_Status_2_allowed()
+ *	Description: Execution allowed for Status_2 attribute
  */
 //--------------------------------------------------------
-
-bool Tpg300::is_Status_2_allowed(Tango::AttReqType type)
+bool Tpg300::is_Status_2_allowed(TANGO_UNUSED(Tango::AttReqType type))
 {
-		//	Not any excluded states for Status_2 attribute in READ access.
-	
-	/*----- PROTECTED REGION ID(Tpg300::read_Status_2StateAllowed_READ) ENABLED START -----*/
-
-	if(!init_completed)
-		return false;
-
-	/*----- PROTECTED REGION END -----*/	//	Tpg300::read_Status_2StateAllowed_READ
 
+	//	Not any excluded states for Status_2 attribute in read access.
+	/*----- PROTECTED REGION ID(Tpg300::Status_2StateAllowed_READ) ENABLED START -----*/
+	/* clang-format on */
+	/* clang-format off */
+	/*----- PROTECTED REGION END -----*/	//	Tpg300::Status_2StateAllowed_READ
 	return true;
 }
 
 //--------------------------------------------------------
 /**
- *	Method      : Tpg300::is_Status_3State_allowed()
- *	Description : Execution allowed for Status_3 attribute.
+ *	Method     : Tpg300::is_Status_3_allowed()
+ *	Description: Execution allowed for Status_3 attribute
  */
 //--------------------------------------------------------
-
-bool Tpg300::is_Status_3_allowed(Tango::AttReqType type)
+bool Tpg300::is_Status_3_allowed(TANGO_UNUSED(Tango::AttReqType type))
 {
-		//	Not any excluded states for Status_3 attribute in READ access.
-	
-	/*----- PROTECTED REGION ID(Tpg300::read_Status_3StateAllowed_READ) ENABLED START -----*/
-
-	if(!init_completed)
-		return false;
-
-	/*----- PROTECTED REGION END -----*/	//	Tpg300::read_Status_3StateAllowed_READ
 
+	//	Not any excluded states for Status_3 attribute in read access.
+	/*----- PROTECTED REGION ID(Tpg300::Status_3StateAllowed_READ) ENABLED START -----*/
+	/* clang-format on */
+	/* clang-format off */
+	/*----- PROTECTED REGION END -----*/	//	Tpg300::Status_3StateAllowed_READ
 	return true;
 }
 
 //--------------------------------------------------------
 /**
- *	Method      : Tpg300::is_Name_0State_allowed()
- *	Description : Execution allowed for Name_0 attribute.
+ *	Method     : Tpg300::is_Name_0_allowed()
+ *	Description: Execution allowed for Name_0 attribute
  */
 //--------------------------------------------------------
-
-bool Tpg300::is_Name_0_allowed(Tango::AttReqType type)
+bool Tpg300::is_Name_0_allowed(TANGO_UNUSED(Tango::AttReqType type))
 {
-		//	Not any excluded states for Name_0 attribute in READ access.
-	
-	/*----- PROTECTED REGION ID(Tpg300::read_Name_0StateAllowed_READ) ENABLED START -----*/
-
-	if(!init_completed)
-		return false;
-
-	/*----- PROTECTED REGION END -----*/	//	Tpg300::read_Name_0StateAllowed_READ
 
+	//	Not any excluded states for Name_0 attribute in read access.
+	/*----- PROTECTED REGION ID(Tpg300::Name_0StateAllowed_READ) ENABLED START -----*/
+	/* clang-format on */
+	/* clang-format off */
+	/*----- PROTECTED REGION END -----*/	//	Tpg300::Name_0StateAllowed_READ
 	return true;
 }
 
 //--------------------------------------------------------
 /**
- *	Method      : Tpg300::is_Name_1State_allowed()
- *	Description : Execution allowed for Name_1 attribute.
+ *	Method     : Tpg300::is_Name_1_allowed()
+ *	Description: Execution allowed for Name_1 attribute
  */
 //--------------------------------------------------------
-
-bool Tpg300::is_Name_1_allowed(Tango::AttReqType type)
+bool Tpg300::is_Name_1_allowed(TANGO_UNUSED(Tango::AttReqType type))
 {
-		//	Not any excluded states for Name_1 attribute in READ access.
-	
-	/*----- PROTECTED REGION ID(Tpg300::read_Name_1StateAllowed_READ) ENABLED START -----*/
-
-	if(!init_completed)
-		return false;
-
-	/*----- PROTECTED REGION END -----*/	//	Tpg300::read_Name_1StateAllowed_READ
 
+	//	Not any excluded states for Name_1 attribute in read access.
+	/*----- PROTECTED REGION ID(Tpg300::Name_1StateAllowed_READ) ENABLED START -----*/
+	/* clang-format on */
+	/* clang-format off */
+	/*----- PROTECTED REGION END -----*/	//	Tpg300::Name_1StateAllowed_READ
 	return true;
 }
 
 //--------------------------------------------------------
 /**
- *	Method      : Tpg300::is_Name_2State_allowed()
- *	Description : Execution allowed for Name_2 attribute.
+ *	Method     : Tpg300::is_Name_2_allowed()
+ *	Description: Execution allowed for Name_2 attribute
  */
 //--------------------------------------------------------
-
-bool Tpg300::is_Name_2_allowed(Tango::AttReqType type)
+bool Tpg300::is_Name_2_allowed(TANGO_UNUSED(Tango::AttReqType type))
 {
-		//	Not any excluded states for Name_2 attribute in READ access.
-	
-	/*----- PROTECTED REGION ID(Tpg300::read_Name_2StateAllowed_READ) ENABLED START -----*/
-
-	if(!init_completed)
-		return false;
-
-	/*----- PROTECTED REGION END -----*/	//	Tpg300::read_Name_2StateAllowed_READ
 
+	//	Not any excluded states for Name_2 attribute in read access.
+	/*----- PROTECTED REGION ID(Tpg300::Name_2StateAllowed_READ) ENABLED START -----*/
+	/* clang-format on */
+	/* clang-format off */
+	/*----- PROTECTED REGION END -----*/	//	Tpg300::Name_2StateAllowed_READ
 	return true;
 }
 
 //--------------------------------------------------------
 /**
- *	Method      : Tpg300::is_Name_3State_allowed()
- *	Description : Execution allowed for Name_3 attribute.
+ *	Method     : Tpg300::is_Name_3_allowed()
+ *	Description: Execution allowed for Name_3 attribute
  */
 //--------------------------------------------------------
-
-bool Tpg300::is_Name_3_allowed(Tango::AttReqType type)
+bool Tpg300::is_Name_3_allowed(TANGO_UNUSED(Tango::AttReqType type))
 {
-		//	Not any excluded states for Name_3 attribute in READ access.
-	
-	/*----- PROTECTED REGION ID(Tpg300::read_Name_3StateAllowed_READ) ENABLED START -----*/
-
-	if(!init_completed)
-		return false;
-
-	/*----- PROTECTED REGION END -----*/	//	Tpg300::read_Name_3StateAllowed_READ
 
+	//	Not any excluded states for Name_3 attribute in read access.
+	/*----- PROTECTED REGION ID(Tpg300::Name_3StateAllowed_READ) ENABLED START -----*/
+	/* clang-format on */
+	/* clang-format off */
+	/*----- PROTECTED REGION END -----*/	//	Tpg300::Name_3StateAllowed_READ
 	return true;
 }
 
 //--------------------------------------------------------
 /**
- *	Method      : Tpg300::is_DeviceStateState_allowed()
- *	Description : Execution allowed for DeviceState attribute.
+ *	Method     : Tpg300::is_DeviceState_allowed()
+ *	Description: Execution allowed for DeviceState attribute
  */
 //--------------------------------------------------------
-
-bool Tpg300::is_DeviceState_allowed(Tango::AttReqType type)
+bool Tpg300::is_DeviceState_allowed(TANGO_UNUSED(Tango::AttReqType type))
 {
-	//	Check if access type.
-	if ( type!=Tango::READ_REQ )
-	{
-			//	Not any excluded states for DeviceState attribute in WRITE access.
-		
+	//	Not any excluded states for DeviceState attribute in Write access.
 	/*----- PROTECTED REGION ID(Tpg300::DeviceStateStateAllowed_WRITE) ENABLED START -----*/
 
 	/*----- PROTECTED REGION END -----*/	//	Tpg300::DeviceStateStateAllowed_WRITE
 
-		return true;
-	}
-	else
-		//	Not any excluded states for DeviceState attribute in READ access.
-	
-	/*----- PROTECTED REGION ID(Tpg300::read_DeviceStateStateAllowed_READ) ENABLED START -----*/
-
-	/*----- PROTECTED REGION END -----*/	//	Tpg300::read_DeviceStateStateAllowed_READ
-
+	//	Not any excluded states for DeviceState attribute in read access.
+	/*----- PROTECTED REGION ID(Tpg300::DeviceStateStateAllowed_READ) ENABLED START -----*/
+	/* clang-format on */
+	/* clang-format off */
+	/*----- PROTECTED REGION END -----*/	//	Tpg300::DeviceStateStateAllowed_READ
 	return true;
 }
 
 //--------------------------------------------------------
 /**
- *	Method      : Tpg300::is_DeviceStatusState_allowed()
- *	Description : Execution allowed for DeviceStatus attribute.
+ *	Method     : Tpg300::is_DeviceStatus_allowed()
+ *	Description: Execution allowed for DeviceStatus attribute
  */
 //--------------------------------------------------------
-
-bool Tpg300::is_DeviceStatus_allowed(Tango::AttReqType type)
+bool Tpg300::is_DeviceStatus_allowed(TANGO_UNUSED(Tango::AttReqType type))
 {
-		//	Not any excluded states for DeviceStatus attribute in READ access.
-	
-	/*----- PROTECTED REGION ID(Tpg300::read_DeviceStatusStateAllowed_READ) ENABLED START -----*/
-
-	/*----- PROTECTED REGION END -----*/	//	Tpg300::read_DeviceStatusStateAllowed_READ
 
+	//	Not any excluded states for DeviceStatus attribute in read access.
+	/*----- PROTECTED REGION ID(Tpg300::DeviceStatusStateAllowed_READ) ENABLED START -----*/
+	/* clang-format on */
+	/* clang-format off */
+	/*----- PROTECTED REGION END -----*/	//	Tpg300::DeviceStatusStateAllowed_READ
 	return true;
 }
 
 //--------------------------------------------------------
 /**
- *	Method      : Tpg300::is_SetPointStatusState_allowed()
- *	Description : Execution allowed for SetPointStatus attribute.
+ *	Method     : Tpg300::is_SetPointStatus_allowed()
+ *	Description: Execution allowed for SetPointStatus attribute
  */
 //--------------------------------------------------------
-
-bool Tpg300::is_SetPointStatus_allowed(Tango::AttReqType type)
+bool Tpg300::is_SetPointStatus_allowed(TANGO_UNUSED(Tango::AttReqType type))
 {
-		//	Not any excluded states for SetPointStatus attribute in READ access.
-	
-	/*----- PROTECTED REGION ID(Tpg300::read_SetPointStatusStateAllowed_READ) ENABLED START -----*/
-
-	if(!init_completed)
-		return false;
-
-	/*----- PROTECTED REGION END -----*/	//	Tpg300::read_SetPointStatusStateAllowed_READ
 
+	//	Not any excluded states for SetPointStatus attribute in read access.
+	/*----- PROTECTED REGION ID(Tpg300::SetPointStatusStateAllowed_READ) ENABLED START -----*/
+	/* clang-format on */
+	/* clang-format off */
+	/*----- PROTECTED REGION END -----*/	//	Tpg300::SetPointStatusStateAllowed_READ
 	return true;
 }
 
 
-	/*----- PROTECTED REGION ID(Tpg300::are_dynamic_attributes_allowed) ENABLED START -----*/
-
-	//	Add your code to check if dynamic attributes are alowed
-
-	/*----- PROTECTED REGION END -----*/	//	Tpg300::are_dynamic_attributes_allowed
-
-
 //=================================================
 //		Commands Allowed Methods
 //=================================================
 
-
 //--------------------------------------------------------
 /**
- *	Method      : Tpg300::is_SensorOnState_allowed()
- *	Description : Execution allowed for SensorOn command.
+ *	Method     : Tpg300::is_SensorOn_allowed()
+ *	Description: Execution allowed for SensorOn attribute
  */
 //--------------------------------------------------------
-
-bool Tpg300::is_SensorOn_allowed(const CORBA::Any &any)
+bool Tpg300::is_SensorOn_allowed(TANGO_UNUSED(const CORBA::Any &any))
 {
 	//	Not any excluded states for SensorOn command.
-
 	/*----- PROTECTED REGION ID(Tpg300::SensorOnStateAllowed) ENABLED START -----*/
 
 	if(!init_completed)
 		return false;
 
 	/*----- PROTECTED REGION END -----*/	//	Tpg300::SensorOnStateAllowed
-
 	return true;
 }
 
 //--------------------------------------------------------
 /**
- *	Method      : Tpg300::is_SensorOffState_allowed()
- *	Description : Execution allowed for SensorOff command.
+ *	Method     : Tpg300::is_SensorOff_allowed()
+ *	Description: Execution allowed for SensorOff attribute
  */
 //--------------------------------------------------------
-
-bool Tpg300::is_SensorOff_allowed(const CORBA::Any &any)
+bool Tpg300::is_SensorOff_allowed(TANGO_UNUSED(const CORBA::Any &any))
 {
 	//	Not any excluded states for SensorOff command.
-
 	/*----- PROTECTED REGION ID(Tpg300::SensorOffStateAllowed) ENABLED START -----*/
 
 	if(!init_completed)
 		return false;
 
 	/*----- PROTECTED REGION END -----*/	//	Tpg300::SensorOffStateAllowed
-
 	return true;
 }
 
 //--------------------------------------------------------
 /**
- *	Method      : Tpg300::is_WriteLowerThresholdState_allowed()
- *	Description : Execution allowed for WriteLowerThreshold command.
+ *	Method     : Tpg300::is_WriteLowerThreshold_allowed()
+ *	Description: Execution allowed for WriteLowerThreshold attribute
  */
 //--------------------------------------------------------
-
-bool Tpg300::is_WriteLowerThreshold_allowed(const CORBA::Any &any)
+bool Tpg300::is_WriteLowerThreshold_allowed(TANGO_UNUSED(const CORBA::Any &any))
 {
 	//	Not any excluded states for WriteLowerThreshold command.
-
 	/*----- PROTECTED REGION ID(Tpg300::WriteLowerThresholdStateAllowed) ENABLED START -----*/
 
 	if(!init_completed)
 		return false;
 
 	/*----- PROTECTED REGION END -----*/	//	Tpg300::WriteLowerThresholdStateAllowed
-
 	return true;
 }
 
 //--------------------------------------------------------
 /**
- *	Method      : Tpg300::is_ReadLowerThresholdState_allowed()
- *	Description : Execution allowed for ReadLowerThreshold command.
+ *	Method     : Tpg300::is_ReadLowerThreshold_allowed()
+ *	Description: Execution allowed for ReadLowerThreshold attribute
  */
 //--------------------------------------------------------
-
-bool Tpg300::is_ReadLowerThreshold_allowed(const CORBA::Any &any)
+bool Tpg300::is_ReadLowerThreshold_allowed(TANGO_UNUSED(const CORBA::Any &any))
 {
 	//	Not any excluded states for ReadLowerThreshold command.
-
 	/*----- PROTECTED REGION ID(Tpg300::ReadLowerThresholdStateAllowed) ENABLED START -----*/
 
 	if(!init_completed)
 		return false;
 
 	/*----- PROTECTED REGION END -----*/	//	Tpg300::ReadLowerThresholdStateAllowed
-
 	return true;
 }
 
 //--------------------------------------------------------
 /**
- *	Method      : Tpg300::is_WriteUpperThresholdState_allowed()
- *	Description : Execution allowed for WriteUpperThreshold command.
+ *	Method     : Tpg300::is_WriteUpperThreshold_allowed()
+ *	Description: Execution allowed for WriteUpperThreshold attribute
  */
 //--------------------------------------------------------
-
-bool Tpg300::is_WriteUpperThreshold_allowed(const CORBA::Any &any)
+bool Tpg300::is_WriteUpperThreshold_allowed(TANGO_UNUSED(const CORBA::Any &any))
 {
 	//	Not any excluded states for WriteUpperThreshold command.
-
 	/*----- PROTECTED REGION ID(Tpg300::WriteUpperThresholdStateAllowed) ENABLED START -----*/
 
 	if(!init_completed)
 		return false;
 
 	/*----- PROTECTED REGION END -----*/	//	Tpg300::WriteUpperThresholdStateAllowed
-
 	return true;
 }
 
 //--------------------------------------------------------
 /**
- *	Method      : Tpg300::is_ReadUpperThresholdState_allowed()
- *	Description : Execution allowed for ReadUpperThreshold command.
+ *	Method     : Tpg300::is_ReadUpperThreshold_allowed()
+ *	Description: Execution allowed for ReadUpperThreshold attribute
  */
 //--------------------------------------------------------
-
-bool Tpg300::is_ReadUpperThreshold_allowed(const CORBA::Any &any)
+bool Tpg300::is_ReadUpperThreshold_allowed(TANGO_UNUSED(const CORBA::Any &any))
 {
 	//	Not any excluded states for ReadUpperThreshold command.
-
 	/*----- PROTECTED REGION ID(Tpg300::ReadUpperThresholdStateAllowed) ENABLED START -----*/
 
 	if(!init_completed)
 		return false;
 
 	/*----- PROTECTED REGION END -----*/	//	Tpg300::ReadUpperThresholdStateAllowed
-
 	return true;
 }
 
 //--------------------------------------------------------
 /**
- *	Method      : Tpg300::is_ReadSensorSourceState_allowed()
- *	Description : Execution allowed for ReadSensorSource command.
+ *	Method     : Tpg300::is_ReadSensorSource_allowed()
+ *	Description: Execution allowed for ReadSensorSource attribute
  */
 //--------------------------------------------------------
-
-bool Tpg300::is_ReadSensorSource_allowed(const CORBA::Any &any)
+bool Tpg300::is_ReadSensorSource_allowed(TANGO_UNUSED(const CORBA::Any &any))
 {
 	//	Not any excluded states for ReadSensorSource command.
-
 	/*----- PROTECTED REGION ID(Tpg300::ReadSensorSourceStateAllowed) ENABLED START -----*/
 
 	if(!init_completed)
 		return false;
 
 	/*----- PROTECTED REGION END -----*/	//	Tpg300::ReadSensorSourceStateAllowed
-
 	return true;
 }
 
 //--------------------------------------------------------
 /**
- *	Method      : Tpg300::is_WriteSensorSourceState_allowed()
- *	Description : Execution allowed for WriteSensorSource command.
+ *	Method     : Tpg300::is_WriteSensorSource_allowed()
+ *	Description: Execution allowed for WriteSensorSource attribute
  */
 //--------------------------------------------------------
-
-bool Tpg300::is_WriteSensorSource_allowed(const CORBA::Any &any)
+bool Tpg300::is_WriteSensorSource_allowed(TANGO_UNUSED(const CORBA::Any &any))
 {
 	//	Not any excluded states for WriteSensorSource command.
-
 	/*----- PROTECTED REGION ID(Tpg300::WriteSensorSourceStateAllowed) ENABLED START -----*/
 
 	if(!init_completed)
 		return false;
 
 	/*----- PROTECTED REGION END -----*/	//	Tpg300::WriteSensorSourceStateAllowed
-
 	return true;
 }
 
 //--------------------------------------------------------
 /**
- *	Method      : Tpg300::is_RegisterNameState_allowed()
- *	Description : Execution allowed for RegisterName command.
+ *	Method     : Tpg300::is_RegisterName_allowed()
+ *	Description: Execution allowed for RegisterName attribute
  */
 //--------------------------------------------------------
-
-bool Tpg300::is_RegisterName_allowed(const CORBA::Any &any)
+bool Tpg300::is_RegisterName_allowed(TANGO_UNUSED(const CORBA::Any &any))
 {
 	//	Not any excluded states for RegisterName command.
-
 	/*----- PROTECTED REGION ID(Tpg300::RegisterNameStateAllowed) ENABLED START -----*/
 
 	if(!init_completed)
 		return false;
 
 	/*----- PROTECTED REGION END -----*/	//	Tpg300::RegisterNameStateAllowed
-
 	return true;
 }
 
 //--------------------------------------------------------
 /**
- *	Method      : Tpg300::is_UnregisterNameState_allowed()
- *	Description : Execution allowed for UnregisterName command.
+ *	Method     : Tpg300::is_UnregisterName_allowed()
+ *	Description: Execution allowed for UnregisterName attribute
  */
 //--------------------------------------------------------
-
-bool Tpg300::is_UnregisterName_allowed(const CORBA::Any &any)
+bool Tpg300::is_UnregisterName_allowed(TANGO_UNUSED(const CORBA::Any &any))
 {
 	//	Not any excluded states for UnregisterName command.
-
 	/*----- PROTECTED REGION ID(Tpg300::UnregisterNameStateAllowed) ENABLED START -----*/
 
 	if(!init_completed)
 		return false;
 
 	/*----- PROTECTED REGION END -----*/	//	Tpg300::UnregisterNameStateAllowed
-
 	return true;
 }
 
 
-	/*----- PROTECTED REGION ID(Tpg300::are_dynamic_commands_allowed) ENABLED START -----*/
-
-	//	Add your code to check if dynamic commands are alowed
-
-	/*----- PROTECTED REGION END -----*/	//	Tpg300::are_dynamic_commands_allowed
+/*----- PROTECTED REGION ID(Tpg300::Tpg300StateAllowed.AdditionalMethods) ENABLED START -----*/
+/* clang-format on */
+//	Additional Methods
+/* clang-format off */
+/*----- PROTECTED REGION END -----*/	//	Tpg300::Tpg300StateAllowed.AdditionalMethods
 
-}	// namespace Tpg300_ns
+}	//	End of namespace
diff --git a/src/main.cpp b/src/main.cpp
index 8781ce1f1602d6a30a5d6b94b59e798d3b2a8727..7b0028eb78bf29c7175051f937911404e5a710e4 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -53,7 +53,7 @@ int main(int argc,char *argv[])
 		cout << "Ready to accept request" << endl;
 		tg->server_run();
 	}
-	catch (bad_alloc)
+	catch (std::bad_alloc &)
 	{
 		cout << "Can't allocate memory to store device object !!!" << endl;
 		cout << "Exiting" << endl;
@@ -69,5 +69,4 @@ int main(int argc,char *argv[])
 		tg->server_cleanup();
 	return(0);
 }
-/*PROTECTED REGION END*/
-//========================================================
+/*PROTECTED REGION END*/	//	Tpg300::main.cpp
diff --git a/src/tpg300.multi.xmi b/src/tpg300.multi.xmi
new file mode 100644
index 0000000000000000000000000000000000000000..39e71107176fda71b06a8acdb62cbf76dcc4d81d
--- /dev/null
+++ b/src/tpg300.multi.xmi
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="ASCII"?>
+<pogoDsl:PogoSystem xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:pogoDsl="http://www.esrf.fr/tango/pogo/PogoDsl">
+  <multiClasses pogoRevision="9.7" name="tpg300" sourcePath="/home/alessio/Sources/git-trees/tpg300/src" description="" filestogenerate="XMI   file,Code files,Protected Regions">
+    <classes classname="Tpg300" sourcePath="./">
+      <inheritances classname="Device_Impl" sourcePath=""/>
+    </classes>
+    <classes classname="Vg" sourcePath="../deps/vg/src">
+      <inheritances classname="Device_Impl" sourcePath=""/>
+    </classes>
+    <preferences makefileHome="$(TANGO_HOME)"/>
+  </multiClasses>
+</pogoDsl:PogoSystem>