From 0be94c52163b2d9388826478e5b228575ce60565 Mon Sep 17 00:00:00 2001 From: System User Date: Tue, 26 Jan 2010 13:55:25 +0100 Subject: [PATCH] * mode the mode in the PseudoAxesConfig --- src/PseudoAxes/PseudoAxes.cpp | 3 ++- src/PseudoAxesAdapter.cpp | 15 +++++++-------- src/PseudoAxesAdapter.h | 3 +-- src/TangoHKLAdapter.cpp | 11 ----------- src/TangoHKLAdapter.h | 4 ---- 5 files changed, 10 insertions(+), 26 deletions(-) diff --git a/src/PseudoAxes/PseudoAxes.cpp b/src/PseudoAxes/PseudoAxes.cpp index adb7833..b541fc7 100644 --- a/src/PseudoAxes/PseudoAxes.cpp +++ b/src/PseudoAxes/PseudoAxes.cpp @@ -121,6 +121,7 @@ void PseudoAxes::init_device() _config.state = Tango::FAULT; _config.status = "Not yet initialized"; _config.initialized = false; + _config.mode = NULL; // we can get the Diffractometer device adapter in the init as this one start all PseudoAxes if(!_hklAdapter) @@ -321,7 +322,7 @@ void PseudoAxes::read_mode(Tango::Attribute &attr) { DEBUG_STREAM << "PseudoAxes::read_mode(Tango::Attribute &attr) entering... "<< endl; if(_adapter) - attr.set_value(_adapter->get_mode()); + attr.set_value(&_config.mode); } //+---------------------------------------------------------------------------- diff --git a/src/PseudoAxesAdapter.cpp b/src/PseudoAxesAdapter.cpp index aaaa541..0a7ebd5 100644 --- a/src/PseudoAxesAdapter.cpp +++ b/src/PseudoAxesAdapter.cpp @@ -48,9 +48,7 @@ namespace Diffractometer_ns this->update_axes_i(_engine_r); - // update the state and status - _config.state = Tango::FAULT; - _config.status = "Not yet initialized"; + this->update(); _device = NULL; } @@ -84,11 +82,6 @@ namespace Diffractometer_ns this->write(_write); } - Tango::DevString *PseudoAxesAdapter::get_mode(void) - { - return _hklAdapter->pseudo_axes_get_mode(_idx); - } - void PseudoAxesAdapter::set_mode(const Tango::DevString name) { _hklAdapter->pseudo_axes_set_mode(_idx, name); @@ -192,6 +185,12 @@ namespace Diffractometer_ns // update the initialized if(_engine_r->mode->initialize == NULL) _config.initialized = true; + + // update the mode + if(_engine_r->mode) + _config.mode = const_cast(_engine_r->mode->name); + else + _config.mode = NULL; } void PseudoAxesAdapter::save(void) diff --git a/src/PseudoAxesAdapter.h b/src/PseudoAxesAdapter.h index b04f5da..b47ca7a 100644 --- a/src/PseudoAxesAdapter.h +++ b/src/PseudoAxesAdapter.h @@ -19,6 +19,7 @@ namespace Diffractometer_ns { Tango::DevState state; std::string status; Tango::DevBoolean initialized; + Tango::DevString mode; }; class PseudoAxesAdapter { @@ -44,9 +45,7 @@ namespace Diffractometer_ns { double & get_axis_value(size_t idx) {return _read.data[idx];} void set_axis_value(size_t idx, double value); - Tango::DevString *get_mode(void); void set_mode(const Tango::DevString name); - 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 f3e662d..b65c132 100644 --- a/src/TangoHKLAdapter.cpp +++ b/src/TangoHKLAdapter.cpp @@ -1618,17 +1618,6 @@ namespace Diffractometer_ns } - Tango::DevString *TangoHKLAdapter::pseudo_axes_get_mode(size_t idx) - { - omni_mutex_lock lock(_lock); - - HklPseudoAxisEngine *engine = _diffractometer->engines_r->engines[idx]; - if(engine->mode) - return const_cast(&engine->mode->name); - else - return NULL; - } - void TangoHKLAdapter::pseudo_axes_set_mode(size_t idx, const Tango::DevString name) { omni_mutex_lock lock(_lock); diff --git a/src/TangoHKLAdapter.h b/src/TangoHKLAdapter.h index 12a738a..6f078e1 100644 --- a/src/TangoHKLAdapter.h +++ b/src/TangoHKLAdapter.h @@ -220,12 +220,8 @@ namespace Diffractometer_ns { void pseudo_axes_write(size_t idx, Matrix const & write) throw (Tango::DevFailed); - Tango::DevString *pseudo_axes_get_mode(size_t idx); - void pseudo_axes_set_mode(size_t idx, const Tango::DevString name); - Tango::DevBoolean pseudo_axes_get_initialized(size_t idx); - void pseudo_axes_set_initialized(size_t idx, const Tango::DevBoolean initialized); Matrix & pseudo_axes_get_mode_parameters_names(size_t idx); -- 2.11.4.GIT