diff --git a/include/AbstractElectrometerClass.h b/include/AbstractElectrometerClass.h index e4d946c033da945bbba22fff825ee7165652d494..869a918910edf3fe9b15155c875b8ddfa03387c2 100644 --- a/include/AbstractElectrometerClass.h +++ b/include/AbstractElectrometerClass.h @@ -9,9 +9,13 @@ // // $Author: xavela $ // -// $Revision: 1.7 $ +// $Revision: 1.8 $ // // $Log: not supported by cvs2svn $ +// Revision 1.7 2008/02/15 08:49:46 xavela +// xavier : +// - minor change for integration time +// // Revision 1.6 2008/02/13 15:51:44 xavela // xavier : // - Integration Mode available for DDC/SCPI devices @@ -110,6 +114,7 @@ public: * \brief Following functions are only supported for SCPI protocol * */ + void abort (void); virtual void init_keithley (void); void clear_registers (void); void averageStateON (void); diff --git a/include/ElectrometerProtocol.h b/include/ElectrometerProtocol.h index 98414a6bc6c4865acd2e79b9acdbc124ddb1c379..5d06b51020e77b67f05f7cd118b3186aae860f6e 100644 --- a/include/ElectrometerProtocol.h +++ b/include/ElectrometerProtocol.h @@ -12,9 +12,13 @@ // // $Author: xavela $ // -// $Revision: 1.6 $ +// $Revision: 1.7 $ // // $Log: not supported by cvs2svn $ +// Revision 1.6 2008/02/15 08:49:46 xavela +// xavier : +// - minor change for integration time +// // Revision 1.5 2008/02/13 15:51:44 xavela // xavier : // - Integration Mode available for DDC/SCPI devices @@ -107,6 +111,7 @@ public: * \brief Electrometer : Keithley protocol dependent commands. */ virtual void init_keithley (void); + virtual void abort (void); virtual void set_knplc (std::string nPLC); virtual void set_triggercount (std::string trigcounts); virtual void set_triggerdelay (std::string trigdelay); diff --git a/include/KeithleySCPIProtocol.h b/include/KeithleySCPIProtocol.h index 5158fdd97740197b02b5f5ab1a9b0f255bd4b7a8..14fd1ecfd82505cab2d92e8188edcf59f6d16cf2 100644 --- a/include/KeithleySCPIProtocol.h +++ b/include/KeithleySCPIProtocol.h @@ -82,7 +82,8 @@ public: */ bool readStatusByteRegister (void); - void init_keithley (void); + void init_keithley (void); //- start operation(s) + void abort (void); //- cancel only all operation(s) started by init_keithley() /** * \brief Electrometer : Acquisition config */ diff --git a/src/AbstractElectrometerClass.cpp b/src/AbstractElectrometerClass.cpp index 19bd7509cce271fe8250ebf970a1d727bd4914e2..f5eedc6df8a060f5f164904051eae0bdfba13cd0 100644 --- a/src/AbstractElectrometerClass.cpp +++ b/src/AbstractElectrometerClass.cpp @@ -11,9 +11,13 @@ // // $Author: xavela $ // -// $Revision: 1.8 $ +// $Revision: 1.9 $ // // $Log: not supported by cvs2svn $ +// Revision 1.8 2008/02/15 08:49:51 xavela +// xavier : +// - minor change for integration time +// // Revision 1.7 2008/02/13 15:51:43 xavela // xavier : // - Integration Mode available for DDC/SCPI devices @@ -174,6 +178,14 @@ void AbstractElectrometerClass::init_keithley (void) "AbstractElectrometerClass::init_keithley( )."); } +// ============================================================================ +// AbstractElectrometerClass::abort +// ============================================================================ +void AbstractElectrometerClass::abort (void) +{ + _electrometerProtocol->abort( ); +} + // ============================================================================ // AbstractElectrometerClass::set_knplc // ============================================================================ diff --git a/src/ElectrometerProtocol.cpp b/src/ElectrometerProtocol.cpp index 4e52171a7b932d67bd5f2a9fd571e60d96b886e2..4ebd5164f4d9dafcb5beea4ddf2077771e8dfaa6 100644 --- a/src/ElectrometerProtocol.cpp +++ b/src/ElectrometerProtocol.cpp @@ -360,6 +360,16 @@ void ElectrometerProtocol::init_keithley (void) "ElectrometerProtocol::init_keithley( )."); } +// ============================================================================ +// ElectrometerProtocol::abort +// ============================================================================ +void ElectrometerProtocol::abort (void) +{ + throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", + "This Electrometer does not support this command.", + "ElectrometerProtocol::abort( )."); +} + // ============================================================================ // ElectrometerProtocol::set_knplc // ============================================================================ diff --git a/src/KeithleySCPIProtocol.cpp b/src/KeithleySCPIProtocol.cpp index d2c3c1741e43676da7dc1377008dc456327ebe49..2bb5ccbbafef96590419a307144b65d1ee3cc6c0 100644 --- a/src/KeithleySCPIProtocol.cpp +++ b/src/KeithleySCPIProtocol.cpp @@ -38,10 +38,15 @@ KeithleySCPIProtocol::KeithleySCPIProtocol (std::string& gpib_device_name) _communication_link = new TangoGpibLink (gpib_device_name); +std::string cmd_to_send(""); //- Select reading only - std::string cmd_to_send("FORM:ELEM READ"); - - //- send command + cmd_to_send = "FORM:ELEM READ"; + _communication_link->write(cmd_to_send); + //- Select control source : IMMediate + cmd_to_send = "ARM:SOUR IMM"; + _communication_link->write(cmd_to_send); + //- Set measure count + cmd_to_send = "ARM:COUNT 1"; _communication_link->write(cmd_to_send); std::cout << "KeithleySCPIProtocol::KeithleySCPIProtocol ->" << std::endl; @@ -448,6 +453,17 @@ std::string cmd_to_send("INIT"); _communication_link->write(cmd_to_send); } +// ============================================================================ +// KeithleySCPIProtocol::abort -> cancel all operations started by INIT command +// ============================================================================ +void KeithleySCPIProtocol::abort (void) +{ +std::string cmd_to_send("ABORt"); + + //- send command : ABORt to cancel all operations + _communication_link->write(cmd_to_send); +} + // ============================================================================ // KeithleySCPIProtocol::set_knplc : specify the integration rate // ============================================================================