From 246730f14be68848aac65a078a32cdd015a71195 Mon Sep 17 00:00:00 2001 From: Xavier Elattaoui <xavier.elattaoui@synchrotron-soleil.fr> Date: Wed, 17 Mar 2010 10:00:15 +0000 Subject: [PATCH] VSource output added for K_6517 --- include/AbstractElectrometerClass.h | 9 ++++++++- include/KeithleySCPIProtocol.h | 2 ++ include/Keithley_6517.h | 7 +++++++ pom.xml | 2 +- src/AbstractElectrometerClass.cpp | 26 +++++++++++++++++++++++++- src/KeithleySCPIProtocol.cpp | 24 ++++++++++++++++++++++++ src/Keithley_6517.cpp | 20 ++++++++++++++++++++ 7 files changed, 87 insertions(+), 3 deletions(-) diff --git a/include/AbstractElectrometerClass.h b/include/AbstractElectrometerClass.h index 95beda0..0363a86 100644 --- a/include/AbstractElectrometerClass.h +++ b/include/AbstractElectrometerClass.h @@ -9,9 +9,13 @@ // // $Author: xavela $ // -// $Revision: 1.17 $ +// $Revision: 1.18 $ // // $Log: not supported by cvs2svn $ +// Revision 1.17 2009/10/14 15:26:17 xavela +// KeithleyMemory leak fixed. +// Novelec part updated +// // Revision 1.16 2009/03/12 09:29:00 xavela // xavier: // Keithley part : support for 6517. @@ -192,6 +196,9 @@ public: virtual short get_buffer_size (void); virtual short get_triggerMode (void) { return _trigMod;}; + virtual void enable_VSourceOutput (void); + virtual void disable_VSourceOutput(void); + /** * \brief Novelec Electrometer methods * diff --git a/include/KeithleySCPIProtocol.h b/include/KeithleySCPIProtocol.h index d8c7b4c..5db7cce 100644 --- a/include/KeithleySCPIProtocol.h +++ b/include/KeithleySCPIProtocol.h @@ -74,6 +74,8 @@ public: void setVoltMeterMode (void); void setOhmMeterMode (void); void setCoulombMeterMode(void); + void setVSourceOutputON (void); + void setVSourceOutputOFF(void); /** * \brief Electrometer : cmd to get electrometer data. diff --git a/include/Keithley_6517.h b/include/Keithley_6517.h index 05f3312..11aad3e 100644 --- a/include/Keithley_6517.h +++ b/include/Keithley_6517.h @@ -83,6 +83,13 @@ public: * \brief The integration time (sec). */ void set_integrationTime (double); + + /** + * \brief Enable/Disable the VSource Output. + */ + void enable_VSourceOutput (void); + void disable_VSourceOutput(void); + //- TODO : // SCPI_Filters* _ddcFilters; // SCPI_Triggers* _ddcTriggers; diff --git a/pom.xml b/pom.xml index f42a46b..ab80765 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.3.1</version> + <version>2.4.0</version> <packaging>nar</packaging> <name>Electrometers library</name> <description>Electrometers library</description> diff --git a/src/AbstractElectrometerClass.cpp b/src/AbstractElectrometerClass.cpp index b418761..b95edfb 100644 --- a/src/AbstractElectrometerClass.cpp +++ b/src/AbstractElectrometerClass.cpp @@ -11,9 +11,13 @@ // // $Author: xavela $ // -// $Revision: 1.19 $ +// $Revision: 1.20 $ // // $Log: not supported by cvs2svn $ +// Revision 1.19 2009/10/14 15:26:17 xavela +// KeithleyMemory leak fixed. +// Novelec part updated +// // Revision 1.18 2009/10/12 08:50:41 xavela // minor change : cmd reset (*RST) added for DDCs. // @@ -625,6 +629,26 @@ void AbstractElectrometerClass::setCoulombMeterMode (void) "AbstractElectrometerClass::setAmperMeterMode( )."); */} +// ============================================================================ +// AbstractElectrometerClass::enable_VSourceOutput +// ============================================================================ +void AbstractElectrometerClass::enable_VSourceOutput (void) +{ + throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", + "This Electrometer does not support this command.", + "AbstractElectrometerClass::enable_VSourceOutput( )."); +} + +// ============================================================================ +// AbstractElectrometerClass::disable_VSourceOutput +// ============================================================================ +void AbstractElectrometerClass::disable_VSourceOutput (void) +{ + throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", + "This Electrometer does not support this command.", + "AbstractElectrometerClass::disable_VSourceOutput( )."); +} + // ============================================================================ // AbstractElectrometerClass::get_ElectroMeterPolarity // ============================================================================ diff --git a/src/KeithleySCPIProtocol.cpp b/src/KeithleySCPIProtocol.cpp index b9f1cb3..eaf2d54 100644 --- a/src/KeithleySCPIProtocol.cpp +++ b/src/KeithleySCPIProtocol.cpp @@ -308,6 +308,30 @@ std::string mode_ (""); } +// ============================================================================ +// KeithleySCPIProtocol::setVSourceOutputON +// ============================================================================ +void KeithleySCPIProtocol::setVSourceOutputON (void) +{ +std::stringstream cmd_to_send; + + //- send command + cmd_to_send << "OUTP 1" << std::endl; + _communication_link->write(cmd_to_send.str()); +} + +// ============================================================================ +// KeithleySCPIProtocol::setVSourceOutputOFF +// ============================================================================ +void KeithleySCPIProtocol::setVSourceOutputOFF (void) +{ +std::stringstream cmd_to_send; + + //- send command + cmd_to_send << "OUTP 0" << std::endl; + _communication_link->write(cmd_to_send.str()); +} + // ============================================================================ // KeithleySCPIProtocol::get_mode // ============================================================================ diff --git a/src/Keithley_6517.cpp b/src/Keithley_6517.cpp index d4a6ff6..f8b35f1 100644 --- a/src/Keithley_6517.cpp +++ b/src/Keithley_6517.cpp @@ -261,6 +261,26 @@ void Keithley_6517::setCoulombMeterMode (void) { _electrometerProtocol->setCoulombMeterMode( ); } + +// ============================================================================ +// Keithley_6517::enable_VSourceOutput +// ============================================================================ +void Keithley_6517::enable_VSourceOutput (void) +{ + KeithleySCPIProtocol* _kscpi = dynamic_cast<KeithleySCPIProtocol*>(_electrometerProtocol); + if(_kscpi) + _kscpi->setVSourceOutputON(); +} + +// ============================================================================ +// Keithley_6517::disable_VSourceOutput +// ============================================================================ +void Keithley_6517::disable_VSourceOutput (void) +{ + KeithleySCPIProtocol* _kscpi = dynamic_cast<KeithleySCPIProtocol*>(_electrometerProtocol); + if(_kscpi) + _kscpi->setVSourceOutputOFF(); +} // ============================================================================ // Keithley_6517::update_range -- GitLab