Skip to content
Snippets Groups Projects
Commit 88910757 authored by Julien Malik's avatar Julien Malik
Browse files

migration to YAT

parent 490a5208
No related branches found
No related tags found
No related merge requests found
static const char *RcsId = "$Header: /users/chaize/newsvn/cvsroot/Calculation/ImgCalibration/src/ImgCalibration.cpp,v 1.1 2007-01-09 15:41:36 stephle Exp $"; static const char *RcsId = "$Header: /users/chaize/newsvn/cvsroot/Calculation/ImgCalibration/src/ImgCalibration.cpp,v 1.2 2007-08-01 14:53:41 julien_malik Exp $";
//+============================================================================= //+=============================================================================
// //
// file : ImgCalibration.cpp // file : ImgCalibration.cpp
...@@ -11,9 +11,9 @@ static const char *RcsId = "$Header: /users/chaize/newsvn/cvsroot/Calculation/Im ...@@ -11,9 +11,9 @@ static const char *RcsId = "$Header: /users/chaize/newsvn/cvsroot/Calculation/Im
// //
// project : TANGO Device Server // project : TANGO Device Server
// //
// $Author: stephle $ // $Author: julien_malik $
// //
// $Revision: 1.1 $ // $Revision: 1.2 $
// //
// $Log: not supported by cvs2svn $ // $Log: not supported by cvs2svn $
// //
...@@ -273,8 +273,8 @@ void ImgCalibration::init_device() ...@@ -273,8 +273,8 @@ void ImgCalibration::init_device()
} }
catch (const std::bad_alloc&) catch (const std::bad_alloc&)
{ {
ERROR_STREAM << "Initialization failed - adtb::DeviceTask allocation failed" << std::endl; ERROR_STREAM << "Initialization failed - yat::Task allocation failed" << std::endl;
this->set_status ("Initialization failed - adtb::DeviceTask allocation failed"); this->set_status ("Initialization failed - yat::Task allocation failed");
this->set_state (Tango::FAULT); this->set_state (Tango::FAULT);
this->delete_device (); this->delete_device ();
return; return;
...@@ -448,17 +448,26 @@ void ImgCalibration::read_attr_hardware(vector<long> &attr_list) ...@@ -448,17 +448,26 @@ void ImgCalibration::read_attr_hardware(vector<long> &attr_list)
this->available_data->release (); this->available_data->release ();
this->available_data = 0; this->available_data = 0;
} }
}
catch(...)
{
THROW_DEVFAILED("UNKNOWN_ERROR",
"An unknown error occured",
"ImgCalibration::read_attr_hardware()");
}
if (this->dev_task)
{
//- read data //- read data
//- if not available, return value will be 0 //- if not available, return value will be 0
//- we DON'T put the device in a FAULT state if data is not available //- we DON'T put the device in a FAULT state if data is not available
//- but we update the status... //- but we update the status...
this->dev_task->get_data (this->available_data); this->dev_task->get_data (this->available_data);
} }
catch(...) else
{ {
THROW_DEVFAILED("UNKNOWN_ERROR", THROW_DEVFAILED("INITIALIZATION_ERROR",
"An unknown error occured", "Device is not properly initialized",
"ImgCalibration::read_attr_hardware()"); "ImgCalibration::read_attr_hardware()");
} }
...@@ -630,11 +639,11 @@ void ImgCalibration::write_sourceImage(Tango::WAttribute &attr) ...@@ -630,11 +639,11 @@ void ImgCalibration::write_sourceImage(Tango::WAttribute &attr)
} }
//- allocate a message and associate the image with it //- allocate a message and associate the image with it
adtb::Message* msg = 0; yat::Message* msg = 0;
try try
{ {
msg = new adtb::Message(kMSG_UNDISTORT); msg = yat::Message::allocate(kMSG_UNDISTORT, DEFAULT_MSG_PRIORITY, true);
if (msg == 0) if (msg == 0)
throw std::bad_alloc(); throw std::bad_alloc();
} }
...@@ -771,11 +780,11 @@ void ImgCalibration::write_sourcePattern(Tango::WAttribute &attr) ...@@ -771,11 +780,11 @@ void ImgCalibration::write_sourcePattern(Tango::WAttribute &attr)
} }
//- allocate a message and associate the image with it //- allocate a message and associate the image with it
adtb::Message* msg = 0; yat::Message* msg = 0;
try try
{ {
msg = new adtb::Message(kMSG_CALIBRATE); msg = yat::Message::allocate(kMSG_CALIBRATE, DEFAULT_MSG_PRIORITY, true);
if (msg == 0) if (msg == 0)
throw std::bad_alloc(); throw std::bad_alloc();
} }
...@@ -930,10 +939,10 @@ void ImgCalibration::undistort() ...@@ -930,10 +939,10 @@ void ImgCalibration::undistort()
} }
adtb::Message* msg = 0; yat::Message* msg = 0;
try try
{ {
msg = new adtb::Message(kMSG_UNDISTORT); msg = yat::Message::allocate(kMSG_UNDISTORT, DEFAULT_MSG_PRIORITY, true);
if (msg == 0) if (msg == 0)
throw std::bad_alloc(); throw std::bad_alloc();
} }
...@@ -1036,10 +1045,10 @@ void ImgCalibration::calibrate() ...@@ -1036,10 +1045,10 @@ void ImgCalibration::calibrate()
} }
adtb::Message* msg = 0; yat::Message* msg = 0;
try try
{ {
msg = new adtb::Message(kMSG_CALIBRATE); msg = yat::Message::allocate(kMSG_CALIBRATE, DEFAULT_MSG_PRIORITY, true);
if (msg == 0) if (msg == 0)
throw std::bad_alloc(); throw std::bad_alloc();
} }
...@@ -1112,10 +1121,10 @@ void ImgCalibration::start() ...@@ -1112,10 +1121,10 @@ void ImgCalibration::start()
"ImgCalibration::start"); "ImgCalibration::start");
} }
adtb::Message* msg = 0; yat::Message* msg = 0;
try try
{ {
msg = new adtb::Message(kMSG_START); msg = yat::Message::allocate(kMSG_START, DEFAULT_MSG_PRIORITY, true);
if (msg == 0) if (msg == 0)
throw std::bad_alloc(); throw std::bad_alloc();
} }
...@@ -1166,10 +1175,10 @@ void ImgCalibration::stop() ...@@ -1166,10 +1175,10 @@ void ImgCalibration::stop()
} }
adtb::Message* msg = 0; yat::Message* msg = 0;
try try
{ {
msg = new adtb::Message(kMSG_STOP); msg = yat::Message::allocate(kMSG_STOP, DEFAULT_MSG_PRIORITY, true);
if (msg == 0) if (msg == 0)
throw std::bad_alloc(); throw std::bad_alloc();
} }
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
// ============================================================================ // ============================================================================
#include <ImgCalibrationTask.h> #include <ImgCalibrationTask.h>
#if !defined (__INLINE_IMPL__) #if !defined (YAT_INLINE_IMPL)
# include "ImgCalibrationTask.i" # include "ImgCalibrationTask.i"
#endif // __INLINE_IMPL___ #endif // __INLINE_IMPL___
...@@ -75,7 +75,7 @@ ImgCalibrationTask::ImgCalibrationTask(Tango::DeviceImpl* _host_device, ...@@ -75,7 +75,7 @@ ImgCalibrationTask::ImgCalibrationTask(Tango::DeviceImpl* _host_device,
bool _auto_start, bool _auto_start,
int _mode) int _mode)
: adtb::DeviceTask(), : yat::Task(),
Tango::LogAdapter(_host_device), Tango::LogAdapter(_host_device),
dev_proxy_(0), dev_proxy_(0),
dev_proxy_allowed_(_dev_proxy_allowed), dev_proxy_allowed_(_dev_proxy_allowed),
...@@ -103,7 +103,7 @@ ImgCalibrationTask::ImgCalibrationTask(Tango::DeviceImpl* _host_device, ...@@ -103,7 +103,7 @@ ImgCalibrationTask::ImgCalibrationTask(Tango::DeviceImpl* _host_device,
if (this->mode_ == MODE_CONTINUOUS) if (this->mode_ == MODE_CONTINUOUS)
{ {
this->enable_periodic_msg(_auto_start); this->enable_periodic_msg(_auto_start);
this->set_periodic_timeout(_config.comput_period); this->set_periodic_msg_period(_config.comput_period);
} }
this->set_state_status(Tango::STANDBY, kSTANDBY_STATUS_MSG); this->set_state_status(Tango::STANDBY, kSTANDBY_STATUS_MSG);
...@@ -120,12 +120,12 @@ ImgCalibrationTask::~ImgCalibrationTask() ...@@ -120,12 +120,12 @@ ImgCalibrationTask::~ImgCalibrationTask()
// ============================================================================ // ============================================================================
// ImgCalibrationTask::handle_message // ImgCalibrationTask::handle_message
// ============================================================================ // ============================================================================
void ImgCalibrationTask::handle_message (adtb::Message& _msg) void ImgCalibrationTask::handle_message (yat::Message& _msg)
throw (Tango::DevFailed) throw (Tango::DevFailed)
{ {
switch (_msg.type()) switch (_msg.type())
{ {
case adtb::THREAD_INIT: case yat::TASK_INIT:
{ {
DEBUG_STREAM << "ImgCalibrationTask::handle_message::thread is initializing" << std::endl; DEBUG_STREAM << "ImgCalibrationTask::handle_message::thread is initializing" << std::endl;
...@@ -163,14 +163,14 @@ void ImgCalibrationTask::handle_message (adtb::Message& _msg) ...@@ -163,14 +163,14 @@ void ImgCalibrationTask::handle_message (adtb::Message& _msg)
this->initialized_ = true; this->initialized_ = true;
} }
break; break;
case adtb::THREAD_EXIT: case yat::TASK_EXIT:
{ {
DEBUG_STREAM << "ImgCalibrationTask::handle_message::thread is quitting" << std::endl; DEBUG_STREAM << "ImgCalibrationTask::handle_message::thread is quitting" << std::endl;
SAFE_DELETE_PTR(this->dev_proxy_); SAFE_DELETE_PTR(this->dev_proxy_);
this->initialized_ = false; this->initialized_ = false;
} }
break; break;
case adtb::THREAD_PERIODIC: case yat::TASK_PERIODIC:
{ {
if (this->initialized_ == false) if (this->initialized_ == false)
{ {
...@@ -204,10 +204,10 @@ void ImgCalibrationTask::handle_message (adtb::Message& _msg) ...@@ -204,10 +204,10 @@ void ImgCalibrationTask::handle_message (adtb::Message& _msg)
return; return;
} }
adtb::Message* msg = 0; yat::Message* msg = 0;
try try
{ {
msg = new adtb::Message(kMSG_UNDISTORT); msg = yat::Message::allocate(kMSG_UNDISTORT, DEFAULT_MSG_PRIORITY, false);
if (msg == 0) if (msg == 0)
throw std::bad_alloc(); throw std::bad_alloc();
} }
...@@ -273,7 +273,7 @@ void ImgCalibrationTask::handle_message (adtb::Message& _msg) ...@@ -273,7 +273,7 @@ void ImgCalibrationTask::handle_message (adtb::Message& _msg)
{ {
try try
{ {
_msg.dettach_data(image); _msg.detach_data(image);
} }
catch(Tango::DevFailed& ex) catch(Tango::DevFailed& ex)
{ {
...@@ -359,7 +359,7 @@ void ImgCalibrationTask::handle_message (adtb::Message& _msg) ...@@ -359,7 +359,7 @@ void ImgCalibrationTask::handle_message (adtb::Message& _msg)
{ {
try try
{ {
_msg.dettach_data(image); _msg.detach_data(image);
} }
catch(Tango::DevFailed& ex) catch(Tango::DevFailed& ex)
{ {
...@@ -749,7 +749,7 @@ isl::Image* ImgCalibrationTask::get_remote_image() ...@@ -749,7 +749,7 @@ isl::Image* ImgCalibrationTask::get_remote_image()
void ImgCalibrationTask::undistort_i(isl::Image & source_image) void ImgCalibrationTask::undistort_i(isl::Image & source_image)
throw (Tango::DevFailed) throw (Tango::DevFailed)
{ {
DEBUG_TRACE("ImgCalibrationTask::undistort_i"); YAT_TRACE("ImgCalibrationTask::undistort_i");
//- Try to allocate the returned Data //- Try to allocate the returned Data
ImgCalibrationData* data = 0; ImgCalibrationData* data = 0;
...@@ -780,7 +780,7 @@ void ImgCalibrationTask::undistort_i(isl::Image & source_image) ...@@ -780,7 +780,7 @@ void ImgCalibrationTask::undistort_i(isl::Image & source_image)
{ {
//- make a raw copy of the configuration //- make a raw copy of the configuration
{ {
adtb::DeviceMutexLock<> guard(this->config_mutex_); yat::MutexLock guard(this->config_mutex_);
config = this->config_; config = this->config_;
} }
...@@ -834,7 +834,7 @@ void ImgCalibrationTask::undistort_i(isl::Image & source_image) ...@@ -834,7 +834,7 @@ void ImgCalibrationTask::undistort_i(isl::Image & source_image)
} }
{ {
adtb::DeviceMutexLock<> guard(this->data_mutex_); yat::MutexLock guard(this->data_mutex_);
this->data_ = data; this->data_ = data;
} }
...@@ -852,7 +852,7 @@ void ImgCalibrationTask::undistort_i(isl::Image & source_image) ...@@ -852,7 +852,7 @@ void ImgCalibrationTask::undistort_i(isl::Image & source_image)
void ImgCalibrationTask::calibrate_i(isl::Image & pattern_image) void ImgCalibrationTask::calibrate_i(isl::Image & pattern_image)
throw (Tango::DevFailed) throw (Tango::DevFailed)
{ {
DEBUG_TRACE("ImgCalibrationTask::calibrate_i"); YAT_TRACE("ImgCalibrationTask::calibrate_i");
//- Try to allocate the returned Data //- Try to allocate the returned Data
...@@ -885,7 +885,7 @@ void ImgCalibrationTask::calibrate_i(isl::Image & pattern_image) ...@@ -885,7 +885,7 @@ void ImgCalibrationTask::calibrate_i(isl::Image & pattern_image)
{ {
//- make a raw copy of the configuration //- make a raw copy of the configuration
{ {
adtb::DeviceMutexLock<> guard(this->config_mutex_); yat::MutexLock guard(this->config_mutex_);
config = this->config_; config = this->config_;
} }
...@@ -968,7 +968,7 @@ void ImgCalibrationTask::calibrate_i(isl::Image & pattern_image) ...@@ -968,7 +968,7 @@ void ImgCalibrationTask::calibrate_i(isl::Image & pattern_image)
ImgCalibrationData* last_data = this->data_; ImgCalibrationData* last_data = this->data_;
{ {
adtb::DeviceMutexLock<> guard(this->data_mutex_); yat::MutexLock guard(this->data_mutex_);
this->data_ = data; this->data_ = data;
} }
......
...@@ -22,8 +22,15 @@ ...@@ -22,8 +22,15 @@
#include <isl/ErrorHandler.h> #include <isl/ErrorHandler.h>
#include <isl/calib/Calib.h> #include <isl/calib/Calib.h>
#include <DeviceTask.h> #include <yat/threading/Task.h>
#include <DataBuffer.h> #include <yat/DataBuffer.h>
#ifdef WIN32
# pragma warning( push )
# pragma warning( disable: 4250 ) // 'x' inherits 'y' via dominance
#endif
#include <yat4tango/CommonHeader.h>
#include <yat4tango/ExceptionHelper.h>
namespace ImgCalibration_ns namespace ImgCalibration_ns
...@@ -32,10 +39,10 @@ namespace ImgCalibration_ns ...@@ -32,10 +39,10 @@ namespace ImgCalibration_ns
const int MODE_ONESHOT = 0; const int MODE_ONESHOT = 0;
const int MODE_CONTINUOUS = 1; const int MODE_CONTINUOUS = 1;
#define kMSG_UNDISTORT (adtb::FIRST_USER_MSG) #define kMSG_UNDISTORT (yat::FIRST_USER_MSG)
#define kMSG_CALIBRATE (adtb::FIRST_USER_MSG + 1) #define kMSG_CALIBRATE (yat::FIRST_USER_MSG + 1)
#define kMSG_START (adtb::FIRST_USER_MSG + 2) #define kMSG_START (yat::FIRST_USER_MSG + 2)
#define kMSG_STOP (adtb::FIRST_USER_MSG + 3) #define kMSG_STOP (yat::FIRST_USER_MSG + 3)
class ImgCalibrationConfig class ImgCalibrationConfig
...@@ -53,7 +60,7 @@ public : ...@@ -53,7 +60,7 @@ public :
int comput_period; int comput_period;
}; };
class ImgCalibrationData : private adtb::SharedObject class ImgCalibrationData : private yat::SharedObject
{ {
friend class ImgCalibrationTask; friend class ImgCalibrationTask;
public: public:
...@@ -78,14 +85,14 @@ public: ...@@ -78,14 +85,14 @@ public:
double y_mag_factor; double y_mag_factor;
double model_error; double model_error;
adtb::ImageBuffer<Tango::DevUShort> source_image; yat::ImageBuffer<Tango::DevUShort> source_image;
adtb::ImageBuffer<Tango::DevUShort> corrected_image; yat::ImageBuffer<Tango::DevUShort> corrected_image;
adtb::ImageBuffer<Tango::DevUShort> source_pattern; yat::ImageBuffer<Tango::DevUShort> source_pattern;
adtb::ImageBuffer<Tango::DevUShort> corrected_pattern; yat::ImageBuffer<Tango::DevUShort> corrected_pattern;
adtb::ImageBuffer<Tango::DevUShort> error_map; yat::ImageBuffer<Tango::DevUShort> error_map;
adtb::ImageBuffer<Tango::DevUShort> delaunay_subdiv; yat::ImageBuffer<Tango::DevUShort> delaunay_subdiv;
private: private:
...@@ -105,7 +112,7 @@ private: ...@@ -105,7 +112,7 @@ private:
//! detailed description to be written //! detailed description to be written
//! //!
// ============================================================================ // ============================================================================
class ImgCalibrationTask : public adtb::DeviceTask, public Tango::LogAdapter class ImgCalibrationTask : public yat::Task, public Tango::LogAdapter
{ {
public: public:
//- ctor --------------------------------- //- ctor ---------------------------------
...@@ -136,7 +143,7 @@ public: ...@@ -136,7 +143,7 @@ public:
protected: protected:
//- handle_message ----------------------- //- handle_message -----------------------
virtual void handle_message (adtb::Message& msg) virtual void handle_message (yat::Message& msg)
throw (Tango::DevFailed); throw (Tango::DevFailed);
private: private:
...@@ -148,10 +155,10 @@ private: ...@@ -148,10 +155,10 @@ private:
isl::Calib calib_; isl::Calib calib_;
adtb::DeviceMutex config_mutex_; yat::Mutex config_mutex_;
ImgCalibrationConfig config_; ImgCalibrationConfig config_;
adtb::DeviceMutex data_mutex_; yat::Mutex data_mutex_;
ImgCalibrationData* data_; ImgCalibrationData* data_;
void undistort_i(isl::Image & source_image) void undistort_i(isl::Image & source_image)
...@@ -167,7 +174,7 @@ private: ...@@ -167,7 +174,7 @@ private:
void clear_error(); void clear_error();
void fault(const char* description); void fault(const char* description);
adtb::DeviceMutex state_status_mutex_; yat::Mutex state_status_mutex_;
Tango::DevState state_; Tango::DevState state_;
std::string status_; std::string status_;
...@@ -178,7 +185,7 @@ private: ...@@ -178,7 +185,7 @@ private:
} // namespace } // namespace
#if defined (__INLINE_IMPL__) #if defined (YAT_INLINE_IMPL)
# include "ImgCalibrationTask.i" # include "ImgCalibrationTask.i"
#endif // __INLINE_IMPL__ #endif // __INLINE_IMPL__
......
...@@ -17,7 +17,7 @@ namespace ImgCalibration_ns ...@@ -17,7 +17,7 @@ namespace ImgCalibration_ns
// ============================================================================ // ============================================================================
// ImgCalibrationData::duplicate // ImgCalibrationData::duplicate
// ============================================================================ // ============================================================================
INLINE_IMPL YAT_INLINE
ImgCalibrationData * ImgCalibrationData *
ImgCalibrationData::duplicate (void) ImgCalibrationData::duplicate (void)
{ {
...@@ -27,7 +27,7 @@ ImgCalibrationData::duplicate (void) ...@@ -27,7 +27,7 @@ ImgCalibrationData::duplicate (void)
// ============================================================================ // ============================================================================
// ImgCalibrationData::release // ImgCalibrationData::release
// ============================================================================ // ============================================================================
INLINE_IMPL YAT_INLINE
void void
ImgCalibrationData::release (void) ImgCalibrationData::release (void)
{ {
...@@ -37,11 +37,11 @@ ImgCalibrationData::release (void) ...@@ -37,11 +37,11 @@ ImgCalibrationData::release (void)
// ============================================================================ // ============================================================================
// ImgCalibrationTask::get_state_status // ImgCalibrationTask::get_state_status
// ============================================================================ // ============================================================================
INLINE_IMPL YAT_INLINE
void void
ImgCalibrationTask::get_state_status (Tango::DevState& state, std::string& status) ImgCalibrationTask::get_state_status (Tango::DevState& state, std::string& status)
{ {
adtb::DeviceMutexLock<> guard(this->state_status_mutex_); yat::MutexLock guard(this->state_status_mutex_);
state = this->state_; state = this->state_;
status = this->status_; status = this->status_;
} }
...@@ -49,11 +49,11 @@ ImgCalibrationTask::get_state_status (Tango::DevState& state, std::string& statu ...@@ -49,11 +49,11 @@ ImgCalibrationTask::get_state_status (Tango::DevState& state, std::string& statu
// ============================================================================ // ============================================================================
// ImgCalibrationTask::set_state_status // ImgCalibrationTask::set_state_status
// ============================================================================ // ============================================================================
INLINE_IMPL YAT_INLINE
void void
ImgCalibrationTask::set_state_status (Tango::DevState state, const char* status) ImgCalibrationTask::set_state_status (Tango::DevState state, const char* status)
{ {
adtb::DeviceMutexLock<> guard(this->state_status_mutex_); yat::MutexLock guard(this->state_status_mutex_);
this->state_ = state; this->state_ = state;
this->status_ = status; this->status_ = status;
} }
...@@ -62,36 +62,36 @@ ImgCalibrationTask::set_state_status (Tango::DevState state, const char* status) ...@@ -62,36 +62,36 @@ ImgCalibrationTask::set_state_status (Tango::DevState state, const char* status)
// ============================================================================ // ============================================================================
// ImgCalibrationTask::get_config // ImgCalibrationTask::get_config
// ============================================================================ // ============================================================================
INLINE_IMPL YAT_INLINE
void void
ImgCalibrationTask::get_config(ImgCalibrationConfig& c) ImgCalibrationTask::get_config(ImgCalibrationConfig& c)
{ {
adtb::DeviceMutexLock<> guard(this->config_mutex_); yat::MutexLock guard(this->config_mutex_);
c = this->config_; c = this->config_;
} }
// ============================================================================ // ============================================================================
// ImgCalibrationTask::configure // ImgCalibrationTask::configure
// ============================================================================ // ============================================================================
INLINE_IMPL YAT_INLINE
void void
ImgCalibrationTask::configure(const ImgCalibrationConfig& config) ImgCalibrationTask::configure(const ImgCalibrationConfig& config)
{ {
adtb::DeviceMutexLock<> guard(this->config_mutex_); yat::MutexLock guard(this->config_mutex_);
this->config_ = config; this->config_ = config;
this->set_periodic_timeout(config.comput_period); this->set_periodic_msg_period(config.comput_period);
} }
// ============================================================================ // ============================================================================
// ImgCalibrationTask::get_data // ImgCalibrationTask::get_data
// ============================================================================ // ============================================================================
INLINE_IMPL YAT_INLINE
void void
ImgCalibrationTask::get_data (ImgCalibrationData*& data) ImgCalibrationTask::get_data (ImgCalibrationData*& data)
throw (Tango::DevFailed) throw (Tango::DevFailed)
{ {
//- enter critical section //- enter critical section
adtb::DeviceMutexLock<> guard(this->data_mutex_); yat::MutexLock guard(this->data_mutex_);
if (this->mode_ == MODE_CONTINUOUS && this->state_ == Tango::STANDBY) if (this->mode_ == MODE_CONTINUOUS && this->state_ == Tango::STANDBY)
data = 0; data = 0;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment