diff --git a/doc/DevelopersUsersGuide.doc b/doc/DevelopersUsersGuide.doc index c17c30216bb6333dd30de4b75704c6c5e6b32010..1c7155780351eeee362602ecdea0d1889169f2b0 100644 Binary files a/doc/DevelopersUsersGuide.doc and b/doc/DevelopersUsersGuide.doc differ diff --git a/include/CommunicationLink.h b/include/CommunicationLink.h index 84ed171c99f4fd8e3c4d8a3ce4feab09d3a2d4e7..b486245f125a63d7ef395e7a201b36af272b6172 100644 --- a/include/CommunicationLink.h +++ b/include/CommunicationLink.h @@ -12,9 +12,12 @@ // // $Author: xavela $ // -// $Revision: 1.9 $ +// $Revision: 1.10 $ // // $Log: not supported by cvs2svn $ +// Revision 1.9 2012/07/11 08:21:54 xavela +// for test purpose only ! +// // Revision 1.8 2012/07/09 13:15:59 xavela // Novelec part : bug at init fixed. // @@ -116,7 +119,7 @@ public : * * \throws Tango::DevFailed */ - virtual std::string write_read (std::string command_to_send, long nbChar) {return "";} + //virtual std::string write_read (std::string , long ) {return "";} /** diff --git a/include/ElectrometerProtocol.h b/include/ElectrometerProtocol.h index 663ef378577743cb1eb52f65f3fc4f90d7a0814f..69357164f00cbb988369e3e3bcc42fb60b8ba68b 100644 --- a/include/ElectrometerProtocol.h +++ b/include/ElectrometerProtocol.h @@ -12,9 +12,12 @@ // // $Author: xavela $ // -// $Revision: 1.14 $ +// $Revision: 1.15 $ // // $Log: not supported by cvs2svn $ +// Revision 1.14 2011/03/14 14:42:22 xavela +// SaveRestoreConfiguration command added. (Available only for SCPI Keithley devices) +// // Revision 1.13 2010/06/10 14:36:15 xavela // cmd switch_off called before any parameters modifications and then locked with switch_on. // @@ -85,7 +88,7 @@ #define _ELECTROMETER_PROTOCOL_H_ #include <vector> -#include "CommunicationLink.h" +//#include "CommunicationLink.h" /** * \addtogroup Standard Commands Protocol @@ -242,7 +245,6 @@ protected : short _range; std::string _mode; std::string _commDevName; //- communication device proxy name - CommunicationLink* _communication_link; private : diff --git a/include/KeithleyDDCProtocol.h b/include/KeithleyDDCProtocol.h index 34cc954cf65e77be0e3f3ddc3e2337d514d24c0e..20c9414818403eb8130b56284181a33cdd6110cf 100644 --- a/include/KeithleyDDCProtocol.h +++ b/include/KeithleyDDCProtocol.h @@ -16,6 +16,7 @@ #include "ElectrometerProtocol.h" #include "ElectrometerException.h" +#include "TangoGpibLink.h" /** * \addtogroup Standard Commands Protocol @@ -105,9 +106,9 @@ public: /** * \brief Electrometer Mode : getters and setters. */ - std::string get_mode (void) { return _mode; }; + std::string get_mode (void) { return _mode; } std::string get_range (void); - bool get_overloadRangeState (void) { return _is_overloaded; };//- used to know if the device range is overloaded! + bool get_overloadRangeState (void) { return _is_overloaded; } //- used to know if the device range is overloaded! /** * \brief Methods to configure the Integration mode @@ -145,6 +146,7 @@ protected : std::vector<double> buildDataList (std::string listToParse); private : + CommunicationLink* _communication_link; bool _is_overloaded; }; diff --git a/include/KeithleySCPIProtocol.h b/include/KeithleySCPIProtocol.h index 3ccc5f5edc5702b79bb1c3baf83749b529353de9..80e0b5042d8381ef1facc9855420383155db9ccf 100644 --- a/include/KeithleySCPIProtocol.h +++ b/include/KeithleySCPIProtocol.h @@ -16,6 +16,7 @@ #include <vector> #include "ElectrometerProtocol.h" +#include "TangoGpibLink.h" #include "ElectrometerException.h" /** @@ -162,7 +163,9 @@ public: protected : std::vector<double> buildDataList (std::string listToParse); + private : + CommunicationLink* _communication_link; bool isDiffSuportedMode; std::string trigCountStr; diff --git a/include/NovelecProtocol.h b/include/NovelecProtocol.h index 76b36d1ac7cfbce7bd0044f3715c67cf3fd88655..2ea97c51a0d42b247b4f0479e8c1810fa7195b60 100644 --- a/include/NovelecProtocol.h +++ b/include/NovelecProtocol.h @@ -120,7 +120,8 @@ private : //- check if the MCCE2 is not in MEASURE mode to get/change any settings void is_allowed(); - TangoSerialLink* _tgSerLk; //- to use SerialLink specific methods ! + CommunicationLink* _communication_link; + //TangoSerialLink* _tgSerLk; //- to use SerialLink specific methods ! //- if true, parameters cannot be changed ! diff --git a/include/TangoGpibLink.h b/include/TangoGpibLink.h index 56b87f55e18430a869b30115857352e56f769afc..dabfae1efed726c1c0899d451ea1099b0a6792a9 100644 --- a/include/TangoGpibLink.h +++ b/include/TangoGpibLink.h @@ -18,7 +18,6 @@ // DEPENDENCIES // ============================================================================ #include <tango.h> -//#include <DeviceProxyHelper.h> #include "CommunicationLink.h" /** diff --git a/include/TangoSerialLink.h b/include/TangoSerialLink.h index 4371d237cd5b889f9b18480bfbaca4e354497d1f..ac9d7674011da6dc74630bf58d5940aa6d9a48ce 100644 --- a/include/TangoSerialLink.h +++ b/include/TangoSerialLink.h @@ -18,7 +18,6 @@ // DEPENDENCIES // ============================================================================ #include <tango.h> -//#include <DeviceProxyHelper.h> #include "CommunicationLink.h" /** @@ -47,15 +46,6 @@ public : */ ~TangoSerialLink (); - /** - * \brief One MCCE-2 can manage two differents electrometers - * through only one serial line ! - * - */ - //static TangoSerialLink* get_instance(std::string& serial_device_name); - - //static void delete_instance(CommunicationLink*); - /** * \brief Send command (data) as string to hardware. * @@ -77,13 +67,6 @@ public : */ std::string read(long nbCharToRead) throw (Tango::DevFailed); - /** - * \brief Performs a write read operation as string. (read in mode LINE) - * - * \throws Tango::DevFailed - */ - //std::string write_read(std::string cmd) throw (Tango::DevFailed); - /** * \brief Performs a write read operation as string. (read nb char) * @@ -93,11 +76,6 @@ public : private : - /** - * \brief Tango Serial Link instance. - */ - //static TangoSerialLink* tsl_Instance; - /** * Creates a proxy on the specified Serial Device. */ diff --git a/pom.xml b/pom.xml index efde46e8c5f1e5ecb205e263ef72e49db535ecdf..b83b2155aad4adca0caeb95fc260d6890740d89e 100644 --- a/pom.xml +++ b/pom.xml @@ -8,7 +8,7 @@ </parent> <groupId>fr.soleil.lib</groupId> <artifactId>Electrometers-${aol}-${library}-${mode}</artifactId> - <version>2.5.8-SNAPSHOT</version> + <version>2.5.8</version> <packaging>nar</packaging> <name>Electrometers library</name> <description>Electrometers library</description> diff --git a/src/AbstractElectrometerClass.cpp b/src/AbstractElectrometerClass.cpp index ed43de06e19310bf4e0650d279f49d970b808bbe..78abaf53f022fc849ccf7d1ec7e75a93106900e6 100644 --- a/src/AbstractElectrometerClass.cpp +++ b/src/AbstractElectrometerClass.cpp @@ -11,9 +11,12 @@ // // $Author: xavela $ // -// $Revision: 1.25 $ +// $Revision: 1.26 $ // // $Log: not supported by cvs2svn $ +// Revision 1.25 2012/07/11 08:21:54 xavela +// for test purpose only ! +// // Revision 1.24 2012/07/03 06:15:53 xavela // Novelec part : bug at init fixed. // @@ -133,7 +136,7 @@ #include <iostream> #include <sstream> #include <string> -#include <Xstring.h> +#include <helpers/XString.h> #include "AbstractElectrometerClass.h" #include "ElectrometerException.h" diff --git a/src/ElectrometerProtocol.cpp b/src/ElectrometerProtocol.cpp index de748c3e1f6add470671861721b34e3770c94349..07dd9efaff7f6da545cebdaf8d95b4d372c45cd0 100644 --- a/src/ElectrometerProtocol.cpp +++ b/src/ElectrometerProtocol.cpp @@ -16,7 +16,6 @@ // ============================================================================ #include <iostream> #include "ElectrometerProtocol.h" -#include "TangoGpibLink.h" #include "ElectrometerException.h" // ============================================================================ @@ -25,7 +24,7 @@ ElectrometerProtocol::ElectrometerProtocol () : _range(0), _mode("NOT INITIALISED"), - _communication_link(0) + _commDevName("") { //std::cout << "ElectrometerProtocol::ElectrometerProtocol <-" << std::endl; @@ -39,12 +38,6 @@ ElectrometerProtocol::~ElectrometerProtocol (void) { std::cout << "ElectrometerProtocol::~ElectrometerProtocol <-" << std::endl; - if(_communication_link) - { - delete _communication_link; - _communication_link = 0; - } - std::cout << "ElectrometerProtocol::~ElectrometerProtocol ->" << std::endl; } diff --git a/src/KeithleyDDCProtocol.cpp b/src/KeithleyDDCProtocol.cpp index f30117b53dff6c3b79e107bc742324a4cf1f50b4..eeab0c21dbb5a79f596d0098ebf4cbbd6a10a070 100644 --- a/src/KeithleyDDCProtocol.cpp +++ b/src/KeithleyDDCProtocol.cpp @@ -17,15 +17,15 @@ #include <iostream> #include <sstream> #include <string> -#include <Xstring.h> +#include <helpers/XString.h> #include "KeithleyDDCProtocol.h" -#include "TangoGpibLink.h" // ============================================================================ // KeithleyDDCProtocol::KeithleyDDCProtocol // ============================================================================ KeithleyDDCProtocol::KeithleyDDCProtocol (std::string& gpib_device_name) : ElectrometerProtocol(), + _communication_link(0), _is_overloaded(false) { std::cout << "KeithleyDDCProtocol::KeithleyDDCProtocol <-" << std::endl; @@ -41,6 +41,12 @@ KeithleyDDCProtocol::KeithleyDDCProtocol (std::string& gpib_device_name) KeithleyDDCProtocol::~KeithleyDDCProtocol (void) { std::cout << "KeithleyDDCProtocol::~KeithleyDDCProtocol <-" << std::endl; + + if(_communication_link) + { + delete _communication_link; + _communication_link = 0; + } std::cout << "KeithleyDDCProtocol::~KeithleyDDCProtocol ->" << std::endl; } diff --git a/src/KeithleySCPIProtocol.cpp b/src/KeithleySCPIProtocol.cpp index 5dd54f23fe698a2c6dd164b6a7471ad1f1302b4e..34e903fed01729512a89bdd178d487cd803fec4b 100644 --- a/src/KeithleySCPIProtocol.cpp +++ b/src/KeithleySCPIProtocol.cpp @@ -17,18 +17,19 @@ #include <iostream> #include <sstream> #include <string> -#include <Xstring.h> +#include <helpers/XString.h> #ifndef WIN32 # include <unistd.h> #endif #include "KeithleySCPIProtocol.h" -#include "TangoGpibLink.h" +//#include "TangoGpibLink.h" // ============================================================================ // KeithleySCPIProtocol::KeithleySCPIProtocol // ============================================================================ KeithleySCPIProtocol::KeithleySCPIProtocol (std::string& gpib_device_name) : ElectrometerProtocol(), + _communication_link(0), isDiffSuportedMode(false), trigCountStr("") { @@ -46,7 +47,13 @@ KeithleySCPIProtocol::~KeithleySCPIProtocol (void) { std::cout << "KeithleySCPIProtocol::~KeithleySCPIProtocol <-" << std::endl; - std::cout << "KeithleySCPIProtocol::~KeithleySCPIProtocol ->" << std::endl; + if(_communication_link) + { + delete _communication_link; + _communication_link = 0; + } + + std::cout << "KeithleySCPIProtocol::~KeithleySCPIProtocol ->" << std::endl; } // ============================================================================ diff --git a/src/Keithley_485.cpp b/src/Keithley_485.cpp index cf1e4e9dcdee210b0208ba209a0abc871dcf274d..ea9af931fefc42bc5cc912b13111c0d1e021d09a 100644 --- a/src/Keithley_485.cpp +++ b/src/Keithley_485.cpp @@ -18,7 +18,7 @@ #include <stdexcept> #include <sstream> #include <string> -#include <Xstring.h> +#include <helpers/XString.h> #include "KeithleyDDCProtocol.h" #include "Keithley_485.h" diff --git a/src/Keithley_486.cpp b/src/Keithley_486.cpp index ee52f301036f6f0d13c4cc43481b18506ecd8b04..87d03b50f8d76164e9579fdebdc39faa552b4070 100644 --- a/src/Keithley_486.cpp +++ b/src/Keithley_486.cpp @@ -19,7 +19,7 @@ #include <sstream> #include <string> #include <math.h> //- for ceil -#include <Xstring.h> +#include <helpers/XString.h> #include "Keithley_486.h" #include "KeithleyDDCProtocol.h" diff --git a/src/Keithley_487.cpp b/src/Keithley_487.cpp index 92b44eda61fbf7a74da8cff7bada99448cecbcdc..9b8900bb2f48f0aa3d3d90f4f23444061958ca2e 100644 --- a/src/Keithley_487.cpp +++ b/src/Keithley_487.cpp @@ -19,7 +19,7 @@ #include <sstream> #include <string> #include <math.h> //- for ceil -#include <Xstring.h> +#include <helpers/XString.h> #include "Keithley_487.h" #include "KeithleyDDCProtocol.h" diff --git a/src/Keithley_617.cpp b/src/Keithley_617.cpp index ef8432437e2a384ed13b3ac3118535a6bfb826b5..edb99b3a1d9130f64add7c4917bbc81aa6003741 100644 --- a/src/Keithley_617.cpp +++ b/src/Keithley_617.cpp @@ -18,7 +18,7 @@ #include <stdexcept> #include <sstream> #include <string> -#include <Xstring.h> +#include <helpers/XString.h> #include "Keithley_617.h" #include "KeithleyDDCProtocol.h" diff --git a/src/Keithley_6485.cpp b/src/Keithley_6485.cpp index 529f088513feed7bc6eef8304174ab986dd1f961..18b665183e4ba8344ed435e2768dd10d235957c9 100644 --- a/src/Keithley_6485.cpp +++ b/src/Keithley_6485.cpp @@ -18,7 +18,7 @@ #include <sstream> #include <string> #include <math.h> //- for ceil -#include <Xstring.h> +#include <helpers/XString.h> #include "Keithley_6485.h" #include "KeithleySCPIProtocol.h" /* diff --git a/src/Keithley_6487.cpp b/src/Keithley_6487.cpp index 56e6aa507bc84b84203531c9cb1fb07f42d9adad..1a076aed15c111e82c81ddb11727524bfa4cfbb3 100644 --- a/src/Keithley_6487.cpp +++ b/src/Keithley_6487.cpp @@ -18,7 +18,7 @@ #include <sstream> #include <string> #include <math.h> //- for ceil -#include <Xstring.h> +#include <helpers/XString.h> #include "Keithley_6487.h" #include "KeithleySCPIProtocol.h" /* diff --git a/src/Keithley_6512.cpp b/src/Keithley_6512.cpp index 375111dfd7ac770e38f4f1a4bb1686d6917bf6a2..99b6f43c3f5a9ffba660054065385b915e0987c4 100644 --- a/src/Keithley_6512.cpp +++ b/src/Keithley_6512.cpp @@ -18,7 +18,7 @@ #include <stdexcept> #include <sstream> #include <string> -#include <Xstring.h> +#include <helpers/XString.h> #include "Keithley_6512.h" #include "KeithleyDDCProtocol.h" diff --git a/src/Keithley_6514.cpp b/src/Keithley_6514.cpp index 7ff9c69c8586b3d36cb263f800d50f50ffd0745c..91c4893b350f56dce0a13f6b085df4627d5269bb 100644 --- a/src/Keithley_6514.cpp +++ b/src/Keithley_6514.cpp @@ -18,7 +18,7 @@ #include <sstream> #include <string> #include <math.h> //- for ceil -#include <Xstring.h> +#include <helpers/XString.h> #include <tango.h> //- Tango exceptions #include "Keithley_6514.h" #include "KeithleySCPIProtocol.h" diff --git a/src/Keithley_6517.cpp b/src/Keithley_6517.cpp index 5a92b009851df090d3cbc5480fc92b9baa4fc712..555a78e00c024ecce2e0af0fa560b36f5ad5b4b2 100644 --- a/src/Keithley_6517.cpp +++ b/src/Keithley_6517.cpp @@ -18,7 +18,7 @@ #include <sstream> #include <string> #include <math.h> //- for ceil -#include <Xstring.h> +#include <helpers/XString.h> #include "Keithley_6517.h" #include "KeithleySCPIProtocol.h" /* diff --git a/src/N_PhotoConducteur.cpp b/src/N_PhotoConducteur.cpp index f66efbd5aa4b48271c6cdbcd2ef564a9358e3666..6c278d7e36ef8a790e439b41919acabb3d1fb4c4 100644 --- a/src/N_PhotoConducteur.cpp +++ b/src/N_PhotoConducteur.cpp @@ -18,7 +18,7 @@ #include <iostream> #include <sstream> #include <string> -#include <Xstring.h> +#include <helpers/XString.h> #include "N_PhotoConducteur.h" #include "NovelecProtocol.h" /* diff --git a/src/N_PhotoVoltaique.cpp b/src/N_PhotoVoltaique.cpp index ff66745f7073082307540f15f00180d15da7cb98..eac66a5353ae4d96ecb9a4ed998da59d7e2c9017 100644 --- a/src/N_PhotoVoltaique.cpp +++ b/src/N_PhotoVoltaique.cpp @@ -18,7 +18,7 @@ #include <iostream> #include <sstream> #include <string> -#include <Xstring.h> +#include <helpers/XString.h> #include "N_PhotoVoltaique.h" #include "NovelecProtocol.h" /* @@ -72,6 +72,9 @@ void N_PhotoVoltaique::range_up (void) std::stringstream cmd_to_send; + //- update range idx + this->get_ElectroMeterRange(); + _range += 1; if(_range > _rangeLimit) @@ -100,6 +103,9 @@ void N_PhotoVoltaique::range_down (void) std::stringstream cmd_to_send; + //- update range idx + this->get_ElectroMeterRange(); + _range -= 1; if(_range < 0) diff --git a/src/NovelecProtocol.cpp b/src/NovelecProtocol.cpp index 2be327274f32050bd377eefe23bb51690bbc2461..3dfde0b4da793d58a67b94bbc4c98f50349e3249 100644 --- a/src/NovelecProtocol.cpp +++ b/src/NovelecProtocol.cpp @@ -24,9 +24,9 @@ #include <iostream> #include <sstream> #include <string> -#include <Xstring.h> +#include <helpers/XString.h> #include "NovelecProtocol.h" -#include "TangoSerialLink.h" +//#include "TangoSerialLink.h" //- commands numbers static const short STATUS_CMD_NUM = 1; @@ -63,13 +63,13 @@ NovelecProtocol::NovelecProtocol (std::string& serial_device_name, unsigned shor : ElectrometerProtocol(), _devAdd(devAddress), _novType(novelecType), - _tgSerLk(0) + _communication_link(0), + _is_measure_mode_on(false), + _is_explicite_resp_enabled(false) { _commDevName = serial_device_name; _rangeParameterNum = _novType + 2; _function = "Not updated"; - _is_measure_mode_on = false; - _is_explicite_resp_enabled = false; } // ============================================================================ diff --git a/src/Novelec_MCCE2.cpp b/src/Novelec_MCCE2.cpp index ce9584077baa40cae4a4555ad1ea1eb046e4110e..031bf557751439b6784ab7b6b98d7285777264c3 100644 --- a/src/Novelec_MCCE2.cpp +++ b/src/Novelec_MCCE2.cpp @@ -17,7 +17,7 @@ #include <iostream> #include <sstream> #include <string> -#include <Xstring.h> +#include <helpers/XString.h> #include "NovelecProtocol.h" #include "Novelec_MCCE2.h" diff --git a/src/TangoGpibLink.cpp b/src/TangoGpibLink.cpp index a7b7494bb6337e013c68be4c376c2446e1b5782f..6763c0054bc389c51126672aacf6b73e28536811 100644 --- a/src/TangoGpibLink.cpp +++ b/src/TangoGpibLink.cpp @@ -24,7 +24,7 @@ // ============================================================================ TangoGpibLink::TangoGpibLink (std::string& gpib_device_name) : CommunicationLink(gpib_device_name), -_gpib_proxy (0) + _gpib_proxy (0) { std::cout << "TangoGpibLink::TangoGpibLink <-" << std::endl; @@ -187,7 +187,7 @@ std::string TangoGpibLink::read (void) throw (Tango::DevFailed) // ============================================================================ // TangoGpibLink::write_read // ============================================================================ -std::string TangoGpibLink::write_read (std::string command_to_send, size_t unusedLgth) throw (Tango::DevFailed) +std::string TangoGpibLink::write_read (std::string command_to_send, size_t /*unusedLgth*/) throw (Tango::DevFailed) { std::string description(""); diff --git a/src/TangoSerialLink.cpp b/src/TangoSerialLink.cpp index 4c76d019b8e0eb17b4febc74e50caaef62101d6f..593b3ff62c96c5b094629f868455af8cd54ba4d6 100644 --- a/src/TangoSerialLink.cpp +++ b/src/TangoSerialLink.cpp @@ -21,31 +21,6 @@ //- Read serial data in mode LINE (i.e SerialLine device wait until EOF is received from instrument) static const long MODE_LINE = 2; -//- init of the static instance -//TangoSerialLink* TangoSerialLink::tsl_Instance = 0; //- ptr on the TangoSerialLink instance - -// ============================================================================ -// TangoSerialLink::get_instance -// ============================================================================ -/*TangoSerialLink* TangoSerialLink::get_instance(std::string & serial_dev_name) -{ - if( !tsl_Instance ) - tsl_Instance = new TangoSerialLink(serial_dev_name); - - return tsl_Instance; -} - -// ============================================================================ -// TangoSerialLink::delete_instance -// ============================================================================ -void TangoSerialLink::delete_instance(CommunicationLink* tsl_Instance) -{ - if(tsl_Instance) - { - delete tsl_Instance ; - tsl_Instance = 0; - } -}*/ // ============================================================================ // TangoSerialLink::TangoSerialLink @@ -270,32 +245,6 @@ std::string TangoSerialLink::read (long nbCharToRead) throw (Tango::DevFailed) return this->response ; } -// ============================================================================ -// TangoSerialLink::write_read -// ============================================================================ -//std::string TangoSerialLink::write_read (std::string command_to_send) throw (Tango::DevFailed) -//{ -// if(!_serial_proxy) -// create_serial_proxy(); -// Tango::DeviceData dd_in; -// -// std::string respTmp(""); -// long flush_in_out = 2; -// dd_in << flush_in_out; -// -// //- Flush buffers ( In & Out = 2 ) -// this->_serial_proxy->command_inout("DevSerFlush", dd_in); -// -// omni_thread::sleep(0, 200000000); //200 milliseconds -// write(command_to_send); -// -// //- sleep a little bit to let the adapter(RS232/485) to switch mode -// omni_thread::sleep(0, 100000000); //100 milliseconds -// -// // now read response from HW -// return this->read(); -//} - // ============================================================================ // TangoSerialLink::write_read : read N char // ============================================================================