From c7dabaa69cd69b2057a3e14f5e9f2ebe950a9811 Mon Sep 17 00:00:00 2001 From: System User Date: Tue, 26 Jan 2010 13:37:00 +0100 Subject: [PATCH] * move the initialized attribut in the PseudoAxesConfig --- src/PseudoAxes/PseudoAxes.cpp | 12 ++++++------ src/PseudoAxesAdapter.cpp | 13 ++++++------- src/PseudoAxesAdapter.h | 2 +- src/TangoHKLAdapter.cpp | 8 -------- 4 files changed, 13 insertions(+), 22 deletions(-) diff --git a/src/PseudoAxes/PseudoAxes.cpp b/src/PseudoAxes/PseudoAxes.cpp index 9323b57..adb7833 100644 --- a/src/PseudoAxes/PseudoAxes.cpp +++ b/src/PseudoAxes/PseudoAxes.cpp @@ -118,6 +118,10 @@ void PseudoAxes::init_device() _adapter = NULL; _hklAdapter = NULL; + _config.state = Tango::FAULT; + _config.status = "Not yet initialized"; + _config.initialized = false; + // we can get the Diffractometer device adapter in the init as this one start all PseudoAxes if(!_hklAdapter) _hklAdapter = Diffractometer_ns::TangoHKLAdapterFactory::instance()->get_diffractometer_adapter(diffractometerProxy); @@ -228,12 +232,8 @@ void PseudoAxes::read_attr_hardware(vector &attr_list) void PseudoAxes::read_initialized(Tango::Attribute &attr) { DEBUG_STREAM << "PseudoAxes::read_initialized(Tango::Attribute &attr) entering... "<< endl; - if(_adapter){ - Tango::DevBoolean initialized; - - initialized = _adapter->get_initialized(); - attr.set_value(&initialized); - } + if(_adapter) + attr.set_value(&_config.initialized); } //+---------------------------------------------------------------------------- diff --git a/src/PseudoAxesAdapter.cpp b/src/PseudoAxesAdapter.cpp index 4d1c88a..aaaa541 100644 --- a/src/PseudoAxesAdapter.cpp +++ b/src/PseudoAxesAdapter.cpp @@ -94,11 +94,6 @@ namespace Diffractometer_ns _hklAdapter->pseudo_axes_set_mode(_idx, name); } - Tango::DevBoolean PseudoAxesAdapter::get_initialized(void) - { - return _hklAdapter->pseudo_axes_get_initialized(_idx); - } - void PseudoAxesAdapter::set_initialized(const Tango::DevBoolean initialized) { _hklAdapter->pseudo_axes_set_initialized(_idx, initialized); @@ -169,7 +164,7 @@ namespace Diffractometer_ns size_t i, len; std::string status_extra; - // update the read part. + // update the read/write part. len = HKL_LIST_LEN(_engine_r->pseudoAxes); for(i=0; ipseudoAxes[i]); @@ -177,9 +172,9 @@ namespace Diffractometer_ns } + // update the state and status. _config.status = "PseudoAxes status: "; - // now compute the state and status if(!_hklAdapter->_auto_update_from_proxies) _config.state = Tango::STANDBY; else{ @@ -193,6 +188,10 @@ namespace Diffractometer_ns } _config.status += Tango::DevStateName[_config.state]; _config.status += status_extra; + + // update the initialized + if(_engine_r->mode->initialize == NULL) + _config.initialized = true; } void PseudoAxesAdapter::save(void) diff --git a/src/PseudoAxesAdapter.h b/src/PseudoAxesAdapter.h index bceef97..b04f5da 100644 --- a/src/PseudoAxesAdapter.h +++ b/src/PseudoAxesAdapter.h @@ -18,6 +18,7 @@ namespace Diffractometer_ns { struct PseudoAxesConfig { Tango::DevState state; std::string status; + Tango::DevBoolean initialized; }; class PseudoAxesAdapter { @@ -46,7 +47,6 @@ namespace Diffractometer_ns { Tango::DevString *get_mode(void); void set_mode(const Tango::DevString name); - Tango::DevBoolean get_initialized(void); void set_initialized(const Tango::DevBoolean initialized); Matrix const &get_mode_names(void) const {return _mode_names;} diff --git a/src/TangoHKLAdapter.cpp b/src/TangoHKLAdapter.cpp index 027180c..f3e662d 100644 --- a/src/TangoHKLAdapter.cpp +++ b/src/TangoHKLAdapter.cpp @@ -1821,14 +1821,6 @@ namespace Diffractometer_ns } } - Tango::DevBoolean TangoHKLAdapter::pseudo_axes_get_initialized(size_t idx) - { - omni_mutex_lock lock(_lock); - - if(!_diffractometer->engines_r->engines[idx]->mode->initialize) - return true; - } - void TangoHKLAdapter::pseudo_axes_set_initialized(size_t idx, bool initialized) { if(initialized){ -- 2.11.4.GIT