From 2000e43dc62d77f4ae1c03289b8bff4fe033fc8b Mon Sep 17 00:00:00 2001 From: Xavier Elattaoui <xavier.elattaoui@synchrotron-soleil.fr> Date: Tue, 27 Nov 2007 10:17:46 +0000 Subject: [PATCH] xavier : - modif done on Novelec part : init_MCCE2() added --- include/AbstractElectrometerClass.h | 8 ++++++-- include/ElectrometerProtocol.h | 8 ++++++-- include/NovelecProtocol.h | 8 ++++++++ src/AbstractElectrometerClass.cpp | 15 ++++++++++++-- src/ElectrometerProtocol.cpp | 10 +++++++++ src/NovelecProtocol.cpp | 32 +++++++++++++++++++++++++---- 6 files changed, 71 insertions(+), 10 deletions(-) diff --git a/include/AbstractElectrometerClass.h b/include/AbstractElectrometerClass.h index 5d88eca..085db96 100644 --- a/include/AbstractElectrometerClass.h +++ b/include/AbstractElectrometerClass.h @@ -7,11 +7,14 @@ // AbstractElectrometerClass.h // // -// $Author: stephle $ +// $Author: xavela $ // -// $Revision: 1.1 $ +// $Revision: 1.2 $ // // $Log: not supported by cvs2svn $ +// Revision 1.1 2007/07/09 13:20:35 stephle +// initial import +// // // ============================================================================ @@ -114,6 +117,7 @@ public: virtual void set_Measure_function (void); virtual void mcce_on (void); virtual void mcce_off (void); + virtual void mcce_init (void); /** * \brief Novelec getters and setters */ diff --git a/include/ElectrometerProtocol.h b/include/ElectrometerProtocol.h index 358b3d1..36d659c 100644 --- a/include/ElectrometerProtocol.h +++ b/include/ElectrometerProtocol.h @@ -10,11 +10,14 @@ // X. Elattaoui // // -// $Author: stephle $ +// $Author: xavela $ // -// $Revision: 1.1 $ +// $Revision: 1.2 $ // // $Log: not supported by cvs2svn $ +// Revision 1.1 2007/07/09 13:20:35 stephle +// initial import +// // // ============================================================================ @@ -123,6 +126,7 @@ public: */ virtual void switch_MCCE2_ON (void); virtual void switch_MCCE2_OFF (void); + virtual void init_MCCE2_for_communication (void); virtual void unable_zeroVF_func (void); virtual void unable_offset_zeroV1_func (void); virtual void unable_leakage_zeroV2_func (void); diff --git a/include/NovelecProtocol.h b/include/NovelecProtocol.h index 24359ad..26a2f09 100644 --- a/include/NovelecProtocol.h +++ b/include/NovelecProtocol.h @@ -87,6 +87,14 @@ public: void set_frequency (std::string freq); void set_gain (std::string gain); + /** + * \brief init the MCCE-2 device : + * - response explicit + * - mode MEASURE OFF + * - clear error(s) + */ + void init_MCCE2_for_communication(void); + protected : short _devAdd; //- novelec active channel address short _novType; //- novelec type number (1 to 5) diff --git a/src/AbstractElectrometerClass.cpp b/src/AbstractElectrometerClass.cpp index 5ae0977..f78455e 100644 --- a/src/AbstractElectrometerClass.cpp +++ b/src/AbstractElectrometerClass.cpp @@ -9,11 +9,14 @@ // = AUTHOR // X. Elattaoui // -// $Author: stephle $ +// $Author: xavela $ // -// $Revision: 1.1 $ +// $Revision: 1.2 $ // // $Log: not supported by cvs2svn $ +// Revision 1.1 2007/07/09 13:20:37 stephle +// initial import +// // // ============================================================================ @@ -567,3 +570,11 @@ void AbstractElectrometerClass::mcce_off (void) _electrometerProtocol->switch_MCCE2_OFF( ); } +// ============================================================================ +// AbstractElectrometerClass::mcce_init +// ============================================================================ +void AbstractElectrometerClass::mcce_init (void) +{ + _electrometerProtocol->init_MCCE2_for_communication( ); +} + diff --git a/src/ElectrometerProtocol.cpp b/src/ElectrometerProtocol.cpp index f57aae0..ab4431e 100644 --- a/src/ElectrometerProtocol.cpp +++ b/src/ElectrometerProtocol.cpp @@ -218,6 +218,16 @@ void ElectrometerProtocol::switch_MCCE2_OFF (void) "ElectrometerProtocol::switch_MCCE2_OFF( )."); } +// ============================================================================ +// ElectrometerProtocol::init_MCCE2_for_communication +// ============================================================================ +void ElectrometerProtocol::init_MCCE2_for_communication (void) +{ + throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", + "This Electrometer does not support this command.", + "ElectrometerProtocol::init_MCCE2_for_communication( )."); +} + // ============================================================================ // ElectrometerProtocol::autoRange_ON // ============================================================================ diff --git a/src/NovelecProtocol.cpp b/src/NovelecProtocol.cpp index 72513f9..162eab5 100644 --- a/src/NovelecProtocol.cpp +++ b/src/NovelecProtocol.cpp @@ -55,8 +55,8 @@ NovelecProtocol::NovelecProtocol (std::string& serial_device_name, short devAddr _novType(novelecType), _is_measure_mode_on(false) { -std::stringstream explicite_resp; -std::string tmp("no data"); +//std::stringstream explicite_resp; +//std::string tmp("no data"); std::cout << "NovelecProtocol::NovelecProtocol <-" << std::endl; @@ -64,7 +64,32 @@ std::string tmp("no data"); _rangeParameterNum = _novType + 2; //- CMD to enable PROG cmds - this->switch_MCCE2_OFF(); +//-XE this->switch_MCCE2_OFF(); //- this command is now called in the MCCE2 device ! +/* + //- Clear error registers + this->clear_registers(); + + //- send cmd to have an explicite response : + explicite_resp << _devAdd << " PROG " << RESPONSE_LGTH_CMD_NUM << " 1" << END_OF_LINE << std::endl; + tmp = _communication_link->write_read(explicite_resp.str()); + //- check only the command response + check_command(tmp); + //- if no error + _is_explicite_resp_enabled = true; +*/ + std::cout << "NovelecProtocol::NovelecProtocol ->" << std::endl; +} + +// ============================================================================ +// NovelecProtocol::NovelecProtocol +// ============================================================================ +void NovelecProtocol::init_MCCE2_for_communication(void) +{ +std::stringstream explicite_resp; +std::string tmp("no data"); + + //- CMD to enable PROG cmds + this->switch_MCCE2_OFF(); //- this command is now called in the MCCE2 device ! //- Clear error registers this->clear_registers(); @@ -77,7 +102,6 @@ std::string tmp("no data"); //- if no error _is_explicite_resp_enabled = true; - std::cout << "NovelecProtocol::NovelecProtocol ->" << std::endl; } // ============================================================================ -- GitLab