From 6ee68619f194a6482ad7d571aa01351126a2caae Mon Sep 17 00:00:00 2001 From: System User Date: Thu, 14 Jan 2010 15:57:02 +0100 Subject: [PATCH] * if 3 parameters gotten in AddRefletion use them as h, k, l, reflection indices. --- src/Diffractometer/Diffractometer.cpp | 3 +-- src/TangoHKLAdapter.cpp | 20 +++++++++++++------- src/TangoHKLAdapter.h | 2 +- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/Diffractometer/Diffractometer.cpp b/src/Diffractometer/Diffractometer.cpp index 39fb219..73fc529 100644 --- a/src/Diffractometer/Diffractometer.cpp +++ b/src/Diffractometer/Diffractometer.cpp @@ -1356,9 +1356,8 @@ void Diffractometer::add_reflection(const Tango::DevVarDoubleArray *argin) // Add your own code to control device here - /* POGO rename SampleReflectionAdd */ if (_hklAdapter){ - _hklAdapter->add_reflection(); + _hklAdapter->add_reflection(argin); this->save(); } } diff --git a/src/TangoHKLAdapter.cpp b/src/TangoHKLAdapter.cpp index fc20f91..2e92365 100644 --- a/src/TangoHKLAdapter.cpp +++ b/src/TangoHKLAdapter.cpp @@ -1107,7 +1107,7 @@ namespace Diffractometer_ns this->update_reflections_angles(); } - void TangoHKLAdapter::add_reflection(void) + void TangoHKLAdapter::add_reflection(const Tango::DevVarDoubleArray *argin) { omni_mutex_lock lock(_lock); @@ -1115,15 +1115,21 @@ namespace Diffractometer_ns if(sample){ double h, k, l; - HklPseudoAxisEngine *engine; HklSampleReflection *ref; - engine = hkl_pseudo_axis_engine_list_get_by_name( - _diffractometer->engines_r, "hkl"); + if(argin && argin->length() == 3){ + h = (*argin)[0]; + k = (*argin)[1]; + l = (*argin)[2]; + }else{ + HklPseudoAxisEngine *engine; + + engine = hkl_pseudo_axis_engine_list_get_by_name(_diffractometer->engines_r, "hkl"); - h = hkl_parameter_get_value_unit((HklParameter *)engine->pseudoAxes[0]); - k = hkl_parameter_get_value_unit((HklParameter *)engine->pseudoAxes[1]); - l = hkl_parameter_get_value_unit((HklParameter *)engine->pseudoAxes[2]); + h = hkl_parameter_get_value_unit((HklParameter *)engine->pseudoAxes[0]); + k = hkl_parameter_get_value_unit((HklParameter *)engine->pseudoAxes[1]); + l = hkl_parameter_get_value_unit((HklParameter *)engine->pseudoAxes[2]); + } ref = hkl_sample_add_reflection(sample, _diffractometer->geometry_r, diff --git a/src/TangoHKLAdapter.h b/src/TangoHKLAdapter.h index b765f55..6127d3a 100644 --- a/src/TangoHKLAdapter.h +++ b/src/TangoHKLAdapter.h @@ -149,7 +149,7 @@ namespace Diffractometer_ns { void set_lattice(const Tango::DevVarDoubleArray *argin); - void add_reflection(void); + void add_reflection(const Tango::DevVarDoubleArray *argin); void del_reflection(Tango::DevShort argin); -- 2.11.4.GIT