Skip to content
Snippets Groups Projects

develop -> main

1 file
+ 39
31
Compare changes
  • Side-by-side
  • Inline
+ 39
31
@@ -129,7 +129,32 @@ SingleShotAO::SingleShotAO(Tango::DeviceClass *cl,const char *s,const char *d)
@@ -129,7 +129,32 @@ SingleShotAO::SingleShotAO(Tango::DeviceClass *cl,const char *s,const char *d)
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
void SingleShotAO::delete_device()
void SingleShotAO::delete_device()
{
{
// Delete device allocated objects
DEBUG_STREAM << "SingleShotAO::delete_device(): entering... !" << endl;
 
 
// Make sure running processes are aborted properly if channels are running
 
//--------------------------------------------
 
try
 
{
 
_abort();
 
}
 
catch (Tango::DevFailed &df)
 
{
 
ERROR_STREAM << df << endl;
 
RETHROW_DEVFAILED(df,
 
"DRIVER_FAILURE",
 
"could not abort [caught Tango::DevFailed]",
 
"SingleShotAO::delete_device");
 
}
 
catch (...)
 
{
 
ERROR_STREAM << "SingleShotAO::init::unknown exception caught" << std::endl;
 
THROW_DEVFAILED("DRIVER_FAILURE",
 
"could not abort [unknown error]",
 
"SingleShotAO::delete_device");
 
}
 
 
// Delete device allocated objects
 
//--------------------------------------------
yat4tango::TraceHelper t("SingleShotAO::delete_device", this);
yat4tango::TraceHelper t("SingleShotAO::delete_device", this);
if (m_manager)
if (m_manager)
@@ -138,14 +163,16 @@ void SingleShotAO::delete_device()
@@ -138,14 +163,16 @@ void SingleShotAO::delete_device()
m_manager = NULL;
m_manager = NULL;
}
}
//- release the asl::SingleShotAO object
// Release the asl::SingleShotAO object
 
//--------------------------------------------
if (m_ssao)
if (m_ssao)
{
{
delete m_ssao;
delete m_ssao;
m_ssao = NULL;
m_ssao = NULL;
}
}
// remove dynamic attributes
// Remove dynamic attributes
 
//--------------------------------------------
if (m_dyn_attr_manager)
if (m_dyn_attr_manager)
{
{
try
try
@@ -165,7 +192,8 @@ void SingleShotAO::delete_device()
@@ -165,7 +192,8 @@ void SingleShotAO::delete_device()
m_dyn_attr_manager = NULL;
m_dyn_attr_manager = NULL;
}
}
//- remove the inner appender
// Remove the inner appender
 
//--------------------------------------------
yat4tango::Logging::release(this);
yat4tango::Logging::release(this);
yat4tango::DeviceInfo::release(this);
yat4tango::DeviceInfo::release(this);
}
}
@@ -315,17 +343,20 @@ void SingleShotAO::init_device()
@@ -315,17 +343,20 @@ void SingleShotAO::init_device()
return;
return;
}
}
 
// get frequency value in database
// get frequency value in database
 
//--------------------------------------------
try
try
{
{
m_frequency = yat4tango::PropertyHelper::get_memorized_attribute<double>(this,"frequency");
m_frequency = yat4tango::PropertyHelper::get_memorized_attribute<double>(this, "frequency");
DEBUG_STREAM << "Frequency : " << m_frequency << endl;
DEBUG_STREAM << "Frequency : " << m_frequency << endl;
}
}
catch (...)
catch (...)
{
{
DEBUG_STREAM << "Failed to get frequency value. Maybe there is no value yet." << std::endl;
DEBUG_STREAM << "Failed to get frequency value. Maybe there is no value yet." << std::endl;
}
}
 
// initialize the AO manager
// initialize the AO manager
//--------------------------------------------
//--------------------------------------------
try
try
@@ -348,28 +379,6 @@ void SingleShotAO::init_device()
@@ -348,28 +379,6 @@ void SingleShotAO::init_device()
}
}
// Make sure running processes are aborted properly
//--------------------------------------------
try
{
_abort();
}
catch (Tango::DevFailed &df)
{
ERROR_STREAM << df << endl;
RETHROW_DEVFAILED(df,
"DRIVER_FAILURE",
"could not abort [caught Tango::DevFailed]",
"SingleShotAO::init");
}
catch (...)
{
ERROR_STREAM << "SingleShotAO::init::unknown exception caught" << std::endl;
THROW_DEVFAILED("DRIVER_FAILURE",
"could not abort [unknown error]",
"SingleShotAO::init");
}
// Create dynamic attributes
// Create dynamic attributes
//--------------------------------------------
//--------------------------------------------
@@ -1047,9 +1056,8 @@ void SingleShotAO::_abort()
@@ -1047,9 +1056,8 @@ void SingleShotAO::_abort()
yat4tango::PropertyHelper::set_memorized_attribute(this, kCHANNEL + std::to_string(l_cpt), l_val_channel);
yat4tango::PropertyHelper::set_memorized_attribute(this, kCHANNEL + std::to_string(l_cpt), l_val_channel);
DEBUG_STREAM << "Memorizing channel " << l_cpt << " to " << l_val_channel << std::endl;
DEBUG_STREAM << "Memorizing channel " << l_cpt << " to " << l_val_channel << std::endl;
double l_val_initial = m_manager->get_initial(l_cpt);
yat4tango::PropertyHelper::set_memorized_attribute(this, kINITIAL + std::to_string(l_cpt), l_val_channel);
yat4tango::PropertyHelper::set_memorized_attribute(this, kINITIAL + std::to_string(l_cpt), l_val_initial);
DEBUG_STREAM << "Memorizing initial " << l_cpt << " to " << l_val_channel << std::endl;
DEBUG_STREAM << "Memorizing initial " << l_cpt << " to " << l_val_initial << std::endl;
}
}
}
}
m_manager->abort();
m_manager->abort();
Loading