diff --git a/include/AbstractElectrometerClass.h b/include/AbstractElectrometerClass.h index 95beda0086fa48b3ac1b25d4dd95e77d78429761..0363a865a0ac7fa2bfcbc0b19723a661de9923a7 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 d8c7b4cf000bf5eec8b201c198036e9d6711013a..5db7ccee130052097c564bd0c2bb7fc7d133547f 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 05f331256077aba32eda086c1a118397591d64f7..11aad3ec27504e3bf327f5914bd589c2755cd567 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 f42a46b685e13930962146d4aaca4b44bb130ed4..ab80765296c83fc6192fd8907945ee88dbb214f5 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 b4187610a3e59e8a664ca63ce6870af471045a00..b95edfbd1d452063b41738029f00a649656fc2a4 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 b9f1cb32e08b5bbfb96556b3a02c7e666c6fcb22..eaf2d54bbf0f282368b951a4f44ec9580039dd6b 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 d4a6ff622ae1a6cc31c560e9a3b8f746558aa73d..f8b35f1fe1227685541778272c9424251d85217b 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