diff --git a/doc/DevelopersUsersGuide.doc b/doc/DevelopersUsersGuide.doc
new file mode 100644
index 0000000000000000000000000000000000000000..b789b36f6c6e968ac4cc5ae2d3c25f5449e0759d
Binary files /dev/null and b/doc/DevelopersUsersGuide.doc differ
diff --git a/doc/DevelopersUsersGuide.pdf b/doc/DevelopersUsersGuide.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..45e802cb5fe4d7340c34ba19efb6cd2862f41b74
Binary files /dev/null and b/doc/DevelopersUsersGuide.pdf differ
diff --git a/doc/html/_abstract_electrometer_class_8h-source.html b/doc/html/_abstract_electrometer_class_8h-source.html
new file mode 100644
index 0000000000000000000000000000000000000000..8e4f6759809ad0c434369f845f22952a50fb02dd
--- /dev/null
+++ b/doc/html/_abstract_electrometer_class_8h-source.html
@@ -0,0 +1,115 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: AbstractElectrometerClass.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">D:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">DeviceServerSrc</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">ElectrometersLibrary</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>AbstractElectrometerClass.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">//+=============================================================================</span>
+00002 <span class="comment">//</span>
+00003 <span class="comment">// = CONTEXT</span>
+00004 <span class="comment">//    TANGO Project - Abstract Electrometer Class Support Library</span>
+00005 <span class="comment">//</span>
+00006 <span class="comment">// = FILENAME</span>
+00007 <span class="comment">//    AbstractElectrometerClass.h</span>
+00008 <span class="comment">//</span>
+00009 <span class="comment">//</span>
+00010 <span class="comment">// $Author: stephle $</span>
+00011 <span class="comment">//</span>
+00012 <span class="comment">// $Revision: 1.1 $</span>
+00013 <span class="comment">//</span>
+00014 <span class="comment">// $Log: not supported by cvs2svn $
+00014 <span class="comment">// Revision 1.1  2006/12/01 14:56:41  elattaoui
+00014 <span class="comment">// xavier :
+00014 <span class="comment">// Doxygen doc added
+00014 <span class="comment">//</span>
+00015 <span class="comment">//</span>
+00016 
+00017 <span class="comment">// ============================================================================</span>
+00018 
+00019 <span class="preprocessor">#ifndef _ABSTRACT_ELECTROMETER_CLASS_H_</span>
+00020 <span class="preprocessor"></span><span class="preprocessor">#define _ABSTRACT_ELECTROMETER_CLASS_H_</span>
+00021 <span class="preprocessor"></span>
+00022 <span class="preprocessor">#include "ElectrometerProtocol.h"</span>
+00023 
+<a name="l00030"></a><a class="code" href="class_abstract_electrometer_class.html">00030</a> <span class="keyword">class </span><a class="code" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>
+00031 {
+00032 <span class="keyword">public</span>:
+00033 
+00037         <a class="code" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a> (std::string comLink_device_name);
+00038         
+00042         <span class="keyword">virtual</span> ~<a class="code" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a> (<span class="keywordtype">void</span>);
+00043 
+00047         <span class="keyword">virtual</span> <span class="keywordtype">void</span> range_up                   (<span class="keywordtype">void</span>) = 0;
+00048         <span class="keyword">virtual</span> <span class="keywordtype">void</span> range_down                 (<span class="keywordtype">void</span>) = 0;
+00049         <span class="keyword">virtual</span> <span class="keywordtype">void</span> reset                              (<span class="keywordtype">void</span>); 
+00050         <span class="keyword">virtual</span> <span class="keywordtype">void</span> local                              (<span class="keywordtype">void</span>);
+00051         <span class="keyword">virtual</span> <span class="keywordtype">void</span> remote                             (<span class="keywordtype">void</span>);
+00052 
+00056         std::string get_value                   (<span class="keywordtype">void</span>);
+00057 
+00061         <span class="keywordtype">void</span> autoRange_on               (<span class="keywordtype">void</span>);
+00062         <span class="keywordtype">void</span> zero_check_on              (<span class="keywordtype">void</span>);
+00063         <span class="keywordtype">void</span> zero_check_off             (<span class="keywordtype">void</span>);
+00064         <span class="keywordtype">void</span> zero_correct_on    (<span class="keywordtype">void</span>);
+00065         <span class="keywordtype">void</span> zero_correct_off   (<span class="keywordtype">void</span>);
+00066         <span class="keywordtype">void</span> auto_zero_on               (<span class="keywordtype">void</span>);
+00067         <span class="keywordtype">void</span> auto_zero_off              (<span class="keywordtype">void</span>);
+00068         <span class="keyword">virtual</span> <span class="keywordtype">void</span> autoRange_off              (<span class="keywordtype">void</span>);
+00069         <span class="keyword">virtual</span> <span class="keywordtype">void</span> setAmperMeterMode  (<span class="keywordtype">void</span>);
+00070         <span class="keyword">virtual</span> <span class="keywordtype">void</span> setVoltMeterMode   (<span class="keywordtype">void</span>);
+00071         <span class="keyword">virtual</span> <span class="keywordtype">void</span> setOhmMeterMode    (<span class="keywordtype">void</span>);
+00072         <span class="keyword">virtual</span> <span class="keywordtype">void</span> setCoulombMeterMode(<span class="keywordtype">void</span>);
+00073 
+00078         <span class="keywordtype">void</span> init_keithley              (<span class="keywordtype">void</span>); 
+00079         <span class="keywordtype">void</span> clear_registers    (<span class="keywordtype">void</span>); 
+00080         <span class="keywordtype">void</span> averageStateON             (<span class="keywordtype">void</span>); 
+00081         <span class="keywordtype">void</span> averageStateOFF    (<span class="keywordtype">void</span>); 
+00082         <span class="keywordtype">void</span> set_knplc                  (std::string nPLC);
+00083         <span class="keywordtype">void</span> set_triggercount   (std::string trigcounts);
+00084         <span class="keywordtype">void</span> set_averagecount   (std::string avercounts);
+00085         <span class="keywordtype">void</span> set_averagecontrol (std::string averctrl);
+00086         std::string get_knplc                   (<span class="keywordtype">void</span>);
+00087         std::string get_triggercount    (<span class="keywordtype">void</span>);
+00088         std::string get_averagecount    (<span class="keywordtype">void</span>);
+00089         std::string get_averagecontrol  (<span class="keywordtype">void</span>);
+00090 
+00096         <span class="keyword">virtual</span> <span class="keywordtype">void</span> set_Zero_VonF_function             (<span class="keywordtype">void</span>);
+00097         <span class="keyword">virtual</span> <span class="keywordtype">void</span> set_Offset_ZeroV1_function (<span class="keywordtype">void</span>);
+00098         <span class="keyword">virtual</span> <span class="keywordtype">void</span> set_Leakage_ZeroV2_function(<span class="keywordtype">void</span>);
+00099         <span class="keyword">virtual</span> <span class="keywordtype">void</span> set_Test_function                  (<span class="keywordtype">void</span>);
+00100         <span class="keyword">virtual</span> <span class="keywordtype">void</span> mcce_on    (<span class="keywordtype">void</span>);
+00101         <span class="keyword">virtual</span> <span class="keywordtype">void</span> mcce_off   (<span class="keywordtype">void</span>);
+00105         <span class="keyword">virtual</span> std::string get_ElectroMeterPolarity (<span class="keywordtype">void</span>);
+00106         <span class="keyword">virtual</span> std::string get_ElectroMeterFrequency(<span class="keywordtype">void</span>);
+00107         <span class="keyword">virtual</span> std::string get_ElectroMeterGain         (<span class="keywordtype">void</span>);
+00108         <span class="keyword">virtual</span> <span class="keywordtype">void</span> set_ElectroMeterPolarity   (std::string pola);
+00109         <span class="keyword">virtual</span> <span class="keywordtype">void</span> set_ElectroMeterFrequency  (std::string freq);
+00110         <span class="keyword">virtual</span> <span class="keywordtype">void</span> set_ElectroMeterGain               (std::string gain);
+00111 
+00115         <span class="keyword">virtual</span> std::string electrometer_status (<span class="keywordtype">void</span>);
+00116 
+00120         <span class="keyword">virtual</span> std::string get_ElectroMeterMode                (<span class="keywordtype">void</span>);
+00121         <span class="keyword">virtual</span> std::string get_ElectroMeterRange               (<span class="keywordtype">void</span>);
+00122 
+00123 
+00124 <span class="keyword">protected</span> :
+00125         <span class="keywordtype">short</span>                                   _range;
+00126         std::string                             _rangeStr;
+00127         std::string                             _mode;
+00128         <a class="code" href="class_electrometer_protocol.html">ElectrometerProtocol</a>*   _electrometerProtocol;
+00129         std::string                             _device_proxy_name;
+00130 
+00131 <span class="keyword">private</span> :
+00132 
+00133 
+00134 };
+00135 
+00136 <span class="preprocessor">#endif // _ABSTRACT_ELECTROMETER_CLASS_H_</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:18 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/_communication_link_8h-source.html b/doc/html/_communication_link_8h-source.html
new file mode 100644
index 0000000000000000000000000000000000000000..d482a26af1a8ea9c854362cb61d18b583ddd5010
--- /dev/null
+++ b/doc/html/_communication_link_8h-source.html
@@ -0,0 +1,69 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: CommunicationLink.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">D:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">DeviceServerSrc</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">ElectrometersLibrary</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>CommunicationLink.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// ============================================================================</span>
+00002 <span class="comment">//</span>
+00003 <span class="comment">// = CONTEXT</span>
+00004 <span class="comment">//    TANGO Project - Keithley Electrometer Support Library</span>
+00005 <span class="comment">//</span>
+00006 <span class="comment">// = FILENAME</span>
+00007 <span class="comment">//    CommunicationLink.h</span>
+00008 <span class="comment">//</span>
+00009 <span class="comment">// = AUTHOR</span>
+00010 <span class="comment">//    X. Elattaoui</span>
+00011 <span class="comment">//</span>
+00012 <span class="comment">//</span>
+00013 <span class="comment">// $Author: stephle $</span>
+00014 <span class="comment">//</span>
+00015 <span class="comment">// $Revision: 1.1 $</span>
+00016 <span class="comment">//</span>
+00017 <span class="comment">// $Log: not supported by cvs2svn $
+00017 <span class="comment">// Revision 1.1  2006/12/01 14:56:41  elattaoui
+00017 <span class="comment">// xavier :
+00017 <span class="comment">// Doxygen doc added
+00017 <span class="comment">//</span>
+00018 <span class="comment">//</span>
+00019 <span class="comment">// ============================================================================</span>
+00020 
+00021 <span class="preprocessor">#ifndef _COMMUNICATION_LINK_H_</span>
+00022 <span class="preprocessor"></span><span class="preprocessor">#define _COMMUNICATION_LINK_H_</span>
+00023 <span class="preprocessor"></span>
+00024 <span class="preprocessor">#include &lt;string&gt;</span>
+00025 
+00026 <span class="comment">// ============================================================================</span>
+00027 <span class="comment">// DEPENDENCIES</span>
+00028 <span class="comment">// ============================================================================</span>
+00029 
+00030 
+<a name="l00043"></a><a class="code" href="class_communication_link.html">00043</a> <span class="keyword">class </span><a class="code" href="class_communication_link.html">CommunicationLink</a>
+00044 {
+00045 <span class="keyword">public</span> :
+00046         
+00050         <a class="code" href="class_communication_link.html">CommunicationLink</a> (std::string&amp; communication_link_name);
+00051         
+00055         <span class="keyword">virtual</span> ~<a class="code" href="class_communication_link.html">CommunicationLink</a> (<span class="keywordtype">void</span>);
+00056 
+00062         <span class="keyword">virtual</span> <span class="keywordtype">void</span> write(std::string) = 0; 
+00063         
+00069         <span class="keyword">virtual</span> std::string read(<span class="keywordtype">void</span>)  = 0;
+00070 
+00076         <span class="keyword">virtual</span> std::string write_read(std::string cmd_to_send) = 0;
+00077 
+00078 <span class="keyword">protected</span> :
+00079         std::string _communication_Device_name;
+00080 
+00081 };
+00082         <span class="comment">//- end addtogroup</span>
+00084 
+00085 <span class="preprocessor">#endif // _COMMUNICATION_LINK_H_</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:18 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/_electrometer_exception_8h-source.html b/doc/html/_electrometer_exception_8h-source.html
new file mode 100644
index 0000000000000000000000000000000000000000..940e94f0e8dda7b7861a0648eb1f342e235bb841
--- /dev/null
+++ b/doc/html/_electrometer_exception_8h-source.html
@@ -0,0 +1,135 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: ElectrometerException.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">D:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">DeviceServerSrc</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">ElectrometersLibrary</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>ElectrometerException.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">//******************************************************************************************</span>
+00002 <span class="comment">//</span>
+00003 <span class="comment">//</span>
+00004 <span class="comment">//              july 24, 2006 :  Header file for the Electrometers exceptions</span>
+00005 <span class="comment">//                                           (avaiable for all models Keithley and Novelec)</span>
+00006 <span class="comment">//</span>
+00007 <span class="comment">//</span>
+00008 <span class="comment">//              author : X.Elattaoui</span>
+00009 <span class="comment">//</span>
+00010 <span class="comment">//              ElectrometerException.cpp: interface for the electrometer exceptions class.</span>
+00011 <span class="comment">//</span>
+00012 <span class="comment">//******************************************************************************************</span>
+00013 
+00014 <span class="preprocessor">#ifndef _ELECTROMETER_EXCEPTION</span>
+00015 <span class="preprocessor"></span><span class="preprocessor">#define _ELECTROMETER_EXCEPTION</span>
+00016 <span class="preprocessor"></span>
+00017 <span class="preprocessor">#include &lt;string&gt;</span>
+00018 <span class="preprocessor">#include &lt;vector&gt;</span>
+00019 
+00020 <span class="keyword">namespace </span>electrometer{
+00021 
+00022 <span class="comment">// ============================================================================</span>
+00023 <span class="comment">// Electrometer Errors severities</span>
+00024 <span class="comment">// ============================================================================</span>
+00025 <span class="keyword">typedef</span> <span class="keyword">enum</span> {
+00026   WARN, 
+00027   ERR, 
+00028   PANIC
+00029 } ErrorSeverity;
+00030 
+00031 <span class="comment">// ============================================================================</span>
+00033 <span class="comment"></span><span class="comment">// ============================================================================</span>
+00037 <span class="comment"></span><span class="comment">// ============================================================================</span>
+<a name="l00038"></a><a class="code" href="classelectrometer_1_1_error.html">00038</a> <span class="keyword">class </span><a class="code" href="classelectrometer_1_1_error.html">Error</a>
+00039 {
+00040 <span class="keyword">public</span>:
+00041 
+00045   <a class="code" href="classelectrometer_1_1_error.html">Error</a> (<span class="keywordtype">void</span>);
+00046 
+00050   <a class="code" href="classelectrometer_1_1_error.html">Error</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> *reason,
+00051                                  <span class="keyword">const</span> <span class="keywordtype">char</span> *desc,
+00052                                  <span class="keyword">const</span> <span class="keywordtype">char</span> *origin,
+00053                <span class="keywordtype">int</span> severity = electrometer::ERR);
+00054   
+00055 
+00059   <a class="code" href="classelectrometer_1_1_error.html">Error</a> (<span class="keyword">const</span> std::string&amp; reason,
+00060                                  <span class="keyword">const</span> std::string&amp; desc,
+00061                                  <span class="keyword">const</span> std::string&amp; origin, 
+00062                <span class="keywordtype">int</span> severity = electrometer::ERR);
+00063 
+00067   <a class="code" href="classelectrometer_1_1_error.html">Error</a> (<span class="keyword">const</span> <a class="code" href="classelectrometer_1_1_error.html">Error</a>&amp; src);
+00068 
+00072   <span class="keyword">virtual</span> ~<a class="code" href="classelectrometer_1_1_error.html">Error</a> (<span class="keywordtype">void</span>);
+00073 
+00077   <a class="code" href="classelectrometer_1_1_error.html">Error</a>&amp; operator= (<span class="keyword">const</span> <a class="code" href="classelectrometer_1_1_error.html">Error</a>&amp; _src);
+00078 
+<a name="l00082"></a><a class="code" href="classelectrometer_1_1_error.html#electrometer_1_1_erroro0">00082</a>   std::string reason;
+00083 
+<a name="l00087"></a><a class="code" href="classelectrometer_1_1_error.html#electrometer_1_1_erroro1">00087</a>   std::string desc;
+00088 
+<a name="l00092"></a><a class="code" href="classelectrometer_1_1_error.html#electrometer_1_1_erroro2">00092</a>   std::string origin;
+00093 
+<a name="l00097"></a><a class="code" href="classelectrometer_1_1_error.html#electrometer_1_1_erroro3">00097</a>   <span class="keywordtype">int</span> severity;
+00098 
+00099 };
+00100 
+00101 <span class="comment">// ============================================================================</span>
+00102 <span class="comment">// The Electrometer error list.</span>
+00103 <span class="comment">// ============================================================================</span>
+00104 <span class="keyword">typedef</span> std::vector&lt;Error&gt; ErrorList;
+00105 
+00106 
+00107 <span class="comment">// ============================================================================</span>
+00109 <span class="comment"></span><span class="comment">// ============================================================================</span>
+00113 <span class="comment"></span><span class="comment">// ============================================================================</span>
+<a name="l00114"></a><a class="code" href="classelectrometer_1_1_electrometer_exception.html">00114</a> <span class="keyword">class  </span><a class="code" href="classelectrometer_1_1_electrometer_exception.html">ElectrometerException</a>
+00115 {
+00116 <span class="keyword">public</span>:
+00117 
+00121   <a class="code" href="classelectrometer_1_1_electrometer_exception.html">ElectrometerException</a> (<span class="keywordtype">void</span>);
+00122 
+00126   <a class="code" href="classelectrometer_1_1_electrometer_exception.html">ElectrometerException</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> *reason,
+00127                                            <span class="keyword">const</span> <span class="keywordtype">char</span> *desc,
+00128                                            <span class="keyword">const</span> <span class="keywordtype">char</span> *origin,
+00129                    <span class="keywordtype">int</span> severity = electrometer::ERR);
+00130   
+00134   <a class="code" href="classelectrometer_1_1_electrometer_exception.html">ElectrometerException</a> (<span class="keyword">const</span> std::string&amp; reason,
+00135                                            <span class="keyword">const</span> std::string&amp; desc,
+00136                                            <span class="keyword">const</span> std::string&amp; origin, 
+00137                    <span class="keywordtype">int</span> severity = electrometer::ERR);
+00138 
+00142   <a class="code" href="classelectrometer_1_1_electrometer_exception.html">ElectrometerException</a> (<span class="keyword">const</span> <a class="code" href="classelectrometer_1_1_error.html">Error</a>&amp; error);
+00143 
+00144 
+00148   <a class="code" href="classelectrometer_1_1_electrometer_exception.html">ElectrometerException</a> (<span class="keyword">const</span> <a class="code" href="classelectrometer_1_1_electrometer_exception.html">ElectrometerException</a>&amp; src);
+00149 
+00153   <a class="code" href="classelectrometer_1_1_electrometer_exception.html">ElectrometerException</a>&amp; operator= (<span class="keyword">const</span> <a class="code" href="classelectrometer_1_1_electrometer_exception.html">ElectrometerException</a>&amp; _src);
+00154 
+00158   <span class="keyword">virtual</span> ~<a class="code" href="classelectrometer_1_1_electrometer_exception.html">ElectrometerException</a> (<span class="keywordtype">void</span>);
+00159 
+00163   <span class="keywordtype">void</span> push_error (<span class="keyword">const</span> <span class="keywordtype">char</span> *reason,
+00164                                                  <span class="keyword">const</span> <span class="keywordtype">char</span> *desc,
+00165                                                        <span class="keyword">const</span> <span class="keywordtype">char</span> *origin, 
+00166                                <span class="keywordtype">int</span> severity = electrometer::ERR);
+00167 
+00171   <span class="keywordtype">void</span> push_error (<span class="keyword">const</span> std::string&amp; reason,
+00172                    <span class="keyword">const</span> std::string&amp; desc,
+00173                    <span class="keyword">const</span> std::string&amp; origin, 
+00174                    <span class="keywordtype">int</span> severity = electrometer::ERR);
+00175 
+00179   <span class="keywordtype">void</span> push_error (<span class="keyword">const</span> <a class="code" href="classelectrometer_1_1_error.html">Error</a>&amp; error);
+00180 
+<a name="l00184"></a><a class="code" href="classelectrometer_1_1_electrometer_exception.html#electrometer_1_1_electrometer_exceptiono0">00184</a>    ErrorList errors;
+00185   
+00186 
+00187 };
+00188 
+00189 } <span class="comment">// end namspace Electrometer</span>
+00190 <span class="preprocessor">#endif //_ELECTROMETER_EXCEPTION</span>
+00191 <span class="preprocessor"></span>
+00192 
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:18 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/_electrometer_protocol_8h-source.html b/doc/html/_electrometer_protocol_8h-source.html
new file mode 100644
index 0000000000000000000000000000000000000000..a5557284fe86eff241464fe723e821c42969c19d
--- /dev/null
+++ b/doc/html/_electrometer_protocol_8h-source.html
@@ -0,0 +1,116 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: ElectrometerProtocol.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">D:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">DeviceServerSrc</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">ElectrometersLibrary</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>ElectrometerProtocol.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// ============================================================================</span>
+00002 <span class="comment">//</span>
+00003 <span class="comment">// = CONTEXT</span>
+00004 <span class="comment">//    TANGO Project - Electrometer Support Library</span>
+00005 <span class="comment">//</span>
+00006 <span class="comment">// = FILENAME</span>
+00007 <span class="comment">//    ElectrometerProtocol.h</span>
+00008 <span class="comment">//</span>
+00009 <span class="comment">// = AUTHOR</span>
+00010 <span class="comment">//    X. Elattaoui</span>
+00011 <span class="comment">//</span>
+00012 <span class="comment">//</span>
+00013 <span class="comment">// $Author: stephle $</span>
+00014 <span class="comment">//</span>
+00015 <span class="comment">// $Revision: 1.1 $</span>
+00016 <span class="comment">//</span>
+00017 <span class="comment">// $Log: not supported by cvs2svn $
+00017 <span class="comment">// Revision 1.1  2006/12/01 14:56:41  elattaoui
+00017 <span class="comment">// xavier :
+00017 <span class="comment">// Doxygen doc added
+00017 <span class="comment">//</span>
+00018 <span class="comment">//</span>
+00019 <span class="comment">// ============================================================================</span>
+00020 
+00021 <span class="preprocessor">#ifndef _ELECTROMETER_PROTOCOL_H_</span>
+00022 <span class="preprocessor"></span><span class="preprocessor">#define _ELECTROMETER_PROTOCOL_H_</span>
+00023 <span class="preprocessor"></span>
+00024 <span class="preprocessor">#include "CommunicationLink.h"</span>
+00025 
+<a name="l00038"></a><a class="code" href="class_electrometer_protocol.html">00038</a> <span class="keyword">class </span><a class="code" href="class_electrometer_protocol.html">ElectrometerProtocol</a>
+00039 {
+00040 <span class="keyword">public</span>:
+00041 
+00045         <a class="code" href="class_electrometer_protocol.html">ElectrometerProtocol</a> ();
+00046         
+00050         <span class="keyword">virtual</span> ~<a class="code" href="class_electrometer_protocol.html">ElectrometerProtocol</a> ();
+00051 
+00055         <span class="keyword">virtual</span> <span class="keywordtype">void</span> set_range (std::string val)= 0;
+00056         <span class="keyword">virtual</span> <span class="keywordtype">void</span> reset                      (<span class="keywordtype">void</span>) = 0; 
+00057         <span class="keyword">virtual</span> <span class="keywordtype">void</span> local                      (<span class="keywordtype">void</span>); 
+00058         <span class="keyword">virtual</span> <span class="keywordtype">void</span> remote                     (<span class="keywordtype">void</span>); 
+00059 
+00063         <span class="keyword">virtual</span> std::string get_value(<span class="keywordtype">void</span>)             = 0;
+00064         <span class="keyword">virtual</span> std::string get_mode (<span class="keywordtype">void</span>)             = 0;
+00065         <span class="keyword">virtual</span> std::string get_range(<span class="keywordtype">void</span>)             = 0;
+00066 
+00070         <span class="keyword">virtual</span> std::string get_raw_status (<span class="keywordtype">void</span>) = 0;
+00071         
+00075         <span class="keyword">virtual</span> <span class="keywordtype">void</span> init_keithley              (<span class="keywordtype">void</span>); 
+00076         <span class="keyword">virtual</span> <span class="keywordtype">void</span> set_knplc(std::string nPLC);
+00077         <span class="keyword">virtual</span> <span class="keywordtype">void</span> set_triggercount(std::string trigcounts);
+00078         <span class="keyword">virtual</span> <span class="keywordtype">void</span> set_averagecount(std::string avercounts);
+00079         <span class="keyword">virtual</span> <span class="keywordtype">void</span> set_averagecontrol(std::string averctrl);
+00080         <span class="keyword">virtual</span> std::string get_knplc                   (<span class="keywordtype">void</span>);
+00081         <span class="keyword">virtual</span> std::string get_triggercount    (<span class="keywordtype">void</span>);
+00082         <span class="keyword">virtual</span> std::string get_averagecount    (<span class="keywordtype">void</span>);
+00083         <span class="keyword">virtual</span> std::string get_averagecontrol  (<span class="keywordtype">void</span>);
+00084         <span class="keyword">virtual</span> <span class="keywordtype">void</span> clear_registers    (<span class="keywordtype">void</span>); 
+00085         <span class="keyword">virtual</span> <span class="keywordtype">void</span> averageStateON             (<span class="keywordtype">void</span>); 
+00086         <span class="keyword">virtual</span> <span class="keywordtype">void</span> averageStateOFF    (<span class="keywordtype">void</span>); 
+00087         <span class="keyword">virtual</span> <span class="keywordtype">void</span> setAmperMeterMode  (<span class="keywordtype">void</span>);
+00088         <span class="keyword">virtual</span> <span class="keywordtype">void</span> setVoltMeterMode   (<span class="keywordtype">void</span>);
+00089         <span class="keyword">virtual</span> <span class="keywordtype">void</span> setOhmMeterMode    (<span class="keywordtype">void</span>);
+00090         <span class="keyword">virtual</span> <span class="keywordtype">void</span> setCoulombMeterMode(<span class="keywordtype">void</span>);
+00091         <span class="keyword">virtual</span> <span class="keywordtype">void</span> autoRange_on       (<span class="keywordtype">void</span>);
+00092         <span class="keyword">virtual</span> <span class="keywordtype">void</span> autoRange_off      (<span class="keywordtype">void</span>);
+00093         
+00094         <span class="keyword">virtual</span> <span class="keywordtype">void</span> zero_check_on      (<span class="keywordtype">void</span>);
+00095         <span class="keyword">virtual</span> <span class="keywordtype">void</span> zero_check_off     (<span class="keywordtype">void</span>);
+00096         <span class="keyword">virtual</span> <span class="keywordtype">void</span> zero_correct_on(<span class="keywordtype">void</span>);
+00097         <span class="keyword">virtual</span> <span class="keywordtype">void</span> zero_correct_off(<span class="keywordtype">void</span>);
+00098         <span class="keyword">virtual</span> <span class="keywordtype">void</span> auto_zero_on       (<span class="keywordtype">void</span>);
+00099         <span class="keyword">virtual</span> <span class="keywordtype">void</span> auto_zero_off      (<span class="keywordtype">void</span>); 
+00100 
+00101 
+00105         <span class="keyword">virtual</span> <span class="keywordtype">void</span> switch_MCCE2_ON            (<span class="keywordtype">void</span>);
+00106         <span class="keyword">virtual</span> <span class="keywordtype">void</span> switch_MCCE2_OFF           (<span class="keywordtype">void</span>);
+00107         <span class="keyword">virtual</span> <span class="keywordtype">void</span> unable_zeroVF_func         (<span class="keywordtype">void</span>);
+00108         <span class="keyword">virtual</span> <span class="keywordtype">void</span> unable_offset_zeroV1_func          (<span class="keywordtype">void</span>);
+00109         <span class="keyword">virtual</span> <span class="keywordtype">void</span> unable_leakage_zeroV2_func         (<span class="keywordtype">void</span>);
+00110         <span class="keyword">virtual</span> <span class="keywordtype">void</span> unable_test_func           (<span class="keywordtype">void</span>);
+00111         <span class="keyword">virtual</span> std::string get_polarity        (<span class="keywordtype">void</span>);
+00112         <span class="keyword">virtual</span> std::string get_frequency       (<span class="keywordtype">void</span>);
+00113         <span class="keyword">virtual</span> std::string get_gain            (<span class="keywordtype">void</span>);
+00114         <span class="keyword">virtual</span> <span class="keywordtype">void</span> set_polarity       (std::string pola);
+00115         <span class="keyword">virtual</span> <span class="keywordtype">void</span> set_frequency      (std::string freq);
+00116         <span class="keyword">virtual</span> <span class="keywordtype">void</span> set_gain           (std::string gain);
+00117 
+00118 
+00119 
+00120 <span class="keyword">protected</span> :
+00121         <span class="keywordtype">short</span>                   _range;
+00122         std::string             _mode;
+00123         <a class="code" href="class_communication_link.html">CommunicationLink</a>* _communication_link;
+00124 
+00125 <span class="keyword">private</span> :
+00126 
+00127 
+00128 };
+00129         <span class="comment">//- end addtogroup</span>
+00131 
+00132 <span class="preprocessor">#endif // _ELECTROMETER_PROTOCOL_H_</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:18 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/_keithley__485_8h-source.html b/doc/html/_keithley__485_8h-source.html
new file mode 100644
index 0000000000000000000000000000000000000000..3bc5d462aafb5047b2e12dc75bc88868cf08d15d
--- /dev/null
+++ b/doc/html/_keithley__485_8h-source.html
@@ -0,0 +1,50 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Keithley_485.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">D:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">DeviceServerSrc</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">ElectrometersLibrary</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>Keithley_485.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// ============================================================================</span>
+00002 <span class="comment">//</span>
+00003 <span class="comment">// = CONTEXT</span>
+00004 <span class="comment">//    TANGO Project - Keithley Electrometer Support Library</span>
+00005 <span class="comment">//</span>
+00006 <span class="comment">// = FILENAME</span>
+00007 <span class="comment">//    Keithley_485.h</span>
+00008 <span class="comment">//</span>
+00009 <span class="comment">// = AUTHOR</span>
+00010 <span class="comment">//    X. Elattaoui</span>
+00011 <span class="comment">//</span>
+00012 <span class="comment">// ============================================================================</span>
+00013 
+00014 <span class="preprocessor">#ifndef _KEITHLEY_485_H_</span>
+00015 <span class="preprocessor"></span><span class="preprocessor">#define _KEITHLEY_485_H_</span>
+00016 <span class="preprocessor"></span>
+00017 <span class="preprocessor">#include "AbstractElectrometerClass.h"</span>
+00018 
+<a name="l00031"></a><a class="code" href="class_keithley__485.html">00031</a> <span class="keyword">class </span><a class="code" href="class_keithley__485.html">Keithley_485</a> : <span class="keyword">public</span> <a class="code" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>
+00032 {
+00033 <span class="keyword">public</span>:
+00034 
+00038         <a class="code" href="class_keithley__485.html#_keithley__485a0">Keithley_485</a> (std::string&amp; comLink_device_name);
+00039         
+00043         <span class="keyword">virtual</span> <a class="code" href="class_keithley__485.html#_keithley__485a1">~Keithley_485</a> (<span class="keywordtype">void</span>);
+00044 
+00048         <span class="keywordtype">void</span> <a class="code" href="class_keithley__485.html#_keithley__485a2">range_up</a>           (<span class="keywordtype">void</span>);
+00049         <span class="keywordtype">void</span> range_down         (<span class="keywordtype">void</span>);
+00050 
+00054         std::string <a class="code" href="class_keithley__485.html#_keithley__485a4">get_ElectroMeterRange</a>(<span class="keywordtype">void</span>);
+00055         
+00059         std::string <a class="code" href="class_keithley__485.html#_keithley__485a5">electrometer_status</a> (<span class="keywordtype">void</span>);
+00060 };
+00061         <span class="comment">//- end addtogroup</span>
+00063 
+00064 <span class="preprocessor">#endif // _KEITHLEY_485_H_</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:18 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/_keithley__486_8h-source.html b/doc/html/_keithley__486_8h-source.html
new file mode 100644
index 0000000000000000000000000000000000000000..e1bf6c32fa500234605518dea4ac6b58e59d44bf
--- /dev/null
+++ b/doc/html/_keithley__486_8h-source.html
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Keithley_486.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">D:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">DeviceServerSrc</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">ElectrometersLibrary</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>Keithley_486.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// ============================================================================</span>
+00002 <span class="comment">//</span>
+00003 <span class="comment">// = CONTEXT</span>
+00004 <span class="comment">//    TANGO Project - DDC Keithley Electrometer Support Library</span>
+00005 <span class="comment">//</span>
+00006 <span class="comment">// = FILENAME</span>
+00007 <span class="comment">//    Keithley_486.h</span>
+00008 <span class="comment">//</span>
+00009 <span class="comment">// = AUTHOR</span>
+00010 <span class="comment">//    X. Elattaoui</span>
+00011 <span class="comment">//</span>
+00012 <span class="comment">// ============================================================================</span>
+00013 
+00014 <span class="preprocessor">#ifndef _KEITHLEY_486_H_</span>
+00015 <span class="preprocessor"></span><span class="preprocessor">#define _KEITHLEY_486_H_</span>
+00016 <span class="preprocessor"></span>
+00017 <span class="preprocessor">#include "AbstractElectrometerClass.h"</span>
+00018 
+<a name="l00031"></a><a class="code" href="class_keithley__486.html">00031</a> <span class="keyword">class </span><a class="code" href="class_keithley__486.html">Keithley_486</a> : <span class="keyword">public</span> <a class="code" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>
+00032 {
+00033 <span class="keyword">public</span>:
+00034 
+00038         <a class="code" href="class_keithley__486.html#_keithley__486a0">Keithley_486</a> (std::string&amp; comLink_device_name);
+00039         
+00043         <span class="keyword">virtual</span> <a class="code" href="class_keithley__486.html#_keithley__486a1">~Keithley_486</a> (<span class="keywordtype">void</span>);
+00044 
+00048         <span class="keywordtype">void</span> <a class="code" href="class_keithley__486.html#_keithley__486a2">range_up</a> (<span class="keywordtype">void</span>);
+00049         <span class="keywordtype">void</span> range_down (<span class="keywordtype">void</span>);
+00050         <span class="keywordtype">void</span> autoRange_off (<span class="keywordtype">void</span>);
+00051         
+00055         std::string <a class="code" href="class_keithley__486.html#_keithley__486a5">get_ElectroMeterRange</a>(<span class="keywordtype">void</span>);
+00056         
+00060         std::string <a class="code" href="class_keithley__486.html#_keithley__486a6">electrometer_status</a> (<span class="keywordtype">void</span>);
+00061 
+00062         <span class="comment">//-     TODO :</span>
+00063         <span class="comment">//      DDC_Filters*    _ddcFilters;</span>
+00064         <span class="comment">//      DDC_Triggers*   _ddcTriggers;</span>
+00065 
+00066 };
+00067         <span class="comment">//- end addtogroup</span>
+00069 
+00070 <span class="preprocessor">#endif // _KEITHLEY_486_H_</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:18 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/_keithley__487_8h-source.html b/doc/html/_keithley__487_8h-source.html
new file mode 100644
index 0000000000000000000000000000000000000000..4cc51b744d290570deb3dde29243d86ab23b5e11
--- /dev/null
+++ b/doc/html/_keithley__487_8h-source.html
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Keithley_487.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">D:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">DeviceServerSrc</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">ElectrometersLibrary</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>Keithley_487.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// ============================================================================</span>
+00002 <span class="comment">//</span>
+00003 <span class="comment">// = CONTEXT</span>
+00004 <span class="comment">//    TANGO Project - Keithley Electrometer Support Library</span>
+00005 <span class="comment">//</span>
+00006 <span class="comment">// = FILENAME</span>
+00007 <span class="comment">//    Keithley_487.h</span>
+00008 <span class="comment">//</span>
+00009 <span class="comment">// = AUTHOR</span>
+00010 <span class="comment">//    X. Elattaoui</span>
+00011 <span class="comment">//</span>
+00012 <span class="comment">// ============================================================================</span>
+00013 
+00014 <span class="preprocessor">#ifndef _KEITHLEY_487_H_</span>
+00015 <span class="preprocessor"></span><span class="preprocessor">#define _KEITHLEY_487_H_</span>
+00016 <span class="preprocessor"></span>
+00017 <span class="preprocessor">#include "AbstractElectrometerClass.h"</span>
+00018 
+<a name="l00031"></a><a class="code" href="class_keithley__487.html">00031</a> <span class="keyword">class </span><a class="code" href="class_keithley__487.html">Keithley_487</a> : <span class="keyword">public</span> <a class="code" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>
+00032 {
+00033 <span class="keyword">public</span>:
+00034 
+00038         <a class="code" href="class_keithley__487.html#_keithley__487a0">Keithley_487</a> (std::string&amp; comLink_device_name);
+00039         
+00043         <span class="keyword">virtual</span> <a class="code" href="class_keithley__487.html#_keithley__487a1">~Keithley_487</a> (<span class="keywordtype">void</span>);
+00044 
+00048         <span class="keywordtype">void</span> <a class="code" href="class_keithley__487.html#_keithley__487a2">range_up</a> (<span class="keywordtype">void</span>);
+00049         <span class="keywordtype">void</span> range_down (<span class="keywordtype">void</span>);
+00050         <span class="keywordtype">void</span> autoRange_off (<span class="keywordtype">void</span>);
+00054         <span class="keywordtype">void</span> <a class="code" href="class_keithley__487.html#_keithley__487a5">setAmperMeterMode</a> (<span class="keywordtype">void</span>);
+00055 
+00059         std::string <a class="code" href="class_keithley__487.html#_keithley__487a6">get_ElectroMeterMode</a>(<span class="keywordtype">void</span>);
+00060         std::string get_ElectroMeterRange(<span class="keywordtype">void</span>);
+00061         
+00065         std::string <a class="code" href="class_keithley__487.html#_keithley__487a8">electrometer_status</a> (<span class="keywordtype">void</span>);
+00066 
+00067         
+00068         <span class="comment">//-     TODO :</span>
+00069         <span class="comment">//      DDC_Filters*    _ddcFilters;</span>
+00070         <span class="comment">//      DDC_Triggers*   _ddcTriggers;</span>
+00071         
+00072 };
+00073         <span class="comment">//- end addtogroup</span>
+00075 
+00076 <span class="preprocessor">#endif // _KEITHLEY_487_H_</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:18 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/_keithley__617_8h-source.html b/doc/html/_keithley__617_8h-source.html
new file mode 100644
index 0000000000000000000000000000000000000000..4cd946b6fedc6e6c0b2cd35dd80b808c7421f4d9
--- /dev/null
+++ b/doc/html/_keithley__617_8h-source.html
@@ -0,0 +1,63 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Keithley_617.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">D:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">DeviceServerSrc</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">ElectrometersLibrary</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>Keithley_617.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// ============================================================================</span>
+00002 <span class="comment">//</span>
+00003 <span class="comment">// = CONTEXT</span>
+00004 <span class="comment">//    TANGO Project - DDC Keithley Electrometer Support Library</span>
+00005 <span class="comment">//</span>
+00006 <span class="comment">// = FILENAME</span>
+00007 <span class="comment">//    Keithley_617.h</span>
+00008 <span class="comment">//</span>
+00009 <span class="comment">// = AUTHOR</span>
+00010 <span class="comment">//    X. Elattaoui</span>
+00011 <span class="comment">//</span>
+00012 <span class="comment">// ============================================================================</span>
+00013 
+00014 <span class="preprocessor">#ifndef _KEITHLEY_617_H_</span>
+00015 <span class="preprocessor"></span><span class="preprocessor">#define _KEITHLEY_617_H_</span>
+00016 <span class="preprocessor"></span>
+00017 <span class="preprocessor">#include "AbstractElectrometerClass.h"</span>
+00018 
+<a name="l00031"></a><a class="code" href="class_keithley__617.html">00031</a> <span class="keyword">class </span><a class="code" href="class_keithley__617.html">Keithley_617</a> : <span class="keyword">public</span> <a class="code" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>
+00032 {
+00033 <span class="keyword">public</span>:
+00034 
+00038         <a class="code" href="class_keithley__617.html#_keithley__617a0">Keithley_617</a> (std::string&amp; comLink_device_name);
+00039         
+00043         <span class="keyword">virtual</span> <a class="code" href="class_keithley__617.html#_keithley__617a1">~Keithley_617</a> (<span class="keywordtype">void</span>);
+00044 
+00048         <span class="keywordtype">void</span> <a class="code" href="class_keithley__617.html#_keithley__617a2">autoRange_off</a> (<span class="keywordtype">void</span>);
+00049         <span class="keywordtype">void</span> <a class="code" href="class_keithley__617.html#_keithley__617a3">range_up</a> (<span class="keywordtype">void</span>);
+00050         <span class="keywordtype">void</span> range_down (<span class="keywordtype">void</span>);
+00051         
+00055         <span class="keywordtype">void</span> <a class="code" href="class_keithley__617.html#_keithley__617a5">setAmperMeterMode</a> (<span class="keywordtype">void</span>);
+00056         <span class="keywordtype">void</span> setVoltMeterMode (<span class="keywordtype">void</span>);
+00057         <span class="keywordtype">void</span> setOhmMeterMode (<span class="keywordtype">void</span>);
+00058         <span class="keywordtype">void</span> setCoulombMeterMode (<span class="keywordtype">void</span>);
+00059 
+00063         std::string <a class="code" href="class_keithley__617.html#_keithley__617a9">get_ElectroMeterMode</a> (<span class="keywordtype">void</span>);
+00064         std::string get_ElectroMeterRange(<span class="keywordtype">void</span>);
+00065         
+00069         std::string <a class="code" href="class_keithley__617.html#_keithley__617a11">electrometer_status</a> (<span class="keywordtype">void</span>);
+00070 
+00071         
+00072         <span class="comment">//-     TODO :</span>
+00073         <span class="comment">//      DDC_Filters*    _ddcFilters;</span>
+00074         <span class="comment">//      DDC_Triggers*   _ddcTriggers;</span>
+00075         
+00076 };
+00077         <span class="comment">//- end addtogroup</span>
+00079 
+00080 <span class="preprocessor">#endif // _KEITHLEY_617_H_</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:18 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/_keithley__6485_8h-source.html b/doc/html/_keithley__6485_8h-source.html
new file mode 100644
index 0000000000000000000000000000000000000000..e52af766f2cca163c22f2ab0bbbcc8258f25e0f7
--- /dev/null
+++ b/doc/html/_keithley__6485_8h-source.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Keithley_6485.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">D:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">DeviceServerSrc</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">ElectrometersLibrary</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>Keithley_6485.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// ============================================================================</span>
+00002 <span class="comment">//</span>
+00003 <span class="comment">// = CONTEXT</span>
+00004 <span class="comment">//    TANGO Project - Keithley Electrometer Support Library</span>
+00005 <span class="comment">//</span>
+00006 <span class="comment">// = FILENAME</span>
+00007 <span class="comment">//    Keithley_6485.h</span>
+00008 <span class="comment">//</span>
+00009 <span class="comment">// = AUTHOR</span>
+00010 <span class="comment">//    X. Elattaoui</span>
+00011 <span class="comment">//</span>
+00012 <span class="comment">// ============================================================================</span>
+00013 
+00014 <span class="preprocessor">#ifndef _KEITHLEY_6485_H_</span>
+00015 <span class="preprocessor"></span><span class="preprocessor">#define _KEITHLEY_6485_H_</span>
+00016 <span class="preprocessor"></span>
+00017 <span class="preprocessor">#include "AbstractElectrometerClass.h"</span>
+00018 
+<a name="l00031"></a><a class="code" href="class_keithley__6485.html">00031</a> <span class="keyword">class </span><a class="code" href="class_keithley__6485.html">Keithley_6485</a> : <span class="keyword">public</span> <a class="code" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>
+00032 {
+00033 <span class="keyword">public</span>:
+00034 
+00038         <a class="code" href="class_keithley__6485.html#_keithley__6485a0">Keithley_6485</a> (std::string&amp; comLink_device_name);
+00039         
+00043         <span class="keyword">virtual</span> <a class="code" href="class_keithley__6485.html#_keithley__6485a1">~Keithley_6485</a> (<span class="keywordtype">void</span>);
+00044 
+00048         <span class="keywordtype">void</span> <a class="code" href="class_keithley__6485.html#_keithley__6485a2">range_up</a> (<span class="keywordtype">void</span>);
+00049         <span class="keywordtype">void</span> range_down (<span class="keywordtype">void</span>);
+00050 
+00051 <span class="keyword">private</span>:
+00052         <span class="comment">//- method to obtain the range index</span>
+00053         <span class="keywordtype">void</span> update_range (<span class="keywordtype">void</span>);
+00054         
+00055 };
+00056         <span class="comment">//- end addtogroup</span>
+00058 
+00059 <span class="preprocessor">#endif // _KEITHLEY_6485_H_</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:18 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/_keithley__6487_8h-source.html b/doc/html/_keithley__6487_8h-source.html
new file mode 100644
index 0000000000000000000000000000000000000000..9f3f21fefc875f90c81f12444f5ee7d5d57babe4
--- /dev/null
+++ b/doc/html/_keithley__6487_8h-source.html
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Keithley_6487.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">D:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">DeviceServerSrc</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">ElectrometersLibrary</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>Keithley_6487.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// ============================================================================</span>
+00002 <span class="comment">//</span>
+00003 <span class="comment">// = CONTEXT</span>
+00004 <span class="comment">//    TANGO Project - SCPI Keithley Electrometer Support Library</span>
+00005 <span class="comment">//</span>
+00006 <span class="comment">// = FILENAME</span>
+00007 <span class="comment">//    Keithley_6487.h</span>
+00008 <span class="comment">//</span>
+00009 <span class="comment">// = AUTHOR</span>
+00010 <span class="comment">//    X. Elattaoui</span>
+00011 <span class="comment">//</span>
+00012 <span class="comment">// ============================================================================</span>
+00013 
+00014 <span class="preprocessor">#ifndef _KEITHLEY_6487_H_</span>
+00015 <span class="preprocessor"></span><span class="preprocessor">#define _KEITHLEY_6487_H_</span>
+00016 <span class="preprocessor"></span>
+00017 <span class="preprocessor">#include "AbstractElectrometerClass.h"</span>
+00018 
+<a name="l00031"></a><a class="code" href="class_keithley__6487.html">00031</a> <span class="keyword">class </span><a class="code" href="class_keithley__6487.html">Keithley_6487</a> : <span class="keyword">public</span> <a class="code" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>
+00032 {
+00033 <span class="keyword">public</span>:
+00034 
+00038         <a class="code" href="class_keithley__6487.html#_keithley__6487a0">Keithley_6487</a> (std::string&amp; comLink_device_name);
+00039         
+00043         <span class="keyword">virtual</span> <a class="code" href="class_keithley__6487.html#_keithley__6487a1">~Keithley_6487</a> (<span class="keywordtype">void</span>);
+00044 
+00048         <span class="keywordtype">void</span> <a class="code" href="class_keithley__6487.html#_keithley__6487a2">range_up</a> (<span class="keywordtype">void</span>);
+00049         <span class="keywordtype">void</span> range_down (<span class="keywordtype">void</span>);
+00050         
+00054         <span class="keywordtype">void</span> <a class="code" href="class_keithley__6487.html#_keithley__6487a4">setAmperMeterMode</a> (<span class="keywordtype">void</span>);
+00055 
+00056         <span class="comment">//-     TODO :</span>
+00057         <span class="comment">//      SCPI_Filters*   _ddcFilters;</span>
+00058         <span class="comment">//      SCPI_Triggers*  _ddcTriggers;</span>
+00059 <span class="keyword">private</span>:
+00060         <span class="comment">//- method to obtain the range index</span>
+00061         <span class="keywordtype">void</span> update_range (<span class="keywordtype">void</span>);
+00062         
+00063 };
+00064         <span class="comment">//- end addtogroup</span>
+00066 
+00067 <span class="preprocessor">#endif // _KEITHLEY_6487_H_</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:18 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/_keithley__6512_8h-source.html b/doc/html/_keithley__6512_8h-source.html
new file mode 100644
index 0000000000000000000000000000000000000000..647b1f6cc675c7a102e19d554b7da41187f98a8a
--- /dev/null
+++ b/doc/html/_keithley__6512_8h-source.html
@@ -0,0 +1,63 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Keithley_6512.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">D:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">DeviceServerSrc</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">ElectrometersLibrary</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>Keithley_6512.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// ============================================================================</span>
+00002 <span class="comment">//</span>
+00003 <span class="comment">// = CONTEXT</span>
+00004 <span class="comment">//    TANGO Project - DDC Keithley Electrometer Support Library</span>
+00005 <span class="comment">//</span>
+00006 <span class="comment">// = FILENAME</span>
+00007 <span class="comment">//    Keithley_6512.h</span>
+00008 <span class="comment">//</span>
+00009 <span class="comment">// = AUTHOR</span>
+00010 <span class="comment">//    X. Elattaoui</span>
+00011 <span class="comment">//</span>
+00012 <span class="comment">// ============================================================================</span>
+00013 
+00014 <span class="preprocessor">#ifndef _KEITHLEY_6512_H_</span>
+00015 <span class="preprocessor"></span><span class="preprocessor">#define _KEITHLEY_6512_H_</span>
+00016 <span class="preprocessor"></span>
+00017 <span class="preprocessor">#include "AbstractElectrometerClass.h"</span>
+00018 
+<a name="l00031"></a><a class="code" href="class_keithley__6512.html">00031</a> <span class="keyword">class </span><a class="code" href="class_keithley__6512.html">Keithley_6512</a> : <span class="keyword">public</span> <a class="code" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>
+00032 {
+00033 <span class="keyword">public</span>:
+00034 
+00038         <a class="code" href="class_keithley__6512.html#_keithley__6512a0">Keithley_6512</a> (std::string&amp; comLink_device_name);
+00039         
+00043         <span class="keyword">virtual</span> <a class="code" href="class_keithley__6512.html#_keithley__6512a1">~Keithley_6512</a> (<span class="keywordtype">void</span>);
+00044 
+00048         <span class="keywordtype">void</span> <a class="code" href="class_keithley__6512.html#_keithley__6512a2">autoRange_off</a> (<span class="keywordtype">void</span>);
+00049         <span class="keywordtype">void</span> <a class="code" href="class_keithley__6512.html#_keithley__6512a3">range_up</a> (<span class="keywordtype">void</span>);
+00050         <span class="keywordtype">void</span> range_down (<span class="keywordtype">void</span>);
+00051         
+00055         <span class="keywordtype">void</span> <a class="code" href="class_keithley__6512.html#_keithley__6512a5">setAmperMeterMode</a> (<span class="keywordtype">void</span>);
+00056         <span class="keywordtype">void</span> setVoltMeterMode (<span class="keywordtype">void</span>);
+00057         <span class="keywordtype">void</span> setOhmMeterMode (<span class="keywordtype">void</span>);
+00058         <span class="keywordtype">void</span> setCoulombMeterMode (<span class="keywordtype">void</span>);
+00059 
+00063         std::string <a class="code" href="class_keithley__6512.html#_keithley__6512a9">get_ElectroMeterMode</a> (<span class="keywordtype">void</span>);
+00064         std::string get_ElectroMeterRange(<span class="keywordtype">void</span>);
+00065         
+00069         std::string <a class="code" href="class_keithley__6512.html#_keithley__6512a11">electrometer_status</a> (<span class="keywordtype">void</span>);
+00070 
+00071         
+00072         <span class="comment">//-     TODO :</span>
+00073         <span class="comment">//      DDC_Filters*    _ddcFilters;</span>
+00074         <span class="comment">//      DDC_Triggers*   _ddcTriggers;</span>
+00075         
+00076 };
+00077         <span class="comment">//- end addtogroup</span>
+00079 
+00080 <span class="preprocessor">#endif // _KEITHLEY_6512_H_</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:18 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/_keithley__6514_8h-source.html b/doc/html/_keithley__6514_8h-source.html
new file mode 100644
index 0000000000000000000000000000000000000000..a623d99d8a7ef35e938d8bae1c80a8f99bf8b775
--- /dev/null
+++ b/doc/html/_keithley__6514_8h-source.html
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Keithley_6514.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">D:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">DeviceServerSrc</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">ElectrometersLibrary</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>Keithley_6514.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// ============================================================================</span>
+00002 <span class="comment">//</span>
+00003 <span class="comment">// = CONTEXT</span>
+00004 <span class="comment">//    TANGO Project - SCPI Keithley Electrometer Support Library</span>
+00005 <span class="comment">//</span>
+00006 <span class="comment">// = FILENAME</span>
+00007 <span class="comment">//    Keithley_6514.h</span>
+00008 <span class="comment">//</span>
+00009 <span class="comment">// = AUTHOR</span>
+00010 <span class="comment">//    X. Elattaoui</span>
+00011 <span class="comment">//</span>
+00012 <span class="comment">// ============================================================================</span>
+00013 
+00014 <span class="preprocessor">#ifndef _Keithley_6514_H_</span>
+00015 <span class="preprocessor"></span><span class="preprocessor">#define _Keithley_6514_H_</span>
+00016 <span class="preprocessor"></span>
+00017 <span class="preprocessor">#include "AbstractElectrometerClass.h"</span>
+00018 
+<a name="l00031"></a><a class="code" href="class_keithley__6514.html">00031</a> <span class="keyword">class </span><a class="code" href="class_keithley__6514.html">Keithley_6514</a> : <span class="keyword">public</span> <a class="code" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>
+00032 {
+00033 <span class="keyword">public</span>:
+00034 
+00038         <a class="code" href="class_keithley__6514.html#_keithley__6514a0">Keithley_6514</a> (std::string&amp; comLink_device_name);
+00039         
+00043         <span class="keyword">virtual</span> <a class="code" href="class_keithley__6514.html#_keithley__6514a1">~Keithley_6514</a> (<span class="keywordtype">void</span>);
+00044 
+00048         <span class="keywordtype">void</span> <a class="code" href="class_keithley__6514.html#_keithley__6514a2">range_up</a> (<span class="keywordtype">void</span>);
+00049         <span class="keywordtype">void</span> range_down (<span class="keywordtype">void</span>);
+00050         
+00054         <span class="keywordtype">void</span> <a class="code" href="class_keithley__6514.html#_keithley__6514a4">setAmperMeterMode</a> (<span class="keywordtype">void</span>);
+00055         <span class="keywordtype">void</span> setVoltMeterMode (<span class="keywordtype">void</span>);
+00056         <span class="keywordtype">void</span> setOhmMeterMode (<span class="keywordtype">void</span>);
+00057         <span class="keywordtype">void</span> setCoulombMeterMode (<span class="keywordtype">void</span>);
+00058 
+00059         <span class="comment">//-     TODO :</span>
+00060         <span class="comment">//      SCPI_Filters*   _ddcFilters;</span>
+00061         <span class="comment">//      SCPI_Triggers*  _ddcTriggers;</span>
+00062 <span class="keyword">private</span>:
+00063         <span class="comment">//- method to obtain the range index</span>
+00064         <span class="keywordtype">void</span> update_range (<span class="keywordtype">void</span>);
+00065         std::string _kmode;
+00066         
+00067 };
+00068         <span class="comment">//- end addtogroup</span>
+00070 
+00071 <span class="preprocessor">#endif // _Keithley_6514_H_</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:18 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/_keithley_d_d_c_protocol_8h-source.html b/doc/html/_keithley_d_d_c_protocol_8h-source.html
new file mode 100644
index 0000000000000000000000000000000000000000..fc9b81ef8ec606ff2b1b5625a31fefebd83963d5
--- /dev/null
+++ b/doc/html/_keithley_d_d_c_protocol_8h-source.html
@@ -0,0 +1,92 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: KeithleyDDCProtocol.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">D:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">DeviceServerSrc</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">ElectrometersLibrary</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>KeithleyDDCProtocol.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// ============================================================================</span>
+00002 <span class="comment">//</span>
+00003 <span class="comment">// = CONTEXT</span>
+00004 <span class="comment">//    TANGO Project - DDC Keithley Electrometer Support Library</span>
+00005 <span class="comment">//              ( DDC for Device Dependent Command )</span>
+00006 <span class="comment">// = FILENAME</span>
+00007 <span class="comment">//    KeithleyDDCProtocol.h</span>
+00008 <span class="comment">//</span>
+00009 <span class="comment">// = AUTHOR</span>
+00010 <span class="comment">//    X. Elattaoui</span>
+00011 <span class="comment">//</span>
+00012 <span class="comment">// ============================================================================</span>
+00013 
+00014 <span class="preprocessor">#ifndef _KEITHLEY_DDC_PROTOCOL_H_</span>
+00015 <span class="preprocessor"></span><span class="preprocessor">#define _KEITHLEY_DDC_PROTOCOL_H_</span>
+00016 <span class="preprocessor"></span>
+00017 <span class="preprocessor">#include "ElectrometerProtocol.h"</span>
+00018 <span class="preprocessor">#include "ElectrometerException.h"</span>
+00019 
+<a name="l00032"></a><a class="code" href="class_keithley_d_d_c_protocol.html">00032</a> <span class="keyword">class </span><a class="code" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a> : <span class="keyword">public</span> <a class="code" href="class_electrometer_protocol.html">ElectrometerProtocol</a>
+00033 {
+00034 <span class="keyword">public</span>:
+00035 
+00039         <a class="code" href="class_keithley_d_d_c_protocol.html#_keithley_d_d_c_protocola0">KeithleyDDCProtocol</a> (std::string&amp; gpib_device_name);
+00040         
+00044         <span class="keyword">virtual</span> <a class="code" href="class_keithley_d_d_c_protocol.html#_keithley_d_d_c_protocola1">~KeithleyDDCProtocol</a> (<span class="keywordtype">void</span>);
+00045 
+00049         <span class="keywordtype">void</span> <a class="code" href="class_keithley_d_d_c_protocol.html#_keithley_d_d_c_protocola2">set_range</a>                  (std::string value);
+00050         <span class="keywordtype">void</span> autoRange_on               (<span class="keywordtype">void</span>);
+00051         <span class="keywordtype">void</span> autoRange_off              (<span class="keywordtype">void</span>);
+00052         <span class="keywordtype">void</span> autoRange_OFF_forK486_487 (<span class="keywordtype">void</span>);
+00053         <span class="keywordtype">void</span> autoRange_OFF_forK617_6512(<span class="keywordtype">void</span>);
+00054 
+00055         <span class="keywordtype">void</span> zero_check_on              (<span class="keywordtype">void</span>);
+00056         <span class="keywordtype">void</span> zero_check_off             (<span class="keywordtype">void</span>);
+00057         <span class="keywordtype">void</span> zero_correct_on    (<span class="keywordtype">void</span>);
+00058         <span class="keywordtype">void</span> zero_correct_off   (<span class="keywordtype">void</span>);
+00059         <span class="keywordtype">void</span> auto_zero_on               (<span class="keywordtype">void</span>);
+00060         <span class="keywordtype">void</span> auto_zero_off              (<span class="keywordtype">void</span>);
+00061 
+00062         <span class="keywordtype">void</span> reset                              (<span class="keywordtype">void</span>);
+00063 <span class="comment">//      void local                              (void); // To be implemented in future library versions</span>
+00064 <span class="comment">//      void remote                             (void);</span>
+00065         
+00069         std::string <a class="code" href="class_keithley_d_d_c_protocol.html#_keithley_d_d_c_protocola14">get_value</a>(<span class="keywordtype">void</span>);
+00070 
+00074         <span class="keywordtype">void</span> <a class="code" href="class_keithley_d_d_c_protocol.html#_keithley_d_d_c_protocola15">setAmperMeterMode</a>  (<span class="keywordtype">void</span>);
+00075         <span class="keywordtype">void</span> setAmperMeterMode_forK487 (<span class="keywordtype">void</span>);
+00076         <span class="keywordtype">void</span> setVoltMeterMode   (<span class="keywordtype">void</span>);
+00077         <span class="keywordtype">void</span> setOhmMeterMode    (<span class="keywordtype">void</span>);
+00078         <span class="keywordtype">void</span> setCoulombMeterMode(<span class="keywordtype">void</span>);
+00079         <span class="keywordtype">void</span> clear_registers    (<span class="keywordtype">void</span>);
+00080 
+00084         std::string <a class="code" href="class_keithley_d_d_c_protocol.html#_keithley_d_d_c_protocola21">get_raw_status</a> (<span class="keywordtype">void</span>) ;
+00085 
+<a name="l00089"></a><a class="code" href="class_keithley_d_d_c_protocol.html#_keithley_d_d_c_protocola22">00089</a>         std::string <a class="code" href="class_keithley_d_d_c_protocol.html#_keithley_d_d_c_protocola22">get_mode</a> (<span class="keywordtype">void</span>)     { <span class="keywordflow">return</span> _mode; };
+00090         std::string get_range (<span class="keywordtype">void</span>);
+00091 
+00092                 <span class="comment">/*      TODO : for next PicoLib evolution</span>
+00093 <span class="comment">        //- CMD B</span>
+00094 <span class="comment">//      virtual void reading_mode (void);</span>
+00095 <span class="comment">        virtual void reading_source (void);</span>
+00096 <span class="comment">        //- CMD Q</span>
+00097 <span class="comment">        virtual void data_store (void);</span>
+00098 <span class="comment">        //- CMD G</span>
+00099 <span class="comment">        virtual void data_format (void);</span>
+00100 <span class="comment">        //- = REL</span>
+00101 <span class="comment">        virtual void baseline_suppression_ON(void);</span>
+00102 <span class="comment">        virtual void baseline_suppression_OFF(void);</span>
+00103 <span class="comment">        */</span>
+00104 <span class="keyword">protected</span> :
+00105 
+00106 <span class="keyword">private</span> :
+00107 
+00108 };
+00109         <span class="comment">//- end addtogroup</span>
+00111 
+00112 <span class="preprocessor">#endif // _KEITHLEY_DDC_PROTOCOL_H_</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:18 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/_keithley_s_c_p_i_protocol_8h-source.html b/doc/html/_keithley_s_c_p_i_protocol_8h-source.html
new file mode 100644
index 0000000000000000000000000000000000000000..5aa025df164263c93fe8b2337ed5fe8704c7fd2a
--- /dev/null
+++ b/doc/html/_keithley_s_c_p_i_protocol_8h-source.html
@@ -0,0 +1,104 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: KeithleySCPIProtocol.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">D:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">DeviceServerSrc</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">ElectrometersLibrary</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>KeithleySCPIProtocol.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// ============================================================================</span>
+00002 <span class="comment">//</span>
+00003 <span class="comment">// = CONTEXT</span>
+00004 <span class="comment">//    TANGO Project - SCPI Keithley Electrometer Support Library</span>
+00005 <span class="comment">//</span>
+00006 <span class="comment">// = FILENAME</span>
+00007 <span class="comment">//    KeithleySCPIProtocol.h</span>
+00008 <span class="comment">//</span>
+00009 <span class="comment">// = AUTHOR</span>
+00010 <span class="comment">//    X. Elattaoui</span>
+00011 <span class="comment">//</span>
+00012 <span class="comment">// ============================================================================</span>
+00013 
+00014 <span class="preprocessor">#ifndef _KEITHLEY_SCPI_PROTOCOL_H_</span>
+00015 <span class="preprocessor"></span><span class="preprocessor">#define _KEITHLEY_SCPI_PROTOCOL_H_</span>
+00016 <span class="preprocessor"></span>
+00017 <span class="preprocessor">#include "ElectrometerProtocol.h"</span>
+00018 <span class="preprocessor">#include "ElectrometerException.h"</span>
+00019 
+<a name="l00032"></a><a class="code" href="class_keithley_s_c_p_i_protocol.html">00032</a> <span class="keyword">class </span><a class="code" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a> : <span class="keyword">public</span> <a class="code" href="class_electrometer_protocol.html">ElectrometerProtocol</a>
+00033 {
+00034 <span class="keyword">public</span>:
+00035 
+00039         <a class="code" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola0">KeithleySCPIProtocol</a> (std::string&amp; gpib_device_name);
+00040         
+00044         <span class="keyword">virtual</span> <a class="code" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola1">~KeithleySCPIProtocol</a> (<span class="keywordtype">void</span>);
+00045 
+00049         <span class="keywordtype">void</span> <a class="code" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola2">set_range</a>                  (std::string value) ;
+00050         <span class="keywordtype">void</span> autoRange_on               (<span class="keywordtype">void</span>);
+00051         <span class="keywordtype">void</span> autoRange_off              (<span class="keywordtype">void</span>);
+00052 
+00053         <span class="keywordtype">void</span> zero_check_on              (<span class="keywordtype">void</span>);
+00054         <span class="keywordtype">void</span> zero_check_off             (<span class="keywordtype">void</span>);
+00055         <span class="keywordtype">void</span> zero_correct_on    (<span class="keywordtype">void</span>);
+00056         <span class="keywordtype">void</span> zero_correct_off   (<span class="keywordtype">void</span>);
+00057         <span class="keywordtype">void</span> zero_correct_state_on (<span class="keywordtype">void</span>);
+00058         <span class="keywordtype">void</span> zero_correct_state_off(<span class="keywordtype">void</span>);
+00059         <span class="keywordtype">void</span> auto_zero_on               (<span class="keywordtype">void</span>);
+00060         <span class="keywordtype">void</span> auto_zero_off              (<span class="keywordtype">void</span>);
+00061         <span class="keywordtype">void</span> reset                              (<span class="keywordtype">void</span>);
+00062 
+00066         <span class="keywordtype">void</span> <a class="code" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola14">setAmperMeterMode</a>  (<span class="keywordtype">void</span>);
+00067         <span class="keywordtype">void</span> setVoltMeterMode   (<span class="keywordtype">void</span>);
+00068         <span class="keywordtype">void</span> setOhmMeterMode    (<span class="keywordtype">void</span>);
+00069         <span class="keywordtype">void</span> setCoulombMeterMode(<span class="keywordtype">void</span>);
+00070 
+00074         std::string <a class="code" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola18">get_value</a>   (<span class="keywordtype">void</span>);
+00075         <span class="keywordtype">void</span> <a class="code" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola19">init_keithley</a>              (<span class="keywordtype">void</span>); 
+00076         <span class="keywordtype">void</span> set_knplc                  (std::string nPLC);
+00077         <span class="keywordtype">void</span> set_triggercount   (std::string trigcounts);
+00078         <span class="keywordtype">void</span> set_averagecount   (std::string avercounts);
+00079         <span class="keywordtype">void</span> set_averagecontrol(std::string averctrl);
+00080         std::string get_knplc                   (<span class="keywordtype">void</span>);
+00081         std::string get_triggercount    (<span class="keywordtype">void</span>);
+00082         std::string get_averagecount    (<span class="keywordtype">void</span>);
+00083         std::string get_averagecontrol  (<span class="keywordtype">void</span>);
+00084         <span class="keywordtype">void</span> clear_registers    (<span class="keywordtype">void</span>);
+00085         <span class="keywordtype">void</span> averageStateON             (<span class="keywordtype">void</span>);
+00086         <span class="keywordtype">void</span> averageStateOFF    (<span class="keywordtype">void</span>);
+00087 
+00088 
+00092         std::string <a class="code" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola31">get_raw_status</a> (<span class="keywordtype">void</span>) ;
+00093 
+00097         std::string <a class="code" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola32">get_mode</a>    (<span class="keywordtype">void</span>);
+00098         std::string get_range   (<span class="keywordtype">void</span>);
+00099 
+<a name="l00103"></a><a class="code" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola34">00103</a>         <span class="keywordtype">void</span> <a class="code" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola34">set_isDiffSuportedMode</a>     (<span class="keywordtype">bool</span> supportDiffMode) 
+00104                 { isDiffSuportedMode = supportDiffMode; };
+00105 
+00106                 <span class="comment">/*      TODO : for next PicoLib evolution</span>
+00107 <span class="comment">        //- CMD B</span>
+00108 <span class="comment">//      void reading_mode (void);</span>
+00109 <span class="comment">        void reading_source (void);</span>
+00110 <span class="comment">        //- CMD Q</span>
+00111 <span class="comment">        void data_store (void);</span>
+00112 <span class="comment">        //- CMD G</span>
+00113 <span class="comment">        void data_format (void);</span>
+00114 <span class="comment">        //- = REL</span>
+00115 <span class="comment">        void baseline_suppression_ON(void);</span>
+00116 <span class="comment">        void baseline_suppression_OFF(void);</span>
+00117 <span class="comment">        */</span>
+00118 <span class="keyword">protected</span> :
+00119 
+00120 <span class="keyword">private</span> :
+00121         <span class="keywordtype">bool</span> isDiffSuportedMode;
+00122 
+00123 };
+00124         <span class="comment">//- end addtogroup</span>
+00126 
+00127 <span class="preprocessor">#endif // _KEITHLEY_SCPI_PROTOCOL_H_</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:18 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/_n___photo_conducteur_8h-source.html b/doc/html/_n___photo_conducteur_8h-source.html
new file mode 100644
index 0000000000000000000000000000000000000000..60750d04ebe8c8d302c9a31988f71d0a927b78f9
--- /dev/null
+++ b/doc/html/_n___photo_conducteur_8h-source.html
@@ -0,0 +1,52 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: N_PhotoConducteur.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">D:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">DeviceServerSrc</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">ElectrometersLibrary</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>N_PhotoConducteur.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// ============================================================================</span>
+00002 <span class="comment">//</span>
+00003 <span class="comment">// = CONTEXT</span>
+00004 <span class="comment">//    TANGO Project - Novelec Electrometer Support Library</span>
+00005 <span class="comment">//</span>
+00006 <span class="comment">// = FILENAME</span>
+00007 <span class="comment">//    N_PhotoConducteur.h</span>
+00008 <span class="comment">//</span>
+00009 <span class="comment">// = AUTHOR</span>
+00010 <span class="comment">//    X. Elattaoui</span>
+00011 <span class="comment">//</span>
+00012 <span class="comment">// ============================================================================</span>
+00013 
+00014 <span class="preprocessor">#ifndef _NOVELEC_PHOTOCONDUCTEUR_H_</span>
+00015 <span class="preprocessor"></span><span class="preprocessor">#define _NOVELEC_PHOTOCONDUCTEUR_H_</span>
+00016 <span class="preprocessor"></span>
+00017 <span class="preprocessor">#include "Novelec_MCCE2.h"</span>
+00018 
+<a name="l00031"></a><a class="code" href="class_n___photo_conducteur.html">00031</a> <span class="keyword">class </span><a class="code" href="class_n___photo_conducteur.html">N_PhotoConducteur</a> : <span class="keyword">public</span> <a class="code" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a>
+00032 {
+00033 <span class="keyword">public</span>:
+00034 
+00038         <a class="code" href="class_n___photo_conducteur.html#_n___photo_conducteura0">N_PhotoConducteur</a> (std::string&amp; comLink_device_name, <span class="keywordtype">short</span> channel_address, <span class="keywordtype">short</span> electroType);
+00039         
+00043         <span class="keyword">virtual</span> <a class="code" href="class_n___photo_conducteur.html#_n___photo_conducteura1">~N_PhotoConducteur</a>      (<span class="keywordtype">void</span>);
+00044 
+00048         <span class="keywordtype">void</span>    <a class="code" href="class_n___photo_conducteur.html#_n___photo_conducteura2">range_up</a>                        (<span class="keywordtype">void</span>);
+00049         <span class="keywordtype">void</span>    range_down                      (<span class="keywordtype">void</span>);
+00050         
+00054         std::string <a class="code" href="class_n___photo_conducteur.html#_n___photo_conducteura4">get_ElectroMeterGain</a>        (<span class="keywordtype">void</span>);
+00055         <span class="keywordtype">void</span>    set_ElectroMeterGain            (std::string);
+00056 
+00057 <span class="keyword">protected</span> :
+00058 
+00059 };
+00060         <span class="comment">//- end addtogroup</span>
+00062 
+00063 <span class="preprocessor">#endif // _NOVELEC_PHOTOCONDUCTEUR_H_</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:18 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/_n___photo_voltaique_8h-source.html b/doc/html/_n___photo_voltaique_8h-source.html
new file mode 100644
index 0000000000000000000000000000000000000000..b1d3399935b95cec59c7fc42d1598ad62aa027e8
--- /dev/null
+++ b/doc/html/_n___photo_voltaique_8h-source.html
@@ -0,0 +1,54 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: N_PhotoVoltaique.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">D:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">DeviceServerSrc</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">ElectrometersLibrary</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>N_PhotoVoltaique.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// ============================================================================</span>
+00002 <span class="comment">//</span>
+00003 <span class="comment">// = CONTEXT</span>
+00004 <span class="comment">//    TANGO Project - Novelec Electrometer Support Library</span>
+00005 <span class="comment">//</span>
+00006 <span class="comment">// = FILENAME</span>
+00007 <span class="comment">//    N_PhotoVoltaique.h</span>
+00008 <span class="comment">//</span>
+00009 <span class="comment">// = AUTHOR</span>
+00010 <span class="comment">//    X. Elattaoui</span>
+00011 <span class="comment">//</span>
+00012 <span class="comment">// ============================================================================</span>
+00013 
+00014 <span class="preprocessor">#ifndef _NOVELEC_PHOTOVOLTAIQUE_H_</span>
+00015 <span class="preprocessor"></span><span class="preprocessor">#define _NOVELEC_PHOTOVOLTAIQUE_H_</span>
+00016 <span class="preprocessor"></span>
+00017 <span class="preprocessor">#include "Novelec_MCCE2.h"</span>
+00018 
+<a name="l00031"></a><a class="code" href="class_n___photo_voltaique.html">00031</a> <span class="keyword">class </span><a class="code" href="class_n___photo_voltaique.html">N_PhotoVoltaique</a> : <span class="keyword">public</span> <a class="code" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a>
+00032 {
+00033 <span class="keyword">public</span>:
+00034 
+00038         <a class="code" href="class_n___photo_voltaique.html#_n___photo_voltaiquea0">N_PhotoVoltaique</a> (std::string comLink_device_name, <span class="keywordtype">short</span> channel_address, <span class="keywordtype">short</span> electroType);
+00039         
+00043         <span class="keyword">virtual</span> <a class="code" href="class_n___photo_voltaique.html#_n___photo_voltaiquea1">~N_PhotoVoltaique</a> (<span class="keywordtype">void</span>);
+00044 
+00048         <span class="keywordtype">void</span> <a class="code" href="class_n___photo_voltaique.html#_n___photo_voltaiquea2">range_up</a>   (<span class="keywordtype">void</span>);
+00049         <span class="keywordtype">void</span> range_down (<span class="keywordtype">void</span>);
+00050         
+00054         std::string <a class="code" href="class_n___photo_voltaique.html#_n___photo_voltaiquea4">get_ElectroMeterFrequency</a>(<span class="keywordtype">void</span>);
+00055         <span class="keywordtype">void</span> set_ElectroMeterFrequency  (std::string);
+00056 
+00060 <span class="comment">//      std::string electrometer_status         (void);</span>
+00061 
+00062 <span class="keyword">protected</span> :
+00063 
+00064 };
+00065         <span class="comment">//- end addtogroup</span>
+00067 
+00068 <span class="preprocessor">#endif // _NOVELEC_PHOTOVOLTAIQUE_H_</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:18 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/_novelec___m_c_c_e2_8h-source.html b/doc/html/_novelec___m_c_c_e2_8h-source.html
new file mode 100644
index 0000000000000000000000000000000000000000..6763d702548f2c621015e968ddabf1b591a5a632
--- /dev/null
+++ b/doc/html/_novelec___m_c_c_e2_8h-source.html
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Novelec_MCCE2.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">D:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">DeviceServerSrc</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">ElectrometersLibrary</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>Novelec_MCCE2.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// ============================================================================</span>
+00002 <span class="comment">//</span>
+00003 <span class="comment">// = CONTEXT</span>
+00004 <span class="comment">//    TANGO Project - Novelec Electrometer Support Library</span>
+00005 <span class="comment">//</span>
+00006 <span class="comment">// = FILENAME</span>
+00007 <span class="comment">//    Novelec_MCCE2.h</span>
+00008 <span class="comment">//</span>
+00009 <span class="comment">// = AUTHOR</span>
+00010 <span class="comment">//    X. Elattaoui</span>
+00011 <span class="comment">//</span>
+00012 <span class="comment">// ============================================================================</span>
+00013 
+00014 <span class="preprocessor">#ifndef _NOVELEC_MCCE2_H_</span>
+00015 <span class="preprocessor"></span><span class="preprocessor">#define _NOVELEC_MCCE2_H_</span>
+00016 <span class="preprocessor"></span>
+00017 <span class="preprocessor">#include "AbstractElectrometerClass.h"</span>
+00018 
+<a name="l00031"></a><a class="code" href="class_novelec___m_c_c_e2.html">00031</a> <span class="keyword">class </span><a class="code" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a> : <span class="keyword">public</span> <a class="code" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>
+00032 {
+00033 <span class="keyword">public</span>:
+00034 
+00038         <a class="code" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a0">Novelec_MCCE2</a> (std::string&amp; comLink_device_name, <span class="keywordtype">short</span> channel_address, <span class="keywordtype">short</span> electroType);
+00039         
+00043         <span class="keyword">virtual</span> <a class="code" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a1">~Novelec_MCCE2</a> (<span class="keywordtype">void</span>);
+00044 
+00045         std::string <a class="code" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a2">get_ElectroMeterPolarity</a>(<span class="keywordtype">void</span>);
+00046         <span class="keywordtype">void</span> set_ElectroMeterPolarity   (std::string);
+00047 
+00051         <span class="keywordtype">void</span> <a class="code" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a4">set_Zero_VonF_function</a>                     (<span class="keywordtype">void</span>);
+00052         <span class="keywordtype">void</span> set_Offset_ZeroV1_function         (<span class="keywordtype">void</span>);
+00053         <span class="keywordtype">void</span> set_Leakage_ZeroV2_function        (<span class="keywordtype">void</span>);
+00054         <span class="keywordtype">void</span> set_Test_function                          (<span class="keywordtype">void</span>);
+00055 
+00063         <span class="keywordtype">void</span> <a class="code" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a8">mcce_on</a>                            (<span class="keywordtype">void</span>);
+00064         <span class="keywordtype">void</span> mcce_off                           (<span class="keywordtype">void</span>);
+00065 
+00069         std::string <a class="code" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a10">electrometer_status</a>         (<span class="keywordtype">void</span>);
+00070 
+00071 <span class="keyword">protected</span> :
+00072         <span class="keywordtype">short</span> _rangeLimit;              <span class="comment">//- define the range limit for each novelec type</span>
+00073 
+00074 };
+00075         <span class="comment">//- end addtogroup</span>
+00077 
+00078 <span class="preprocessor">#endif // _NOVELEC_MCCE2_H_</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:18 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/_novelec_protocol_8h-source.html b/doc/html/_novelec_protocol_8h-source.html
new file mode 100644
index 0000000000000000000000000000000000000000..81cfc71c1640030ba70ca8a46aedc7b4c08a7ee1
--- /dev/null
+++ b/doc/html/_novelec_protocol_8h-source.html
@@ -0,0 +1,82 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: NovelecProtocol.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">D:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">DeviceServerSrc</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">ElectrometersLibrary</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>NovelecProtocol.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// ============================================================================</span>
+00002 <span class="comment">//</span>
+00003 <span class="comment">// = CONTEXT</span>
+00004 <span class="comment">//    TANGO Project - Novelec Electrometer Support Library</span>
+00005 <span class="comment">//              ( Supported type : MCCE-2 )</span>
+00006 <span class="comment">// = FILENAME</span>
+00007 <span class="comment">//    NovelecProtocol.h</span>
+00008 <span class="comment">//</span>
+00009 <span class="comment">// = AUTHOR</span>
+00010 <span class="comment">//    X. Elattaoui</span>
+00011 <span class="comment">//</span>
+00012 <span class="comment">// ============================================================================</span>
+00013 
+00014 <span class="preprocessor">#ifndef _NOVELEC_MCCE2_PROTOCOL_H_</span>
+00015 <span class="preprocessor"></span><span class="preprocessor">#define _NOVELEC_MCCE2_PROTOCOL_H_</span>
+00016 <span class="preprocessor"></span>
+00017 <span class="preprocessor">#include "ElectrometerProtocol.h"</span>
+00018 <span class="preprocessor">#include "ElectrometerException.h"</span>
+00019 
+<a name="l00032"></a><a class="code" href="class_novelec_protocol.html">00032</a> <span class="keyword">class </span><a class="code" href="class_novelec_protocol.html">NovelecProtocol</a> : <span class="keyword">public</span> <a class="code" href="class_electrometer_protocol.html">ElectrometerProtocol</a>
+00033 {
+00034 <span class="keyword">public</span>:
+00035 
+00039         <a class="code" href="class_novelec_protocol.html#_novelec_protocola0">NovelecProtocol</a> (std::string&amp; gpib_device_name, <span class="keywordtype">short</span> channel_address, <span class="keywordtype">short</span> electroTypeNumber);
+00040         
+00044         <span class="keyword">virtual</span> <a class="code" href="class_novelec_protocol.html#_novelec_protocola1">~NovelecProtocol</a>(<span class="keywordtype">void</span>);
+00045 
+00049         <span class="keywordtype">void</span> <a class="code" href="class_novelec_protocol.html#_novelec_protocola2">set_range</a>  (std::string value);
+00050         std::string get_range           (<span class="keywordtype">void</span>);
+00051 
+00052         <span class="keywordtype">void</span> reset (<span class="keywordtype">void</span>);
+00053         <span class="keywordtype">void</span> local (<span class="keywordtype">void</span>);
+00054         <span class="keywordtype">void</span> remote(<span class="keywordtype">void</span>);
+00058         std::string <a class="code" href="class_novelec_protocol.html#_novelec_protocola7">get_value</a>           (<span class="keywordtype">void</span>);
+00059 
+00063         <span class="keywordtype">void</span> <a class="code" href="class_novelec_protocol.html#_novelec_protocola8">switch_MCCE2_ON</a>            (<span class="keywordtype">void</span>);
+00064         <span class="keywordtype">void</span> switch_MCCE2_OFF           (<span class="keywordtype">void</span>);
+00065         <span class="keywordtype">void</span> unable_zeroVF_func         (<span class="keywordtype">void</span>);
+00066         <span class="keywordtype">void</span> unable_offset_zeroV1_func          (<span class="keywordtype">void</span>);
+00067         <span class="keywordtype">void</span> unable_leakage_zeroV2_func         (<span class="keywordtype">void</span>);
+00068         <span class="keywordtype">void</span> unable_test_func           (<span class="keywordtype">void</span>);
+00069 
+00073         std::string <a class="code" href="class_novelec_protocol.html#_novelec_protocola14">get_raw_status</a> (<span class="keywordtype">void</span>) ;
+00077         std::string <a class="code" href="class_novelec_protocol.html#_novelec_protocola15">get_mode</a>            (<span class="keywordtype">void</span>);
+00078         std::string get_polarity        (<span class="keywordtype">void</span>);
+00079         std::string get_frequency       (<span class="keywordtype">void</span>);
+00080         std::string get_gain            (<span class="keywordtype">void</span>);
+00081         std::string get_errors          (<span class="keywordtype">void</span>);
+00082         std::string get_electrotype     (<span class="keywordtype">void</span>);
+00083         <span class="keywordtype">void</span> set_polarity       (std::string pola);
+00084         <span class="keywordtype">void</span> set_frequency      (std::string freq);
+00085         <span class="keywordtype">void</span> set_gain           (std::string gain);
+00086 
+00087 <span class="keyword">protected</span> :
+00088         <span class="keywordtype">short</span> _devAdd;                                                          <span class="comment">//- novelec active channel address</span>
+00089         <span class="keywordtype">short</span> _novType;                                                         <span class="comment">//- novelec type number (1 to 5)</span>
+00090         <span class="keywordtype">short</span> _rangeParameterNum;                                       <span class="comment">//-     command number for the range </span>
+00091         std::string _function;                                          <span class="comment">//- the novelec mode</span>
+00092         
+00093         <span class="comment">//- check if the cmd is understood, and extract data from the response</span>
+00094         std::string check_and_extract_data      (std::string resp_to_check);
+00095 
+00096 <span class="keyword">private</span> :
+00097 
+00098 };
+00099         <span class="comment">//- end addtogroup</span>
+00101 
+00102 <span class="preprocessor">#endif // _NOVELEC_MCCE2_PROTOCOL_H_</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:18 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/_tango_gpib_link_8h-source.html b/doc/html/_tango_gpib_link_8h-source.html
new file mode 100644
index 0000000000000000000000000000000000000000..6b612ddbd35f3ad96a9f48439acbf01d89866e03
--- /dev/null
+++ b/doc/html/_tango_gpib_link_8h-source.html
@@ -0,0 +1,65 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: TangoGpibLink.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">D:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">DeviceServerSrc</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">ElectrometersLibrary</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>TangoGpibLink.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// ============================================================================</span>
+00002 <span class="comment">//</span>
+00003 <span class="comment">// = CONTEXT</span>
+00004 <span class="comment">//    TANGO Project - Keithley Electrometer Support Library</span>
+00005 <span class="comment">//</span>
+00006 <span class="comment">// = FILENAME</span>
+00007 <span class="comment">//    TangoGpibLink.h</span>
+00008 <span class="comment">//</span>
+00009 <span class="comment">// = AUTHOR</span>
+00010 <span class="comment">//    X. Elattaoui</span>
+00011 <span class="comment">//</span>
+00012 <span class="comment">// ============================================================================</span>
+00013 
+00014 <span class="preprocessor">#ifndef _TANGO_GPIB_LINK_H_</span>
+00015 <span class="preprocessor"></span><span class="preprocessor">#define _TANGO_GPIB_LINK_H_</span>
+00016 <span class="preprocessor"></span>
+00017 <span class="comment">// ============================================================================</span>
+00018 <span class="comment">// DEPENDENCIES</span>
+00019 <span class="comment">// ============================================================================</span>
+00020 <span class="preprocessor">#include &lt;tango.h&gt;</span>
+00021 <span class="preprocessor">#include &lt;DeviceProxyHelper.h&gt;</span>
+00022 <span class="preprocessor">#include "CommunicationLink.h"</span>
+00023 
+<a name="l00036"></a><a class="code" href="class_tango_gpib_link.html">00036</a> <span class="keyword">class </span><a class="code" href="class_tango_gpib_link.html">TangoGpibLink</a> : <span class="keyword">public</span> <a class="code" href="class_communication_link.html">CommunicationLink</a>
+00037 {
+00038 
+00039 <span class="keyword">public</span> :
+00043         <a class="code" href="class_tango_gpib_link.html#_tango_gpib_linka0">TangoGpibLink</a> (std::string&amp; gpib_device_name);
+00044         
+00048         <span class="keyword">virtual</span> <a class="code" href="class_tango_gpib_link.html#_tango_gpib_linka1">~TangoGpibLink</a> (<span class="keywordtype">void</span>);
+00049         
+00055         <span class="keywordtype">void</span> <a class="code" href="class_tango_gpib_link.html#_tango_gpib_linka2">write</a>(std::string cmd)      <span class="keywordflow">throw</span> (Tango::DevFailed);
+00056         
+00062         std::string <a class="code" href="class_tango_gpib_link.html#_tango_gpib_linka3">read</a>(<span class="keywordtype">void</span>)           <span class="keywordflow">throw</span> (Tango::DevFailed);
+00063 
+00069         std::string <a class="code" href="class_tango_gpib_link.html#_tango_gpib_linka4">write_read</a>(std::string cmd)  <span class="keywordflow">throw</span> (Tango::DevFailed);
+00070 
+00071 <span class="keyword">private</span> :
+00072 
+00076         <span class="keywordtype">void</span> create_gpib_proxy(<span class="keywordtype">void</span>) <span class="keywordflow">throw</span> (Tango::DevFailed);
+00077   
+00078         Tango::DeviceProxyHelper* _gpib_proxy;
+00079 
+00080         <span class="keywordtype">bool</span> _is_gpib_proxy_created;
+00081         
+00082         std::string response;
+00083 
+00084 };
+00085         <span class="comment">//- end addtogroup</span>
+00087 
+00088 <span class="preprocessor">#endif          // _TANGO_GPIB_LINK_H_</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:19 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/_tango_serial_link_8h-source.html b/doc/html/_tango_serial_link_8h-source.html
new file mode 100644
index 0000000000000000000000000000000000000000..8fcaf2eca3b4f56b3a0738fd92eb83bdbe8ba224
--- /dev/null
+++ b/doc/html/_tango_serial_link_8h-source.html
@@ -0,0 +1,65 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: TangoSerialLink.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">D:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">DeviceServerSrc</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">ElectrometersLibrary</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>TangoSerialLink.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// ============================================================================</span>
+00002 <span class="comment">//</span>
+00003 <span class="comment">// = CONTEXT</span>
+00004 <span class="comment">//    TANGO Project - Keithley Electrometer Support Library</span>
+00005 <span class="comment">//</span>
+00006 <span class="comment">// = FILENAME</span>
+00007 <span class="comment">//    TangoSerialLink.h</span>
+00008 <span class="comment">//</span>
+00009 <span class="comment">// = AUTHOR</span>
+00010 <span class="comment">//    X. Elattaoui</span>
+00011 <span class="comment">//</span>
+00012 <span class="comment">// ============================================================================</span>
+00013 
+00014 <span class="preprocessor">#ifndef _TANGO_SERIAL_LINK_H_</span>
+00015 <span class="preprocessor"></span><span class="preprocessor">#define _TANGO_SERIAL_LINK_H_</span>
+00016 <span class="preprocessor"></span>
+00017 <span class="comment">// ============================================================================</span>
+00018 <span class="comment">// DEPENDENCIES</span>
+00019 <span class="comment">// ============================================================================</span>
+00020 <span class="preprocessor">#include &lt;tango.h&gt;</span>
+00021 <span class="preprocessor">#include &lt;DeviceProxyHelper.h&gt;</span>
+00022 <span class="preprocessor">#include "CommunicationLink.h"</span>
+00023 
+<a name="l00036"></a><a class="code" href="class_tango_serial_link.html">00036</a> <span class="keyword">class </span><a class="code" href="class_tango_serial_link.html">TangoSerialLink</a> : <span class="keyword">public</span> <a class="code" href="class_communication_link.html">CommunicationLink</a>
+00037 {
+00038         
+00039 <span class="keyword">public</span> :
+00043         <a class="code" href="class_tango_serial_link.html#_tango_serial_linka0">TangoSerialLink</a> (std::string&amp; serial_device_name);
+00044         
+00048         <span class="keyword">virtual</span> <a class="code" href="class_tango_serial_link.html#_tango_serial_linka1">~TangoSerialLink</a> (<span class="keywordtype">void</span>);
+00049         
+00055         <span class="keywordtype">void</span> <a class="code" href="class_tango_serial_link.html#_tango_serial_linka2">write</a>(std::string cmd)      <span class="keywordflow">throw</span> (Tango::DevFailed);
+00056 
+00062         std::string <a class="code" href="class_tango_serial_link.html#_tango_serial_linka3">read</a>(<span class="keywordtype">void</span>)           <span class="keywordflow">throw</span> (Tango::DevFailed);
+00063 
+00069         std::string <a class="code" href="class_tango_serial_link.html#_tango_serial_linka4">write_read</a>(std::string cmd)  <span class="keywordflow">throw</span> (Tango::DevFailed);
+00070 
+00071 
+00072 <span class="keyword">private</span> :
+00076         <span class="keywordtype">void</span> create_serial_proxy(<span class="keywordtype">void</span>) <span class="keywordflow">throw</span> (Tango::DevFailed);
+00077   
+00078         Tango::DeviceProxyHelper* _serial_proxy;
+00079 
+00080         <span class="keywordtype">bool</span> _is_serial_proxy_created;
+00081         
+00082         std::string response;
+00083 
+00084 };
+00085         <span class="comment">//- end addtogroup</span>
+00087 
+00088 <span class="preprocessor">#endif // _TANGO_SERIAL_LINK_H_</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:19 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/annotated.html b/doc/html/annotated.html
new file mode 100644
index 0000000000000000000000000000000000000000..115f9e1d7f61d6b2bffab840967eeb587c271cd0
--- /dev/null
+++ b/doc/html/annotated.html
@@ -0,0 +1,35 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Class List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindexHL" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>Electrometers Library Class List</h1>Here are the classes, structs, unions and interfaces with brief descriptions:<table>
+  <tr><td class="indexkey"><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td class="indexvalue">Visible class from the DServer </td></tr>
+  <tr><td class="indexkey"><a class="el" href="class_communication_link.html">CommunicationLink</a></td><td class="indexvalue">Abstract class to manage a specific communication bus </td></tr>
+  <tr><td class="indexkey"><a class="el" href="classelectrometer_1_1_electrometer_exception.html">electrometer::ElectrometerException</a></td><td class="indexvalue">Detailed description to be written </td></tr>
+  <tr><td class="indexkey"><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td class="indexvalue">This abstract class manage the Electrometers Commands Protocol </td></tr>
+  <tr><td class="indexkey"><a class="el" href="classelectrometer_1_1_error.html">electrometer::Error</a></td><td class="indexvalue">Detailed description to be written </td></tr>
+  <tr><td class="indexkey"><a class="el" href="class_keithley__485.html">Keithley_485</a></td><td class="indexvalue">This class manage 485 Keithley type </td></tr>
+  <tr><td class="indexkey"><a class="el" href="class_keithley__486.html">Keithley_486</a></td><td class="indexvalue">This class manage 486 Keithley type </td></tr>
+  <tr><td class="indexkey"><a class="el" href="class_keithley__487.html">Keithley_487</a></td><td class="indexvalue">This class manage 487 Keithley type </td></tr>
+  <tr><td class="indexkey"><a class="el" href="class_keithley__617.html">Keithley_617</a></td><td class="indexvalue">This class manage 617 Keithley type </td></tr>
+  <tr><td class="indexkey"><a class="el" href="class_keithley__6485.html">Keithley_6485</a></td><td class="indexvalue">This class manage 6485 Keithley type </td></tr>
+  <tr><td class="indexkey"><a class="el" href="class_keithley__6487.html">Keithley_6487</a></td><td class="indexvalue">This class manage 6487 Keithley type </td></tr>
+  <tr><td class="indexkey"><a class="el" href="class_keithley__6512.html">Keithley_6512</a></td><td class="indexvalue">This class manage 6512 Keithley type </td></tr>
+  <tr><td class="indexkey"><a class="el" href="class_keithley__6514.html">Keithley_6514</a></td><td class="indexvalue">This class manage 6514 Keithley type </td></tr>
+  <tr><td class="indexkey"><a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a></td><td class="indexvalue">This class manage the Keithley DDC Commands Protocol </td></tr>
+  <tr><td class="indexkey"><a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a></td><td class="indexvalue">This class manage the Keithley SCPI Commands Protocol </td></tr>
+  <tr><td class="indexkey"><a class="el" href="class_n___photo_conducteur.html">N_PhotoConducteur</a></td><td class="indexvalue">This class manage Novelec PhotoConductor types </td></tr>
+  <tr><td class="indexkey"><a class="el" href="class_n___photo_voltaique.html">N_PhotoVoltaique</a></td><td class="indexvalue">This class manage Novelec PhotoVoltaique types </td></tr>
+  <tr><td class="indexkey"><a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a></td><td class="indexvalue">This class manage Novelec MCCE-2 type </td></tr>
+  <tr><td class="indexkey"><a class="el" href="class_novelec_protocol.html">NovelecProtocol</a></td><td class="indexvalue">This class manage the Novelec Commands Protocol </td></tr>
+  <tr><td class="indexkey"><a class="el" href="class_tango_gpib_link.html">TangoGpibLink</a></td><td class="indexvalue">This class manage the GPIB communication bus </td></tr>
+  <tr><td class="indexkey"><a class="el" href="class_tango_serial_link.html">TangoSerialLink</a></td><td class="indexvalue">This class manage the SERIAL communication bus </td></tr>
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:19 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/class_abstract_electrometer_class-members.html b/doc/html/class_abstract_electrometer_class-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..c2bd39dd0c50b7d08272838d13117c25e427d84a
--- /dev/null
+++ b/doc/html/class_abstract_electrometer_class-members.html
@@ -0,0 +1,65 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>AbstractElectrometerClass Member List</h1>This is the complete list of members for <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>, including all inherited members.<p><table>
+  <tr bgcolor="#f0f0f0"><td><b>_device_proxy_name</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_electrometerProtocol</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_mode</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_range</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_rangeStr</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_abstract_electrometer_classa0">AbstractElectrometerClass</a>(std::string comLink_device_name)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>auto_zero_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>auto_zero_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>autoRange_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a17">autoRange_on</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>averageStateOFF</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>averageStateON</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>clear_registers</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a44">electrometer_status</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_averagecontrol</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_averagecount</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_ElectroMeterFrequency</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_ElectroMeterGain</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a45">get_ElectroMeterMode</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a38">get_ElectroMeterPolarity</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_ElectroMeterRange</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_knplc</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_triggercount</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a16">get_value</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a29">init_keithley</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>local</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>mcce_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>mcce_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>range_down</b>(void)=0 (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [pure virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a11">range_up</a>(void)=0</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [pure virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>remote</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>reset</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_averagecontrol</b>(std::string averctrl) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_averagecount</b>(std::string avercounts) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_ElectroMeterFrequency</b>(std::string freq) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_ElectroMeterGain</b>(std::string gain) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_ElectroMeterPolarity</b>(std::string pola) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_knplc</b>(std::string nPLC) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_Leakage_ZeroV2_function</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_Offset_ZeroV1_function</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_Test_function</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_triggercount</b>(std::string trigcounts) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a32">set_Zero_VonF_function</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setAmperMeterMode</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setCoulombMeterMode</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setOhmMeterMode</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setVoltMeterMode</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_check_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_check_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_correct_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_correct_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_abstract_electrometer_classa1">~AbstractElectrometerClass</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+</table><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:19 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/class_abstract_electrometer_class.html b/doc/html/class_abstract_electrometer_class.html
new file mode 100644
index 0000000000000000000000000000000000000000..5275707097006f90760d7dc0fe589e2123bd3214
--- /dev/null
+++ b/doc/html/class_abstract_electrometer_class.html
@@ -0,0 +1,271 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: AbstractElectrometerClass Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>AbstractElectrometerClass Class Reference</h1>Visible class from the DServer.  
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="_abstract_electrometer_class_8h-source.html">AbstractElectrometerClass.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for AbstractElectrometerClass:
+<p><center><img src="class_abstract_electrometer_class.png" usemap="#AbstractElectrometerClass_map" border="0" alt=""></center>
+<map name="AbstractElectrometerClass_map">
+<area href="class_keithley__485.html" alt="Keithley_485" shape="rect" coords="171,56,332,80">
+<area href="class_keithley__486.html" alt="Keithley_486" shape="rect" coords="171,112,332,136">
+<area href="class_keithley__487.html" alt="Keithley_487" shape="rect" coords="171,168,332,192">
+<area href="class_keithley__617.html" alt="Keithley_617" shape="rect" coords="171,224,332,248">
+<area href="class_keithley__6485.html" alt="Keithley_6485" shape="rect" coords="171,280,332,304">
+<area href="class_keithley__6487.html" alt="Keithley_6487" shape="rect" coords="171,336,332,360">
+<area href="class_keithley__6512.html" alt="Keithley_6512" shape="rect" coords="171,392,332,416">
+<area href="class_keithley__6514.html" alt="Keithley_6514" shape="rect" coords="171,448,332,472">
+<area href="class_novelec___m_c_c_e2.html" alt="Novelec_MCCE2" shape="rect" coords="171,504,332,528">
+</map>
+<a href="class_abstract_electrometer_class-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_abstract_electrometer_classa0" doxytag="AbstractElectrometerClass::AbstractElectrometerClass"></a>
+&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_abstract_electrometer_classa0">AbstractElectrometerClass</a> (std::string comLink_device_name)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialization. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_abstract_electrometer_classa1" doxytag="AbstractElectrometerClass::~AbstractElectrometerClass"></a>
+virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_abstract_electrometer_classa1">~AbstractElectrometerClass</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Release resources. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a11" doxytag="AbstractElectrometerClass::range_up"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a11">range_up</a> (void)=0</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer common functions. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a12" doxytag="AbstractElectrometerClass::range_down"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>range_down</b> (void)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a13" doxytag="AbstractElectrometerClass::reset"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>reset</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a14" doxytag="AbstractElectrometerClass::local"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>local</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a15" doxytag="AbstractElectrometerClass::remote"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>remote</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a16" doxytag="AbstractElectrometerClass::get_value"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a16">get_value</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer : cmd to get electrometer data. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a17" doxytag="AbstractElectrometerClass::autoRange_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a17">autoRange_on</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Keithley Electrometer methods. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a18" doxytag="AbstractElectrometerClass::zero_check_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_check_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a19" doxytag="AbstractElectrometerClass::zero_check_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_check_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a20" doxytag="AbstractElectrometerClass::zero_correct_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_correct_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a21" doxytag="AbstractElectrometerClass::zero_correct_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_correct_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a22" doxytag="AbstractElectrometerClass::auto_zero_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>auto_zero_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a23" doxytag="AbstractElectrometerClass::auto_zero_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>auto_zero_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a24" doxytag="AbstractElectrometerClass::autoRange_off"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>autoRange_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a25" doxytag="AbstractElectrometerClass::setAmperMeterMode"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setAmperMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a26" doxytag="AbstractElectrometerClass::setVoltMeterMode"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setVoltMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a27" doxytag="AbstractElectrometerClass::setOhmMeterMode"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setOhmMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a28" doxytag="AbstractElectrometerClass::setCoulombMeterMode"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setCoulombMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a29">init_keithley</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Following functions are only supported for SCPI protocol.  <a href="#_novelec___m_c_c_e2a29"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a30" doxytag="AbstractElectrometerClass::clear_registers"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>clear_registers</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a31" doxytag="AbstractElectrometerClass::averageStateON"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>averageStateON</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a32" doxytag="AbstractElectrometerClass::averageStateOFF"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>averageStateOFF</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a33" doxytag="AbstractElectrometerClass::set_knplc"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_knplc</b> (std::string nPLC)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a34" doxytag="AbstractElectrometerClass::set_triggercount"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_triggercount</b> (std::string trigcounts)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a35" doxytag="AbstractElectrometerClass::set_averagecount"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_averagecount</b> (std::string avercounts)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a36" doxytag="AbstractElectrometerClass::set_averagecontrol"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_averagecontrol</b> (std::string averctrl)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a37" doxytag="AbstractElectrometerClass::get_knplc"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_knplc</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a38" doxytag="AbstractElectrometerClass::get_triggercount"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_triggercount</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a39" doxytag="AbstractElectrometerClass::get_averagecount"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_averagecount</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a40" doxytag="AbstractElectrometerClass::get_averagecontrol"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_averagecontrol</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a32">set_Zero_VonF_function</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Novelec Electrometer methods.  <a href="#_keithley__6514a32"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a33" doxytag="AbstractElectrometerClass::set_Offset_ZeroV1_function"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_Offset_ZeroV1_function</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a34" doxytag="AbstractElectrometerClass::set_Leakage_ZeroV2_function"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_Leakage_ZeroV2_function</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a35" doxytag="AbstractElectrometerClass::set_Test_function"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_Test_function</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a36" doxytag="AbstractElectrometerClass::mcce_on"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>mcce_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a37" doxytag="AbstractElectrometerClass::mcce_off"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>mcce_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a38" doxytag="AbstractElectrometerClass::get_ElectroMeterPolarity"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a38">get_ElectroMeterPolarity</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Novelec getters and setters. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a41" doxytag="AbstractElectrometerClass::get_ElectroMeterFrequency"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_ElectroMeterFrequency</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a42" doxytag="AbstractElectrometerClass::get_ElectroMeterGain"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_ElectroMeterGain</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a41" doxytag="AbstractElectrometerClass::set_ElectroMeterPolarity"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_ElectroMeterPolarity</b> (std::string pola)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a43" doxytag="AbstractElectrometerClass::set_ElectroMeterFrequency"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_ElectroMeterFrequency</b> (std::string freq)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a44" doxytag="AbstractElectrometerClass::set_ElectroMeterGain"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_ElectroMeterGain</b> (std::string gain)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a44" doxytag="AbstractElectrometerClass::electrometer_status"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a44">electrometer_status</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer Status. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a45" doxytag="AbstractElectrometerClass::get_ElectroMeterMode"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a45">get_ElectroMeterMode</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Common getters and setters. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a46" doxytag="AbstractElectrometerClass::get_ElectroMeterRange"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_ElectroMeterRange</b> (void)</td></tr>
+
+<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p1" doxytag="AbstractElectrometerClass::_range"></a>
+short&nbsp;</td><td class="memItemRight" valign="bottom"><b>_range</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p2" doxytag="AbstractElectrometerClass::_rangeStr"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_rangeStr</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p3" doxytag="AbstractElectrometerClass::_mode"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_mode</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p4" doxytag="AbstractElectrometerClass::_electrometerProtocol"></a>
+<a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>_electrometerProtocol</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p5" doxytag="AbstractElectrometerClass::_device_proxy_name"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_device_proxy_name</b></td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Visible class from the DServer. 
+<p>
+<dl compact><dt><b>Author:</b></dt><dd>Xavier Elattaoui </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>11-2006 </dd></dl>
+
+<p>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="_novelec___m_c_c_e2a29" doxytag="AbstractElectrometerClass::init_keithley"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void AbstractElectrometerClass::init_keithley           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">void&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Following functions are only supported for SCPI protocol. 
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="_keithley__6514a32" doxytag="AbstractElectrometerClass::set_Zero_VonF_function"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">virtual void AbstractElectrometerClass::set_Zero_VonF_function           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">void&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [virtual]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Novelec Electrometer methods. 
+<p>
+Following functions are only supported for Novelec Protocol
+<p>
+Reimplemented in <a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a4">Novelec_MCCE2</a>.    </td>
+  </tr>
+</table>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="_abstract_electrometer_class_8h-source.html">AbstractElectrometerClass.h</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:19 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/class_abstract_electrometer_class.png b/doc/html/class_abstract_electrometer_class.png
new file mode 100644
index 0000000000000000000000000000000000000000..b8f42c73f5357dc952cf60d0ab2603412e9526fa
Binary files /dev/null and b/doc/html/class_abstract_electrometer_class.png differ
diff --git a/doc/html/class_communication_link-members.html b/doc/html/class_communication_link-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..aecc37c8e3a58dfa0111ad40ab86cae1fc55229c
--- /dev/null
+++ b/doc/html/class_communication_link-members.html
@@ -0,0 +1,19 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>CommunicationLink Member List</h1>This is the complete list of members for <a class="el" href="class_communication_link.html">CommunicationLink</a>, including all inherited members.<p><table>
+  <tr bgcolor="#f0f0f0"><td><b>_communication_Device_name</b> (defined in <a class="el" href="class_communication_link.html">CommunicationLink</a>)</td><td><a class="el" href="class_communication_link.html">CommunicationLink</a></td><td><code> [protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_communication_link.html#_communication_linka0">CommunicationLink</a>(std::string &amp;communication_link_name)</td><td><a class="el" href="class_communication_link.html">CommunicationLink</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_communication_link.html#_communication_linka3">read</a>(void)=0</td><td><a class="el" href="class_communication_link.html">CommunicationLink</a></td><td><code> [pure virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_communication_link.html#_communication_linka2">write</a>(std::string)=0</td><td><a class="el" href="class_communication_link.html">CommunicationLink</a></td><td><code> [pure virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_communication_link.html#_communication_linka4">write_read</a>(std::string cmd_to_send)=0</td><td><a class="el" href="class_communication_link.html">CommunicationLink</a></td><td><code> [pure virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_communication_link.html#_communication_linka1">~CommunicationLink</a>(void)</td><td><a class="el" href="class_communication_link.html">CommunicationLink</a></td><td><code> [virtual]</code></td></tr>
+</table><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:19 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/class_communication_link.html b/doc/html/class_communication_link.html
new file mode 100644
index 0000000000000000000000000000000000000000..def061035f7eb6a7d74d63d29eb9dccb40544519
--- /dev/null
+++ b/doc/html/class_communication_link.html
@@ -0,0 +1,225 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: CommunicationLink Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>CommunicationLink Class Reference<br>
+<small>
+[<a class="el" href="group___communication.html">Management</a>]</small>
+</h1>Abstract class to manage a specific communication bus.  
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="_communication_link_8h-source.html">CommunicationLink.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for CommunicationLink:
+<p><center><img src="class_communication_link.png" usemap="#CommunicationLink_map" border="0" alt=""></center>
+<map name="CommunicationLink_map">
+<area href="class_tango_gpib_link.html" alt="TangoGpibLink" shape="rect" coords="0,56,120,80">
+<area href="class_tango_serial_link.html" alt="TangoSerialLink" shape="rect" coords="130,56,250,80">
+</map>
+<a href="class_communication_link-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_communication_link.html#_communication_linka0">CommunicationLink</a> (std::string &amp;communication_link_name)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_communication_link.html#_communication_linka1">~CommunicationLink</a> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_communication_link.html#_communication_linka2">write</a> (std::string)=0</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Send command (data) as string to hardware.  <a href="#_communication_linka2"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_communication_link.html#_communication_linka3">read</a> (void)=0</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets hardware response as string.  <a href="#_communication_linka3"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_communication_link.html#_communication_linka4">write_read</a> (std::string cmd_to_send)=0</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Performs a write read operation as string.  <a href="#_communication_linka4"></a><br></td></tr>
+<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_tango_serial_linkp0" doxytag="CommunicationLink::_communication_Device_name"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_communication_Device_name</b></td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Abstract class to manage a specific communication bus. 
+<p>
+<dl compact><dt><b>Author:</b></dt><dd>Xavier Elattaoui </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>11-2006 </dd></dl>
+
+<p>
+<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="_communication_linka0" doxytag="CommunicationLink::CommunicationLink"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">CommunicationLink::CommunicationLink           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">std::string &amp;&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>communication_link_name</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Initialization.    </td>
+  </tr>
+</table>
+<a class="anchor" name="_communication_linka1" doxytag="CommunicationLink::~CommunicationLink"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">virtual CommunicationLink::~<a class="el" href="class_communication_link.html">CommunicationLink</a>           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">void&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [virtual]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Release resources.    </td>
+  </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="_communication_linka3" doxytag="CommunicationLink::read"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">virtual std::string CommunicationLink::read           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">void&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [pure virtual]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Gets hardware response as string. 
+<p>
+<dl compact><dt><b>Exceptions:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>Tango::DevFailed</em>&nbsp;</td><td></td></tr>
+  </table>
+</dl>
+
+<p>
+Implemented in <a class="el" href="class_tango_gpib_link.html#_tango_gpib_linka3">TangoGpibLink</a>, and <a class="el" href="class_tango_serial_link.html#_tango_serial_linka3">TangoSerialLink</a>.    </td>
+  </tr>
+</table>
+<a class="anchor" name="_communication_linka2" doxytag="CommunicationLink::write"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">virtual void CommunicationLink::write           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">std::string&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [pure virtual]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Send command (data) as string to hardware. 
+<p>
+<dl compact><dt><b>Exceptions:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>Tango::DevFailed</em>&nbsp;</td><td></td></tr>
+  </table>
+</dl>
+
+<p>
+Implemented in <a class="el" href="class_tango_gpib_link.html#_tango_gpib_linka2">TangoGpibLink</a>, and <a class="el" href="class_tango_serial_link.html#_tango_serial_linka2">TangoSerialLink</a>.    </td>
+  </tr>
+</table>
+<a class="anchor" name="_communication_linka4" doxytag="CommunicationLink::write_read"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">virtual std::string CommunicationLink::write_read           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">std::string&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>cmd_to_send</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [pure virtual]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Performs a write read operation as string. 
+<p>
+<dl compact><dt><b>Exceptions:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>Tango::DevFailed</em>&nbsp;</td><td></td></tr>
+  </table>
+</dl>
+
+<p>
+Implemented in <a class="el" href="class_tango_gpib_link.html#_tango_gpib_linka4">TangoGpibLink</a>, and <a class="el" href="class_tango_serial_link.html#_tango_serial_linka4">TangoSerialLink</a>.    </td>
+  </tr>
+</table>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="_communication_link_8h-source.html">CommunicationLink.h</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:19 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/class_communication_link.png b/doc/html/class_communication_link.png
new file mode 100644
index 0000000000000000000000000000000000000000..9e9ccf8fc51369d7b72b0cdc014f01778b658be2
Binary files /dev/null and b/doc/html/class_communication_link.png differ
diff --git a/doc/html/class_electrometer_protocol-members.html b/doc/html/class_electrometer_protocol-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..fd6516d1f35895d7f3649eeeb1bcda34e86e465b
--- /dev/null
+++ b/doc/html/class_electrometer_protocol-members.html
@@ -0,0 +1,62 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>ElectrometerProtocol Member List</h1>This is the complete list of members for <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>, including all inherited members.<p><table>
+  <tr bgcolor="#f0f0f0"><td><b>_communication_link</b> (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_mode</b> (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_range</b> (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>auto_zero_off</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>auto_zero_on</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>autoRange_off</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>autoRange_on</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>averageStateOFF</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>averageStateON</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>clear_registers</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_electrometer_protocol.html#_electrometer_protocola0">ElectrometerProtocol</a>()</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_averagecontrol</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_averagecount</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_frequency</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_gain</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_knplc</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_mode</b>(void)=0 (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [pure virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_polarity</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_range</b>(void)=0 (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [pure virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_electrometer_protocol.html#_electrometer_protocola9">get_raw_status</a>(void)=0</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [pure virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_triggercount</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_electrometer_protocol.html#_electrometer_protocola6">get_value</a>(void)=0</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [pure virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_electrometer_protocol.html#_novelec_protocola24">init_keithley</a>(void)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>local</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>remote</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>reset</b>(void)=0 (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [pure virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_averagecontrol</b>(std::string averctrl) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_averagecount</b>(std::string avercounts) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_frequency</b>(std::string freq) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_gain</b>(std::string gain) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_knplc</b>(std::string nPLC) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_polarity</b>(std::string pola) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_electrometer_protocol.html#_electrometer_protocola2">set_range</a>(std::string val)=0</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [pure virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_triggercount</b>(std::string trigcounts) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setAmperMeterMode</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setCoulombMeterMode</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setOhmMeterMode</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setVoltMeterMode</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>switch_MCCE2_OFF</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_electrometer_protocol.html#_keithley_s_c_p_i_protocola37">switch_MCCE2_ON</a>(void)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>unable_leakage_zeroV2_func</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>unable_offset_zeroV1_func</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>unable_test_func</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>unable_zeroVF_func</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_check_off</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_check_on</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_correct_off</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_correct_on</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_electrometer_protocol.html#_electrometer_protocola1">~ElectrometerProtocol</a>()</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+</table><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:19 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/class_electrometer_protocol.html b/doc/html/class_electrometer_protocol.html
new file mode 100644
index 0000000000000000000000000000000000000000..53e31bf49c749094b5b53e22dc93ec463ea30004
--- /dev/null
+++ b/doc/html/class_electrometer_protocol.html
@@ -0,0 +1,195 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: ElectrometerProtocol Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>ElectrometerProtocol Class Reference<br>
+<small>
+[<a class="el" href="group___standard.html">Commands Protocol</a>]</small>
+</h1>This abstract class manage the Electrometers Commands Protocol.  
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="_electrometer_protocol_8h-source.html">ElectrometerProtocol.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for ElectrometerProtocol:
+<p><center><img src="class_electrometer_protocol.png" usemap="#ElectrometerProtocol_map" border="0" alt=""></center>
+<map name="ElectrometerProtocol_map">
+<area href="class_keithley_d_d_c_protocol.html" alt="KeithleyDDCProtocol" shape="rect" coords="0,56,132,80">
+<area href="class_keithley_s_c_p_i_protocol.html" alt="KeithleySCPIProtocol" shape="rect" coords="142,56,274,80">
+<area href="class_novelec_protocol.html" alt="NovelecProtocol" shape="rect" coords="284,56,416,80">
+</map>
+<a href="class_electrometer_protocol-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_electrometer_protocola0" doxytag="ElectrometerProtocol::ElectrometerProtocol"></a>
+&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_electrometer_protocol.html#_electrometer_protocola0">ElectrometerProtocol</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialization. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_electrometer_protocola1" doxytag="ElectrometerProtocol::~ElectrometerProtocol"></a>
+virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_electrometer_protocol.html#_electrometer_protocola1">~ElectrometerProtocol</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Release resources. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_electrometer_protocola2" doxytag="ElectrometerProtocol::set_range"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_electrometer_protocol.html#_electrometer_protocola2">set_range</a> (std::string val)=0</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Common Electrometer Functions. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_electrometer_protocola3" doxytag="ElectrometerProtocol::reset"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>reset</b> (void)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola35" doxytag="ElectrometerProtocol::local"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>local</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola36" doxytag="ElectrometerProtocol::remote"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>remote</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_electrometer_protocola6" doxytag="ElectrometerProtocol::get_value"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_electrometer_protocol.html#_electrometer_protocola6">get_value</a> (void)=0</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Common Electrometer : getters &amp; setters. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_electrometer_protocola7" doxytag="ElectrometerProtocol::get_mode"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_mode</b> (void)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_electrometer_protocola8" doxytag="ElectrometerProtocol::get_range"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_range</b> (void)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_electrometer_protocola9" doxytag="ElectrometerProtocol::get_raw_status"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_electrometer_protocol.html#_electrometer_protocola9">get_raw_status</a> (void)=0</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Common Get Raw Electrometer Status. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola24" doxytag="ElectrometerProtocol::init_keithley"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_electrometer_protocol.html#_novelec_protocola24">init_keithley</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer : Keithley protocol dependent commands. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola25" doxytag="ElectrometerProtocol::set_knplc"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_knplc</b> (std::string nPLC)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola26" doxytag="ElectrometerProtocol::set_triggercount"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_triggercount</b> (std::string trigcounts)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola27" doxytag="ElectrometerProtocol::set_averagecount"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_averagecount</b> (std::string avercounts)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola28" doxytag="ElectrometerProtocol::set_averagecontrol"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_averagecontrol</b> (std::string averctrl)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola29" doxytag="ElectrometerProtocol::get_knplc"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_knplc</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola30" doxytag="ElectrometerProtocol::get_triggercount"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_triggercount</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola31" doxytag="ElectrometerProtocol::get_averagecount"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_averagecount</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola32" doxytag="ElectrometerProtocol::get_averagecontrol"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_averagecontrol</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola33" doxytag="ElectrometerProtocol::clear_registers"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>clear_registers</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola34" doxytag="ElectrometerProtocol::averageStateON"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>averageStateON</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola35" doxytag="ElectrometerProtocol::averageStateOFF"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>averageStateOFF</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola36" doxytag="ElectrometerProtocol::setAmperMeterMode"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setAmperMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola37" doxytag="ElectrometerProtocol::setVoltMeterMode"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setVoltMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola38" doxytag="ElectrometerProtocol::setOhmMeterMode"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setOhmMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola39" doxytag="ElectrometerProtocol::setCoulombMeterMode"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setCoulombMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola40" doxytag="ElectrometerProtocol::autoRange_on"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>autoRange_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola41" doxytag="ElectrometerProtocol::autoRange_off"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>autoRange_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola42" doxytag="ElectrometerProtocol::zero_check_on"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_check_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola43" doxytag="ElectrometerProtocol::zero_check_off"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_check_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola44" doxytag="ElectrometerProtocol::zero_correct_on"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_correct_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola45" doxytag="ElectrometerProtocol::zero_correct_off"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_correct_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola46" doxytag="ElectrometerProtocol::auto_zero_on"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>auto_zero_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola47" doxytag="ElectrometerProtocol::auto_zero_off"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>auto_zero_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola37" doxytag="ElectrometerProtocol::switch_MCCE2_ON"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_electrometer_protocol.html#_keithley_s_c_p_i_protocola37">switch_MCCE2_ON</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer : Novelec protocol dependent commands. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola38" doxytag="ElectrometerProtocol::switch_MCCE2_OFF"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>switch_MCCE2_OFF</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola39" doxytag="ElectrometerProtocol::unable_zeroVF_func"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>unable_zeroVF_func</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola40" doxytag="ElectrometerProtocol::unable_offset_zeroV1_func"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>unable_offset_zeroV1_func</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola41" doxytag="ElectrometerProtocol::unable_leakage_zeroV2_func"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>unable_leakage_zeroV2_func</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola42" doxytag="ElectrometerProtocol::unable_test_func"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>unable_test_func</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola43" doxytag="ElectrometerProtocol::get_polarity"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_polarity</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola44" doxytag="ElectrometerProtocol::get_frequency"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_frequency</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola45" doxytag="ElectrometerProtocol::get_gain"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_gain</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola46" doxytag="ElectrometerProtocol::set_polarity"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_polarity</b> (std::string pola)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola47" doxytag="ElectrometerProtocol::set_frequency"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_frequency</b> (std::string freq)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola48" doxytag="ElectrometerProtocol::set_gain"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_gain</b> (std::string gain)</td></tr>
+
+<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocolp4" doxytag="ElectrometerProtocol::_range"></a>
+short&nbsp;</td><td class="memItemRight" valign="bottom"><b>_range</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocolp5" doxytag="ElectrometerProtocol::_mode"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_mode</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocolp6" doxytag="ElectrometerProtocol::_communication_link"></a>
+<a class="el" href="class_communication_link.html">CommunicationLink</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>_communication_link</b></td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+This abstract class manage the Electrometers Commands Protocol. 
+<p>
+<dl compact><dt><b>Author:</b></dt><dd>Xavier Elattaoui </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>11-2006 </dd></dl>
+
+<p>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="_electrometer_protocol_8h-source.html">ElectrometerProtocol.h</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:19 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/class_electrometer_protocol.png b/doc/html/class_electrometer_protocol.png
new file mode 100644
index 0000000000000000000000000000000000000000..9b9832f28364e364293c71378729ca14202068ab
Binary files /dev/null and b/doc/html/class_electrometer_protocol.png differ
diff --git a/doc/html/class_keithley__485-members.html b/doc/html/class_keithley__485-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..5e8e8a373a9f39490225b45c5b352ad413e756b5
--- /dev/null
+++ b/doc/html/class_keithley__485-members.html
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>Keithley_485 Member List</h1>This is the complete list of members for <a class="el" href="class_keithley__485.html">Keithley_485</a>, including all inherited members.<p><table>
+  <tr bgcolor="#f0f0f0"><td><b>_device_proxy_name</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_electrometerProtocol</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_mode</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_range</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_rangeStr</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_abstract_electrometer_classa0">AbstractElectrometerClass</a>(std::string comLink_device_name)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>auto_zero_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>auto_zero_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>autoRange_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a17">autoRange_on</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>averageStateOFF</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>averageStateON</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>clear_registers</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley__485.html#_keithley__485a5">electrometer_status</a>(void)</td><td><a class="el" href="class_keithley__485.html">Keithley_485</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_averagecontrol</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_averagecount</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_ElectroMeterFrequency</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_ElectroMeterGain</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a45">get_ElectroMeterMode</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a38">get_ElectroMeterPolarity</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley__485.html#_keithley__485a4">get_ElectroMeterRange</a>(void)</td><td><a class="el" href="class_keithley__485.html">Keithley_485</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_knplc</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_triggercount</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a16">get_value</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a29">init_keithley</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley__485.html#_keithley__485a0">Keithley_485</a>(std::string &amp;comLink_device_name)</td><td><a class="el" href="class_keithley__485.html">Keithley_485</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>local</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>mcce_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>mcce_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>range_down</b>(void) (defined in <a class="el" href="class_keithley__485.html">Keithley_485</a>)</td><td><a class="el" href="class_keithley__485.html">Keithley_485</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley__485.html#_keithley__485a2">range_up</a>(void)</td><td><a class="el" href="class_keithley__485.html">Keithley_485</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>remote</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>reset</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_averagecontrol</b>(std::string averctrl) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_averagecount</b>(std::string avercounts) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_ElectroMeterFrequency</b>(std::string freq) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_ElectroMeterGain</b>(std::string gain) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_ElectroMeterPolarity</b>(std::string pola) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_knplc</b>(std::string nPLC) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_Leakage_ZeroV2_function</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_Offset_ZeroV1_function</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_Test_function</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_triggercount</b>(std::string trigcounts) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a32">set_Zero_VonF_function</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setAmperMeterMode</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setCoulombMeterMode</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setOhmMeterMode</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setVoltMeterMode</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_check_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_check_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_correct_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_correct_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_abstract_electrometer_classa1">~AbstractElectrometerClass</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley__485.html#_keithley__485a1">~Keithley_485</a>(void)</td><td><a class="el" href="class_keithley__485.html">Keithley_485</a></td><td><code> [virtual]</code></td></tr>
+</table><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:19 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/class_keithley__485.html b/doc/html/class_keithley__485.html
new file mode 100644
index 0000000000000000000000000000000000000000..e8dfa4a9701f0c302d068169655033f0277eac9f
--- /dev/null
+++ b/doc/html/class_keithley__485.html
@@ -0,0 +1,267 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Keithley_485 Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>Keithley_485 Class Reference<br>
+<small>
+[<a class="el" href="group___d_d_c.html">Keithley</a>]</small>
+</h1>This class manage 485 Keithley type.  
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="_keithley__485_8h-source.html">Keithley_485.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for Keithley_485:
+<p><center><img src="class_keithley__485.png" usemap="#Keithley_485_map" border="0" alt=""></center>
+<map name="Keithley_485_map">
+<area href="class_abstract_electrometer_class.html" alt="AbstractElectrometerClass" shape="rect" coords="0,0,161,24">
+</map>
+<a href="class_keithley__485-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__485a0" doxytag="Keithley_485::Keithley_485"></a>
+&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__485.html#_keithley__485a0">Keithley_485</a> (std::string &amp;comLink_device_name)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialization. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__485a1" doxytag="Keithley_485::~Keithley_485"></a>
+virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__485.html#_keithley__485a1">~Keithley_485</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Release resources. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__485a2" doxytag="Keithley_485::range_up"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__485.html#_keithley__485a2">range_up</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Device dependent commands. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__485a3" doxytag="Keithley_485::range_down"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>range_down</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__485a4" doxytag="Keithley_485::get_ElectroMeterRange"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__485.html#_keithley__485a4">get_ElectroMeterRange</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">getter(s) &amp; setter(s) <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__485a5" doxytag="Keithley_485::electrometer_status"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__485.html#_keithley__485a5">electrometer_status</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer Status. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a13" doxytag="Keithley_485::reset"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>reset</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a14" doxytag="Keithley_485::local"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>local</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a15" doxytag="Keithley_485::remote"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>remote</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a16" doxytag="Keithley_485::get_value"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a16">get_value</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer : cmd to get electrometer data. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a17" doxytag="Keithley_485::autoRange_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a17">autoRange_on</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Keithley Electrometer methods. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a18" doxytag="Keithley_485::zero_check_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_check_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a19" doxytag="Keithley_485::zero_check_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_check_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a20" doxytag="Keithley_485::zero_correct_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_correct_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a21" doxytag="Keithley_485::zero_correct_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_correct_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a22" doxytag="Keithley_485::auto_zero_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>auto_zero_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a23" doxytag="Keithley_485::auto_zero_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>auto_zero_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a24" doxytag="Keithley_485::autoRange_off"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>autoRange_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a25" doxytag="Keithley_485::setAmperMeterMode"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setAmperMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a26" doxytag="Keithley_485::setVoltMeterMode"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setVoltMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a27" doxytag="Keithley_485::setOhmMeterMode"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setOhmMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a28" doxytag="Keithley_485::setCoulombMeterMode"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setCoulombMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a29">init_keithley</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Following functions are only supported for SCPI protocol.  <a href="#_novelec___m_c_c_e2a29"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a30" doxytag="Keithley_485::clear_registers"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>clear_registers</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a31" doxytag="Keithley_485::averageStateON"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>averageStateON</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a32" doxytag="Keithley_485::averageStateOFF"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>averageStateOFF</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a33" doxytag="Keithley_485::set_knplc"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_knplc</b> (std::string nPLC)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a34" doxytag="Keithley_485::set_triggercount"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_triggercount</b> (std::string trigcounts)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a35" doxytag="Keithley_485::set_averagecount"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_averagecount</b> (std::string avercounts)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a36" doxytag="Keithley_485::set_averagecontrol"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_averagecontrol</b> (std::string averctrl)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a37" doxytag="Keithley_485::get_knplc"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_knplc</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a38" doxytag="Keithley_485::get_triggercount"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_triggercount</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a39" doxytag="Keithley_485::get_averagecount"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_averagecount</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a40" doxytag="Keithley_485::get_averagecontrol"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_averagecontrol</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a32">set_Zero_VonF_function</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Novelec Electrometer methods.  <a href="#_keithley__6514a32"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a33" doxytag="Keithley_485::set_Offset_ZeroV1_function"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_Offset_ZeroV1_function</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a34" doxytag="Keithley_485::set_Leakage_ZeroV2_function"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_Leakage_ZeroV2_function</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a35" doxytag="Keithley_485::set_Test_function"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_Test_function</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a36" doxytag="Keithley_485::mcce_on"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>mcce_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a37" doxytag="Keithley_485::mcce_off"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>mcce_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a38" doxytag="Keithley_485::get_ElectroMeterPolarity"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a38">get_ElectroMeterPolarity</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Novelec getters and setters. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a41" doxytag="Keithley_485::get_ElectroMeterFrequency"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_ElectroMeterFrequency</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a42" doxytag="Keithley_485::get_ElectroMeterGain"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_ElectroMeterGain</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a41" doxytag="Keithley_485::set_ElectroMeterPolarity"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_ElectroMeterPolarity</b> (std::string pola)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a43" doxytag="Keithley_485::set_ElectroMeterFrequency"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_ElectroMeterFrequency</b> (std::string freq)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a44" doxytag="Keithley_485::set_ElectroMeterGain"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_ElectroMeterGain</b> (std::string gain)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a45" doxytag="Keithley_485::get_ElectroMeterMode"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a45">get_ElectroMeterMode</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Common getters and setters. <br></td></tr>
+<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p1" doxytag="Keithley_485::_range"></a>
+short&nbsp;</td><td class="memItemRight" valign="bottom"><b>_range</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p2" doxytag="Keithley_485::_rangeStr"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_rangeStr</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p3" doxytag="Keithley_485::_mode"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_mode</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p4" doxytag="Keithley_485::_electrometerProtocol"></a>
+<a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>_electrometerProtocol</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p5" doxytag="Keithley_485::_device_proxy_name"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_device_proxy_name</b></td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+This class manage 485 Keithley type. 
+<p>
+<dl compact><dt><b>Author:</b></dt><dd>Xavier Elattaoui </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>11-2006 </dd></dl>
+
+<p>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="_novelec___m_c_c_e2a29" doxytag="Keithley_485::init_keithley"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void AbstractElectrometerClass::init_keithley           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">void&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Following functions are only supported for SCPI protocol. 
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="_keithley__6514a32" doxytag="Keithley_485::set_Zero_VonF_function"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">virtual void AbstractElectrometerClass::set_Zero_VonF_function           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">void&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [virtual, inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Novelec Electrometer methods. 
+<p>
+Following functions are only supported for Novelec Protocol
+<p>
+Reimplemented in <a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a4">Novelec_MCCE2</a>.    </td>
+  </tr>
+</table>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="_keithley__485_8h-source.html">Keithley_485.h</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:19 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/class_keithley__485.png b/doc/html/class_keithley__485.png
new file mode 100644
index 0000000000000000000000000000000000000000..dc34fc43f23f45a831e335b6c59630e54f6f29d4
Binary files /dev/null and b/doc/html/class_keithley__485.png differ
diff --git a/doc/html/class_keithley__486-members.html b/doc/html/class_keithley__486-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..823653b2fa8b4d74ee0748b45318faa9c037f2d8
--- /dev/null
+++ b/doc/html/class_keithley__486-members.html
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>Keithley_486 Member List</h1>This is the complete list of members for <a class="el" href="class_keithley__486.html">Keithley_486</a>, including all inherited members.<p><table>
+  <tr bgcolor="#f0f0f0"><td><b>_device_proxy_name</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_electrometerProtocol</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_mode</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_range</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_rangeStr</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_abstract_electrometer_classa0">AbstractElectrometerClass</a>(std::string comLink_device_name)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>auto_zero_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>auto_zero_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>autoRange_off</b>(void) (defined in <a class="el" href="class_keithley__486.html">Keithley_486</a>)</td><td><a class="el" href="class_keithley__486.html">Keithley_486</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a17">autoRange_on</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>averageStateOFF</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>averageStateON</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>clear_registers</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley__486.html#_keithley__486a6">electrometer_status</a>(void)</td><td><a class="el" href="class_keithley__486.html">Keithley_486</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_averagecontrol</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_averagecount</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_ElectroMeterFrequency</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_ElectroMeterGain</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a45">get_ElectroMeterMode</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a38">get_ElectroMeterPolarity</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley__486.html#_keithley__486a5">get_ElectroMeterRange</a>(void)</td><td><a class="el" href="class_keithley__486.html">Keithley_486</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_knplc</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_triggercount</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a16">get_value</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a29">init_keithley</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley__486.html#_keithley__486a0">Keithley_486</a>(std::string &amp;comLink_device_name)</td><td><a class="el" href="class_keithley__486.html">Keithley_486</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>local</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>mcce_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>mcce_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>range_down</b>(void) (defined in <a class="el" href="class_keithley__486.html">Keithley_486</a>)</td><td><a class="el" href="class_keithley__486.html">Keithley_486</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley__486.html#_keithley__486a2">range_up</a>(void)</td><td><a class="el" href="class_keithley__486.html">Keithley_486</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>remote</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>reset</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_averagecontrol</b>(std::string averctrl) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_averagecount</b>(std::string avercounts) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_ElectroMeterFrequency</b>(std::string freq) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_ElectroMeterGain</b>(std::string gain) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_ElectroMeterPolarity</b>(std::string pola) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_knplc</b>(std::string nPLC) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_Leakage_ZeroV2_function</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_Offset_ZeroV1_function</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_Test_function</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_triggercount</b>(std::string trigcounts) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a32">set_Zero_VonF_function</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setAmperMeterMode</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setCoulombMeterMode</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setOhmMeterMode</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setVoltMeterMode</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_check_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_check_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_correct_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_correct_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_abstract_electrometer_classa1">~AbstractElectrometerClass</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley__486.html#_keithley__486a1">~Keithley_486</a>(void)</td><td><a class="el" href="class_keithley__486.html">Keithley_486</a></td><td><code> [virtual]</code></td></tr>
+</table><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:19 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/class_keithley__486.html b/doc/html/class_keithley__486.html
new file mode 100644
index 0000000000000000000000000000000000000000..c48caffa715e7198873323eb19b80faf0a7c29e6
--- /dev/null
+++ b/doc/html/class_keithley__486.html
@@ -0,0 +1,267 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Keithley_486 Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>Keithley_486 Class Reference<br>
+<small>
+[<a class="el" href="group___d_d_c.html">Keithley</a>]</small>
+</h1>This class manage 486 Keithley type.  
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="_keithley__486_8h-source.html">Keithley_486.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for Keithley_486:
+<p><center><img src="class_keithley__486.png" usemap="#Keithley_486_map" border="0" alt=""></center>
+<map name="Keithley_486_map">
+<area href="class_abstract_electrometer_class.html" alt="AbstractElectrometerClass" shape="rect" coords="0,0,161,24">
+</map>
+<a href="class_keithley__486-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__486a0" doxytag="Keithley_486::Keithley_486"></a>
+&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__486.html#_keithley__486a0">Keithley_486</a> (std::string &amp;comLink_device_name)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialization. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__486a1" doxytag="Keithley_486::~Keithley_486"></a>
+virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__486.html#_keithley__486a1">~Keithley_486</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Release resources. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__486a2" doxytag="Keithley_486::range_up"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__486.html#_keithley__486a2">range_up</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Device dependent commands. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__486a3" doxytag="Keithley_486::range_down"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>range_down</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__486a4" doxytag="Keithley_486::autoRange_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>autoRange_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__486a5" doxytag="Keithley_486::get_ElectroMeterRange"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__486.html#_keithley__486a5">get_ElectroMeterRange</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">getter(s) &amp; setter(s) <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__486a6" doxytag="Keithley_486::electrometer_status"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__486.html#_keithley__486a6">electrometer_status</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer status. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a13" doxytag="Keithley_486::reset"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>reset</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a14" doxytag="Keithley_486::local"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>local</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a15" doxytag="Keithley_486::remote"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>remote</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a16" doxytag="Keithley_486::get_value"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a16">get_value</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer : cmd to get electrometer data. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a17" doxytag="Keithley_486::autoRange_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a17">autoRange_on</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Keithley Electrometer methods. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a18" doxytag="Keithley_486::zero_check_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_check_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a19" doxytag="Keithley_486::zero_check_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_check_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a20" doxytag="Keithley_486::zero_correct_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_correct_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a21" doxytag="Keithley_486::zero_correct_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_correct_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a22" doxytag="Keithley_486::auto_zero_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>auto_zero_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a23" doxytag="Keithley_486::auto_zero_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>auto_zero_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a25" doxytag="Keithley_486::setAmperMeterMode"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setAmperMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a26" doxytag="Keithley_486::setVoltMeterMode"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setVoltMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a27" doxytag="Keithley_486::setOhmMeterMode"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setOhmMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a28" doxytag="Keithley_486::setCoulombMeterMode"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setCoulombMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a29">init_keithley</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Following functions are only supported for SCPI protocol.  <a href="#_novelec___m_c_c_e2a29"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a30" doxytag="Keithley_486::clear_registers"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>clear_registers</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a31" doxytag="Keithley_486::averageStateON"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>averageStateON</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a32" doxytag="Keithley_486::averageStateOFF"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>averageStateOFF</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a33" doxytag="Keithley_486::set_knplc"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_knplc</b> (std::string nPLC)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a34" doxytag="Keithley_486::set_triggercount"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_triggercount</b> (std::string trigcounts)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a35" doxytag="Keithley_486::set_averagecount"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_averagecount</b> (std::string avercounts)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a36" doxytag="Keithley_486::set_averagecontrol"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_averagecontrol</b> (std::string averctrl)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a37" doxytag="Keithley_486::get_knplc"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_knplc</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a38" doxytag="Keithley_486::get_triggercount"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_triggercount</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a39" doxytag="Keithley_486::get_averagecount"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_averagecount</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a40" doxytag="Keithley_486::get_averagecontrol"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_averagecontrol</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a32">set_Zero_VonF_function</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Novelec Electrometer methods.  <a href="#_keithley__6514a32"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a33" doxytag="Keithley_486::set_Offset_ZeroV1_function"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_Offset_ZeroV1_function</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a34" doxytag="Keithley_486::set_Leakage_ZeroV2_function"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_Leakage_ZeroV2_function</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a35" doxytag="Keithley_486::set_Test_function"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_Test_function</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a36" doxytag="Keithley_486::mcce_on"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>mcce_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a37" doxytag="Keithley_486::mcce_off"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>mcce_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a38" doxytag="Keithley_486::get_ElectroMeterPolarity"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a38">get_ElectroMeterPolarity</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Novelec getters and setters. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a41" doxytag="Keithley_486::get_ElectroMeterFrequency"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_ElectroMeterFrequency</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a42" doxytag="Keithley_486::get_ElectroMeterGain"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_ElectroMeterGain</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a41" doxytag="Keithley_486::set_ElectroMeterPolarity"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_ElectroMeterPolarity</b> (std::string pola)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a43" doxytag="Keithley_486::set_ElectroMeterFrequency"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_ElectroMeterFrequency</b> (std::string freq)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a44" doxytag="Keithley_486::set_ElectroMeterGain"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_ElectroMeterGain</b> (std::string gain)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a45" doxytag="Keithley_486::get_ElectroMeterMode"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a45">get_ElectroMeterMode</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Common getters and setters. <br></td></tr>
+<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p1" doxytag="Keithley_486::_range"></a>
+short&nbsp;</td><td class="memItemRight" valign="bottom"><b>_range</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p2" doxytag="Keithley_486::_rangeStr"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_rangeStr</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p3" doxytag="Keithley_486::_mode"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_mode</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p4" doxytag="Keithley_486::_electrometerProtocol"></a>
+<a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>_electrometerProtocol</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p5" doxytag="Keithley_486::_device_proxy_name"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_device_proxy_name</b></td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+This class manage 486 Keithley type. 
+<p>
+<dl compact><dt><b>Author:</b></dt><dd>Xavier Elattaoui </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>11-2006 </dd></dl>
+
+<p>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="_novelec___m_c_c_e2a29" doxytag="Keithley_486::init_keithley"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void AbstractElectrometerClass::init_keithley           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">void&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Following functions are only supported for SCPI protocol. 
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="_keithley__6514a32" doxytag="Keithley_486::set_Zero_VonF_function"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">virtual void AbstractElectrometerClass::set_Zero_VonF_function           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">void&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [virtual, inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Novelec Electrometer methods. 
+<p>
+Following functions are only supported for Novelec Protocol
+<p>
+Reimplemented in <a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a4">Novelec_MCCE2</a>.    </td>
+  </tr>
+</table>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="_keithley__486_8h-source.html">Keithley_486.h</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:19 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/class_keithley__486.png b/doc/html/class_keithley__486.png
new file mode 100644
index 0000000000000000000000000000000000000000..db9d737f58cf1a9d47c7854db45fa8a33d556732
Binary files /dev/null and b/doc/html/class_keithley__486.png differ
diff --git a/doc/html/class_keithley__487-members.html b/doc/html/class_keithley__487-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..459604791741912db19c58b74de78feab50bfcc9
--- /dev/null
+++ b/doc/html/class_keithley__487-members.html
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>Keithley_487 Member List</h1>This is the complete list of members for <a class="el" href="class_keithley__487.html">Keithley_487</a>, including all inherited members.<p><table>
+  <tr bgcolor="#f0f0f0"><td><b>_device_proxy_name</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_electrometerProtocol</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_mode</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_range</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_rangeStr</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_abstract_electrometer_classa0">AbstractElectrometerClass</a>(std::string comLink_device_name)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>auto_zero_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>auto_zero_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>autoRange_off</b>(void) (defined in <a class="el" href="class_keithley__487.html">Keithley_487</a>)</td><td><a class="el" href="class_keithley__487.html">Keithley_487</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a17">autoRange_on</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>averageStateOFF</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>averageStateON</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>clear_registers</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley__487.html#_keithley__487a8">electrometer_status</a>(void)</td><td><a class="el" href="class_keithley__487.html">Keithley_487</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_averagecontrol</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_averagecount</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_ElectroMeterFrequency</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_ElectroMeterGain</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley__487.html#_keithley__487a6">get_ElectroMeterMode</a>(void)</td><td><a class="el" href="class_keithley__487.html">Keithley_487</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a38">get_ElectroMeterPolarity</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_ElectroMeterRange</b>(void) (defined in <a class="el" href="class_keithley__487.html">Keithley_487</a>)</td><td><a class="el" href="class_keithley__487.html">Keithley_487</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_knplc</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_triggercount</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a16">get_value</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a29">init_keithley</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley__487.html#_keithley__487a0">Keithley_487</a>(std::string &amp;comLink_device_name)</td><td><a class="el" href="class_keithley__487.html">Keithley_487</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>local</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>mcce_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>mcce_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>range_down</b>(void) (defined in <a class="el" href="class_keithley__487.html">Keithley_487</a>)</td><td><a class="el" href="class_keithley__487.html">Keithley_487</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley__487.html#_keithley__487a2">range_up</a>(void)</td><td><a class="el" href="class_keithley__487.html">Keithley_487</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>remote</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>reset</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_averagecontrol</b>(std::string averctrl) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_averagecount</b>(std::string avercounts) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_ElectroMeterFrequency</b>(std::string freq) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_ElectroMeterGain</b>(std::string gain) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_ElectroMeterPolarity</b>(std::string pola) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_knplc</b>(std::string nPLC) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_Leakage_ZeroV2_function</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_Offset_ZeroV1_function</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_Test_function</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_triggercount</b>(std::string trigcounts) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a32">set_Zero_VonF_function</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley__487.html#_keithley__487a5">setAmperMeterMode</a>(void)</td><td><a class="el" href="class_keithley__487.html">Keithley_487</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setCoulombMeterMode</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setOhmMeterMode</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setVoltMeterMode</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_check_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_check_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_correct_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_correct_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_abstract_electrometer_classa1">~AbstractElectrometerClass</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley__487.html#_keithley__487a1">~Keithley_487</a>(void)</td><td><a class="el" href="class_keithley__487.html">Keithley_487</a></td><td><code> [virtual]</code></td></tr>
+</table><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:20 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/class_keithley__487.html b/doc/html/class_keithley__487.html
new file mode 100644
index 0000000000000000000000000000000000000000..fa2b8d59df000c9033357a907957f0539b868028
--- /dev/null
+++ b/doc/html/class_keithley__487.html
@@ -0,0 +1,267 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Keithley_487 Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>Keithley_487 Class Reference<br>
+<small>
+[<a class="el" href="group___d_d_c.html">Keithley</a>]</small>
+</h1>This class manage 487 Keithley type.  
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="_keithley__487_8h-source.html">Keithley_487.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for Keithley_487:
+<p><center><img src="class_keithley__487.png" usemap="#Keithley_487_map" border="0" alt=""></center>
+<map name="Keithley_487_map">
+<area href="class_abstract_electrometer_class.html" alt="AbstractElectrometerClass" shape="rect" coords="0,0,161,24">
+</map>
+<a href="class_keithley__487-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__487a0" doxytag="Keithley_487::Keithley_487"></a>
+&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__487.html#_keithley__487a0">Keithley_487</a> (std::string &amp;comLink_device_name)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialization. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__487a1" doxytag="Keithley_487::~Keithley_487"></a>
+virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__487.html#_keithley__487a1">~Keithley_487</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Release resources. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__487a2" doxytag="Keithley_487::range_up"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__487.html#_keithley__487a2">range_up</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer methods. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__487a3" doxytag="Keithley_487::range_down"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>range_down</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__487a4" doxytag="Keithley_487::autoRange_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>autoRange_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__487a5" doxytag="Keithley_487::setAmperMeterMode"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__487.html#_keithley__487a5">setAmperMeterMode</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer Function(s). <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__487a6" doxytag="Keithley_487::get_ElectroMeterMode"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__487.html#_keithley__487a6">get_ElectroMeterMode</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">getter(s) &amp; setter(s) <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__487a7" doxytag="Keithley_487::get_ElectroMeterRange"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_ElectroMeterRange</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__487a8" doxytag="Keithley_487::electrometer_status"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__487.html#_keithley__487a8">electrometer_status</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer status. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a13" doxytag="Keithley_487::reset"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>reset</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a14" doxytag="Keithley_487::local"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>local</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a15" doxytag="Keithley_487::remote"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>remote</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a16" doxytag="Keithley_487::get_value"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a16">get_value</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer : cmd to get electrometer data. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a17" doxytag="Keithley_487::autoRange_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a17">autoRange_on</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Keithley Electrometer methods. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a18" doxytag="Keithley_487::zero_check_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_check_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a19" doxytag="Keithley_487::zero_check_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_check_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a20" doxytag="Keithley_487::zero_correct_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_correct_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a21" doxytag="Keithley_487::zero_correct_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_correct_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a22" doxytag="Keithley_487::auto_zero_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>auto_zero_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a23" doxytag="Keithley_487::auto_zero_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>auto_zero_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a26" doxytag="Keithley_487::setVoltMeterMode"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setVoltMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a27" doxytag="Keithley_487::setOhmMeterMode"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setOhmMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a28" doxytag="Keithley_487::setCoulombMeterMode"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setCoulombMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a29">init_keithley</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Following functions are only supported for SCPI protocol.  <a href="#_novelec___m_c_c_e2a29"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a30" doxytag="Keithley_487::clear_registers"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>clear_registers</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a31" doxytag="Keithley_487::averageStateON"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>averageStateON</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a32" doxytag="Keithley_487::averageStateOFF"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>averageStateOFF</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a33" doxytag="Keithley_487::set_knplc"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_knplc</b> (std::string nPLC)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a34" doxytag="Keithley_487::set_triggercount"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_triggercount</b> (std::string trigcounts)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a35" doxytag="Keithley_487::set_averagecount"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_averagecount</b> (std::string avercounts)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a36" doxytag="Keithley_487::set_averagecontrol"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_averagecontrol</b> (std::string averctrl)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a37" doxytag="Keithley_487::get_knplc"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_knplc</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a38" doxytag="Keithley_487::get_triggercount"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_triggercount</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a39" doxytag="Keithley_487::get_averagecount"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_averagecount</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a40" doxytag="Keithley_487::get_averagecontrol"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_averagecontrol</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a32">set_Zero_VonF_function</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Novelec Electrometer methods.  <a href="#_keithley__6514a32"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a33" doxytag="Keithley_487::set_Offset_ZeroV1_function"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_Offset_ZeroV1_function</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a34" doxytag="Keithley_487::set_Leakage_ZeroV2_function"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_Leakage_ZeroV2_function</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a35" doxytag="Keithley_487::set_Test_function"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_Test_function</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a36" doxytag="Keithley_487::mcce_on"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>mcce_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a37" doxytag="Keithley_487::mcce_off"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>mcce_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a38" doxytag="Keithley_487::get_ElectroMeterPolarity"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a38">get_ElectroMeterPolarity</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Novelec getters and setters. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a41" doxytag="Keithley_487::get_ElectroMeterFrequency"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_ElectroMeterFrequency</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a42" doxytag="Keithley_487::get_ElectroMeterGain"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_ElectroMeterGain</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a41" doxytag="Keithley_487::set_ElectroMeterPolarity"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_ElectroMeterPolarity</b> (std::string pola)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a43" doxytag="Keithley_487::set_ElectroMeterFrequency"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_ElectroMeterFrequency</b> (std::string freq)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a44" doxytag="Keithley_487::set_ElectroMeterGain"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_ElectroMeterGain</b> (std::string gain)</td></tr>
+
+<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p1" doxytag="Keithley_487::_range"></a>
+short&nbsp;</td><td class="memItemRight" valign="bottom"><b>_range</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p2" doxytag="Keithley_487::_rangeStr"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_rangeStr</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p3" doxytag="Keithley_487::_mode"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_mode</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p4" doxytag="Keithley_487::_electrometerProtocol"></a>
+<a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>_electrometerProtocol</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p5" doxytag="Keithley_487::_device_proxy_name"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_device_proxy_name</b></td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+This class manage 487 Keithley type. 
+<p>
+<dl compact><dt><b>Author:</b></dt><dd>Xavier Elattaoui </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>11-2006 </dd></dl>
+
+<p>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="_novelec___m_c_c_e2a29" doxytag="Keithley_487::init_keithley"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void AbstractElectrometerClass::init_keithley           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">void&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Following functions are only supported for SCPI protocol. 
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="_keithley__6514a32" doxytag="Keithley_487::set_Zero_VonF_function"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">virtual void AbstractElectrometerClass::set_Zero_VonF_function           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">void&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [virtual, inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Novelec Electrometer methods. 
+<p>
+Following functions are only supported for Novelec Protocol
+<p>
+Reimplemented in <a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a4">Novelec_MCCE2</a>.    </td>
+  </tr>
+</table>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="_keithley__487_8h-source.html">Keithley_487.h</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:20 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/class_keithley__487.png b/doc/html/class_keithley__487.png
new file mode 100644
index 0000000000000000000000000000000000000000..506a90eb7f0bf5a1d069f556e1f188ee9e0a2cbf
Binary files /dev/null and b/doc/html/class_keithley__487.png differ
diff --git a/doc/html/class_keithley__617-members.html b/doc/html/class_keithley__617-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..563c4211c560a25d144c9b6574ca8ad5b6f934b3
--- /dev/null
+++ b/doc/html/class_keithley__617-members.html
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>Keithley_617 Member List</h1>This is the complete list of members for <a class="el" href="class_keithley__617.html">Keithley_617</a>, including all inherited members.<p><table>
+  <tr bgcolor="#f0f0f0"><td><b>_device_proxy_name</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_electrometerProtocol</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_mode</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_range</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_rangeStr</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_abstract_electrometer_classa0">AbstractElectrometerClass</a>(std::string comLink_device_name)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>auto_zero_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>auto_zero_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley__617.html#_keithley__617a2">autoRange_off</a>(void)</td><td><a class="el" href="class_keithley__617.html">Keithley_617</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a17">autoRange_on</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>averageStateOFF</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>averageStateON</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>clear_registers</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley__617.html#_keithley__617a11">electrometer_status</a>(void)</td><td><a class="el" href="class_keithley__617.html">Keithley_617</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_averagecontrol</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_averagecount</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_ElectroMeterFrequency</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_ElectroMeterGain</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley__617.html#_keithley__617a9">get_ElectroMeterMode</a>(void)</td><td><a class="el" href="class_keithley__617.html">Keithley_617</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a38">get_ElectroMeterPolarity</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_ElectroMeterRange</b>(void) (defined in <a class="el" href="class_keithley__617.html">Keithley_617</a>)</td><td><a class="el" href="class_keithley__617.html">Keithley_617</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_knplc</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_triggercount</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a16">get_value</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a29">init_keithley</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley__617.html#_keithley__617a0">Keithley_617</a>(std::string &amp;comLink_device_name)</td><td><a class="el" href="class_keithley__617.html">Keithley_617</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>local</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>mcce_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>mcce_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>range_down</b>(void) (defined in <a class="el" href="class_keithley__617.html">Keithley_617</a>)</td><td><a class="el" href="class_keithley__617.html">Keithley_617</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley__617.html#_keithley__617a3">range_up</a>(void)</td><td><a class="el" href="class_keithley__617.html">Keithley_617</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>remote</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>reset</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_averagecontrol</b>(std::string averctrl) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_averagecount</b>(std::string avercounts) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_ElectroMeterFrequency</b>(std::string freq) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_ElectroMeterGain</b>(std::string gain) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_ElectroMeterPolarity</b>(std::string pola) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_knplc</b>(std::string nPLC) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_Leakage_ZeroV2_function</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_Offset_ZeroV1_function</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_Test_function</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_triggercount</b>(std::string trigcounts) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a32">set_Zero_VonF_function</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley__617.html#_keithley__617a5">setAmperMeterMode</a>(void)</td><td><a class="el" href="class_keithley__617.html">Keithley_617</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setCoulombMeterMode</b>(void) (defined in <a class="el" href="class_keithley__617.html">Keithley_617</a>)</td><td><a class="el" href="class_keithley__617.html">Keithley_617</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setOhmMeterMode</b>(void) (defined in <a class="el" href="class_keithley__617.html">Keithley_617</a>)</td><td><a class="el" href="class_keithley__617.html">Keithley_617</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setVoltMeterMode</b>(void) (defined in <a class="el" href="class_keithley__617.html">Keithley_617</a>)</td><td><a class="el" href="class_keithley__617.html">Keithley_617</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_check_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_check_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_correct_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_correct_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_abstract_electrometer_classa1">~AbstractElectrometerClass</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley__617.html#_keithley__617a1">~Keithley_617</a>(void)</td><td><a class="el" href="class_keithley__617.html">Keithley_617</a></td><td><code> [virtual]</code></td></tr>
+</table><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:20 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/class_keithley__617.html b/doc/html/class_keithley__617.html
new file mode 100644
index 0000000000000000000000000000000000000000..8c997ca651ae1a70eb7731201297ee9d123c1afd
--- /dev/null
+++ b/doc/html/class_keithley__617.html
@@ -0,0 +1,268 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Keithley_617 Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>Keithley_617 Class Reference<br>
+<small>
+[<a class="el" href="group___d_d_c.html">Keithley</a>]</small>
+</h1>This class manage 617 Keithley type.  
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="_keithley__617_8h-source.html">Keithley_617.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for Keithley_617:
+<p><center><img src="class_keithley__617.png" usemap="#Keithley_617_map" border="0" alt=""></center>
+<map name="Keithley_617_map">
+<area href="class_abstract_electrometer_class.html" alt="AbstractElectrometerClass" shape="rect" coords="0,0,161,24">
+</map>
+<a href="class_keithley__617-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__617a0" doxytag="Keithley_617::Keithley_617"></a>
+&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__617.html#_keithley__617a0">Keithley_617</a> (std::string &amp;comLink_device_name)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialization. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__617a1" doxytag="Keithley_617::~Keithley_617"></a>
+virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__617.html#_keithley__617a1">~Keithley_617</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Release resources. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__617a2" doxytag="Keithley_617::autoRange_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__617.html#_keithley__617a2">autoRange_off</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Device dependent commands. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__617a3" doxytag="Keithley_617::range_up"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__617.html#_keithley__617a3">range_up</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer common functions. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__617a4" doxytag="Keithley_617::range_down"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>range_down</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__617a5" doxytag="Keithley_617::setAmperMeterMode"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__617.html#_keithley__617a5">setAmperMeterMode</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer Mode. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__617a6" doxytag="Keithley_617::setVoltMeterMode"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setVoltMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__617a7" doxytag="Keithley_617::setOhmMeterMode"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setOhmMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__617a8" doxytag="Keithley_617::setCoulombMeterMode"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setCoulombMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__617a9" doxytag="Keithley_617::get_ElectroMeterMode"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__617.html#_keithley__617a9">get_ElectroMeterMode</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">getter(s) &amp; setter(s) <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__617a10" doxytag="Keithley_617::get_ElectroMeterRange"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_ElectroMeterRange</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__617a11" doxytag="Keithley_617::electrometer_status"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__617.html#_keithley__617a11">electrometer_status</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer status. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a13" doxytag="Keithley_617::reset"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>reset</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a14" doxytag="Keithley_617::local"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>local</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a15" doxytag="Keithley_617::remote"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>remote</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a16" doxytag="Keithley_617::get_value"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a16">get_value</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer : cmd to get electrometer data. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a17" doxytag="Keithley_617::autoRange_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a17">autoRange_on</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Keithley Electrometer methods. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a18" doxytag="Keithley_617::zero_check_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_check_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a19" doxytag="Keithley_617::zero_check_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_check_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a20" doxytag="Keithley_617::zero_correct_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_correct_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a21" doxytag="Keithley_617::zero_correct_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_correct_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a22" doxytag="Keithley_617::auto_zero_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>auto_zero_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a23" doxytag="Keithley_617::auto_zero_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>auto_zero_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a29">init_keithley</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Following functions are only supported for SCPI protocol.  <a href="#_novelec___m_c_c_e2a29"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a30" doxytag="Keithley_617::clear_registers"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>clear_registers</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a31" doxytag="Keithley_617::averageStateON"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>averageStateON</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a32" doxytag="Keithley_617::averageStateOFF"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>averageStateOFF</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a33" doxytag="Keithley_617::set_knplc"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_knplc</b> (std::string nPLC)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a34" doxytag="Keithley_617::set_triggercount"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_triggercount</b> (std::string trigcounts)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a35" doxytag="Keithley_617::set_averagecount"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_averagecount</b> (std::string avercounts)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a36" doxytag="Keithley_617::set_averagecontrol"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_averagecontrol</b> (std::string averctrl)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a37" doxytag="Keithley_617::get_knplc"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_knplc</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a38" doxytag="Keithley_617::get_triggercount"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_triggercount</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a39" doxytag="Keithley_617::get_averagecount"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_averagecount</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a40" doxytag="Keithley_617::get_averagecontrol"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_averagecontrol</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a32">set_Zero_VonF_function</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Novelec Electrometer methods.  <a href="#_keithley__6514a32"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a33" doxytag="Keithley_617::set_Offset_ZeroV1_function"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_Offset_ZeroV1_function</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a34" doxytag="Keithley_617::set_Leakage_ZeroV2_function"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_Leakage_ZeroV2_function</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a35" doxytag="Keithley_617::set_Test_function"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_Test_function</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a36" doxytag="Keithley_617::mcce_on"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>mcce_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a37" doxytag="Keithley_617::mcce_off"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>mcce_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a38" doxytag="Keithley_617::get_ElectroMeterPolarity"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a38">get_ElectroMeterPolarity</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Novelec getters and setters. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a41" doxytag="Keithley_617::get_ElectroMeterFrequency"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_ElectroMeterFrequency</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a42" doxytag="Keithley_617::get_ElectroMeterGain"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_ElectroMeterGain</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a41" doxytag="Keithley_617::set_ElectroMeterPolarity"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_ElectroMeterPolarity</b> (std::string pola)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a43" doxytag="Keithley_617::set_ElectroMeterFrequency"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_ElectroMeterFrequency</b> (std::string freq)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a44" doxytag="Keithley_617::set_ElectroMeterGain"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_ElectroMeterGain</b> (std::string gain)</td></tr>
+
+<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p1" doxytag="Keithley_617::_range"></a>
+short&nbsp;</td><td class="memItemRight" valign="bottom"><b>_range</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p2" doxytag="Keithley_617::_rangeStr"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_rangeStr</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p3" doxytag="Keithley_617::_mode"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_mode</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p4" doxytag="Keithley_617::_electrometerProtocol"></a>
+<a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>_electrometerProtocol</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p5" doxytag="Keithley_617::_device_proxy_name"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_device_proxy_name</b></td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+This class manage 617 Keithley type. 
+<p>
+<dl compact><dt><b>Author:</b></dt><dd>Xavier Elattaoui </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>11-2006 </dd></dl>
+
+<p>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="_novelec___m_c_c_e2a29" doxytag="Keithley_617::init_keithley"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void AbstractElectrometerClass::init_keithley           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">void&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Following functions are only supported for SCPI protocol. 
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="_keithley__6514a32" doxytag="Keithley_617::set_Zero_VonF_function"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">virtual void AbstractElectrometerClass::set_Zero_VonF_function           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">void&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [virtual, inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Novelec Electrometer methods. 
+<p>
+Following functions are only supported for Novelec Protocol
+<p>
+Reimplemented in <a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a4">Novelec_MCCE2</a>.    </td>
+  </tr>
+</table>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="_keithley__617_8h-source.html">Keithley_617.h</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:20 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/class_keithley__617.png b/doc/html/class_keithley__617.png
new file mode 100644
index 0000000000000000000000000000000000000000..fa046c7dd5726c89d7593c09fb42e0b215321d15
Binary files /dev/null and b/doc/html/class_keithley__617.png differ
diff --git a/doc/html/class_keithley__6485-members.html b/doc/html/class_keithley__6485-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..8572ce3b4ca5576131fdaea45ca63b699b08fa95
--- /dev/null
+++ b/doc/html/class_keithley__6485-members.html
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>Keithley_6485 Member List</h1>This is the complete list of members for <a class="el" href="class_keithley__6485.html">Keithley_6485</a>, including all inherited members.<p><table>
+  <tr bgcolor="#f0f0f0"><td><b>_device_proxy_name</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_electrometerProtocol</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_mode</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_range</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_rangeStr</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_abstract_electrometer_classa0">AbstractElectrometerClass</a>(std::string comLink_device_name)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>auto_zero_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>auto_zero_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>autoRange_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a17">autoRange_on</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>averageStateOFF</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>averageStateON</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>clear_registers</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a44">electrometer_status</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_averagecontrol</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_averagecount</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_ElectroMeterFrequency</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_ElectroMeterGain</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a45">get_ElectroMeterMode</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a38">get_ElectroMeterPolarity</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_ElectroMeterRange</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_knplc</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_triggercount</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a16">get_value</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a29">init_keithley</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley__6485.html#_keithley__6485a0">Keithley_6485</a>(std::string &amp;comLink_device_name)</td><td><a class="el" href="class_keithley__6485.html">Keithley_6485</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>local</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>mcce_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>mcce_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>range_down</b>(void) (defined in <a class="el" href="class_keithley__6485.html">Keithley_6485</a>)</td><td><a class="el" href="class_keithley__6485.html">Keithley_6485</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley__6485.html#_keithley__6485a2">range_up</a>(void)</td><td><a class="el" href="class_keithley__6485.html">Keithley_6485</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>remote</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>reset</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_averagecontrol</b>(std::string averctrl) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_averagecount</b>(std::string avercounts) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_ElectroMeterFrequency</b>(std::string freq) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_ElectroMeterGain</b>(std::string gain) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_ElectroMeterPolarity</b>(std::string pola) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_knplc</b>(std::string nPLC) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_Leakage_ZeroV2_function</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_Offset_ZeroV1_function</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_Test_function</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_triggercount</b>(std::string trigcounts) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a32">set_Zero_VonF_function</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setAmperMeterMode</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setCoulombMeterMode</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setOhmMeterMode</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setVoltMeterMode</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_check_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_check_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_correct_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_correct_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_abstract_electrometer_classa1">~AbstractElectrometerClass</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley__6485.html#_keithley__6485a1">~Keithley_6485</a>(void)</td><td><a class="el" href="class_keithley__6485.html">Keithley_6485</a></td><td><code> [virtual]</code></td></tr>
+</table><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:20 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/class_keithley__6485.html b/doc/html/class_keithley__6485.html
new file mode 100644
index 0000000000000000000000000000000000000000..0bae2c2a61bc74f1f38ded76490aa15488690bea
--- /dev/null
+++ b/doc/html/class_keithley__6485.html
@@ -0,0 +1,266 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Keithley_6485 Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>Keithley_6485 Class Reference<br>
+<small>
+[<a class="el" href="group___s_c_p_i.html">Keithley</a>]</small>
+</h1>This class manage 6485 Keithley type.  
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="_keithley__6485_8h-source.html">Keithley_6485.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for Keithley_6485:
+<p><center><img src="class_keithley__6485.png" usemap="#Keithley_6485_map" border="0" alt=""></center>
+<map name="Keithley_6485_map">
+<area href="class_abstract_electrometer_class.html" alt="AbstractElectrometerClass" shape="rect" coords="0,0,161,24">
+</map>
+<a href="class_keithley__6485-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6485a0" doxytag="Keithley_6485::Keithley_6485"></a>
+&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__6485.html#_keithley__6485a0">Keithley_6485</a> (std::string &amp;comLink_device_name)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialization. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6485a1" doxytag="Keithley_6485::~Keithley_6485"></a>
+virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__6485.html#_keithley__6485a1">~Keithley_6485</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Release resources. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6485a2" doxytag="Keithley_6485::range_up"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__6485.html#_keithley__6485a2">range_up</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Device dependent commands. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6485a3" doxytag="Keithley_6485::range_down"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>range_down</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a13" doxytag="Keithley_6485::reset"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>reset</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a14" doxytag="Keithley_6485::local"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>local</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a15" doxytag="Keithley_6485::remote"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>remote</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a16" doxytag="Keithley_6485::get_value"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a16">get_value</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer : cmd to get electrometer data. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a17" doxytag="Keithley_6485::autoRange_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a17">autoRange_on</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Keithley Electrometer methods. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a18" doxytag="Keithley_6485::zero_check_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_check_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a19" doxytag="Keithley_6485::zero_check_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_check_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a20" doxytag="Keithley_6485::zero_correct_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_correct_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a21" doxytag="Keithley_6485::zero_correct_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_correct_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a22" doxytag="Keithley_6485::auto_zero_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>auto_zero_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a23" doxytag="Keithley_6485::auto_zero_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>auto_zero_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a24" doxytag="Keithley_6485::autoRange_off"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>autoRange_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a25" doxytag="Keithley_6485::setAmperMeterMode"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setAmperMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a26" doxytag="Keithley_6485::setVoltMeterMode"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setVoltMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a27" doxytag="Keithley_6485::setOhmMeterMode"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setOhmMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a28" doxytag="Keithley_6485::setCoulombMeterMode"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setCoulombMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a29">init_keithley</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Following functions are only supported for SCPI protocol.  <a href="#_novelec___m_c_c_e2a29"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a30" doxytag="Keithley_6485::clear_registers"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>clear_registers</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a31" doxytag="Keithley_6485::averageStateON"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>averageStateON</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a32" doxytag="Keithley_6485::averageStateOFF"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>averageStateOFF</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a33" doxytag="Keithley_6485::set_knplc"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_knplc</b> (std::string nPLC)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a34" doxytag="Keithley_6485::set_triggercount"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_triggercount</b> (std::string trigcounts)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a35" doxytag="Keithley_6485::set_averagecount"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_averagecount</b> (std::string avercounts)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a36" doxytag="Keithley_6485::set_averagecontrol"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_averagecontrol</b> (std::string averctrl)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a37" doxytag="Keithley_6485::get_knplc"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_knplc</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a38" doxytag="Keithley_6485::get_triggercount"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_triggercount</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a39" doxytag="Keithley_6485::get_averagecount"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_averagecount</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a40" doxytag="Keithley_6485::get_averagecontrol"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_averagecontrol</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a32">set_Zero_VonF_function</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Novelec Electrometer methods.  <a href="#_keithley__6514a32"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a33" doxytag="Keithley_6485::set_Offset_ZeroV1_function"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_Offset_ZeroV1_function</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a34" doxytag="Keithley_6485::set_Leakage_ZeroV2_function"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_Leakage_ZeroV2_function</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a35" doxytag="Keithley_6485::set_Test_function"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_Test_function</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a36" doxytag="Keithley_6485::mcce_on"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>mcce_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a37" doxytag="Keithley_6485::mcce_off"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>mcce_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a38" doxytag="Keithley_6485::get_ElectroMeterPolarity"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a38">get_ElectroMeterPolarity</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Novelec getters and setters. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a41" doxytag="Keithley_6485::get_ElectroMeterFrequency"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_ElectroMeterFrequency</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a42" doxytag="Keithley_6485::get_ElectroMeterGain"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_ElectroMeterGain</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a41" doxytag="Keithley_6485::set_ElectroMeterPolarity"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_ElectroMeterPolarity</b> (std::string pola)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a43" doxytag="Keithley_6485::set_ElectroMeterFrequency"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_ElectroMeterFrequency</b> (std::string freq)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a44" doxytag="Keithley_6485::set_ElectroMeterGain"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_ElectroMeterGain</b> (std::string gain)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a44" doxytag="Keithley_6485::electrometer_status"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a44">electrometer_status</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer Status. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a45" doxytag="Keithley_6485::get_ElectroMeterMode"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a45">get_ElectroMeterMode</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Common getters and setters. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a46" doxytag="Keithley_6485::get_ElectroMeterRange"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_ElectroMeterRange</b> (void)</td></tr>
+
+<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p1" doxytag="Keithley_6485::_range"></a>
+short&nbsp;</td><td class="memItemRight" valign="bottom"><b>_range</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p2" doxytag="Keithley_6485::_rangeStr"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_rangeStr</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p3" doxytag="Keithley_6485::_mode"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_mode</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p4" doxytag="Keithley_6485::_electrometerProtocol"></a>
+<a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>_electrometerProtocol</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p5" doxytag="Keithley_6485::_device_proxy_name"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_device_proxy_name</b></td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+This class manage 6485 Keithley type. 
+<p>
+<dl compact><dt><b>Author:</b></dt><dd>Xavier Elattaoui </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>11-2006 </dd></dl>
+
+<p>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="_novelec___m_c_c_e2a29" doxytag="Keithley_6485::init_keithley"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void AbstractElectrometerClass::init_keithley           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">void&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Following functions are only supported for SCPI protocol. 
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="_keithley__6514a32" doxytag="Keithley_6485::set_Zero_VonF_function"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">virtual void AbstractElectrometerClass::set_Zero_VonF_function           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">void&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [virtual, inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Novelec Electrometer methods. 
+<p>
+Following functions are only supported for Novelec Protocol
+<p>
+Reimplemented in <a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a4">Novelec_MCCE2</a>.    </td>
+  </tr>
+</table>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="_keithley__6485_8h-source.html">Keithley_6485.h</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:20 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/class_keithley__6485.png b/doc/html/class_keithley__6485.png
new file mode 100644
index 0000000000000000000000000000000000000000..fb300c33ab774da26ec4f9d5150472c48310e662
Binary files /dev/null and b/doc/html/class_keithley__6485.png differ
diff --git a/doc/html/class_keithley__6487-members.html b/doc/html/class_keithley__6487-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..ff17621c51edf524b594abbfa9ebe5aad48b06d4
--- /dev/null
+++ b/doc/html/class_keithley__6487-members.html
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>Keithley_6487 Member List</h1>This is the complete list of members for <a class="el" href="class_keithley__6487.html">Keithley_6487</a>, including all inherited members.<p><table>
+  <tr bgcolor="#f0f0f0"><td><b>_device_proxy_name</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_electrometerProtocol</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_mode</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_range</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_rangeStr</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_abstract_electrometer_classa0">AbstractElectrometerClass</a>(std::string comLink_device_name)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>auto_zero_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>auto_zero_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>autoRange_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a17">autoRange_on</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>averageStateOFF</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>averageStateON</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>clear_registers</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a44">electrometer_status</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_averagecontrol</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_averagecount</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_ElectroMeterFrequency</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_ElectroMeterGain</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a45">get_ElectroMeterMode</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a38">get_ElectroMeterPolarity</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_ElectroMeterRange</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_knplc</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_triggercount</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a16">get_value</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a29">init_keithley</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley__6487.html#_keithley__6487a0">Keithley_6487</a>(std::string &amp;comLink_device_name)</td><td><a class="el" href="class_keithley__6487.html">Keithley_6487</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>local</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>mcce_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>mcce_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>range_down</b>(void) (defined in <a class="el" href="class_keithley__6487.html">Keithley_6487</a>)</td><td><a class="el" href="class_keithley__6487.html">Keithley_6487</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley__6487.html#_keithley__6487a2">range_up</a>(void)</td><td><a class="el" href="class_keithley__6487.html">Keithley_6487</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>remote</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>reset</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_averagecontrol</b>(std::string averctrl) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_averagecount</b>(std::string avercounts) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_ElectroMeterFrequency</b>(std::string freq) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_ElectroMeterGain</b>(std::string gain) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_ElectroMeterPolarity</b>(std::string pola) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_knplc</b>(std::string nPLC) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_Leakage_ZeroV2_function</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_Offset_ZeroV1_function</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_Test_function</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_triggercount</b>(std::string trigcounts) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a32">set_Zero_VonF_function</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley__6487.html#_keithley__6487a4">setAmperMeterMode</a>(void)</td><td><a class="el" href="class_keithley__6487.html">Keithley_6487</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setCoulombMeterMode</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setOhmMeterMode</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setVoltMeterMode</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_check_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_check_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_correct_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_correct_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_abstract_electrometer_classa1">~AbstractElectrometerClass</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley__6487.html#_keithley__6487a1">~Keithley_6487</a>(void)</td><td><a class="el" href="class_keithley__6487.html">Keithley_6487</a></td><td><code> [virtual]</code></td></tr>
+</table><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:20 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/class_keithley__6487.html b/doc/html/class_keithley__6487.html
new file mode 100644
index 0000000000000000000000000000000000000000..a3916183307f1cc57d39ffcb7e62b686380bf3e6
--- /dev/null
+++ b/doc/html/class_keithley__6487.html
@@ -0,0 +1,267 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Keithley_6487 Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>Keithley_6487 Class Reference<br>
+<small>
+[<a class="el" href="group___s_c_p_i.html">Keithley</a>]</small>
+</h1>This class manage 6487 Keithley type.  
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="_keithley__6487_8h-source.html">Keithley_6487.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for Keithley_6487:
+<p><center><img src="class_keithley__6487.png" usemap="#Keithley_6487_map" border="0" alt=""></center>
+<map name="Keithley_6487_map">
+<area href="class_abstract_electrometer_class.html" alt="AbstractElectrometerClass" shape="rect" coords="0,0,161,24">
+</map>
+<a href="class_keithley__6487-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6487a0" doxytag="Keithley_6487::Keithley_6487"></a>
+&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__6487.html#_keithley__6487a0">Keithley_6487</a> (std::string &amp;comLink_device_name)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialization. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6487a1" doxytag="Keithley_6487::~Keithley_6487"></a>
+virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__6487.html#_keithley__6487a1">~Keithley_6487</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Release resources. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6487a2" doxytag="Keithley_6487::range_up"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__6487.html#_keithley__6487a2">range_up</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Device dependent commands. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6487a3" doxytag="Keithley_6487::range_down"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>range_down</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6487a4" doxytag="Keithley_6487::setAmperMeterMode"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__6487.html#_keithley__6487a4">setAmperMeterMode</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer Mode. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a13" doxytag="Keithley_6487::reset"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>reset</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a14" doxytag="Keithley_6487::local"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>local</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a15" doxytag="Keithley_6487::remote"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>remote</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a16" doxytag="Keithley_6487::get_value"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a16">get_value</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer : cmd to get electrometer data. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a17" doxytag="Keithley_6487::autoRange_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a17">autoRange_on</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Keithley Electrometer methods. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a18" doxytag="Keithley_6487::zero_check_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_check_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a19" doxytag="Keithley_6487::zero_check_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_check_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a20" doxytag="Keithley_6487::zero_correct_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_correct_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a21" doxytag="Keithley_6487::zero_correct_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_correct_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a22" doxytag="Keithley_6487::auto_zero_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>auto_zero_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a23" doxytag="Keithley_6487::auto_zero_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>auto_zero_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a24" doxytag="Keithley_6487::autoRange_off"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>autoRange_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a26" doxytag="Keithley_6487::setVoltMeterMode"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setVoltMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a27" doxytag="Keithley_6487::setOhmMeterMode"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setOhmMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a28" doxytag="Keithley_6487::setCoulombMeterMode"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setCoulombMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a29">init_keithley</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Following functions are only supported for SCPI protocol.  <a href="#_novelec___m_c_c_e2a29"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a30" doxytag="Keithley_6487::clear_registers"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>clear_registers</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a31" doxytag="Keithley_6487::averageStateON"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>averageStateON</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a32" doxytag="Keithley_6487::averageStateOFF"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>averageStateOFF</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a33" doxytag="Keithley_6487::set_knplc"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_knplc</b> (std::string nPLC)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a34" doxytag="Keithley_6487::set_triggercount"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_triggercount</b> (std::string trigcounts)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a35" doxytag="Keithley_6487::set_averagecount"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_averagecount</b> (std::string avercounts)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a36" doxytag="Keithley_6487::set_averagecontrol"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_averagecontrol</b> (std::string averctrl)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a37" doxytag="Keithley_6487::get_knplc"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_knplc</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a38" doxytag="Keithley_6487::get_triggercount"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_triggercount</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a39" doxytag="Keithley_6487::get_averagecount"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_averagecount</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a40" doxytag="Keithley_6487::get_averagecontrol"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_averagecontrol</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a32">set_Zero_VonF_function</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Novelec Electrometer methods.  <a href="#_keithley__6514a32"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a33" doxytag="Keithley_6487::set_Offset_ZeroV1_function"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_Offset_ZeroV1_function</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a34" doxytag="Keithley_6487::set_Leakage_ZeroV2_function"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_Leakage_ZeroV2_function</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a35" doxytag="Keithley_6487::set_Test_function"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_Test_function</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a36" doxytag="Keithley_6487::mcce_on"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>mcce_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a37" doxytag="Keithley_6487::mcce_off"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>mcce_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a38" doxytag="Keithley_6487::get_ElectroMeterPolarity"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a38">get_ElectroMeterPolarity</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Novelec getters and setters. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a41" doxytag="Keithley_6487::get_ElectroMeterFrequency"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_ElectroMeterFrequency</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a42" doxytag="Keithley_6487::get_ElectroMeterGain"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_ElectroMeterGain</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a41" doxytag="Keithley_6487::set_ElectroMeterPolarity"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_ElectroMeterPolarity</b> (std::string pola)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a43" doxytag="Keithley_6487::set_ElectroMeterFrequency"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_ElectroMeterFrequency</b> (std::string freq)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a44" doxytag="Keithley_6487::set_ElectroMeterGain"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_ElectroMeterGain</b> (std::string gain)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a44" doxytag="Keithley_6487::electrometer_status"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a44">electrometer_status</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer Status. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a45" doxytag="Keithley_6487::get_ElectroMeterMode"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a45">get_ElectroMeterMode</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Common getters and setters. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a46" doxytag="Keithley_6487::get_ElectroMeterRange"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_ElectroMeterRange</b> (void)</td></tr>
+
+<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p1" doxytag="Keithley_6487::_range"></a>
+short&nbsp;</td><td class="memItemRight" valign="bottom"><b>_range</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p2" doxytag="Keithley_6487::_rangeStr"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_rangeStr</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p3" doxytag="Keithley_6487::_mode"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_mode</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p4" doxytag="Keithley_6487::_electrometerProtocol"></a>
+<a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>_electrometerProtocol</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p5" doxytag="Keithley_6487::_device_proxy_name"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_device_proxy_name</b></td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+This class manage 6487 Keithley type. 
+<p>
+<dl compact><dt><b>Author:</b></dt><dd>Xavier Elattaoui </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>11-2006 </dd></dl>
+
+<p>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="_novelec___m_c_c_e2a29" doxytag="Keithley_6487::init_keithley"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void AbstractElectrometerClass::init_keithley           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">void&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Following functions are only supported for SCPI protocol. 
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="_keithley__6514a32" doxytag="Keithley_6487::set_Zero_VonF_function"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">virtual void AbstractElectrometerClass::set_Zero_VonF_function           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">void&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [virtual, inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Novelec Electrometer methods. 
+<p>
+Following functions are only supported for Novelec Protocol
+<p>
+Reimplemented in <a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a4">Novelec_MCCE2</a>.    </td>
+  </tr>
+</table>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="_keithley__6487_8h-source.html">Keithley_6487.h</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:20 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/class_keithley__6487.png b/doc/html/class_keithley__6487.png
new file mode 100644
index 0000000000000000000000000000000000000000..7bdda173136d6d0bd4b9a67508e45158a7e10d2f
Binary files /dev/null and b/doc/html/class_keithley__6487.png differ
diff --git a/doc/html/class_keithley__6512-members.html b/doc/html/class_keithley__6512-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..3f010293d6d4b2c99b97223ac43c6340974c4d49
--- /dev/null
+++ b/doc/html/class_keithley__6512-members.html
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>Keithley_6512 Member List</h1>This is the complete list of members for <a class="el" href="class_keithley__6512.html">Keithley_6512</a>, including all inherited members.<p><table>
+  <tr bgcolor="#f0f0f0"><td><b>_device_proxy_name</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_electrometerProtocol</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_mode</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_range</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_rangeStr</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_abstract_electrometer_classa0">AbstractElectrometerClass</a>(std::string comLink_device_name)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>auto_zero_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>auto_zero_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley__6512.html#_keithley__6512a2">autoRange_off</a>(void)</td><td><a class="el" href="class_keithley__6512.html">Keithley_6512</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a17">autoRange_on</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>averageStateOFF</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>averageStateON</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>clear_registers</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley__6512.html#_keithley__6512a11">electrometer_status</a>(void)</td><td><a class="el" href="class_keithley__6512.html">Keithley_6512</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_averagecontrol</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_averagecount</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_ElectroMeterFrequency</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_ElectroMeterGain</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley__6512.html#_keithley__6512a9">get_ElectroMeterMode</a>(void)</td><td><a class="el" href="class_keithley__6512.html">Keithley_6512</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a38">get_ElectroMeterPolarity</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_ElectroMeterRange</b>(void) (defined in <a class="el" href="class_keithley__6512.html">Keithley_6512</a>)</td><td><a class="el" href="class_keithley__6512.html">Keithley_6512</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_knplc</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_triggercount</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a16">get_value</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a29">init_keithley</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley__6512.html#_keithley__6512a0">Keithley_6512</a>(std::string &amp;comLink_device_name)</td><td><a class="el" href="class_keithley__6512.html">Keithley_6512</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>local</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>mcce_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>mcce_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>range_down</b>(void) (defined in <a class="el" href="class_keithley__6512.html">Keithley_6512</a>)</td><td><a class="el" href="class_keithley__6512.html">Keithley_6512</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley__6512.html#_keithley__6512a3">range_up</a>(void)</td><td><a class="el" href="class_keithley__6512.html">Keithley_6512</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>remote</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>reset</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_averagecontrol</b>(std::string averctrl) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_averagecount</b>(std::string avercounts) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_ElectroMeterFrequency</b>(std::string freq) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_ElectroMeterGain</b>(std::string gain) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_ElectroMeterPolarity</b>(std::string pola) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_knplc</b>(std::string nPLC) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_Leakage_ZeroV2_function</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_Offset_ZeroV1_function</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_Test_function</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_triggercount</b>(std::string trigcounts) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a32">set_Zero_VonF_function</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley__6512.html#_keithley__6512a5">setAmperMeterMode</a>(void)</td><td><a class="el" href="class_keithley__6512.html">Keithley_6512</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setCoulombMeterMode</b>(void) (defined in <a class="el" href="class_keithley__6512.html">Keithley_6512</a>)</td><td><a class="el" href="class_keithley__6512.html">Keithley_6512</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setOhmMeterMode</b>(void) (defined in <a class="el" href="class_keithley__6512.html">Keithley_6512</a>)</td><td><a class="el" href="class_keithley__6512.html">Keithley_6512</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setVoltMeterMode</b>(void) (defined in <a class="el" href="class_keithley__6512.html">Keithley_6512</a>)</td><td><a class="el" href="class_keithley__6512.html">Keithley_6512</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_check_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_check_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_correct_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_correct_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_abstract_electrometer_classa1">~AbstractElectrometerClass</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley__6512.html#_keithley__6512a1">~Keithley_6512</a>(void)</td><td><a class="el" href="class_keithley__6512.html">Keithley_6512</a></td><td><code> [virtual]</code></td></tr>
+</table><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:21 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/class_keithley__6512.html b/doc/html/class_keithley__6512.html
new file mode 100644
index 0000000000000000000000000000000000000000..0a446f4313bdcc7d18f86701012300a09fea5524
--- /dev/null
+++ b/doc/html/class_keithley__6512.html
@@ -0,0 +1,268 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Keithley_6512 Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>Keithley_6512 Class Reference<br>
+<small>
+[<a class="el" href="group___d_d_c.html">Keithley</a>]</small>
+</h1>This class manage 6512 Keithley type.  
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="_keithley__6512_8h-source.html">Keithley_6512.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for Keithley_6512:
+<p><center><img src="class_keithley__6512.png" usemap="#Keithley_6512_map" border="0" alt=""></center>
+<map name="Keithley_6512_map">
+<area href="class_abstract_electrometer_class.html" alt="AbstractElectrometerClass" shape="rect" coords="0,0,161,24">
+</map>
+<a href="class_keithley__6512-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6512a0" doxytag="Keithley_6512::Keithley_6512"></a>
+&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__6512.html#_keithley__6512a0">Keithley_6512</a> (std::string &amp;comLink_device_name)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialization. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6512a1" doxytag="Keithley_6512::~Keithley_6512"></a>
+virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__6512.html#_keithley__6512a1">~Keithley_6512</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Release resources. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6512a2" doxytag="Keithley_6512::autoRange_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__6512.html#_keithley__6512a2">autoRange_off</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Device dependent commands. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6512a3" doxytag="Keithley_6512::range_up"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__6512.html#_keithley__6512a3">range_up</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer common functions. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6512a4" doxytag="Keithley_6512::range_down"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>range_down</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6512a5" doxytag="Keithley_6512::setAmperMeterMode"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__6512.html#_keithley__6512a5">setAmperMeterMode</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer Mode. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6512a6" doxytag="Keithley_6512::setVoltMeterMode"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setVoltMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6512a7" doxytag="Keithley_6512::setOhmMeterMode"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setOhmMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6512a8" doxytag="Keithley_6512::setCoulombMeterMode"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setCoulombMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6512a9" doxytag="Keithley_6512::get_ElectroMeterMode"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__6512.html#_keithley__6512a9">get_ElectroMeterMode</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">getter(s) &amp; setter(s) <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6512a10" doxytag="Keithley_6512::get_ElectroMeterRange"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_ElectroMeterRange</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6512a11" doxytag="Keithley_6512::electrometer_status"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__6512.html#_keithley__6512a11">electrometer_status</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer status. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a13" doxytag="Keithley_6512::reset"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>reset</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a14" doxytag="Keithley_6512::local"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>local</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a15" doxytag="Keithley_6512::remote"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>remote</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a16" doxytag="Keithley_6512::get_value"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a16">get_value</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer : cmd to get electrometer data. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a17" doxytag="Keithley_6512::autoRange_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a17">autoRange_on</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Keithley Electrometer methods. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a18" doxytag="Keithley_6512::zero_check_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_check_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a19" doxytag="Keithley_6512::zero_check_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_check_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a20" doxytag="Keithley_6512::zero_correct_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_correct_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a21" doxytag="Keithley_6512::zero_correct_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_correct_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a22" doxytag="Keithley_6512::auto_zero_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>auto_zero_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a23" doxytag="Keithley_6512::auto_zero_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>auto_zero_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a29">init_keithley</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Following functions are only supported for SCPI protocol.  <a href="#_novelec___m_c_c_e2a29"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a30" doxytag="Keithley_6512::clear_registers"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>clear_registers</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a31" doxytag="Keithley_6512::averageStateON"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>averageStateON</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a32" doxytag="Keithley_6512::averageStateOFF"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>averageStateOFF</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a33" doxytag="Keithley_6512::set_knplc"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_knplc</b> (std::string nPLC)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a34" doxytag="Keithley_6512::set_triggercount"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_triggercount</b> (std::string trigcounts)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a35" doxytag="Keithley_6512::set_averagecount"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_averagecount</b> (std::string avercounts)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a36" doxytag="Keithley_6512::set_averagecontrol"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_averagecontrol</b> (std::string averctrl)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a37" doxytag="Keithley_6512::get_knplc"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_knplc</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a38" doxytag="Keithley_6512::get_triggercount"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_triggercount</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a39" doxytag="Keithley_6512::get_averagecount"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_averagecount</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a40" doxytag="Keithley_6512::get_averagecontrol"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_averagecontrol</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a32">set_Zero_VonF_function</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Novelec Electrometer methods.  <a href="#_keithley__6514a32"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a33" doxytag="Keithley_6512::set_Offset_ZeroV1_function"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_Offset_ZeroV1_function</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a34" doxytag="Keithley_6512::set_Leakage_ZeroV2_function"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_Leakage_ZeroV2_function</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a35" doxytag="Keithley_6512::set_Test_function"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_Test_function</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a36" doxytag="Keithley_6512::mcce_on"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>mcce_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a37" doxytag="Keithley_6512::mcce_off"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>mcce_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a38" doxytag="Keithley_6512::get_ElectroMeterPolarity"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a38">get_ElectroMeterPolarity</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Novelec getters and setters. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a41" doxytag="Keithley_6512::get_ElectroMeterFrequency"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_ElectroMeterFrequency</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a42" doxytag="Keithley_6512::get_ElectroMeterGain"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_ElectroMeterGain</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a41" doxytag="Keithley_6512::set_ElectroMeterPolarity"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_ElectroMeterPolarity</b> (std::string pola)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a43" doxytag="Keithley_6512::set_ElectroMeterFrequency"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_ElectroMeterFrequency</b> (std::string freq)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a44" doxytag="Keithley_6512::set_ElectroMeterGain"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_ElectroMeterGain</b> (std::string gain)</td></tr>
+
+<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p1" doxytag="Keithley_6512::_range"></a>
+short&nbsp;</td><td class="memItemRight" valign="bottom"><b>_range</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p2" doxytag="Keithley_6512::_rangeStr"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_rangeStr</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p3" doxytag="Keithley_6512::_mode"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_mode</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p4" doxytag="Keithley_6512::_electrometerProtocol"></a>
+<a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>_electrometerProtocol</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p5" doxytag="Keithley_6512::_device_proxy_name"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_device_proxy_name</b></td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+This class manage 6512 Keithley type. 
+<p>
+<dl compact><dt><b>Author:</b></dt><dd>Xavier Elattaoui </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>11-2006 </dd></dl>
+
+<p>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="_novelec___m_c_c_e2a29" doxytag="Keithley_6512::init_keithley"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void AbstractElectrometerClass::init_keithley           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">void&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Following functions are only supported for SCPI protocol. 
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="_keithley__6514a32" doxytag="Keithley_6512::set_Zero_VonF_function"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">virtual void AbstractElectrometerClass::set_Zero_VonF_function           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">void&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [virtual, inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Novelec Electrometer methods. 
+<p>
+Following functions are only supported for Novelec Protocol
+<p>
+Reimplemented in <a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a4">Novelec_MCCE2</a>.    </td>
+  </tr>
+</table>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="_keithley__6512_8h-source.html">Keithley_6512.h</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:21 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/class_keithley__6512.png b/doc/html/class_keithley__6512.png
new file mode 100644
index 0000000000000000000000000000000000000000..a9e881155c89cfefacb2c10876509b1d991489a0
Binary files /dev/null and b/doc/html/class_keithley__6512.png differ
diff --git a/doc/html/class_keithley__6514-members.html b/doc/html/class_keithley__6514-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..6dfe5c62cd47067171c2c51d28b7c800663d035d
--- /dev/null
+++ b/doc/html/class_keithley__6514-members.html
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>Keithley_6514 Member List</h1>This is the complete list of members for <a class="el" href="class_keithley__6514.html">Keithley_6514</a>, including all inherited members.<p><table>
+  <tr bgcolor="#f0f0f0"><td><b>_device_proxy_name</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_electrometerProtocol</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_mode</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_range</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_rangeStr</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_abstract_electrometer_classa0">AbstractElectrometerClass</a>(std::string comLink_device_name)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>auto_zero_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>auto_zero_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>autoRange_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a17">autoRange_on</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>averageStateOFF</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>averageStateON</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>clear_registers</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a44">electrometer_status</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_averagecontrol</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_averagecount</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_ElectroMeterFrequency</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_ElectroMeterGain</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a45">get_ElectroMeterMode</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a38">get_ElectroMeterPolarity</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_ElectroMeterRange</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_knplc</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_triggercount</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a16">get_value</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a29">init_keithley</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley__6514.html#_keithley__6514a0">Keithley_6514</a>(std::string &amp;comLink_device_name)</td><td><a class="el" href="class_keithley__6514.html">Keithley_6514</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>local</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>mcce_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>mcce_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>range_down</b>(void) (defined in <a class="el" href="class_keithley__6514.html">Keithley_6514</a>)</td><td><a class="el" href="class_keithley__6514.html">Keithley_6514</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley__6514.html#_keithley__6514a2">range_up</a>(void)</td><td><a class="el" href="class_keithley__6514.html">Keithley_6514</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>remote</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>reset</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_averagecontrol</b>(std::string averctrl) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_averagecount</b>(std::string avercounts) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_ElectroMeterFrequency</b>(std::string freq) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_ElectroMeterGain</b>(std::string gain) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_ElectroMeterPolarity</b>(std::string pola) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_knplc</b>(std::string nPLC) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_Leakage_ZeroV2_function</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_Offset_ZeroV1_function</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_Test_function</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_triggercount</b>(std::string trigcounts) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a32">set_Zero_VonF_function</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley__6514.html#_keithley__6514a4">setAmperMeterMode</a>(void)</td><td><a class="el" href="class_keithley__6514.html">Keithley_6514</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setCoulombMeterMode</b>(void) (defined in <a class="el" href="class_keithley__6514.html">Keithley_6514</a>)</td><td><a class="el" href="class_keithley__6514.html">Keithley_6514</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setOhmMeterMode</b>(void) (defined in <a class="el" href="class_keithley__6514.html">Keithley_6514</a>)</td><td><a class="el" href="class_keithley__6514.html">Keithley_6514</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setVoltMeterMode</b>(void) (defined in <a class="el" href="class_keithley__6514.html">Keithley_6514</a>)</td><td><a class="el" href="class_keithley__6514.html">Keithley_6514</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_check_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_check_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_correct_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_correct_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_abstract_electrometer_classa1">~AbstractElectrometerClass</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley__6514.html#_keithley__6514a1">~Keithley_6514</a>(void)</td><td><a class="el" href="class_keithley__6514.html">Keithley_6514</a></td><td><code> [virtual]</code></td></tr>
+</table><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:21 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/class_keithley__6514.html b/doc/html/class_keithley__6514.html
new file mode 100644
index 0000000000000000000000000000000000000000..e154e090b778ad3ec0392c5ef781fa698f8e0390
--- /dev/null
+++ b/doc/html/class_keithley__6514.html
@@ -0,0 +1,267 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Keithley_6514 Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>Keithley_6514 Class Reference<br>
+<small>
+[<a class="el" href="group___s_c_p_i.html">Keithley</a>]</small>
+</h1>This class manage 6514 Keithley type.  
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="_keithley__6514_8h-source.html">Keithley_6514.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for Keithley_6514:
+<p><center><img src="class_keithley__6514.png" usemap="#Keithley_6514_map" border="0" alt=""></center>
+<map name="Keithley_6514_map">
+<area href="class_abstract_electrometer_class.html" alt="AbstractElectrometerClass" shape="rect" coords="0,0,161,24">
+</map>
+<a href="class_keithley__6514-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a0" doxytag="Keithley_6514::Keithley_6514"></a>
+&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__6514.html#_keithley__6514a0">Keithley_6514</a> (std::string &amp;comLink_device_name)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialization. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a1" doxytag="Keithley_6514::~Keithley_6514"></a>
+virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__6514.html#_keithley__6514a1">~Keithley_6514</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Release resources. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a2" doxytag="Keithley_6514::range_up"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__6514.html#_keithley__6514a2">range_up</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Device dependent commands. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a3" doxytag="Keithley_6514::range_down"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>range_down</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a4" doxytag="Keithley_6514::setAmperMeterMode"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__6514.html#_keithley__6514a4">setAmperMeterMode</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer Mode. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a5" doxytag="Keithley_6514::setVoltMeterMode"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setVoltMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a6" doxytag="Keithley_6514::setOhmMeterMode"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setOhmMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a7" doxytag="Keithley_6514::setCoulombMeterMode"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setCoulombMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a13" doxytag="Keithley_6514::reset"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>reset</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a14" doxytag="Keithley_6514::local"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>local</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a15" doxytag="Keithley_6514::remote"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>remote</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a16" doxytag="Keithley_6514::get_value"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a16">get_value</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer : cmd to get electrometer data. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a17" doxytag="Keithley_6514::autoRange_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a17">autoRange_on</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Keithley Electrometer methods. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a18" doxytag="Keithley_6514::zero_check_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_check_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a19" doxytag="Keithley_6514::zero_check_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_check_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a20" doxytag="Keithley_6514::zero_correct_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_correct_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a21" doxytag="Keithley_6514::zero_correct_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_correct_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a22" doxytag="Keithley_6514::auto_zero_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>auto_zero_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a23" doxytag="Keithley_6514::auto_zero_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>auto_zero_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a24" doxytag="Keithley_6514::autoRange_off"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>autoRange_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a29">init_keithley</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Following functions are only supported for SCPI protocol.  <a href="#_novelec___m_c_c_e2a29"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a30" doxytag="Keithley_6514::clear_registers"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>clear_registers</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a31" doxytag="Keithley_6514::averageStateON"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>averageStateON</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a32" doxytag="Keithley_6514::averageStateOFF"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>averageStateOFF</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a33" doxytag="Keithley_6514::set_knplc"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_knplc</b> (std::string nPLC)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a34" doxytag="Keithley_6514::set_triggercount"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_triggercount</b> (std::string trigcounts)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a35" doxytag="Keithley_6514::set_averagecount"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_averagecount</b> (std::string avercounts)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a36" doxytag="Keithley_6514::set_averagecontrol"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_averagecontrol</b> (std::string averctrl)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a37" doxytag="Keithley_6514::get_knplc"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_knplc</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a38" doxytag="Keithley_6514::get_triggercount"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_triggercount</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a39" doxytag="Keithley_6514::get_averagecount"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_averagecount</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a40" doxytag="Keithley_6514::get_averagecontrol"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_averagecontrol</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a32">set_Zero_VonF_function</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Novelec Electrometer methods.  <a href="#_keithley__6514a32"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a33" doxytag="Keithley_6514::set_Offset_ZeroV1_function"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_Offset_ZeroV1_function</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a34" doxytag="Keithley_6514::set_Leakage_ZeroV2_function"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_Leakage_ZeroV2_function</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a35" doxytag="Keithley_6514::set_Test_function"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_Test_function</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a36" doxytag="Keithley_6514::mcce_on"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>mcce_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a37" doxytag="Keithley_6514::mcce_off"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>mcce_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a38" doxytag="Keithley_6514::get_ElectroMeterPolarity"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a38">get_ElectroMeterPolarity</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Novelec getters and setters. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a41" doxytag="Keithley_6514::get_ElectroMeterFrequency"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_ElectroMeterFrequency</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a42" doxytag="Keithley_6514::get_ElectroMeterGain"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_ElectroMeterGain</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a41" doxytag="Keithley_6514::set_ElectroMeterPolarity"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_ElectroMeterPolarity</b> (std::string pola)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a43" doxytag="Keithley_6514::set_ElectroMeterFrequency"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_ElectroMeterFrequency</b> (std::string freq)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a44" doxytag="Keithley_6514::set_ElectroMeterGain"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_ElectroMeterGain</b> (std::string gain)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley__6514a44" doxytag="Keithley_6514::electrometer_status"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a44">electrometer_status</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer Status. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a45" doxytag="Keithley_6514::get_ElectroMeterMode"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a45">get_ElectroMeterMode</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Common getters and setters. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a46" doxytag="Keithley_6514::get_ElectroMeterRange"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_ElectroMeterRange</b> (void)</td></tr>
+
+<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p1" doxytag="Keithley_6514::_range"></a>
+short&nbsp;</td><td class="memItemRight" valign="bottom"><b>_range</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p2" doxytag="Keithley_6514::_rangeStr"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_rangeStr</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p3" doxytag="Keithley_6514::_mode"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_mode</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p4" doxytag="Keithley_6514::_electrometerProtocol"></a>
+<a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>_electrometerProtocol</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p5" doxytag="Keithley_6514::_device_proxy_name"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_device_proxy_name</b></td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+This class manage 6514 Keithley type. 
+<p>
+<dl compact><dt><b>Author:</b></dt><dd>Xavier Elattaoui </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>11-2006 </dd></dl>
+
+<p>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="_novelec___m_c_c_e2a29" doxytag="Keithley_6514::init_keithley"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void AbstractElectrometerClass::init_keithley           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">void&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Following functions are only supported for SCPI protocol. 
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="_keithley__6514a32" doxytag="Keithley_6514::set_Zero_VonF_function"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">virtual void AbstractElectrometerClass::set_Zero_VonF_function           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">void&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [virtual, inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Novelec Electrometer methods. 
+<p>
+Following functions are only supported for Novelec Protocol
+<p>
+Reimplemented in <a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a4">Novelec_MCCE2</a>.    </td>
+  </tr>
+</table>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="_keithley__6514_8h-source.html">Keithley_6514.h</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:21 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/class_keithley__6514.png b/doc/html/class_keithley__6514.png
new file mode 100644
index 0000000000000000000000000000000000000000..d39d86fe91640033faed0dd350e5eaefd5930967
Binary files /dev/null and b/doc/html/class_keithley__6514.png differ
diff --git a/doc/html/class_keithley_d_d_c_protocol-members.html b/doc/html/class_keithley_d_d_c_protocol-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..064bcddf7b133ae816f8b57625b79585762937c7
--- /dev/null
+++ b/doc/html/class_keithley_d_d_c_protocol-members.html
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>KeithleyDDCProtocol Member List</h1>This is the complete list of members for <a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a>, including all inherited members.<p><table>
+  <tr bgcolor="#f0f0f0"><td><b>_communication_link</b> (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_mode</b> (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_range</b> (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>auto_zero_off</b>(void) (defined in <a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a>)</td><td><a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>auto_zero_on</b>(void) (defined in <a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a>)</td><td><a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>autoRange_off</b>(void) (defined in <a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a>)</td><td><a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>autoRange_OFF_forK486_487</b>(void) (defined in <a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a>)</td><td><a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>autoRange_OFF_forK617_6512</b>(void) (defined in <a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a>)</td><td><a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>autoRange_on</b>(void) (defined in <a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a>)</td><td><a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>averageStateOFF</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>averageStateON</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>clear_registers</b>(void) (defined in <a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a>)</td><td><a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_electrometer_protocol.html#_electrometer_protocola0">ElectrometerProtocol</a>()</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_averagecontrol</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_averagecount</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_frequency</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_gain</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_knplc</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley_d_d_c_protocol.html#_keithley_d_d_c_protocola22">get_mode</a>(void)</td><td><a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_polarity</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_range</b>(void) (defined in <a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a>)</td><td><a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley_d_d_c_protocol.html#_keithley_d_d_c_protocola21">get_raw_status</a>(void)</td><td><a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_triggercount</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley_d_d_c_protocol.html#_keithley_d_d_c_protocola14">get_value</a>(void)</td><td><a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_electrometer_protocol.html#_novelec_protocola24">init_keithley</a>(void)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley_d_d_c_protocol.html#_keithley_d_d_c_protocola0">KeithleyDDCProtocol</a>(std::string &amp;gpib_device_name)</td><td><a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>local</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>remote</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>reset</b>(void) (defined in <a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a>)</td><td><a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_averagecontrol</b>(std::string averctrl) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_averagecount</b>(std::string avercounts) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_frequency</b>(std::string freq) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_gain</b>(std::string gain) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_knplc</b>(std::string nPLC) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_polarity</b>(std::string pola) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley_d_d_c_protocol.html#_keithley_d_d_c_protocola2">set_range</a>(std::string value)</td><td><a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_triggercount</b>(std::string trigcounts) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley_d_d_c_protocol.html#_keithley_d_d_c_protocola15">setAmperMeterMode</a>(void)</td><td><a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setAmperMeterMode_forK487</b>(void) (defined in <a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a>)</td><td><a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setCoulombMeterMode</b>(void) (defined in <a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a>)</td><td><a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setOhmMeterMode</b>(void) (defined in <a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a>)</td><td><a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setVoltMeterMode</b>(void) (defined in <a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a>)</td><td><a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>switch_MCCE2_OFF</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_electrometer_protocol.html#_keithley_s_c_p_i_protocola37">switch_MCCE2_ON</a>(void)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>unable_leakage_zeroV2_func</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>unable_offset_zeroV1_func</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>unable_test_func</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>unable_zeroVF_func</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_check_off</b>(void) (defined in <a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a>)</td><td><a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_check_on</b>(void) (defined in <a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a>)</td><td><a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_correct_off</b>(void) (defined in <a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a>)</td><td><a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_correct_on</b>(void) (defined in <a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a>)</td><td><a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_electrometer_protocol.html#_electrometer_protocola1">~ElectrometerProtocol</a>()</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley_d_d_c_protocol.html#_keithley_d_d_c_protocola1">~KeithleyDDCProtocol</a>(void)</td><td><a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a></td><td><code> [virtual]</code></td></tr>
+</table><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:21 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/class_keithley_d_d_c_protocol.html b/doc/html/class_keithley_d_d_c_protocol.html
new file mode 100644
index 0000000000000000000000000000000000000000..6fb1866dc31ba333deb8c012ddb22e68e575d277
--- /dev/null
+++ b/doc/html/class_keithley_d_d_c_protocol.html
@@ -0,0 +1,204 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: KeithleyDDCProtocol Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>KeithleyDDCProtocol Class Reference<br>
+<small>
+[<a class="el" href="group___standard.html">Commands Protocol</a>]</small>
+</h1>This class manage the Keithley DDC Commands Protocol.  
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="_keithley_d_d_c_protocol_8h-source.html">KeithleyDDCProtocol.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for KeithleyDDCProtocol:
+<p><center><img src="class_keithley_d_d_c_protocol.png" usemap="#KeithleyDDCProtocol_map" border="0" alt=""></center>
+<map name="KeithleyDDCProtocol_map">
+<area href="class_electrometer_protocol.html" alt="ElectrometerProtocol" shape="rect" coords="0,0,131,24">
+</map>
+<a href="class_keithley_d_d_c_protocol-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_d_d_c_protocola0" doxytag="KeithleyDDCProtocol::KeithleyDDCProtocol"></a>
+&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley_d_d_c_protocol.html#_keithley_d_d_c_protocola0">KeithleyDDCProtocol</a> (std::string &amp;gpib_device_name)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialization. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_d_d_c_protocola1" doxytag="KeithleyDDCProtocol::~KeithleyDDCProtocol"></a>
+virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley_d_d_c_protocol.html#_keithley_d_d_c_protocola1">~KeithleyDDCProtocol</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Release resources. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_d_d_c_protocola2" doxytag="KeithleyDDCProtocol::set_range"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley_d_d_c_protocol.html#_keithley_d_d_c_protocola2">set_range</a> (std::string value)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer Functions. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_d_d_c_protocola3" doxytag="KeithleyDDCProtocol::autoRange_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>autoRange_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_d_d_c_protocola4" doxytag="KeithleyDDCProtocol::autoRange_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>autoRange_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_d_d_c_protocola5" doxytag="KeithleyDDCProtocol::autoRange_OFF_forK486_487"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>autoRange_OFF_forK486_487</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_d_d_c_protocola6" doxytag="KeithleyDDCProtocol::autoRange_OFF_forK617_6512"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>autoRange_OFF_forK617_6512</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_d_d_c_protocola7" doxytag="KeithleyDDCProtocol::zero_check_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_check_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_d_d_c_protocola8" doxytag="KeithleyDDCProtocol::zero_check_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_check_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_d_d_c_protocola9" doxytag="KeithleyDDCProtocol::zero_correct_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_correct_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_d_d_c_protocola10" doxytag="KeithleyDDCProtocol::zero_correct_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_correct_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_d_d_c_protocola11" doxytag="KeithleyDDCProtocol::auto_zero_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>auto_zero_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_d_d_c_protocola12" doxytag="KeithleyDDCProtocol::auto_zero_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>auto_zero_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_d_d_c_protocola13" doxytag="KeithleyDDCProtocol::reset"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>reset</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_d_d_c_protocola14" doxytag="KeithleyDDCProtocol::get_value"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley_d_d_c_protocol.html#_keithley_d_d_c_protocola14">get_value</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer : cmd to get electrometer data. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_d_d_c_protocola15" doxytag="KeithleyDDCProtocol::setAmperMeterMode"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley_d_d_c_protocol.html#_keithley_d_d_c_protocola15">setAmperMeterMode</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer Mode. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_d_d_c_protocola16" doxytag="KeithleyDDCProtocol::setAmperMeterMode_forK487"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setAmperMeterMode_forK487</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_d_d_c_protocola17" doxytag="KeithleyDDCProtocol::setVoltMeterMode"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setVoltMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_d_d_c_protocola18" doxytag="KeithleyDDCProtocol::setOhmMeterMode"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setOhmMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_d_d_c_protocola19" doxytag="KeithleyDDCProtocol::setCoulombMeterMode"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setCoulombMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_d_d_c_protocola20" doxytag="KeithleyDDCProtocol::clear_registers"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>clear_registers</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_d_d_c_protocola21" doxytag="KeithleyDDCProtocol::get_raw_status"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley_d_d_c_protocol.html#_keithley_d_d_c_protocola21">get_raw_status</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get Raw Electrometer Status. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_d_d_c_protocola22" doxytag="KeithleyDDCProtocol::get_mode"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley_d_d_c_protocol.html#_keithley_d_d_c_protocola22">get_mode</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer Mode : getters and setters. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_d_d_c_protocola23" doxytag="KeithleyDDCProtocol::get_range"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_range</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola35" doxytag="KeithleyDDCProtocol::local"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>local</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola36" doxytag="KeithleyDDCProtocol::remote"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>remote</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola24" doxytag="KeithleyDDCProtocol::init_keithley"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_electrometer_protocol.html#_novelec_protocola24">init_keithley</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer : Keithley protocol dependent commands. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola25" doxytag="KeithleyDDCProtocol::set_knplc"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_knplc</b> (std::string nPLC)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola26" doxytag="KeithleyDDCProtocol::set_triggercount"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_triggercount</b> (std::string trigcounts)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola27" doxytag="KeithleyDDCProtocol::set_averagecount"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_averagecount</b> (std::string avercounts)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola28" doxytag="KeithleyDDCProtocol::set_averagecontrol"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_averagecontrol</b> (std::string averctrl)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola29" doxytag="KeithleyDDCProtocol::get_knplc"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_knplc</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola30" doxytag="KeithleyDDCProtocol::get_triggercount"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_triggercount</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola31" doxytag="KeithleyDDCProtocol::get_averagecount"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_averagecount</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola32" doxytag="KeithleyDDCProtocol::get_averagecontrol"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_averagecontrol</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola34" doxytag="KeithleyDDCProtocol::averageStateON"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>averageStateON</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola35" doxytag="KeithleyDDCProtocol::averageStateOFF"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>averageStateOFF</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola37" doxytag="KeithleyDDCProtocol::switch_MCCE2_ON"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_electrometer_protocol.html#_keithley_s_c_p_i_protocola37">switch_MCCE2_ON</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer : Novelec protocol dependent commands. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola38" doxytag="KeithleyDDCProtocol::switch_MCCE2_OFF"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>switch_MCCE2_OFF</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola39" doxytag="KeithleyDDCProtocol::unable_zeroVF_func"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>unable_zeroVF_func</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola40" doxytag="KeithleyDDCProtocol::unable_offset_zeroV1_func"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>unable_offset_zeroV1_func</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola41" doxytag="KeithleyDDCProtocol::unable_leakage_zeroV2_func"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>unable_leakage_zeroV2_func</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola42" doxytag="KeithleyDDCProtocol::unable_test_func"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>unable_test_func</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola43" doxytag="KeithleyDDCProtocol::get_polarity"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_polarity</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola44" doxytag="KeithleyDDCProtocol::get_frequency"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_frequency</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola45" doxytag="KeithleyDDCProtocol::get_gain"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_gain</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola46" doxytag="KeithleyDDCProtocol::set_polarity"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_polarity</b> (std::string pola)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola47" doxytag="KeithleyDDCProtocol::set_frequency"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_frequency</b> (std::string freq)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola48" doxytag="KeithleyDDCProtocol::set_gain"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_gain</b> (std::string gain)</td></tr>
+
+<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocolp4" doxytag="KeithleyDDCProtocol::_range"></a>
+short&nbsp;</td><td class="memItemRight" valign="bottom"><b>_range</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocolp5" doxytag="KeithleyDDCProtocol::_mode"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_mode</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocolp6" doxytag="KeithleyDDCProtocol::_communication_link"></a>
+<a class="el" href="class_communication_link.html">CommunicationLink</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>_communication_link</b></td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+This class manage the Keithley DDC Commands Protocol. 
+<p>
+<dl compact><dt><b>Author:</b></dt><dd>Xavier Elattaoui </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>11-2006 </dd></dl>
+
+<p>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="_keithley_d_d_c_protocol_8h-source.html">KeithleyDDCProtocol.h</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:21 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/class_keithley_d_d_c_protocol.png b/doc/html/class_keithley_d_d_c_protocol.png
new file mode 100644
index 0000000000000000000000000000000000000000..7f1a38455b77c5a95e468fd14922b308e7f6864d
Binary files /dev/null and b/doc/html/class_keithley_d_d_c_protocol.png differ
diff --git a/doc/html/class_keithley_s_c_p_i_protocol-members.html b/doc/html/class_keithley_s_c_p_i_protocol-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..ad2960de3760d484203169b4f9f8d0fd155d3f52
--- /dev/null
+++ b/doc/html/class_keithley_s_c_p_i_protocol-members.html
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>KeithleySCPIProtocol Member List</h1>This is the complete list of members for <a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a>, including all inherited members.<p><table>
+  <tr bgcolor="#f0f0f0"><td><b>_communication_link</b> (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_mode</b> (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_range</b> (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>auto_zero_off</b>(void) (defined in <a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a>)</td><td><a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>auto_zero_on</b>(void) (defined in <a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a>)</td><td><a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>autoRange_off</b>(void) (defined in <a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a>)</td><td><a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>autoRange_on</b>(void) (defined in <a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a>)</td><td><a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>averageStateOFF</b>(void) (defined in <a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a>)</td><td><a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>averageStateON</b>(void) (defined in <a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a>)</td><td><a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>clear_registers</b>(void) (defined in <a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a>)</td><td><a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_electrometer_protocol.html#_electrometer_protocola0">ElectrometerProtocol</a>()</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_averagecontrol</b>(void) (defined in <a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a>)</td><td><a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_averagecount</b>(void) (defined in <a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a>)</td><td><a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_frequency</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_gain</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_knplc</b>(void) (defined in <a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a>)</td><td><a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola32">get_mode</a>(void)</td><td><a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_polarity</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_range</b>(void) (defined in <a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a>)</td><td><a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola31">get_raw_status</a>(void)</td><td><a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_triggercount</b>(void) (defined in <a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a>)</td><td><a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola18">get_value</a>(void)</td><td><a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola19">init_keithley</a>(void)</td><td><a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola0">KeithleySCPIProtocol</a>(std::string &amp;gpib_device_name)</td><td><a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>local</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>remote</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>reset</b>(void) (defined in <a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a>)</td><td><a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_averagecontrol</b>(std::string averctrl) (defined in <a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a>)</td><td><a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_averagecount</b>(std::string avercounts) (defined in <a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a>)</td><td><a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_frequency</b>(std::string freq) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_gain</b>(std::string gain) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola34">set_isDiffSuportedMode</a>(bool supportDiffMode)</td><td><a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a></td><td><code> [inline]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_knplc</b>(std::string nPLC) (defined in <a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a>)</td><td><a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_polarity</b>(std::string pola) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola2">set_range</a>(std::string value)</td><td><a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_triggercount</b>(std::string trigcounts) (defined in <a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a>)</td><td><a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola14">setAmperMeterMode</a>(void)</td><td><a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setCoulombMeterMode</b>(void) (defined in <a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a>)</td><td><a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setOhmMeterMode</b>(void) (defined in <a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a>)</td><td><a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setVoltMeterMode</b>(void) (defined in <a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a>)</td><td><a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>switch_MCCE2_OFF</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_electrometer_protocol.html#_keithley_s_c_p_i_protocola37">switch_MCCE2_ON</a>(void)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>unable_leakage_zeroV2_func</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>unable_offset_zeroV1_func</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>unable_test_func</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>unable_zeroVF_func</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_check_off</b>(void) (defined in <a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a>)</td><td><a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_check_on</b>(void) (defined in <a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a>)</td><td><a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_correct_off</b>(void) (defined in <a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a>)</td><td><a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_correct_on</b>(void) (defined in <a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a>)</td><td><a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_correct_state_off</b>(void) (defined in <a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a>)</td><td><a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_correct_state_on</b>(void) (defined in <a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a>)</td><td><a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_electrometer_protocol.html#_electrometer_protocola1">~ElectrometerProtocol</a>()</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola1">~KeithleySCPIProtocol</a>(void)</td><td><a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a></td><td><code> [virtual]</code></td></tr>
+</table><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:21 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/class_keithley_s_c_p_i_protocol.html b/doc/html/class_keithley_s_c_p_i_protocol.html
new file mode 100644
index 0000000000000000000000000000000000000000..5aec6a083589ea0bbb3c84c8d1003329c8aae652
--- /dev/null
+++ b/doc/html/class_keithley_s_c_p_i_protocol.html
@@ -0,0 +1,232 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: KeithleySCPIProtocol Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>KeithleySCPIProtocol Class Reference<br>
+<small>
+[<a class="el" href="group___standard.html">Commands Protocol</a>]</small>
+</h1>This class manage the Keithley SCPI Commands Protocol.  
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="_keithley_s_c_p_i_protocol_8h-source.html">KeithleySCPIProtocol.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for KeithleySCPIProtocol:
+<p><center><img src="class_keithley_s_c_p_i_protocol.png" usemap="#KeithleySCPIProtocol_map" border="0" alt=""></center>
+<map name="KeithleySCPIProtocol_map">
+<area href="class_electrometer_protocol.html" alt="ElectrometerProtocol" shape="rect" coords="0,0,132,24">
+</map>
+<a href="class_keithley_s_c_p_i_protocol-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola0" doxytag="KeithleySCPIProtocol::KeithleySCPIProtocol"></a>
+&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola0">KeithleySCPIProtocol</a> (std::string &amp;gpib_device_name)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialization. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola1" doxytag="KeithleySCPIProtocol::~KeithleySCPIProtocol"></a>
+virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola1">~KeithleySCPIProtocol</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Release resources. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola2" doxytag="KeithleySCPIProtocol::set_range"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola2">set_range</a> (std::string value)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer Functions. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola3" doxytag="KeithleySCPIProtocol::autoRange_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>autoRange_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola4" doxytag="KeithleySCPIProtocol::autoRange_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>autoRange_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola5" doxytag="KeithleySCPIProtocol::zero_check_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_check_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola6" doxytag="KeithleySCPIProtocol::zero_check_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_check_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola7" doxytag="KeithleySCPIProtocol::zero_correct_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_correct_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola8" doxytag="KeithleySCPIProtocol::zero_correct_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_correct_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola9" doxytag="KeithleySCPIProtocol::zero_correct_state_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_correct_state_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola10" doxytag="KeithleySCPIProtocol::zero_correct_state_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_correct_state_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola11" doxytag="KeithleySCPIProtocol::auto_zero_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>auto_zero_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola12" doxytag="KeithleySCPIProtocol::auto_zero_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>auto_zero_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola13" doxytag="KeithleySCPIProtocol::reset"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>reset</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola14" doxytag="KeithleySCPIProtocol::setAmperMeterMode"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola14">setAmperMeterMode</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer Mode. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola15" doxytag="KeithleySCPIProtocol::setVoltMeterMode"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setVoltMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola16" doxytag="KeithleySCPIProtocol::setOhmMeterMode"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setOhmMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola17" doxytag="KeithleySCPIProtocol::setCoulombMeterMode"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setCoulombMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola18" doxytag="KeithleySCPIProtocol::get_value"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola18">get_value</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer : cmd to get electrometer data. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola19" doxytag="KeithleySCPIProtocol::init_keithley"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola19">init_keithley</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer : Keithley protocol dependent commands. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola20" doxytag="KeithleySCPIProtocol::set_knplc"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_knplc</b> (std::string nPLC)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola21" doxytag="KeithleySCPIProtocol::set_triggercount"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_triggercount</b> (std::string trigcounts)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola22" doxytag="KeithleySCPIProtocol::set_averagecount"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_averagecount</b> (std::string avercounts)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola23" doxytag="KeithleySCPIProtocol::set_averagecontrol"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_averagecontrol</b> (std::string averctrl)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola24" doxytag="KeithleySCPIProtocol::get_knplc"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_knplc</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola25" doxytag="KeithleySCPIProtocol::get_triggercount"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_triggercount</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola26" doxytag="KeithleySCPIProtocol::get_averagecount"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_averagecount</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola27" doxytag="KeithleySCPIProtocol::get_averagecontrol"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_averagecontrol</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola28" doxytag="KeithleySCPIProtocol::clear_registers"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>clear_registers</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola29" doxytag="KeithleySCPIProtocol::averageStateON"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>averageStateON</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola30" doxytag="KeithleySCPIProtocol::averageStateOFF"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>averageStateOFF</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola31" doxytag="KeithleySCPIProtocol::get_raw_status"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola31">get_raw_status</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get Raw Electrometer Status. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola32" doxytag="KeithleySCPIProtocol::get_mode"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola32">get_mode</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer : getter and setter. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola33" doxytag="KeithleySCPIProtocol::get_range"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_range</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola34">set_isDiffSuportedMode</a> (bool supportDiffMode)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola35" doxytag="KeithleySCPIProtocol::local"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>local</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola36" doxytag="KeithleySCPIProtocol::remote"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>remote</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola37" doxytag="KeithleySCPIProtocol::switch_MCCE2_ON"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_electrometer_protocol.html#_keithley_s_c_p_i_protocola37">switch_MCCE2_ON</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer : Novelec protocol dependent commands. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola38" doxytag="KeithleySCPIProtocol::switch_MCCE2_OFF"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>switch_MCCE2_OFF</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola39" doxytag="KeithleySCPIProtocol::unable_zeroVF_func"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>unable_zeroVF_func</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola40" doxytag="KeithleySCPIProtocol::unable_offset_zeroV1_func"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>unable_offset_zeroV1_func</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola41" doxytag="KeithleySCPIProtocol::unable_leakage_zeroV2_func"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>unable_leakage_zeroV2_func</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola42" doxytag="KeithleySCPIProtocol::unable_test_func"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>unable_test_func</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola43" doxytag="KeithleySCPIProtocol::get_polarity"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_polarity</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola44" doxytag="KeithleySCPIProtocol::get_frequency"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_frequency</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola45" doxytag="KeithleySCPIProtocol::get_gain"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_gain</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola46" doxytag="KeithleySCPIProtocol::set_polarity"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_polarity</b> (std::string pola)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola47" doxytag="KeithleySCPIProtocol::set_frequency"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_frequency</b> (std::string freq)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_keithley_s_c_p_i_protocola48" doxytag="KeithleySCPIProtocol::set_gain"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_gain</b> (std::string gain)</td></tr>
+
+<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocolp4" doxytag="KeithleySCPIProtocol::_range"></a>
+short&nbsp;</td><td class="memItemRight" valign="bottom"><b>_range</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocolp5" doxytag="KeithleySCPIProtocol::_mode"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_mode</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocolp6" doxytag="KeithleySCPIProtocol::_communication_link"></a>
+<a class="el" href="class_communication_link.html">CommunicationLink</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>_communication_link</b></td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+This class manage the Keithley SCPI Commands Protocol. 
+<p>
+<dl compact><dt><b>Author:</b></dt><dd>Xavier Elattaoui </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>11-2006 </dd></dl>
+
+<p>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="_keithley_s_c_p_i_protocola34" doxytag="KeithleySCPIProtocol::set_isDiffSuportedMode"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void KeithleySCPIProtocol::set_isDiffSuportedMode           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">bool&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>supportDiffMode</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [inline]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="_keithley_s_c_p_i_protocol_8h-source.html">KeithleySCPIProtocol.h</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:21 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/class_keithley_s_c_p_i_protocol.png b/doc/html/class_keithley_s_c_p_i_protocol.png
new file mode 100644
index 0000000000000000000000000000000000000000..1585c89d786fae03c0f6157ab43c8d37ef713d40
Binary files /dev/null and b/doc/html/class_keithley_s_c_p_i_protocol.png differ
diff --git a/doc/html/class_n___photo_conducteur-members.html b/doc/html/class_n___photo_conducteur-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..308aa69dcb9f6ad5541a66c853a4d8af0e1860b4
--- /dev/null
+++ b/doc/html/class_n___photo_conducteur-members.html
@@ -0,0 +1,70 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>N_PhotoConducteur Member List</h1>This is the complete list of members for <a class="el" href="class_n___photo_conducteur.html">N_PhotoConducteur</a>, including all inherited members.<p><table>
+  <tr bgcolor="#f0f0f0"><td><b>_device_proxy_name</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_electrometerProtocol</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_mode</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_range</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_rangeLimit</b> (defined in <a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a>)</td><td><a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_rangeStr</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_abstract_electrometer_classa0">AbstractElectrometerClass</a>(std::string comLink_device_name)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>auto_zero_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>auto_zero_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>autoRange_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a17">autoRange_on</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>averageStateOFF</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>averageStateON</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>clear_registers</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a10">electrometer_status</a>(void)</td><td><a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_averagecontrol</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_averagecount</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_ElectroMeterFrequency</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_n___photo_conducteur.html#_n___photo_conducteura4">get_ElectroMeterGain</a>(void)</td><td><a class="el" href="class_n___photo_conducteur.html">N_PhotoConducteur</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a45">get_ElectroMeterMode</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a2">get_ElectroMeterPolarity</a>(void)</td><td><a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_ElectroMeterRange</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_knplc</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_triggercount</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a16">get_value</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a29">init_keithley</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>local</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>mcce_off</b>(void) (defined in <a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a>)</td><td><a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a8">mcce_on</a>(void)</td><td><a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_n___photo_conducteur.html#_n___photo_conducteura0">N_PhotoConducteur</a>(std::string &amp;comLink_device_name, short channel_address, short electroType)</td><td><a class="el" href="class_n___photo_conducteur.html">N_PhotoConducteur</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a0">Novelec_MCCE2</a>(std::string &amp;comLink_device_name, short channel_address, short electroType)</td><td><a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>range_down</b>(void) (defined in <a class="el" href="class_n___photo_conducteur.html">N_PhotoConducteur</a>)</td><td><a class="el" href="class_n___photo_conducteur.html">N_PhotoConducteur</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_n___photo_conducteur.html#_n___photo_conducteura2">range_up</a>(void)</td><td><a class="el" href="class_n___photo_conducteur.html">N_PhotoConducteur</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>remote</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>reset</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_averagecontrol</b>(std::string averctrl) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_averagecount</b>(std::string avercounts) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_ElectroMeterFrequency</b>(std::string freq) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_ElectroMeterGain</b>(std::string) (defined in <a class="el" href="class_n___photo_conducteur.html">N_PhotoConducteur</a>)</td><td><a class="el" href="class_n___photo_conducteur.html">N_PhotoConducteur</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_ElectroMeterPolarity</b>(std::string) (defined in <a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a>)</td><td><a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_knplc</b>(std::string nPLC) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_Leakage_ZeroV2_function</b>(void) (defined in <a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a>)</td><td><a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_Offset_ZeroV1_function</b>(void) (defined in <a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a>)</td><td><a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_Test_function</b>(void) (defined in <a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a>)</td><td><a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_triggercount</b>(std::string trigcounts) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a4">set_Zero_VonF_function</a>(void)</td><td><a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setAmperMeterMode</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setCoulombMeterMode</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setOhmMeterMode</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setVoltMeterMode</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_check_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_check_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_correct_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_correct_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_abstract_electrometer_classa1">~AbstractElectrometerClass</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_n___photo_conducteur.html#_n___photo_conducteura1">~N_PhotoConducteur</a>(void)</td><td><a class="el" href="class_n___photo_conducteur.html">N_PhotoConducteur</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a1">~Novelec_MCCE2</a>(void)</td><td><a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a></td><td><code> [virtual]</code></td></tr>
+</table><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:21 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/class_n___photo_conducteur.html b/doc/html/class_n___photo_conducteur.html
new file mode 100644
index 0000000000000000000000000000000000000000..8d7c3ef8e98744eb7692b617a66902a0ea417299
--- /dev/null
+++ b/doc/html/class_n___photo_conducteur.html
@@ -0,0 +1,272 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: N_PhotoConducteur Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>N_PhotoConducteur Class Reference<br>
+<small>
+[<a class="el" href="group___novelec.html">Novelec</a>]</small>
+</h1>This class manage Novelec PhotoConductor types.  
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="_n___photo_conducteur_8h-source.html">N_PhotoConducteur.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for N_PhotoConducteur:
+<p><center><img src="class_n___photo_conducteur.png" usemap="#N_PhotoConducteur_map" border="0" alt=""></center>
+<map name="N_PhotoConducteur_map">
+<area href="class_novelec___m_c_c_e2.html" alt="Novelec_MCCE2" shape="rect" coords="0,56,161,80">
+<area href="class_abstract_electrometer_class.html" alt="AbstractElectrometerClass" shape="rect" coords="0,0,161,24">
+</map>
+<a href="class_n___photo_conducteur-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_n___photo_conducteura0" doxytag="N_PhotoConducteur::N_PhotoConducteur"></a>
+&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_n___photo_conducteur.html#_n___photo_conducteura0">N_PhotoConducteur</a> (std::string &amp;comLink_device_name, short channel_address, short electroType)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialization. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_n___photo_conducteura1" doxytag="N_PhotoConducteur::~N_PhotoConducteur"></a>
+virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_n___photo_conducteur.html#_n___photo_conducteura1">~N_PhotoConducteur</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Release resources. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_n___photo_conducteura2" doxytag="N_PhotoConducteur::range_up"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_n___photo_conducteur.html#_n___photo_conducteura2">range_up</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">device dependent commands. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_n___photo_conducteura3" doxytag="N_PhotoConducteur::range_down"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>range_down</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_n___photo_conducteura4" doxytag="N_PhotoConducteur::get_ElectroMeterGain"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_n___photo_conducteur.html#_n___photo_conducteura4">get_ElectroMeterGain</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">getters and setters. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_n___photo_conducteura5" doxytag="N_PhotoConducteur::set_ElectroMeterGain"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_ElectroMeterGain</b> (std::string)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a2" doxytag="N_PhotoConducteur::get_ElectroMeterPolarity"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a2">get_ElectroMeterPolarity</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Novelec getters and setters. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a3" doxytag="N_PhotoConducteur::set_ElectroMeterPolarity"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_ElectroMeterPolarity</b> (std::string)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a4" doxytag="N_PhotoConducteur::set_Zero_VonF_function"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a4">set_Zero_VonF_function</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer Functions : mode for novelec types. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a5" doxytag="N_PhotoConducteur::set_Offset_ZeroV1_function"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_Offset_ZeroV1_function</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a6" doxytag="N_PhotoConducteur::set_Leakage_ZeroV2_function"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_Leakage_ZeroV2_function</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a7" doxytag="N_PhotoConducteur::set_Test_function"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_Test_function</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a8">mcce_on</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Commands to start/stop the data acquisition.  <a href="#_novelec___m_c_c_e2a8"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a9" doxytag="N_PhotoConducteur::mcce_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>mcce_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a10" doxytag="N_PhotoConducteur::electrometer_status"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a10">electrometer_status</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer Status. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a13" doxytag="N_PhotoConducteur::reset"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>reset</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a14" doxytag="N_PhotoConducteur::local"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>local</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a15" doxytag="N_PhotoConducteur::remote"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>remote</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a16" doxytag="N_PhotoConducteur::get_value"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a16">get_value</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer : cmd to get electrometer data. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a17" doxytag="N_PhotoConducteur::autoRange_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a17">autoRange_on</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Keithley Electrometer methods. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a18" doxytag="N_PhotoConducteur::zero_check_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_check_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a19" doxytag="N_PhotoConducteur::zero_check_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_check_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a20" doxytag="N_PhotoConducteur::zero_correct_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_correct_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a21" doxytag="N_PhotoConducteur::zero_correct_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_correct_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a22" doxytag="N_PhotoConducteur::auto_zero_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>auto_zero_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a23" doxytag="N_PhotoConducteur::auto_zero_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>auto_zero_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a24" doxytag="N_PhotoConducteur::autoRange_off"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>autoRange_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a25" doxytag="N_PhotoConducteur::setAmperMeterMode"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setAmperMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a26" doxytag="N_PhotoConducteur::setVoltMeterMode"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setVoltMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a27" doxytag="N_PhotoConducteur::setOhmMeterMode"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setOhmMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a28" doxytag="N_PhotoConducteur::setCoulombMeterMode"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setCoulombMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a29">init_keithley</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Following functions are only supported for SCPI protocol.  <a href="#_novelec___m_c_c_e2a29"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a30" doxytag="N_PhotoConducteur::clear_registers"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>clear_registers</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a31" doxytag="N_PhotoConducteur::averageStateON"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>averageStateON</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a32" doxytag="N_PhotoConducteur::averageStateOFF"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>averageStateOFF</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a33" doxytag="N_PhotoConducteur::set_knplc"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_knplc</b> (std::string nPLC)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a34" doxytag="N_PhotoConducteur::set_triggercount"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_triggercount</b> (std::string trigcounts)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a35" doxytag="N_PhotoConducteur::set_averagecount"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_averagecount</b> (std::string avercounts)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a36" doxytag="N_PhotoConducteur::set_averagecontrol"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_averagecontrol</b> (std::string averctrl)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a37" doxytag="N_PhotoConducteur::get_knplc"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_knplc</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a38" doxytag="N_PhotoConducteur::get_triggercount"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_triggercount</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a39" doxytag="N_PhotoConducteur::get_averagecount"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_averagecount</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a40" doxytag="N_PhotoConducteur::get_averagecontrol"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_averagecontrol</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a41" doxytag="N_PhotoConducteur::get_ElectroMeterFrequency"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_ElectroMeterFrequency</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a43" doxytag="N_PhotoConducteur::set_ElectroMeterFrequency"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_ElectroMeterFrequency</b> (std::string freq)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a45" doxytag="N_PhotoConducteur::get_ElectroMeterMode"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a45">get_ElectroMeterMode</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Common getters and setters. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a46" doxytag="N_PhotoConducteur::get_ElectroMeterRange"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_ElectroMeterRange</b> (void)</td></tr>
+
+<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p0" doxytag="N_PhotoConducteur::_rangeLimit"></a>
+short&nbsp;</td><td class="memItemRight" valign="bottom"><b>_rangeLimit</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p1" doxytag="N_PhotoConducteur::_range"></a>
+short&nbsp;</td><td class="memItemRight" valign="bottom"><b>_range</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p2" doxytag="N_PhotoConducteur::_rangeStr"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_rangeStr</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p3" doxytag="N_PhotoConducteur::_mode"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_mode</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p4" doxytag="N_PhotoConducteur::_electrometerProtocol"></a>
+<a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>_electrometerProtocol</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p5" doxytag="N_PhotoConducteur::_device_proxy_name"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_device_proxy_name</b></td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+This class manage Novelec PhotoConductor types. 
+<p>
+<dl compact><dt><b>Author:</b></dt><dd>Xavier Elattaoui </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>11-2006 </dd></dl>
+
+<p>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="_novelec___m_c_c_e2a29" doxytag="N_PhotoConducteur::init_keithley"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void AbstractElectrometerClass::init_keithley           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">void&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Following functions are only supported for SCPI protocol. 
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="_novelec___m_c_c_e2a8" doxytag="N_PhotoConducteur::mcce_on"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void Novelec_MCCE2::mcce_on           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">void&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [virtual, inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Commands to start/stop the data acquisition. 
+<p>
+This emulate the MCCE2 key ON/OFF (all parameters must be set before switching ON the MCCE2)
+<p>
+Reimplemented from <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>.    </td>
+  </tr>
+</table>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="_n___photo_conducteur_8h-source.html">N_PhotoConducteur.h</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:21 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/class_n___photo_conducteur.png b/doc/html/class_n___photo_conducteur.png
new file mode 100644
index 0000000000000000000000000000000000000000..501bf9c0a4a9d16c69a73e191489cb1202ea54a6
Binary files /dev/null and b/doc/html/class_n___photo_conducteur.png differ
diff --git a/doc/html/class_n___photo_voltaique-members.html b/doc/html/class_n___photo_voltaique-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..4ef63cce70c89f1123505726cd48b1a35ad73cb1
--- /dev/null
+++ b/doc/html/class_n___photo_voltaique-members.html
@@ -0,0 +1,70 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>N_PhotoVoltaique Member List</h1>This is the complete list of members for <a class="el" href="class_n___photo_voltaique.html">N_PhotoVoltaique</a>, including all inherited members.<p><table>
+  <tr bgcolor="#f0f0f0"><td><b>_device_proxy_name</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_electrometerProtocol</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_mode</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_range</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_rangeLimit</b> (defined in <a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a>)</td><td><a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_rangeStr</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_abstract_electrometer_classa0">AbstractElectrometerClass</a>(std::string comLink_device_name)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>auto_zero_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>auto_zero_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>autoRange_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a17">autoRange_on</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>averageStateOFF</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>averageStateON</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>clear_registers</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a10">electrometer_status</a>(void)</td><td><a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_averagecontrol</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_averagecount</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_n___photo_voltaique.html#_n___photo_voltaiquea4">get_ElectroMeterFrequency</a>(void)</td><td><a class="el" href="class_n___photo_voltaique.html">N_PhotoVoltaique</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_ElectroMeterGain</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a45">get_ElectroMeterMode</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a2">get_ElectroMeterPolarity</a>(void)</td><td><a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_ElectroMeterRange</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_knplc</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_triggercount</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a16">get_value</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a29">init_keithley</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>local</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>mcce_off</b>(void) (defined in <a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a>)</td><td><a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a8">mcce_on</a>(void)</td><td><a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_n___photo_voltaique.html#_n___photo_voltaiquea0">N_PhotoVoltaique</a>(std::string comLink_device_name, short channel_address, short electroType)</td><td><a class="el" href="class_n___photo_voltaique.html">N_PhotoVoltaique</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a0">Novelec_MCCE2</a>(std::string &amp;comLink_device_name, short channel_address, short electroType)</td><td><a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>range_down</b>(void) (defined in <a class="el" href="class_n___photo_voltaique.html">N_PhotoVoltaique</a>)</td><td><a class="el" href="class_n___photo_voltaique.html">N_PhotoVoltaique</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_n___photo_voltaique.html#_n___photo_voltaiquea2">range_up</a>(void)</td><td><a class="el" href="class_n___photo_voltaique.html">N_PhotoVoltaique</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>remote</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>reset</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_averagecontrol</b>(std::string averctrl) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_averagecount</b>(std::string avercounts) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_ElectroMeterFrequency</b>(std::string) (defined in <a class="el" href="class_n___photo_voltaique.html">N_PhotoVoltaique</a>)</td><td><a class="el" href="class_n___photo_voltaique.html">N_PhotoVoltaique</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_ElectroMeterGain</b>(std::string gain) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_ElectroMeterPolarity</b>(std::string) (defined in <a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a>)</td><td><a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_knplc</b>(std::string nPLC) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_Leakage_ZeroV2_function</b>(void) (defined in <a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a>)</td><td><a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_Offset_ZeroV1_function</b>(void) (defined in <a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a>)</td><td><a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_Test_function</b>(void) (defined in <a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a>)</td><td><a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_triggercount</b>(std::string trigcounts) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a4">set_Zero_VonF_function</a>(void)</td><td><a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setAmperMeterMode</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setCoulombMeterMode</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setOhmMeterMode</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setVoltMeterMode</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_check_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_check_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_correct_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_correct_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_abstract_electrometer_classa1">~AbstractElectrometerClass</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_n___photo_voltaique.html#_n___photo_voltaiquea1">~N_PhotoVoltaique</a>(void)</td><td><a class="el" href="class_n___photo_voltaique.html">N_PhotoVoltaique</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a1">~Novelec_MCCE2</a>(void)</td><td><a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a></td><td><code> [virtual]</code></td></tr>
+</table><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:22 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/class_n___photo_voltaique.html b/doc/html/class_n___photo_voltaique.html
new file mode 100644
index 0000000000000000000000000000000000000000..3caf6bc5525920f0ea96a2b317ea047839240732
--- /dev/null
+++ b/doc/html/class_n___photo_voltaique.html
@@ -0,0 +1,272 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: N_PhotoVoltaique Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>N_PhotoVoltaique Class Reference<br>
+<small>
+[<a class="el" href="group___novelec.html">Novelec</a>]</small>
+</h1>This class manage Novelec PhotoVoltaique types.  
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="_n___photo_voltaique_8h-source.html">N_PhotoVoltaique.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for N_PhotoVoltaique:
+<p><center><img src="class_n___photo_voltaique.png" usemap="#N_PhotoVoltaique_map" border="0" alt=""></center>
+<map name="N_PhotoVoltaique_map">
+<area href="class_novelec___m_c_c_e2.html" alt="Novelec_MCCE2" shape="rect" coords="0,56,161,80">
+<area href="class_abstract_electrometer_class.html" alt="AbstractElectrometerClass" shape="rect" coords="0,0,161,24">
+</map>
+<a href="class_n___photo_voltaique-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_n___photo_voltaiquea0" doxytag="N_PhotoVoltaique::N_PhotoVoltaique"></a>
+&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_n___photo_voltaique.html#_n___photo_voltaiquea0">N_PhotoVoltaique</a> (std::string comLink_device_name, short channel_address, short electroType)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialization. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_n___photo_voltaiquea1" doxytag="N_PhotoVoltaique::~N_PhotoVoltaique"></a>
+virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_n___photo_voltaique.html#_n___photo_voltaiquea1">~N_PhotoVoltaique</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Release resources. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_n___photo_voltaiquea2" doxytag="N_PhotoVoltaique::range_up"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_n___photo_voltaique.html#_n___photo_voltaiquea2">range_up</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">device dependent commands. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_n___photo_voltaiquea3" doxytag="N_PhotoVoltaique::range_down"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>range_down</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_n___photo_voltaiquea4" doxytag="N_PhotoVoltaique::get_ElectroMeterFrequency"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_n___photo_voltaique.html#_n___photo_voltaiquea4">get_ElectroMeterFrequency</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">getters and setters. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_n___photo_voltaiquea5" doxytag="N_PhotoVoltaique::set_ElectroMeterFrequency"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_ElectroMeterFrequency</b> (std::string)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a2" doxytag="N_PhotoVoltaique::get_ElectroMeterPolarity"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a2">get_ElectroMeterPolarity</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Novelec getters and setters. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a3" doxytag="N_PhotoVoltaique::set_ElectroMeterPolarity"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_ElectroMeterPolarity</b> (std::string)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a4" doxytag="N_PhotoVoltaique::set_Zero_VonF_function"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a4">set_Zero_VonF_function</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer Functions : mode for novelec types. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a5" doxytag="N_PhotoVoltaique::set_Offset_ZeroV1_function"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_Offset_ZeroV1_function</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a6" doxytag="N_PhotoVoltaique::set_Leakage_ZeroV2_function"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_Leakage_ZeroV2_function</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a7" doxytag="N_PhotoVoltaique::set_Test_function"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_Test_function</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a8">mcce_on</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Commands to start/stop the data acquisition.  <a href="#_novelec___m_c_c_e2a8"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a9" doxytag="N_PhotoVoltaique::mcce_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>mcce_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a10" doxytag="N_PhotoVoltaique::electrometer_status"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a10">electrometer_status</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer Status. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a13" doxytag="N_PhotoVoltaique::reset"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>reset</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a14" doxytag="N_PhotoVoltaique::local"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>local</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a15" doxytag="N_PhotoVoltaique::remote"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>remote</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a16" doxytag="N_PhotoVoltaique::get_value"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a16">get_value</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer : cmd to get electrometer data. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a17" doxytag="N_PhotoVoltaique::autoRange_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a17">autoRange_on</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Keithley Electrometer methods. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a18" doxytag="N_PhotoVoltaique::zero_check_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_check_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a19" doxytag="N_PhotoVoltaique::zero_check_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_check_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a20" doxytag="N_PhotoVoltaique::zero_correct_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_correct_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a21" doxytag="N_PhotoVoltaique::zero_correct_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_correct_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a22" doxytag="N_PhotoVoltaique::auto_zero_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>auto_zero_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a23" doxytag="N_PhotoVoltaique::auto_zero_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>auto_zero_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a24" doxytag="N_PhotoVoltaique::autoRange_off"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>autoRange_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a25" doxytag="N_PhotoVoltaique::setAmperMeterMode"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setAmperMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a26" doxytag="N_PhotoVoltaique::setVoltMeterMode"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setVoltMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a27" doxytag="N_PhotoVoltaique::setOhmMeterMode"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setOhmMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a28" doxytag="N_PhotoVoltaique::setCoulombMeterMode"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setCoulombMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a29">init_keithley</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Following functions are only supported for SCPI protocol.  <a href="#_novelec___m_c_c_e2a29"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a30" doxytag="N_PhotoVoltaique::clear_registers"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>clear_registers</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a31" doxytag="N_PhotoVoltaique::averageStateON"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>averageStateON</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a32" doxytag="N_PhotoVoltaique::averageStateOFF"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>averageStateOFF</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a33" doxytag="N_PhotoVoltaique::set_knplc"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_knplc</b> (std::string nPLC)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a34" doxytag="N_PhotoVoltaique::set_triggercount"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_triggercount</b> (std::string trigcounts)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a35" doxytag="N_PhotoVoltaique::set_averagecount"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_averagecount</b> (std::string avercounts)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a36" doxytag="N_PhotoVoltaique::set_averagecontrol"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_averagecontrol</b> (std::string averctrl)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a37" doxytag="N_PhotoVoltaique::get_knplc"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_knplc</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a38" doxytag="N_PhotoVoltaique::get_triggercount"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_triggercount</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a39" doxytag="N_PhotoVoltaique::get_averagecount"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_averagecount</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a40" doxytag="N_PhotoVoltaique::get_averagecontrol"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_averagecontrol</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a42" doxytag="N_PhotoVoltaique::get_ElectroMeterGain"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_ElectroMeterGain</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a44" doxytag="N_PhotoVoltaique::set_ElectroMeterGain"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_ElectroMeterGain</b> (std::string gain)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a45" doxytag="N_PhotoVoltaique::get_ElectroMeterMode"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a45">get_ElectroMeterMode</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Common getters and setters. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a46" doxytag="N_PhotoVoltaique::get_ElectroMeterRange"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_ElectroMeterRange</b> (void)</td></tr>
+
+<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p0" doxytag="N_PhotoVoltaique::_rangeLimit"></a>
+short&nbsp;</td><td class="memItemRight" valign="bottom"><b>_rangeLimit</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p1" doxytag="N_PhotoVoltaique::_range"></a>
+short&nbsp;</td><td class="memItemRight" valign="bottom"><b>_range</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p2" doxytag="N_PhotoVoltaique::_rangeStr"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_rangeStr</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p3" doxytag="N_PhotoVoltaique::_mode"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_mode</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p4" doxytag="N_PhotoVoltaique::_electrometerProtocol"></a>
+<a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>_electrometerProtocol</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p5" doxytag="N_PhotoVoltaique::_device_proxy_name"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_device_proxy_name</b></td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+This class manage Novelec PhotoVoltaique types. 
+<p>
+<dl compact><dt><b>Author:</b></dt><dd>Xavier Elattaoui </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>11-2006 </dd></dl>
+
+<p>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="_novelec___m_c_c_e2a29" doxytag="N_PhotoVoltaique::init_keithley"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void AbstractElectrometerClass::init_keithley           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">void&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Following functions are only supported for SCPI protocol. 
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="_novelec___m_c_c_e2a8" doxytag="N_PhotoVoltaique::mcce_on"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void Novelec_MCCE2::mcce_on           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">void&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [virtual, inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Commands to start/stop the data acquisition. 
+<p>
+This emulate the MCCE2 key ON/OFF (all parameters must be set before switching ON the MCCE2)
+<p>
+Reimplemented from <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>.    </td>
+  </tr>
+</table>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="_n___photo_voltaique_8h-source.html">N_PhotoVoltaique.h</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:22 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/class_n___photo_voltaique.png b/doc/html/class_n___photo_voltaique.png
new file mode 100644
index 0000000000000000000000000000000000000000..31693f7bea218f638adc6646e9cff4295f49dfc7
Binary files /dev/null and b/doc/html/class_n___photo_voltaique.png differ
diff --git a/doc/html/class_novelec___m_c_c_e2-members.html b/doc/html/class_novelec___m_c_c_e2-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..1fdf492b46d30da9f0d88d51495d0dbf01e7245b
--- /dev/null
+++ b/doc/html/class_novelec___m_c_c_e2-members.html
@@ -0,0 +1,68 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>Novelec_MCCE2 Member List</h1>This is the complete list of members for <a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a>, including all inherited members.<p><table>
+  <tr bgcolor="#f0f0f0"><td><b>_device_proxy_name</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_electrometerProtocol</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_mode</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_range</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_rangeLimit</b> (defined in <a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a>)</td><td><a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_rangeStr</b> (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_abstract_electrometer_classa0">AbstractElectrometerClass</a>(std::string comLink_device_name)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>auto_zero_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>auto_zero_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>autoRange_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a17">autoRange_on</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>averageStateOFF</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>averageStateON</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>clear_registers</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a10">electrometer_status</a>(void)</td><td><a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_averagecontrol</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_averagecount</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_ElectroMeterFrequency</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_ElectroMeterGain</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a45">get_ElectroMeterMode</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a2">get_ElectroMeterPolarity</a>(void)</td><td><a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_ElectroMeterRange</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_knplc</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_triggercount</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a16">get_value</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a29">init_keithley</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>local</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>mcce_off</b>(void) (defined in <a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a>)</td><td><a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a8">mcce_on</a>(void)</td><td><a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a0">Novelec_MCCE2</a>(std::string &amp;comLink_device_name, short channel_address, short electroType)</td><td><a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>range_down</b>(void)=0 (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [pure virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a11">range_up</a>(void)=0</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [pure virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>remote</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>reset</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_averagecontrol</b>(std::string averctrl) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_averagecount</b>(std::string avercounts) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_ElectroMeterFrequency</b>(std::string freq) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_ElectroMeterGain</b>(std::string gain) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_ElectroMeterPolarity</b>(std::string) (defined in <a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a>)</td><td><a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_knplc</b>(std::string nPLC) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_Leakage_ZeroV2_function</b>(void) (defined in <a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a>)</td><td><a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_Offset_ZeroV1_function</b>(void) (defined in <a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a>)</td><td><a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_Test_function</b>(void) (defined in <a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a>)</td><td><a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_triggercount</b>(std::string trigcounts) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a4">set_Zero_VonF_function</a>(void)</td><td><a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setAmperMeterMode</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setCoulombMeterMode</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setOhmMeterMode</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setVoltMeterMode</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_check_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_check_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_correct_off</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_correct_on</b>(void) (defined in <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_abstract_electrometer_class.html#_abstract_electrometer_classa1">~AbstractElectrometerClass</a>(void)</td><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a1">~Novelec_MCCE2</a>(void)</td><td><a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a></td><td><code> [virtual]</code></td></tr>
+</table><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:22 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/class_novelec___m_c_c_e2.html b/doc/html/class_novelec___m_c_c_e2.html
new file mode 100644
index 0000000000000000000000000000000000000000..bfdaf1796165888ab4842c5cb9faf6248645d9dd
--- /dev/null
+++ b/doc/html/class_novelec___m_c_c_e2.html
@@ -0,0 +1,272 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Novelec_MCCE2 Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>Novelec_MCCE2 Class Reference<br>
+<small>
+[<a class="el" href="group___novelec.html">Novelec</a>]</small>
+</h1>This class manage Novelec MCCE-2 type.  
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="_novelec___m_c_c_e2_8h-source.html">Novelec_MCCE2.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for Novelec_MCCE2:
+<p><center><img src="class_novelec___m_c_c_e2.png" usemap="#Novelec_MCCE2_map" border="0" alt=""></center>
+<map name="Novelec_MCCE2_map">
+<area href="class_abstract_electrometer_class.html" alt="AbstractElectrometerClass" shape="rect" coords="85,0,246,24">
+<area href="class_n___photo_conducteur.html" alt="N_PhotoConducteur" shape="rect" coords="0,112,161,136">
+<area href="class_n___photo_voltaique.html" alt="N_PhotoVoltaique" shape="rect" coords="171,112,332,136">
+</map>
+<a href="class_novelec___m_c_c_e2-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a0" doxytag="Novelec_MCCE2::Novelec_MCCE2"></a>
+&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a0">Novelec_MCCE2</a> (std::string &amp;comLink_device_name, short channel_address, short electroType)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialization. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a1" doxytag="Novelec_MCCE2::~Novelec_MCCE2"></a>
+virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a1">~Novelec_MCCE2</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Release resources. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a2" doxytag="Novelec_MCCE2::get_ElectroMeterPolarity"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a2">get_ElectroMeterPolarity</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Novelec getters and setters. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a3" doxytag="Novelec_MCCE2::set_ElectroMeterPolarity"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_ElectroMeterPolarity</b> (std::string)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a4" doxytag="Novelec_MCCE2::set_Zero_VonF_function"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a4">set_Zero_VonF_function</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer Functions : mode for novelec types. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a5" doxytag="Novelec_MCCE2::set_Offset_ZeroV1_function"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_Offset_ZeroV1_function</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a6" doxytag="Novelec_MCCE2::set_Leakage_ZeroV2_function"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_Leakage_ZeroV2_function</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a7" doxytag="Novelec_MCCE2::set_Test_function"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_Test_function</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a8">mcce_on</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Commands to start/stop the data acquisition.  <a href="#_novelec___m_c_c_e2a8"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a9" doxytag="Novelec_MCCE2::mcce_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>mcce_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a10" doxytag="Novelec_MCCE2::electrometer_status"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a10">electrometer_status</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer Status. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a11" doxytag="Novelec_MCCE2::range_up"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a11">range_up</a> (void)=0</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer common functions. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a12" doxytag="Novelec_MCCE2::range_down"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>range_down</b> (void)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a13" doxytag="Novelec_MCCE2::reset"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>reset</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a14" doxytag="Novelec_MCCE2::local"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>local</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a15" doxytag="Novelec_MCCE2::remote"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>remote</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a16" doxytag="Novelec_MCCE2::get_value"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a16">get_value</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer : cmd to get electrometer data. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a17" doxytag="Novelec_MCCE2::autoRange_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a17">autoRange_on</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Keithley Electrometer methods. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a18" doxytag="Novelec_MCCE2::zero_check_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_check_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a19" doxytag="Novelec_MCCE2::zero_check_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_check_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a20" doxytag="Novelec_MCCE2::zero_correct_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_correct_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a21" doxytag="Novelec_MCCE2::zero_correct_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_correct_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a22" doxytag="Novelec_MCCE2::auto_zero_on"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>auto_zero_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a23" doxytag="Novelec_MCCE2::auto_zero_off"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>auto_zero_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a24" doxytag="Novelec_MCCE2::autoRange_off"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>autoRange_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a25" doxytag="Novelec_MCCE2::setAmperMeterMode"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setAmperMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a26" doxytag="Novelec_MCCE2::setVoltMeterMode"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setVoltMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a27" doxytag="Novelec_MCCE2::setOhmMeterMode"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setOhmMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a28" doxytag="Novelec_MCCE2::setCoulombMeterMode"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setCoulombMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a29">init_keithley</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Following functions are only supported for SCPI protocol.  <a href="#_novelec___m_c_c_e2a29"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a30" doxytag="Novelec_MCCE2::clear_registers"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>clear_registers</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a31" doxytag="Novelec_MCCE2::averageStateON"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>averageStateON</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a32" doxytag="Novelec_MCCE2::averageStateOFF"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>averageStateOFF</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a33" doxytag="Novelec_MCCE2::set_knplc"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_knplc</b> (std::string nPLC)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a34" doxytag="Novelec_MCCE2::set_triggercount"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_triggercount</b> (std::string trigcounts)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a35" doxytag="Novelec_MCCE2::set_averagecount"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_averagecount</b> (std::string avercounts)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a36" doxytag="Novelec_MCCE2::set_averagecontrol"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_averagecontrol</b> (std::string averctrl)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a37" doxytag="Novelec_MCCE2::get_knplc"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_knplc</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a38" doxytag="Novelec_MCCE2::get_triggercount"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_triggercount</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a39" doxytag="Novelec_MCCE2::get_averagecount"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_averagecount</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a40" doxytag="Novelec_MCCE2::get_averagecontrol"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_averagecontrol</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a41" doxytag="Novelec_MCCE2::get_ElectroMeterFrequency"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_ElectroMeterFrequency</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a42" doxytag="Novelec_MCCE2::get_ElectroMeterGain"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_ElectroMeterGain</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a43" doxytag="Novelec_MCCE2::set_ElectroMeterFrequency"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_ElectroMeterFrequency</b> (std::string freq)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a44" doxytag="Novelec_MCCE2::set_ElectroMeterGain"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_ElectroMeterGain</b> (std::string gain)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a45" doxytag="Novelec_MCCE2::get_ElectroMeterMode"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a45">get_ElectroMeterMode</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Common getters and setters. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2a46" doxytag="Novelec_MCCE2::get_ElectroMeterRange"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_ElectroMeterRange</b> (void)</td></tr>
+
+<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p0" doxytag="Novelec_MCCE2::_rangeLimit"></a>
+short&nbsp;</td><td class="memItemRight" valign="bottom"><b>_rangeLimit</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p1" doxytag="Novelec_MCCE2::_range"></a>
+short&nbsp;</td><td class="memItemRight" valign="bottom"><b>_range</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p2" doxytag="Novelec_MCCE2::_rangeStr"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_rangeStr</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p3" doxytag="Novelec_MCCE2::_mode"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_mode</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p4" doxytag="Novelec_MCCE2::_electrometerProtocol"></a>
+<a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>_electrometerProtocol</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec___m_c_c_e2p5" doxytag="Novelec_MCCE2::_device_proxy_name"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_device_proxy_name</b></td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+This class manage Novelec MCCE-2 type. 
+<p>
+<dl compact><dt><b>Author:</b></dt><dd>Xavier Elattaoui </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>11-2006 </dd></dl>
+
+<p>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="_novelec___m_c_c_e2a29" doxytag="Novelec_MCCE2::init_keithley"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void AbstractElectrometerClass::init_keithley           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">void&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Following functions are only supported for SCPI protocol. 
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="_novelec___m_c_c_e2a8" doxytag="Novelec_MCCE2::mcce_on"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void Novelec_MCCE2::mcce_on           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">void&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [virtual]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Commands to start/stop the data acquisition. 
+<p>
+This emulate the MCCE2 key ON/OFF (all parameters must be set before switching ON the MCCE2)
+<p>
+Reimplemented from <a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>.    </td>
+  </tr>
+</table>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="_novelec___m_c_c_e2_8h-source.html">Novelec_MCCE2.h</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:22 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/class_novelec___m_c_c_e2.png b/doc/html/class_novelec___m_c_c_e2.png
new file mode 100644
index 0000000000000000000000000000000000000000..b424b27c238f4a082fefa0b4804e3b68bf5c44f6
Binary files /dev/null and b/doc/html/class_novelec___m_c_c_e2.png differ
diff --git a/doc/html/class_novelec_protocol-members.html b/doc/html/class_novelec_protocol-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..51ccff3e51edb22eaaefe8d8bbecd82099946d34
--- /dev/null
+++ b/doc/html/class_novelec_protocol-members.html
@@ -0,0 +1,71 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>NovelecProtocol Member List</h1>This is the complete list of members for <a class="el" href="class_novelec_protocol.html">NovelecProtocol</a>, including all inherited members.<p><table>
+  <tr bgcolor="#f0f0f0"><td><b>_communication_link</b> (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_devAdd</b> (defined in <a class="el" href="class_novelec_protocol.html">NovelecProtocol</a>)</td><td><a class="el" href="class_novelec_protocol.html">NovelecProtocol</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_function</b> (defined in <a class="el" href="class_novelec_protocol.html">NovelecProtocol</a>)</td><td><a class="el" href="class_novelec_protocol.html">NovelecProtocol</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_mode</b> (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_novType</b> (defined in <a class="el" href="class_novelec_protocol.html">NovelecProtocol</a>)</td><td><a class="el" href="class_novelec_protocol.html">NovelecProtocol</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_range</b> (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>_rangeParameterNum</b> (defined in <a class="el" href="class_novelec_protocol.html">NovelecProtocol</a>)</td><td><a class="el" href="class_novelec_protocol.html">NovelecProtocol</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>auto_zero_off</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>auto_zero_on</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>autoRange_off</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>autoRange_on</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>averageStateOFF</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>averageStateON</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>check_and_extract_data</b>(std::string resp_to_check) (defined in <a class="el" href="class_novelec_protocol.html">NovelecProtocol</a>)</td><td><a class="el" href="class_novelec_protocol.html">NovelecProtocol</a></td><td><code> [protected]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>clear_registers</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_electrometer_protocol.html#_electrometer_protocola0">ElectrometerProtocol</a>()</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_averagecontrol</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_averagecount</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_electrotype</b>(void) (defined in <a class="el" href="class_novelec_protocol.html">NovelecProtocol</a>)</td><td><a class="el" href="class_novelec_protocol.html">NovelecProtocol</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_errors</b>(void) (defined in <a class="el" href="class_novelec_protocol.html">NovelecProtocol</a>)</td><td><a class="el" href="class_novelec_protocol.html">NovelecProtocol</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_frequency</b>(void) (defined in <a class="el" href="class_novelec_protocol.html">NovelecProtocol</a>)</td><td><a class="el" href="class_novelec_protocol.html">NovelecProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_gain</b>(void) (defined in <a class="el" href="class_novelec_protocol.html">NovelecProtocol</a>)</td><td><a class="el" href="class_novelec_protocol.html">NovelecProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_knplc</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_novelec_protocol.html#_novelec_protocola15">get_mode</a>(void)</td><td><a class="el" href="class_novelec_protocol.html">NovelecProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_polarity</b>(void) (defined in <a class="el" href="class_novelec_protocol.html">NovelecProtocol</a>)</td><td><a class="el" href="class_novelec_protocol.html">NovelecProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_range</b>(void) (defined in <a class="el" href="class_novelec_protocol.html">NovelecProtocol</a>)</td><td><a class="el" href="class_novelec_protocol.html">NovelecProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_novelec_protocol.html#_novelec_protocola14">get_raw_status</a>(void)</td><td><a class="el" href="class_novelec_protocol.html">NovelecProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>get_triggercount</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_novelec_protocol.html#_novelec_protocola7">get_value</a>(void)</td><td><a class="el" href="class_novelec_protocol.html">NovelecProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_electrometer_protocol.html#_novelec_protocola24">init_keithley</a>(void)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>local</b>(void) (defined in <a class="el" href="class_novelec_protocol.html">NovelecProtocol</a>)</td><td><a class="el" href="class_novelec_protocol.html">NovelecProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_novelec_protocol.html#_novelec_protocola0">NovelecProtocol</a>(std::string &amp;gpib_device_name, short channel_address, short electroTypeNumber)</td><td><a class="el" href="class_novelec_protocol.html">NovelecProtocol</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>remote</b>(void) (defined in <a class="el" href="class_novelec_protocol.html">NovelecProtocol</a>)</td><td><a class="el" href="class_novelec_protocol.html">NovelecProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>reset</b>(void) (defined in <a class="el" href="class_novelec_protocol.html">NovelecProtocol</a>)</td><td><a class="el" href="class_novelec_protocol.html">NovelecProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_averagecontrol</b>(std::string averctrl) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_averagecount</b>(std::string avercounts) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_frequency</b>(std::string freq) (defined in <a class="el" href="class_novelec_protocol.html">NovelecProtocol</a>)</td><td><a class="el" href="class_novelec_protocol.html">NovelecProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_gain</b>(std::string gain) (defined in <a class="el" href="class_novelec_protocol.html">NovelecProtocol</a>)</td><td><a class="el" href="class_novelec_protocol.html">NovelecProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_knplc</b>(std::string nPLC) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_polarity</b>(std::string pola) (defined in <a class="el" href="class_novelec_protocol.html">NovelecProtocol</a>)</td><td><a class="el" href="class_novelec_protocol.html">NovelecProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_novelec_protocol.html#_novelec_protocola2">set_range</a>(std::string value)</td><td><a class="el" href="class_novelec_protocol.html">NovelecProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>set_triggercount</b>(std::string trigcounts) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setAmperMeterMode</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setCoulombMeterMode</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setOhmMeterMode</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>setVoltMeterMode</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>switch_MCCE2_OFF</b>(void) (defined in <a class="el" href="class_novelec_protocol.html">NovelecProtocol</a>)</td><td><a class="el" href="class_novelec_protocol.html">NovelecProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_novelec_protocol.html#_novelec_protocola8">switch_MCCE2_ON</a>(void)</td><td><a class="el" href="class_novelec_protocol.html">NovelecProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>unable_leakage_zeroV2_func</b>(void) (defined in <a class="el" href="class_novelec_protocol.html">NovelecProtocol</a>)</td><td><a class="el" href="class_novelec_protocol.html">NovelecProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>unable_offset_zeroV1_func</b>(void) (defined in <a class="el" href="class_novelec_protocol.html">NovelecProtocol</a>)</td><td><a class="el" href="class_novelec_protocol.html">NovelecProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>unable_test_func</b>(void) (defined in <a class="el" href="class_novelec_protocol.html">NovelecProtocol</a>)</td><td><a class="el" href="class_novelec_protocol.html">NovelecProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>unable_zeroVF_func</b>(void) (defined in <a class="el" href="class_novelec_protocol.html">NovelecProtocol</a>)</td><td><a class="el" href="class_novelec_protocol.html">NovelecProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_check_off</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_check_on</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_correct_off</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>zero_correct_on</b>(void) (defined in <a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>)</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_electrometer_protocol.html#_electrometer_protocola1">~ElectrometerProtocol</a>()</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_novelec_protocol.html#_novelec_protocola1">~NovelecProtocol</a>(void)</td><td><a class="el" href="class_novelec_protocol.html">NovelecProtocol</a></td><td><code> [virtual]</code></td></tr>
+</table><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:22 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/class_novelec_protocol.html b/doc/html/class_novelec_protocol.html
new file mode 100644
index 0000000000000000000000000000000000000000..2631b704df0872a058fbbed20ea8232548690608
--- /dev/null
+++ b/doc/html/class_novelec_protocol.html
@@ -0,0 +1,216 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: NovelecProtocol Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>NovelecProtocol Class Reference<br>
+<small>
+[<a class="el" href="group___standard.html">Commands Protocol</a>]</small>
+</h1>This class manage the Novelec Commands Protocol.  
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="_novelec_protocol_8h-source.html">NovelecProtocol.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for NovelecProtocol:
+<p><center><img src="class_novelec_protocol.png" usemap="#NovelecProtocol_map" border="0" alt=""></center>
+<map name="NovelecProtocol_map">
+<area href="class_electrometer_protocol.html" alt="ElectrometerProtocol" shape="rect" coords="0,0,130,24">
+</map>
+<a href="class_novelec_protocol-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola0" doxytag="NovelecProtocol::NovelecProtocol"></a>
+&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_novelec_protocol.html#_novelec_protocola0">NovelecProtocol</a> (std::string &amp;gpib_device_name, short channel_address, short electroTypeNumber)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialization. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola1" doxytag="NovelecProtocol::~NovelecProtocol"></a>
+virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_novelec_protocol.html#_novelec_protocola1">~NovelecProtocol</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Release resources. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola2" doxytag="NovelecProtocol::set_range"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_novelec_protocol.html#_novelec_protocola2">set_range</a> (std::string value)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer Functions. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola3" doxytag="NovelecProtocol::get_range"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_range</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola4" doxytag="NovelecProtocol::reset"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>reset</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola5" doxytag="NovelecProtocol::local"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>local</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola6" doxytag="NovelecProtocol::remote"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>remote</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola7" doxytag="NovelecProtocol::get_value"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_novelec_protocol.html#_novelec_protocola7">get_value</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer : cmd to get electrometer data. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola8" doxytag="NovelecProtocol::switch_MCCE2_ON"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_novelec_protocol.html#_novelec_protocola8">switch_MCCE2_ON</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer Mode : Novelec SUPPORTS these commands. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola9" doxytag="NovelecProtocol::switch_MCCE2_OFF"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>switch_MCCE2_OFF</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola10" doxytag="NovelecProtocol::unable_zeroVF_func"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>unable_zeroVF_func</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola11" doxytag="NovelecProtocol::unable_offset_zeroV1_func"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>unable_offset_zeroV1_func</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola12" doxytag="NovelecProtocol::unable_leakage_zeroV2_func"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>unable_leakage_zeroV2_func</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola13" doxytag="NovelecProtocol::unable_test_func"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>unable_test_func</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola14" doxytag="NovelecProtocol::get_raw_status"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_novelec_protocol.html#_novelec_protocola14">get_raw_status</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get Raw Electrometer Status. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola15" doxytag="NovelecProtocol::get_mode"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_novelec_protocol.html#_novelec_protocola15">get_mode</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer Mode : getters and setters. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola16" doxytag="NovelecProtocol::get_polarity"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_polarity</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola17" doxytag="NovelecProtocol::get_frequency"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_frequency</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola18" doxytag="NovelecProtocol::get_gain"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_gain</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola19" doxytag="NovelecProtocol::get_errors"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_errors</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola20" doxytag="NovelecProtocol::get_electrotype"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_electrotype</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola21" doxytag="NovelecProtocol::set_polarity"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_polarity</b> (std::string pola)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola22" doxytag="NovelecProtocol::set_frequency"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_frequency</b> (std::string freq)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola23" doxytag="NovelecProtocol::set_gain"></a>
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_gain</b> (std::string gain)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola24" doxytag="NovelecProtocol::init_keithley"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_electrometer_protocol.html#_novelec_protocola24">init_keithley</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Electrometer : Keithley protocol dependent commands. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola25" doxytag="NovelecProtocol::set_knplc"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_knplc</b> (std::string nPLC)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola26" doxytag="NovelecProtocol::set_triggercount"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_triggercount</b> (std::string trigcounts)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola27" doxytag="NovelecProtocol::set_averagecount"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_averagecount</b> (std::string avercounts)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola28" doxytag="NovelecProtocol::set_averagecontrol"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>set_averagecontrol</b> (std::string averctrl)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola29" doxytag="NovelecProtocol::get_knplc"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_knplc</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola30" doxytag="NovelecProtocol::get_triggercount"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_triggercount</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola31" doxytag="NovelecProtocol::get_averagecount"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_averagecount</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola32" doxytag="NovelecProtocol::get_averagecontrol"></a>
+virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>get_averagecontrol</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola33" doxytag="NovelecProtocol::clear_registers"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>clear_registers</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola34" doxytag="NovelecProtocol::averageStateON"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>averageStateON</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola35" doxytag="NovelecProtocol::averageStateOFF"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>averageStateOFF</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola36" doxytag="NovelecProtocol::setAmperMeterMode"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setAmperMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola37" doxytag="NovelecProtocol::setVoltMeterMode"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setVoltMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola38" doxytag="NovelecProtocol::setOhmMeterMode"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setOhmMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola39" doxytag="NovelecProtocol::setCoulombMeterMode"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setCoulombMeterMode</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola40" doxytag="NovelecProtocol::autoRange_on"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>autoRange_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola41" doxytag="NovelecProtocol::autoRange_off"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>autoRange_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola42" doxytag="NovelecProtocol::zero_check_on"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_check_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola43" doxytag="NovelecProtocol::zero_check_off"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_check_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola44" doxytag="NovelecProtocol::zero_correct_on"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_correct_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola45" doxytag="NovelecProtocol::zero_correct_off"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>zero_correct_off</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola46" doxytag="NovelecProtocol::auto_zero_on"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>auto_zero_on</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocola47" doxytag="NovelecProtocol::auto_zero_off"></a>
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>auto_zero_off</b> (void)</td></tr>
+
+<tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocolb0" doxytag="NovelecProtocol::check_and_extract_data"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>check_and_extract_data</b> (std::string resp_to_check)</td></tr>
+
+<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocolp0" doxytag="NovelecProtocol::_devAdd"></a>
+short&nbsp;</td><td class="memItemRight" valign="bottom"><b>_devAdd</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocolp1" doxytag="NovelecProtocol::_novType"></a>
+short&nbsp;</td><td class="memItemRight" valign="bottom"><b>_novType</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocolp2" doxytag="NovelecProtocol::_rangeParameterNum"></a>
+short&nbsp;</td><td class="memItemRight" valign="bottom"><b>_rangeParameterNum</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocolp3" doxytag="NovelecProtocol::_function"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_function</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocolp4" doxytag="NovelecProtocol::_range"></a>
+short&nbsp;</td><td class="memItemRight" valign="bottom"><b>_range</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocolp5" doxytag="NovelecProtocol::_mode"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_mode</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_novelec_protocolp6" doxytag="NovelecProtocol::_communication_link"></a>
+<a class="el" href="class_communication_link.html">CommunicationLink</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>_communication_link</b></td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+This class manage the Novelec Commands Protocol. 
+<p>
+<dl compact><dt><b>Author:</b></dt><dd>Xavier Elattaoui </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>11-2006 </dd></dl>
+
+<p>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="_novelec_protocol_8h-source.html">NovelecProtocol.h</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:22 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/class_novelec_protocol.png b/doc/html/class_novelec_protocol.png
new file mode 100644
index 0000000000000000000000000000000000000000..65ca763312dd146b5d4b8cff8318a64b0d074a18
Binary files /dev/null and b/doc/html/class_novelec_protocol.png differ
diff --git a/doc/html/class_tango_gpib_link-members.html b/doc/html/class_tango_gpib_link-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..b30f3ef3b5ccdc06385c59ed28e827712f7bdd5d
--- /dev/null
+++ b/doc/html/class_tango_gpib_link-members.html
@@ -0,0 +1,21 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>TangoGpibLink Member List</h1>This is the complete list of members for <a class="el" href="class_tango_gpib_link.html">TangoGpibLink</a>, including all inherited members.<p><table>
+  <tr bgcolor="#f0f0f0"><td><b>_communication_Device_name</b> (defined in <a class="el" href="class_communication_link.html">CommunicationLink</a>)</td><td><a class="el" href="class_communication_link.html">CommunicationLink</a></td><td><code> [protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_communication_link.html#_communication_linka0">CommunicationLink</a>(std::string &amp;communication_link_name)</td><td><a class="el" href="class_communication_link.html">CommunicationLink</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_tango_gpib_link.html#_tango_gpib_linka3">read</a>(void)</td><td><a class="el" href="class_tango_gpib_link.html">TangoGpibLink</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_tango_gpib_link.html#_tango_gpib_linka0">TangoGpibLink</a>(std::string &amp;gpib_device_name)</td><td><a class="el" href="class_tango_gpib_link.html">TangoGpibLink</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_tango_gpib_link.html#_tango_gpib_linka2">write</a>(std::string cmd)</td><td><a class="el" href="class_tango_gpib_link.html">TangoGpibLink</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_tango_gpib_link.html#_tango_gpib_linka4">write_read</a>(std::string cmd)</td><td><a class="el" href="class_tango_gpib_link.html">TangoGpibLink</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_communication_link.html#_communication_linka1">~CommunicationLink</a>(void)</td><td><a class="el" href="class_communication_link.html">CommunicationLink</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_tango_gpib_link.html#_tango_gpib_linka1">~TangoGpibLink</a>(void)</td><td><a class="el" href="class_tango_gpib_link.html">TangoGpibLink</a></td><td><code> [virtual]</code></td></tr>
+</table><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:22 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/class_tango_gpib_link.html b/doc/html/class_tango_gpib_link.html
new file mode 100644
index 0000000000000000000000000000000000000000..39cae7df7b859b89c864c78abca068d677749789
--- /dev/null
+++ b/doc/html/class_tango_gpib_link.html
@@ -0,0 +1,198 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: TangoGpibLink Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>TangoGpibLink Class Reference<br>
+<small>
+[<a class="el" href="group___communication.html">Management</a>]</small>
+</h1>This class manage the GPIB communication bus.  
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="_tango_gpib_link_8h-source.html">TangoGpibLink.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for TangoGpibLink:
+<p><center><img src="class_tango_gpib_link.png" usemap="#TangoGpibLink_map" border="0" alt=""></center>
+<map name="TangoGpibLink_map">
+<area href="class_communication_link.html" alt="CommunicationLink" shape="rect" coords="0,0,120,24">
+</map>
+<a href="class_tango_gpib_link-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tango_gpib_link.html#_tango_gpib_linka0">TangoGpibLink</a> (std::string &amp;gpib_device_name)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_tango_gpib_linka1" doxytag="TangoGpibLink::~TangoGpibLink"></a>
+virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tango_gpib_link.html#_tango_gpib_linka1">~TangoGpibLink</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Release resources. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tango_gpib_link.html#_tango_gpib_linka2">write</a> (std::string cmd)  throw (Tango::DevFailed)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Send command (data) as string to hardware.  <a href="#_tango_gpib_linka2"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tango_gpib_link.html#_tango_gpib_linka3">read</a> (void)  throw (Tango::DevFailed)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets hardware response as string.  <a href="#_tango_gpib_linka3"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tango_gpib_link.html#_tango_gpib_linka4">write_read</a> (std::string cmd)  throw (Tango::DevFailed)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Performs a write read operation as string.  <a href="#_tango_gpib_linka4"></a><br></td></tr>
+<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_tango_serial_linkp0" doxytag="TangoGpibLink::_communication_Device_name"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_communication_Device_name</b></td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+This class manage the GPIB communication bus. 
+<p>
+<dl compact><dt><b>Author:</b></dt><dd>Xavier Elattaoui </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>11-2006 </dd></dl>
+
+<p>
+<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="_tango_gpib_linka0" doxytag="TangoGpibLink::TangoGpibLink"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">TangoGpibLink::TangoGpibLink           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">std::string &amp;&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>gpib_device_name</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Initialization.    </td>
+  </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="_tango_gpib_linka3" doxytag="TangoGpibLink::read"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">std::string TangoGpibLink::read           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">void&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap>  throw (Tango::DevFailed)<code> [virtual]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Gets hardware response as string. 
+<p>
+<dl compact><dt><b>Exceptions:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>Tango::DevFailed</em>&nbsp;</td><td></td></tr>
+  </table>
+</dl>
+
+<p>
+Implements <a class="el" href="class_communication_link.html#_communication_linka3">CommunicationLink</a>.    </td>
+  </tr>
+</table>
+<a class="anchor" name="_tango_gpib_linka2" doxytag="TangoGpibLink::write"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void TangoGpibLink::write           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">std::string&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>cmd</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap>  throw (Tango::DevFailed)<code> [virtual]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Send command (data) as string to hardware. 
+<p>
+<dl compact><dt><b>Exceptions:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>Tango::DevFailed</em>&nbsp;</td><td></td></tr>
+  </table>
+</dl>
+
+<p>
+Implements <a class="el" href="class_communication_link.html#_communication_linka2">CommunicationLink</a>.    </td>
+  </tr>
+</table>
+<a class="anchor" name="_tango_gpib_linka4" doxytag="TangoGpibLink::write_read"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">std::string TangoGpibLink::write_read           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">std::string&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>cmd</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap>  throw (Tango::DevFailed)<code> [virtual]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Performs a write read operation as string. 
+<p>
+<dl compact><dt><b>Exceptions:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>Tango::DevFailed</em>&nbsp;</td><td></td></tr>
+  </table>
+</dl>
+
+<p>
+Implements <a class="el" href="class_communication_link.html#_communication_linka4">CommunicationLink</a>.    </td>
+  </tr>
+</table>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="_tango_gpib_link_8h-source.html">TangoGpibLink.h</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:22 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/class_tango_gpib_link.png b/doc/html/class_tango_gpib_link.png
new file mode 100644
index 0000000000000000000000000000000000000000..d3b4d8dc486c4486b7c54a79d4bcb21a34157a55
Binary files /dev/null and b/doc/html/class_tango_gpib_link.png differ
diff --git a/doc/html/class_tango_serial_link-members.html b/doc/html/class_tango_serial_link-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..88c5aacea1cadde776a718a3a2bf6e8b2db69f0c
--- /dev/null
+++ b/doc/html/class_tango_serial_link-members.html
@@ -0,0 +1,21 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>TangoSerialLink Member List</h1>This is the complete list of members for <a class="el" href="class_tango_serial_link.html">TangoSerialLink</a>, including all inherited members.<p><table>
+  <tr bgcolor="#f0f0f0"><td><b>_communication_Device_name</b> (defined in <a class="el" href="class_communication_link.html">CommunicationLink</a>)</td><td><a class="el" href="class_communication_link.html">CommunicationLink</a></td><td><code> [protected]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_communication_link.html#_communication_linka0">CommunicationLink</a>(std::string &amp;communication_link_name)</td><td><a class="el" href="class_communication_link.html">CommunicationLink</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_tango_serial_link.html#_tango_serial_linka3">read</a>(void)</td><td><a class="el" href="class_tango_serial_link.html">TangoSerialLink</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_tango_serial_link.html#_tango_serial_linka0">TangoSerialLink</a>(std::string &amp;serial_device_name)</td><td><a class="el" href="class_tango_serial_link.html">TangoSerialLink</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_tango_serial_link.html#_tango_serial_linka2">write</a>(std::string cmd)</td><td><a class="el" href="class_tango_serial_link.html">TangoSerialLink</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_tango_serial_link.html#_tango_serial_linka4">write_read</a>(std::string cmd)</td><td><a class="el" href="class_tango_serial_link.html">TangoSerialLink</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_communication_link.html#_communication_linka1">~CommunicationLink</a>(void)</td><td><a class="el" href="class_communication_link.html">CommunicationLink</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="class_tango_serial_link.html#_tango_serial_linka1">~TangoSerialLink</a>(void)</td><td><a class="el" href="class_tango_serial_link.html">TangoSerialLink</a></td><td><code> [virtual]</code></td></tr>
+</table><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:23 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/class_tango_serial_link.html b/doc/html/class_tango_serial_link.html
new file mode 100644
index 0000000000000000000000000000000000000000..4ce6a5bad90bab6eb2eadf608520dbb52d106810
--- /dev/null
+++ b/doc/html/class_tango_serial_link.html
@@ -0,0 +1,201 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: TangoSerialLink Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>TangoSerialLink Class Reference<br>
+<small>
+[<a class="el" href="group___communication.html">Management</a>]</small>
+</h1>This class manage the SERIAL communication bus.  
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="_tango_serial_link_8h-source.html">TangoSerialLink.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for TangoSerialLink:
+<p><center><img src="class_tango_serial_link.png" usemap="#TangoSerialLink_map" border="0" alt=""></center>
+<map name="TangoSerialLink_map">
+<area href="class_communication_link.html" alt="CommunicationLink" shape="rect" coords="0,0,120,24">
+</map>
+<a href="class_tango_serial_link-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_tango_serial_linka0" doxytag="TangoSerialLink::TangoSerialLink"></a>
+&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tango_serial_link.html#_tango_serial_linka0">TangoSerialLink</a> (std::string &amp;serial_device_name)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialization. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tango_serial_link.html#_tango_serial_linka1">~TangoSerialLink</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Release resources.  <a href="#_tango_serial_linka1"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tango_serial_link.html#_tango_serial_linka2">write</a> (std::string cmd)  throw (Tango::DevFailed)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Send command (data) as string to hardware.  <a href="#_tango_serial_linka2"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tango_serial_link.html#_tango_serial_linka3">read</a> (void)  throw (Tango::DevFailed)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets hardware response as string.  <a href="#_tango_serial_linka3"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tango_serial_link.html#_tango_serial_linka4">write_read</a> (std::string cmd)  throw (Tango::DevFailed)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Performs a write read operation as string.  <a href="#_tango_serial_linka4"></a><br></td></tr>
+<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="_tango_serial_linkp0" doxytag="TangoSerialLink::_communication_Device_name"></a>
+std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>_communication_Device_name</b></td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+This class manage the SERIAL communication bus. 
+<p>
+<dl compact><dt><b>Author:</b></dt><dd>Xavier Elattaoui </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>11-2006 </dd></dl>
+
+<p>
+<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="_tango_serial_linka1" doxytag="TangoSerialLink::~TangoSerialLink"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">virtual TangoSerialLink::~<a class="el" href="class_tango_serial_link.html">TangoSerialLink</a>           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">void&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [virtual]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Release resources. 
+<p>
+    </td>
+  </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="_tango_serial_linka3" doxytag="TangoSerialLink::read"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">std::string TangoSerialLink::read           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">void&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap>  throw (Tango::DevFailed)<code> [virtual]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Gets hardware response as string. 
+<p>
+<dl compact><dt><b>Exceptions:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>Tango::DevFailed</em>&nbsp;</td><td></td></tr>
+  </table>
+</dl>
+
+<p>
+Implements <a class="el" href="class_communication_link.html#_communication_linka3">CommunicationLink</a>.    </td>
+  </tr>
+</table>
+<a class="anchor" name="_tango_serial_linka2" doxytag="TangoSerialLink::write"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void TangoSerialLink::write           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">std::string&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>cmd</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap>  throw (Tango::DevFailed)<code> [virtual]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Send command (data) as string to hardware. 
+<p>
+<dl compact><dt><b>Exceptions:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>Tango::DevFailed</em>&nbsp;</td><td></td></tr>
+  </table>
+</dl>
+
+<p>
+Implements <a class="el" href="class_communication_link.html#_communication_linka2">CommunicationLink</a>.    </td>
+  </tr>
+</table>
+<a class="anchor" name="_tango_serial_linka4" doxytag="TangoSerialLink::write_read"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">std::string TangoSerialLink::write_read           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">std::string&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>cmd</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap>  throw (Tango::DevFailed)<code> [virtual]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Performs a write read operation as string. 
+<p>
+<dl compact><dt><b>Exceptions:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>Tango::DevFailed</em>&nbsp;</td><td></td></tr>
+  </table>
+</dl>
+
+<p>
+Implements <a class="el" href="class_communication_link.html#_communication_linka4">CommunicationLink</a>.    </td>
+  </tr>
+</table>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="_tango_serial_link_8h-source.html">TangoSerialLink.h</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:23 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/class_tango_serial_link.png b/doc/html/class_tango_serial_link.png
new file mode 100644
index 0000000000000000000000000000000000000000..6b9f110e7305d15bcac84b597479a5e969a10943
Binary files /dev/null and b/doc/html/class_tango_serial_link.png differ
diff --git a/doc/html/classelectrometer_1_1_electrometer_exception-members.html b/doc/html/classelectrometer_1_1_electrometer_exception-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..be9530718a583be5158f764970530925957838e7
--- /dev/null
+++ b/doc/html/classelectrometer_1_1_electrometer_exception-members.html
@@ -0,0 +1,24 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>electrometer::ElectrometerException Member List</h1>This is the complete list of members for <a class="el" href="classelectrometer_1_1_electrometer_exception.html">electrometer::ElectrometerException</a>, including all inherited members.<p><table>
+  <tr class="memlist"><td><a class="el" href="classelectrometer_1_1_electrometer_exception.html#electrometer_1_1_electrometer_exceptiona0">ElectrometerException</a>(void)</td><td><a class="el" href="classelectrometer_1_1_electrometer_exception.html">electrometer::ElectrometerException</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classelectrometer_1_1_electrometer_exception.html#electrometer_1_1_electrometer_exceptiona1">ElectrometerException</a>(const char *reason, const char *desc, const char *origin, int severity=electrometer::ERR)</td><td><a class="el" href="classelectrometer_1_1_electrometer_exception.html">electrometer::ElectrometerException</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classelectrometer_1_1_electrometer_exception.html#electrometer_1_1_electrometer_exceptiona2">ElectrometerException</a>(const std::string &amp;reason, const std::string &amp;desc, const std::string &amp;origin, int severity=electrometer::ERR)</td><td><a class="el" href="classelectrometer_1_1_electrometer_exception.html">electrometer::ElectrometerException</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classelectrometer_1_1_electrometer_exception.html#electrometer_1_1_electrometer_exceptiona3">ElectrometerException</a>(const Error &amp;error)</td><td><a class="el" href="classelectrometer_1_1_electrometer_exception.html">electrometer::ElectrometerException</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classelectrometer_1_1_electrometer_exception.html#electrometer_1_1_electrometer_exceptiona4">ElectrometerException</a>(const ElectrometerException &amp;src)</td><td><a class="el" href="classelectrometer_1_1_electrometer_exception.html">electrometer::ElectrometerException</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classelectrometer_1_1_electrometer_exception.html#electrometer_1_1_electrometer_exceptiono0">errors</a></td><td><a class="el" href="classelectrometer_1_1_electrometer_exception.html">electrometer::ElectrometerException</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classelectrometer_1_1_electrometer_exception.html#electrometer_1_1_electrometer_exceptiona5">operator=</a>(const ElectrometerException &amp;_src)</td><td><a class="el" href="classelectrometer_1_1_electrometer_exception.html">electrometer::ElectrometerException</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classelectrometer_1_1_electrometer_exception.html#electrometer_1_1_electrometer_exceptiona7">push_error</a>(const char *reason, const char *desc, const char *origin, int severity=electrometer::ERR)</td><td><a class="el" href="classelectrometer_1_1_electrometer_exception.html">electrometer::ElectrometerException</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classelectrometer_1_1_electrometer_exception.html#electrometer_1_1_electrometer_exceptiona8">push_error</a>(const std::string &amp;reason, const std::string &amp;desc, const std::string &amp;origin, int severity=electrometer::ERR)</td><td><a class="el" href="classelectrometer_1_1_electrometer_exception.html">electrometer::ElectrometerException</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classelectrometer_1_1_electrometer_exception.html#electrometer_1_1_electrometer_exceptiona9">push_error</a>(const Error &amp;error)</td><td><a class="el" href="classelectrometer_1_1_electrometer_exception.html">electrometer::ElectrometerException</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classelectrometer_1_1_electrometer_exception.html#electrometer_1_1_electrometer_exceptiona6">~ElectrometerException</a>(void)</td><td><a class="el" href="classelectrometer_1_1_electrometer_exception.html">electrometer::ElectrometerException</a></td><td><code> [virtual]</code></td></tr>
+</table><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:23 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/classelectrometer_1_1_electrometer_exception.html b/doc/html/classelectrometer_1_1_electrometer_exception.html
new file mode 100644
index 0000000000000000000000000000000000000000..1d243d3b6da52abf3f4ef08db0bf49ed20b6374a
--- /dev/null
+++ b/doc/html/classelectrometer_1_1_electrometer_exception.html
@@ -0,0 +1,439 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: electrometer::ElectrometerException Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>electrometer::ElectrometerException Class Reference</h1>detailed description to be written  
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="_electrometer_exception_8h-source.html">ElectrometerException.h</a>&gt;</code>
+<p>
+<a href="classelectrometer_1_1_electrometer_exception-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelectrometer_1_1_electrometer_exception.html#electrometer_1_1_electrometer_exceptiona0">ElectrometerException</a> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelectrometer_1_1_electrometer_exception.html#electrometer_1_1_electrometer_exceptiona1">ElectrometerException</a> (const char *reason, const char *desc, const char *origin, int severity=electrometer::ERR)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelectrometer_1_1_electrometer_exception.html#electrometer_1_1_electrometer_exceptiona2">ElectrometerException</a> (const std::string &amp;reason, const std::string &amp;desc, const std::string &amp;origin, int severity=electrometer::ERR)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelectrometer_1_1_electrometer_exception.html#electrometer_1_1_electrometer_exceptiona3">ElectrometerException</a> (const <a class="el" href="classelectrometer_1_1_error.html">Error</a> &amp;error)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelectrometer_1_1_electrometer_exception.html#electrometer_1_1_electrometer_exceptiona4">ElectrometerException</a> (const <a class="el" href="classelectrometer_1_1_electrometer_exception.html">ElectrometerException</a> &amp;src)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classelectrometer_1_1_electrometer_exception.html">ElectrometerException</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelectrometer_1_1_electrometer_exception.html#electrometer_1_1_electrometer_exceptiona5">operator=</a> (const <a class="el" href="classelectrometer_1_1_electrometer_exception.html">ElectrometerException</a> &amp;_src)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelectrometer_1_1_electrometer_exception.html#electrometer_1_1_electrometer_exceptiona6">~ElectrometerException</a> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelectrometer_1_1_electrometer_exception.html#electrometer_1_1_electrometer_exceptiona7">push_error</a> (const char *reason, const char *desc, const char *origin, int severity=electrometer::ERR)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelectrometer_1_1_electrometer_exception.html#electrometer_1_1_electrometer_exceptiona8">push_error</a> (const std::string &amp;reason, const std::string &amp;desc, const std::string &amp;origin, int severity=electrometer::ERR)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelectrometer_1_1_electrometer_exception.html#electrometer_1_1_electrometer_exceptiona9">push_error</a> (const <a class="el" href="classelectrometer_1_1_error.html">Error</a> &amp;error)</td></tr>
+
+<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">ErrorList&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelectrometer_1_1_electrometer_exception.html#electrometer_1_1_electrometer_exceptiono0">errors</a></td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+detailed description to be written 
+<p>
+<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="electrometer_1_1_electrometer_exceptiona0" doxytag="electrometer::ElectrometerException::ElectrometerException"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">electrometer::ElectrometerException::ElectrometerException           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">void&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Initialization.     </td>
+  </tr>
+</table>
+<a class="anchor" name="electrometer_1_1_electrometer_exceptiona1" doxytag="electrometer::ElectrometerException::ElectrometerException"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">electrometer::ElectrometerException::ElectrometerException           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">const char *&nbsp;</td>
+          <td class="mdname" nowrap> <em>reason</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>const char *&nbsp;</td>
+          <td class="mdname" nowrap> <em>desc</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>const char *&nbsp;</td>
+          <td class="mdname" nowrap> <em>origin</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>int&nbsp;</td>
+          <td class="mdname" nowrap> <em>severity</em> = <code>electrometer::ERR</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Initialization.     </td>
+  </tr>
+</table>
+<a class="anchor" name="electrometer_1_1_electrometer_exceptiona2" doxytag="electrometer::ElectrometerException::ElectrometerException"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">electrometer::ElectrometerException::ElectrometerException           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">const std::string &amp;&nbsp;</td>
+          <td class="mdname" nowrap> <em>reason</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>const std::string &amp;&nbsp;</td>
+          <td class="mdname" nowrap> <em>desc</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>const std::string &amp;&nbsp;</td>
+          <td class="mdname" nowrap> <em>origin</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>int&nbsp;</td>
+          <td class="mdname" nowrap> <em>severity</em> = <code>electrometer::ERR</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Initialization.     </td>
+  </tr>
+</table>
+<a class="anchor" name="electrometer_1_1_electrometer_exceptiona3" doxytag="electrometer::ElectrometerException::ElectrometerException"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">electrometer::ElectrometerException::ElectrometerException           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">const <a class="el" href="classelectrometer_1_1_error.html">Error</a> &amp;&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>error</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Initialization.     </td>
+  </tr>
+</table>
+<a class="anchor" name="electrometer_1_1_electrometer_exceptiona4" doxytag="electrometer::ElectrometerException::ElectrometerException"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">electrometer::ElectrometerException::ElectrometerException           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">const <a class="el" href="classelectrometer_1_1_electrometer_exception.html">ElectrometerException</a> &amp;&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>src</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Copy constructor.     </td>
+  </tr>
+</table>
+<a class="anchor" name="electrometer_1_1_electrometer_exceptiona6" doxytag="electrometer::ElectrometerException::~ElectrometerException"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">virtual electrometer::ElectrometerException::~<a class="el" href="classelectrometer_1_1_electrometer_exception.html">ElectrometerException</a>           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">void&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [virtual]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Release resources.     </td>
+  </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="electrometer_1_1_electrometer_exceptiona5" doxytag="electrometer::ElectrometerException::operator="></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classelectrometer_1_1_electrometer_exception.html">ElectrometerException</a>&amp; electrometer::ElectrometerException::operator=           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">const <a class="el" href="classelectrometer_1_1_electrometer_exception.html">ElectrometerException</a> &amp;&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>_src</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+operator=     </td>
+  </tr>
+</table>
+<a class="anchor" name="electrometer_1_1_electrometer_exceptiona9" doxytag="electrometer::ElectrometerException::push_error"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void electrometer::ElectrometerException::push_error           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">const <a class="el" href="classelectrometer_1_1_error.html">Error</a> &amp;&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>error</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Push the specified error into the errors list.     </td>
+  </tr>
+</table>
+<a class="anchor" name="electrometer_1_1_electrometer_exceptiona8" doxytag="electrometer::ElectrometerException::push_error"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void electrometer::ElectrometerException::push_error           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">const std::string &amp;&nbsp;</td>
+          <td class="mdname" nowrap> <em>reason</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>const std::string &amp;&nbsp;</td>
+          <td class="mdname" nowrap> <em>desc</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>const std::string &amp;&nbsp;</td>
+          <td class="mdname" nowrap> <em>origin</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>int&nbsp;</td>
+          <td class="mdname" nowrap> <em>severity</em> = <code>electrometer::ERR</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Push the specified error into the errors list.     </td>
+  </tr>
+</table>
+<a class="anchor" name="electrometer_1_1_electrometer_exceptiona7" doxytag="electrometer::ElectrometerException::push_error"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">void electrometer::ElectrometerException::push_error           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">const char *&nbsp;</td>
+          <td class="mdname" nowrap> <em>reason</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>const char *&nbsp;</td>
+          <td class="mdname" nowrap> <em>desc</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>const char *&nbsp;</td>
+          <td class="mdname" nowrap> <em>origin</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>int&nbsp;</td>
+          <td class="mdname" nowrap> <em>severity</em> = <code>electrometer::ERR</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Push the specified error into the errors list.     </td>
+  </tr>
+</table>
+<hr><h2>Member Data Documentation</h2>
+<a class="anchor" name="electrometer_1_1_electrometer_exceptiono0" doxytag="electrometer::ElectrometerException::errors"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">ErrorList <a class="el" href="classelectrometer_1_1_electrometer_exception.html#electrometer_1_1_electrometer_exceptiono0">electrometer::ElectrometerException::errors</a>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+The errors list     </td>
+  </tr>
+</table>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="_electrometer_exception_8h-source.html">ElectrometerException.h</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:23 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/classelectrometer_1_1_error-members.html b/doc/html/classelectrometer_1_1_error-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..312e81c7ff5b5f0b8f204ed9c05f2a6d45248e25
--- /dev/null
+++ b/doc/html/classelectrometer_1_1_error-members.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Member List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>electrometer::Error Member List</h1>This is the complete list of members for <a class="el" href="classelectrometer_1_1_error.html">electrometer::Error</a>, including all inherited members.<p><table>
+  <tr class="memlist"><td><a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_erroro1">desc</a></td><td><a class="el" href="classelectrometer_1_1_error.html">electrometer::Error</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_errora0">Error</a>(void)</td><td><a class="el" href="classelectrometer_1_1_error.html">electrometer::Error</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_errora1">Error</a>(const char *reason, const char *desc, const char *origin, int severity=electrometer::ERR)</td><td><a class="el" href="classelectrometer_1_1_error.html">electrometer::Error</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_errora2">Error</a>(const std::string &amp;reason, const std::string &amp;desc, const std::string &amp;origin, int severity=electrometer::ERR)</td><td><a class="el" href="classelectrometer_1_1_error.html">electrometer::Error</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_errora3">Error</a>(const Error &amp;src)</td><td><a class="el" href="classelectrometer_1_1_error.html">electrometer::Error</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_errora5">operator=</a>(const Error &amp;_src)</td><td><a class="el" href="classelectrometer_1_1_error.html">electrometer::Error</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_erroro2">origin</a></td><td><a class="el" href="classelectrometer_1_1_error.html">electrometer::Error</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_erroro0">reason</a></td><td><a class="el" href="classelectrometer_1_1_error.html">electrometer::Error</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_erroro3">severity</a></td><td><a class="el" href="classelectrometer_1_1_error.html">electrometer::Error</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_errora4">~Error</a>(void)</td><td><a class="el" href="classelectrometer_1_1_error.html">electrometer::Error</a></td><td><code> [virtual]</code></td></tr>
+</table><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:23 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/classelectrometer_1_1_error.html b/doc/html/classelectrometer_1_1_error.html
new file mode 100644
index 0000000000000000000000000000000000000000..7b546ea6529b6e6d942441dc7a5fc297ec2dd4d3
--- /dev/null
+++ b/doc/html/classelectrometer_1_1_error.html
@@ -0,0 +1,352 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: electrometer::Error Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>electrometer::Error Class Reference</h1>detailed description to be written  
+<a href="#_details">More...</a>
+<p>
+<code>#include &lt;<a class="el" href="_electrometer_exception_8h-source.html">ElectrometerException.h</a>&gt;</code>
+<p>
+<a href="classelectrometer_1_1_error-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_errora0">Error</a> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_errora1">Error</a> (const char *<a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_erroro0">reason</a>, const char *<a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_erroro1">desc</a>, const char *<a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_erroro2">origin</a>, int <a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_erroro3">severity</a>=electrometer::ERR)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_errora2">Error</a> (const std::string &amp;<a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_erroro0">reason</a>, const std::string &amp;<a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_erroro1">desc</a>, const std::string &amp;<a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_erroro2">origin</a>, int <a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_erroro3">severity</a>=electrometer::ERR)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_errora3">Error</a> (const <a class="el" href="classelectrometer_1_1_error.html">Error</a> &amp;src)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_errora4">~Error</a> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classelectrometer_1_1_error.html">Error</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_errora5">operator=</a> (const <a class="el" href="classelectrometer_1_1_error.html">Error</a> &amp;_src)</td></tr>
+
+<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_erroro0">reason</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_erroro1">desc</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_erroro2">origin</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_erroro3">severity</a></td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+detailed description to be written 
+<p>
+<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="electrometer_1_1_errora0" doxytag="electrometer::Error::Error"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">electrometer::Error::Error           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">void&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Initialization.     </td>
+  </tr>
+</table>
+<a class="anchor" name="electrometer_1_1_errora1" doxytag="electrometer::Error::Error"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">electrometer::Error::Error           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">const char *&nbsp;</td>
+          <td class="mdname" nowrap> <em>reason</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>const char *&nbsp;</td>
+          <td class="mdname" nowrap> <em>desc</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>const char *&nbsp;</td>
+          <td class="mdname" nowrap> <em>origin</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>int&nbsp;</td>
+          <td class="mdname" nowrap> <em>severity</em> = <code>electrometer::ERR</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Initialization.     </td>
+  </tr>
+</table>
+<a class="anchor" name="electrometer_1_1_errora2" doxytag="electrometer::Error::Error"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">electrometer::Error::Error           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">const std::string &amp;&nbsp;</td>
+          <td class="mdname" nowrap> <em>reason</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>const std::string &amp;&nbsp;</td>
+          <td class="mdname" nowrap> <em>desc</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>const std::string &amp;&nbsp;</td>
+          <td class="mdname" nowrap> <em>origin</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>int&nbsp;</td>
+          <td class="mdname" nowrap> <em>severity</em> = <code>electrometer::ERR</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Initialization.     </td>
+  </tr>
+</table>
+<a class="anchor" name="electrometer_1_1_errora3" doxytag="electrometer::Error::Error"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">electrometer::Error::Error           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">const <a class="el" href="classelectrometer_1_1_error.html">Error</a> &amp;&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>src</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Copy constructor.     </td>
+  </tr>
+</table>
+<a class="anchor" name="electrometer_1_1_errora4" doxytag="electrometer::Error::~Error"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">virtual electrometer::Error::~<a class="el" href="classelectrometer_1_1_error.html">Error</a>           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">void&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [virtual]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+<a class="el" href="classelectrometer_1_1_error.html">Error</a> details: code     </td>
+  </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="electrometer_1_1_errora5" doxytag="electrometer::Error::operator="></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classelectrometer_1_1_error.html">Error</a>&amp; electrometer::Error::operator=           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">const <a class="el" href="classelectrometer_1_1_error.html">Error</a> &amp;&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>_src</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+operator=     </td>
+  </tr>
+</table>
+<hr><h2>Member Data Documentation</h2>
+<a class="anchor" name="electrometer_1_1_erroro1" doxytag="electrometer::Error::desc"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">std::string <a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_erroro1">electrometer::Error::desc</a>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+<a class="el" href="classelectrometer_1_1_error.html">Error</a> details: description     </td>
+  </tr>
+</table>
+<a class="anchor" name="electrometer_1_1_erroro2" doxytag="electrometer::Error::origin"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">std::string <a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_erroro2">electrometer::Error::origin</a>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+<a class="el" href="classelectrometer_1_1_error.html">Error</a> details: origin     </td>
+  </tr>
+</table>
+<a class="anchor" name="electrometer_1_1_erroro0" doxytag="electrometer::Error::reason"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">std::string <a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_erroro0">electrometer::Error::reason</a>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+<a class="el" href="classelectrometer_1_1_error.html">Error</a> details: reason     </td>
+  </tr>
+</table>
+<a class="anchor" name="electrometer_1_1_erroro3" doxytag="electrometer::Error::severity"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_erroro3">electrometer::Error::severity</a>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+<a class="el" href="classelectrometer_1_1_error.html">Error</a> details: severity     </td>
+  </tr>
+</table>
+<hr>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="_electrometer_exception_8h-source.html">ElectrometerException.h</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:23 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/classes.html b/doc/html/classes.html
new file mode 100644
index 0000000000000000000000000000000000000000..c4dba68ef2cb0ae6aca9e9fb18f2bcaca20979a5
--- /dev/null
+++ b/doc/html/classes.html
@@ -0,0 +1,21 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Alphabetical List</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindexHL" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>Electrometers Library Class Index</h1><p><div class="qindex"><a class="qindex" href="#letter_A">A</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_C">C</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_E">E</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_K">K</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_N">N</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_T">T</a></div><p>
+<table align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
+<tr><td><a name="letter_A"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;A&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="class_keithley__617.html">Keithley_617</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classelectrometer_1_1_error.html">Error</a> (electrometer)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="class_keithley__6485.html">Keithley_6485</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="class_novelec_protocol.html">NovelecProtocol</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a name="letter_C"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;C&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a name="letter_K"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;K&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="class_keithley__6487.html">Keithley_6487</a>&nbsp;&nbsp;&nbsp;</td><td><a name="letter_N"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;N&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a name="letter_T"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;T&nbsp;&nbsp;</div></td></tr></table>
+</td></tr><tr><td><a class="el" href="class_communication_link.html">CommunicationLink</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="class_keithley__485.html">Keithley_485</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="class_keithley__6512.html">Keithley_6512</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="class_n___photo_conducteur.html">N_PhotoConducteur</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="class_tango_gpib_link.html">TangoGpibLink</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a name="letter_E"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;E&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="class_keithley__486.html">Keithley_486</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="class_keithley__6514.html">Keithley_6514</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="class_n___photo_voltaique.html">N_PhotoVoltaique</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="class_tango_serial_link.html">TangoSerialLink</a>&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classelectrometer_1_1_electrometer_exception.html">ElectrometerException</a> (electrometer)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="class_keithley__487.html">Keithley_487</a>&nbsp;&nbsp;&nbsp;</td></tr></table><p><div class="qindex"><a class="qindex" href="#letter_A">A</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_C">C</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_E">E</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_K">K</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_N">N</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_T">T</a></div><p>
+<hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:19 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/dir_000000.html b/doc/html/dir_000000.html
new file mode 100644
index 0000000000000000000000000000000000000000..a3e33b3f2e84715527e41d48abd98f50edd34691
--- /dev/null
+++ b/doc/html/dir_000000.html
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: D:/ Directory Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">D:</a></div>
+<h1>D: Directory Reference</h1><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Directories</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">directory&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_000001.html">DeviceServerSrc</a></td></tr>
+
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:23 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/dir_000001.html b/doc/html/dir_000001.html
new file mode 100644
index 0000000000000000000000000000000000000000..2999594c28317c9143026f0f980687e5572d11ee
--- /dev/null
+++ b/doc/html/dir_000001.html
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: D:/DeviceServerSrc/ Directory Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">D:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">DeviceServerSrc</a></div>
+<h1>DeviceServerSrc Directory Reference</h1><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Directories</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">directory&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_000002.html">ElectrometersLibrary</a></td></tr>
+
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:23 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/dir_000002.html b/doc/html/dir_000002.html
new file mode 100644
index 0000000000000000000000000000000000000000..5d90e52dc7328e88c9b74a6d92ac4a2dd5b24e07
--- /dev/null
+++ b/doc/html/dir_000002.html
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: D:/DeviceServerSrc/ElectrometersLibrary/ Directory Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">D:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">DeviceServerSrc</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">ElectrometersLibrary</a></div>
+<h1>ElectrometersLibrary Directory Reference</h1><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Directories</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">directory&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_000003.html">include</a></td></tr>
+
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:23 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/dir_000003.html b/doc/html/dir_000003.html
new file mode 100644
index 0000000000000000000000000000000000000000..9ba21e41527eb136e5ab5a1cda3740abfd5e8c18
--- /dev/null
+++ b/doc/html/dir_000003.html
@@ -0,0 +1,58 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: D:/DeviceServerSrc/ElectrometersLibrary/include/ Directory Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">D:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">DeviceServerSrc</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">ElectrometersLibrary</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>include Directory Reference</h1><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Files</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>AbstractElectrometerClass.h</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>CommunicationLink.h</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>ElectrometerException.h</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>ElectrometerProtocol.h</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>Keithley_485.h</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>Keithley_486.h</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>Keithley_487.h</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>Keithley_617.h</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>Keithley_6485.h</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>Keithley_6487.h</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>Keithley_6512.h</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>Keithley_6514.h</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>KeithleyDDCProtocol.h</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>KeithleySCPIProtocol.h</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>N_PhotoConducteur.h</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>N_PhotoVoltaique.h</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>Novelec_MCCE2.h</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>NovelecProtocol.h</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>TangoGpibLink.h</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>TangoSerialLink.h</b></td></tr>
+
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:23 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/doxygen.css b/doc/html/doxygen.css
new file mode 100644
index 0000000000000000000000000000000000000000..1d4d63117fe1f5c2fde2df1c98c83c22d3f9ff29
--- /dev/null
+++ b/doc/html/doxygen.css
@@ -0,0 +1,271 @@
+BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV {
+	font-family: Geneva, Arial, Helvetica, sans-serif;
+}
+H1 {
+	text-align: center;
+}
+CAPTION { font-weight: bold }
+DIV.qindex {
+	width: 100%;
+	background-color: #eeeeff;
+	border: 1px solid #b0b0b0;
+	text-align: center;
+	margin: 2px;
+	padding: 2px;
+	line-height: 140%;
+}
+DIV.nav {
+	width: 100%;
+	background-color: #eeeeff;
+	border: 1px solid #b0b0b0;
+	text-align: center;
+	margin: 2px;
+	padding: 2px;
+	line-height: 140%;
+}
+A.qindex {
+       text-decoration: none;
+       font-weight: bold;
+       color: #1A419D;
+}
+A.qindex:visited {
+       text-decoration: none;
+       font-weight: bold;
+       color: #1A419D
+}
+A.qindex:hover {
+	text-decoration: none;
+	background-color: #ddddff;
+}
+A.qindexHL {
+	text-decoration: none;
+	font-weight: bold;
+	background-color: #6666cc;
+	color: #ffffff;
+	border: 1px double #9295C2;
+}
+A.qindexHL:hover {
+	text-decoration: none;
+	background-color: #6666cc;
+	color: #ffffff;
+}
+A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff }
+A.el { text-decoration: none; font-weight: bold }
+A.elRef { font-weight: bold }
+A.code:link { text-decoration: none; font-weight: normal; color: #0000FF}
+A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF}
+A.codeRef:link { font-weight: normal; color: #0000FF}
+A.codeRef:visited { font-weight: normal; color: #0000FF}
+A:hover { text-decoration: none; background-color: #f2f2ff }
+DL.el { margin-left: -1cm }
+.fragment {
+       font-family: monospace
+}
+PRE.fragment {
+	border: 1px solid #CCCCCC;
+	background-color: #f5f5f5;
+	margin-top: 4px;
+	margin-bottom: 4px;
+	margin-left: 2px;
+	margin-right: 8px;
+	padding-left: 6px;
+	padding-right: 6px;
+	padding-top: 4px;
+	padding-bottom: 4px;
+}
+DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px }
+TD.md { background-color: #F4F4FB; font-weight: bold; }
+TD.mdname1 { background-color: #F4F4FB; font-weight: bold; color: #602020; }
+TD.mdname { background-color: #F4F4FB; font-weight: bold; color: #602020; width: 600px; }
+DIV.groupHeader {
+       margin-left: 16px;
+       margin-top: 12px;
+       margin-bottom: 6px;
+       font-weight: bold;
+}
+DIV.groupText { margin-left: 16px; font-style: italic; font-size: 14px }
+BODY {
+	background: white;
+	color: black;
+	margin-right: 20px;
+	margin-left: 20px;
+}
+TD.indexkey {
+	background-color: #eeeeff;
+	font-weight: bold;
+	padding-right  : 10px;
+	padding-top    : 2px;
+	padding-left   : 10px;
+	padding-bottom : 2px;
+	margin-left    : 0px;
+	margin-right   : 0px;
+	margin-top     : 2px;
+	margin-bottom  : 2px;
+	border: 1px solid #CCCCCC;
+}
+TD.indexvalue {
+	background-color: #eeeeff;
+	font-style: italic;
+	padding-right  : 10px;
+	padding-top    : 2px;
+	padding-left   : 10px;
+	padding-bottom : 2px;
+	margin-left    : 0px;
+	margin-right   : 0px;
+	margin-top     : 2px;
+	margin-bottom  : 2px;
+	border: 1px solid #CCCCCC;
+}
+TR.memlist {
+   background-color: #f0f0f0; 
+}
+P.formulaDsp { text-align: center; }
+IMG.formulaDsp { }
+IMG.formulaInl { vertical-align: middle; }
+SPAN.keyword       { color: #008000 }
+SPAN.keywordtype   { color: #604020 }
+SPAN.keywordflow   { color: #e08000 }
+SPAN.comment       { color: #800000 }
+SPAN.preprocessor  { color: #806020 }
+SPAN.stringliteral { color: #002080 }
+SPAN.charliteral   { color: #008080 }
+.mdTable {
+	border: 1px solid #868686;
+	background-color: #F4F4FB;
+}
+.mdRow {
+	padding: 8px 10px;
+}
+.mdescLeft {
+       padding: 0px 8px 4px 8px;
+	font-size: 12px;
+	font-style: italic;
+	background-color: #FAFAFA;
+	border-top: 1px none #E0E0E0;
+	border-right: 1px none #E0E0E0;
+	border-bottom: 1px none #E0E0E0;
+	border-left: 1px none #E0E0E0;
+	margin: 0px;
+}
+.mdescRight {
+       padding: 0px 8px 4px 8px;
+	font-size: 12px;
+	font-style: italic;
+	background-color: #FAFAFA;
+	border-top: 1px none #E0E0E0;
+	border-right: 1px none #E0E0E0;
+	border-bottom: 1px none #E0E0E0;
+	border-left: 1px none #E0E0E0;
+	margin: 0px;
+}
+.memItemLeft {
+	padding: 1px 0px 0px 8px;
+	margin: 4px;
+	border-top-width: 1px;
+	border-right-width: 1px;
+	border-bottom-width: 1px;
+	border-left-width: 1px;
+	border-top-color: #E0E0E0;
+	border-right-color: #E0E0E0;
+	border-bottom-color: #E0E0E0;
+	border-left-color: #E0E0E0;
+	border-top-style: solid;
+	border-right-style: none;
+	border-bottom-style: none;
+	border-left-style: none;
+	background-color: #FAFAFA;
+	font-size: 12px;
+}
+.memItemRight {
+	padding: 1px 8px 0px 8px;
+	margin: 4px;
+	border-top-width: 1px;
+	border-right-width: 1px;
+	border-bottom-width: 1px;
+	border-left-width: 1px;
+	border-top-color: #E0E0E0;
+	border-right-color: #E0E0E0;
+	border-bottom-color: #E0E0E0;
+	border-left-color: #E0E0E0;
+	border-top-style: solid;
+	border-right-style: none;
+	border-bottom-style: none;
+	border-left-style: none;
+	background-color: #FAFAFA;
+	font-size: 13px;
+}
+.memTemplItemLeft {
+	padding: 1px 0px 0px 8px;
+	margin: 4px;
+	border-top-width: 1px;
+	border-right-width: 1px;
+	border-bottom-width: 1px;
+	border-left-width: 1px;
+	border-top-color: #E0E0E0;
+	border-right-color: #E0E0E0;
+	border-bottom-color: #E0E0E0;
+	border-left-color: #E0E0E0;
+	border-top-style: none;
+	border-right-style: none;
+	border-bottom-style: none;
+	border-left-style: none;
+	background-color: #FAFAFA;
+	font-size: 12px;
+}
+.memTemplItemRight {
+	padding: 1px 8px 0px 8px;
+	margin: 4px;
+	border-top-width: 1px;
+	border-right-width: 1px;
+	border-bottom-width: 1px;
+	border-left-width: 1px;
+	border-top-color: #E0E0E0;
+	border-right-color: #E0E0E0;
+	border-bottom-color: #E0E0E0;
+	border-left-color: #E0E0E0;
+	border-top-style: none;
+	border-right-style: none;
+	border-bottom-style: none;
+	border-left-style: none;
+	background-color: #FAFAFA;
+	font-size: 13px;
+}
+.memTemplParams {
+	padding: 1px 0px 0px 8px;
+	margin: 4px;
+	border-top-width: 1px;
+	border-right-width: 1px;
+	border-bottom-width: 1px;
+	border-left-width: 1px;
+	border-top-color: #E0E0E0;
+	border-right-color: #E0E0E0;
+	border-bottom-color: #E0E0E0;
+	border-left-color: #E0E0E0;
+	border-top-style: solid;
+	border-right-style: none;
+	border-bottom-style: none;
+	border-left-style: none;
+       color: #606060;
+	background-color: #FAFAFA;
+	font-size: 12px;
+}
+.search     { color: #003399;
+              font-weight: bold;
+}
+FORM.search {
+              margin-bottom: 0px;
+              margin-top: 0px;
+}
+INPUT.search { font-size: 75%;
+               color: #000080;
+               font-weight: normal;
+               background-color: #eeeeff;
+}
+TD.tiny      { font-size: 75%;
+}
+a {
+	color: #252E78;
+}
+a:visited {
+	color: #3D2185;
+}
diff --git a/doc/html/doxygen.png b/doc/html/doxygen.png
new file mode 100644
index 0000000000000000000000000000000000000000..f0a274bbaffdd67f6d784c894d9cf28729db0e14
Binary files /dev/null and b/doc/html/doxygen.png differ
diff --git a/doc/html/files.html b/doc/html/files.html
new file mode 100644
index 0000000000000000000000000000000000000000..babd7c2617e311f200a50047d2d153d2c63473e0
--- /dev/null
+++ b/doc/html/files.html
@@ -0,0 +1,34 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: File Index</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindexHL" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>Electrometers Library File List</h1>Here is a list of all documented files with brief descriptions:<table>
+  <tr><td class="indexkey"><b>AbstractElectrometerClass.h</b> <a href="_abstract_electrometer_class_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>CommunicationLink.h</b> <a href="_communication_link_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>ElectrometerException.h</b> <a href="_electrometer_exception_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>ElectrometerProtocol.h</b> <a href="_electrometer_protocol_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>Keithley_485.h</b> <a href="_keithley__485_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>Keithley_486.h</b> <a href="_keithley__486_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>Keithley_487.h</b> <a href="_keithley__487_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>Keithley_617.h</b> <a href="_keithley__617_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>Keithley_6485.h</b> <a href="_keithley__6485_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>Keithley_6487.h</b> <a href="_keithley__6487_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>Keithley_6512.h</b> <a href="_keithley__6512_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>Keithley_6514.h</b> <a href="_keithley__6514_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>KeithleyDDCProtocol.h</b> <a href="_keithley_d_d_c_protocol_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>KeithleySCPIProtocol.h</b> <a href="_keithley_s_c_p_i_protocol_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>N_PhotoConducteur.h</b> <a href="_n___photo_conducteur_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>N_PhotoVoltaique.h</b> <a href="_n___photo_voltaique_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>Novelec_MCCE2.h</b> <a href="_novelec___m_c_c_e2_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>NovelecProtocol.h</b> <a href="_novelec_protocol_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>TangoGpibLink.h</b> <a href="_tango_gpib_link_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>TangoSerialLink.h</b> <a href="_tango_serial_link_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:18 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/functions.html b/doc/html/functions.html
new file mode 100644
index 0000000000000000000000000000000000000000..32fb5e95b40a0878d4cfff7fa5d568bc46d9fa76
--- /dev/null
+++ b/doc/html/functions.html
@@ -0,0 +1,121 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Class Members</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a></div>
+<div class="qindex"><a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
+<div class="qindex"><a class="qindex" href="#index_a">a</a> | <a class="qindex" href="#index_c">c</a> | <a class="qindex" href="#index_d">d</a> | <a class="qindex" href="#index_e">e</a> | <a class="qindex" href="#index_g">g</a> | <a class="qindex" href="#index_i">i</a> | <a class="qindex" href="#index_k">k</a> | <a class="qindex" href="#index_m">m</a> | <a class="qindex" href="#index_n">n</a> | <a class="qindex" href="#index_o">o</a> | <a class="qindex" href="#index_p">p</a> | <a class="qindex" href="#index_r">r</a> | <a class="qindex" href="#index_s">s</a> | <a class="qindex" href="#index_t">t</a> | <a class="qindex" href="#index_w">w</a> | <a class="qindex" href="#index_~">~</a></div>
+
+<p>
+
+<p>
+Here is a list of all documented class members with links to the class documentation for each member:<h3><a class="anchor" name="index_a">- a -</a></h3><ul>
+<li>AbstractElectrometerClass()
+: <a class="el" href="class_abstract_electrometer_class.html#_abstract_electrometer_classa0">AbstractElectrometerClass</a><li>autoRange_off()
+: <a class="el" href="class_keithley__6512.html#_keithley__6512a2">Keithley_6512</a>, <a class="el" href="class_keithley__617.html#_keithley__617a2">Keithley_617</a><li>autoRange_on()
+: <a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a17">AbstractElectrometerClass</a></ul>
+<h3><a class="anchor" name="index_c">- c -</a></h3><ul>
+<li>CommunicationLink()
+: <a class="el" href="class_communication_link.html#_communication_linka0">CommunicationLink</a></ul>
+<h3><a class="anchor" name="index_d">- d -</a></h3><ul>
+<li>desc
+: <a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_erroro1">electrometer::Error</a></ul>
+<h3><a class="anchor" name="index_e">- e -</a></h3><ul>
+<li>electrometer_status()
+: <a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a10">Novelec_MCCE2</a>, <a class="el" href="class_keithley__6512.html#_keithley__6512a11">Keithley_6512</a>, <a class="el" href="class_keithley__617.html#_keithley__617a11">Keithley_617</a>, <a class="el" href="class_keithley__487.html#_keithley__487a8">Keithley_487</a>, <a class="el" href="class_keithley__486.html#_keithley__486a6">Keithley_486</a>, <a class="el" href="class_keithley__485.html#_keithley__485a5">Keithley_485</a>, <a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a44">AbstractElectrometerClass</a><li>ElectrometerException()
+: <a class="el" href="classelectrometer_1_1_electrometer_exception.html#electrometer_1_1_electrometer_exceptiona4">electrometer::ElectrometerException</a><li>ElectrometerProtocol()
+: <a class="el" href="class_electrometer_protocol.html#_electrometer_protocola0">ElectrometerProtocol</a><li>Error()
+: <a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_errora3">electrometer::Error</a><li>errors
+: <a class="el" href="classelectrometer_1_1_electrometer_exception.html#electrometer_1_1_electrometer_exceptiono0">electrometer::ElectrometerException</a></ul>
+<h3><a class="anchor" name="index_g">- g -</a></h3><ul>
+<li>get_ElectroMeterFrequency()
+: <a class="el" href="class_n___photo_voltaique.html#_n___photo_voltaiquea4">N_PhotoVoltaique</a><li>get_ElectroMeterGain()
+: <a class="el" href="class_n___photo_conducteur.html#_n___photo_conducteura4">N_PhotoConducteur</a><li>get_ElectroMeterMode()
+: <a class="el" href="class_keithley__6512.html#_keithley__6512a9">Keithley_6512</a>, <a class="el" href="class_keithley__617.html#_keithley__617a9">Keithley_617</a>, <a class="el" href="class_keithley__487.html#_keithley__487a6">Keithley_487</a>, <a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a45">AbstractElectrometerClass</a><li>get_ElectroMeterPolarity()
+: <a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a2">Novelec_MCCE2</a>, <a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a38">AbstractElectrometerClass</a><li>get_ElectroMeterRange()
+: <a class="el" href="class_keithley__486.html#_keithley__486a5">Keithley_486</a>, <a class="el" href="class_keithley__485.html#_keithley__485a4">Keithley_485</a><li>get_mode()
+: <a class="el" href="class_novelec_protocol.html#_novelec_protocola15">NovelecProtocol</a>, <a class="el" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola32">KeithleySCPIProtocol</a>, <a class="el" href="class_keithley_d_d_c_protocol.html#_keithley_d_d_c_protocola22">KeithleyDDCProtocol</a><li>get_raw_status()
+: <a class="el" href="class_novelec_protocol.html#_novelec_protocola14">NovelecProtocol</a>, <a class="el" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola31">KeithleySCPIProtocol</a>, <a class="el" href="class_keithley_d_d_c_protocol.html#_keithley_d_d_c_protocola21">KeithleyDDCProtocol</a>, <a class="el" href="class_electrometer_protocol.html#_electrometer_protocola9">ElectrometerProtocol</a><li>get_value()
+: <a class="el" href="class_novelec_protocol.html#_novelec_protocola7">NovelecProtocol</a>, <a class="el" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola18">KeithleySCPIProtocol</a>, <a class="el" href="class_keithley_d_d_c_protocol.html#_keithley_d_d_c_protocola14">KeithleyDDCProtocol</a>, <a class="el" href="class_electrometer_protocol.html#_electrometer_protocola6">ElectrometerProtocol</a>, <a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a16">AbstractElectrometerClass</a></ul>
+<h3><a class="anchor" name="index_i">- i -</a></h3><ul>
+<li>init_keithley()
+: <a class="el" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola19">KeithleySCPIProtocol</a>, <a class="el" href="class_electrometer_protocol.html#_novelec_protocola24">ElectrometerProtocol</a>, <a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a29">AbstractElectrometerClass</a></ul>
+<h3><a class="anchor" name="index_k">- k -</a></h3><ul>
+<li>Keithley_485()
+: <a class="el" href="class_keithley__485.html#_keithley__485a0">Keithley_485</a><li>Keithley_486()
+: <a class="el" href="class_keithley__486.html#_keithley__486a0">Keithley_486</a><li>Keithley_487()
+: <a class="el" href="class_keithley__487.html#_keithley__487a0">Keithley_487</a><li>Keithley_617()
+: <a class="el" href="class_keithley__617.html#_keithley__617a0">Keithley_617</a><li>Keithley_6485()
+: <a class="el" href="class_keithley__6485.html#_keithley__6485a0">Keithley_6485</a><li>Keithley_6487()
+: <a class="el" href="class_keithley__6487.html#_keithley__6487a0">Keithley_6487</a><li>Keithley_6512()
+: <a class="el" href="class_keithley__6512.html#_keithley__6512a0">Keithley_6512</a><li>Keithley_6514()
+: <a class="el" href="class_keithley__6514.html#_keithley__6514a0">Keithley_6514</a><li>KeithleyDDCProtocol()
+: <a class="el" href="class_keithley_d_d_c_protocol.html#_keithley_d_d_c_protocola0">KeithleyDDCProtocol</a><li>KeithleySCPIProtocol()
+: <a class="el" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola0">KeithleySCPIProtocol</a></ul>
+<h3><a class="anchor" name="index_m">- m -</a></h3><ul>
+<li>mcce_on()
+: <a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a8">Novelec_MCCE2</a></ul>
+<h3><a class="anchor" name="index_n">- n -</a></h3><ul>
+<li>N_PhotoConducteur()
+: <a class="el" href="class_n___photo_conducteur.html#_n___photo_conducteura0">N_PhotoConducteur</a><li>N_PhotoVoltaique()
+: <a class="el" href="class_n___photo_voltaique.html#_n___photo_voltaiquea0">N_PhotoVoltaique</a><li>Novelec_MCCE2()
+: <a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a0">Novelec_MCCE2</a><li>NovelecProtocol()
+: <a class="el" href="class_novelec_protocol.html#_novelec_protocola0">NovelecProtocol</a></ul>
+<h3><a class="anchor" name="index_o">- o -</a></h3><ul>
+<li>operator=()
+: <a class="el" href="classelectrometer_1_1_electrometer_exception.html#electrometer_1_1_electrometer_exceptiona5">electrometer::ElectrometerException</a>, <a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_errora5">electrometer::Error</a><li>origin
+: <a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_erroro2">electrometer::Error</a></ul>
+<h3><a class="anchor" name="index_p">- p -</a></h3><ul>
+<li>push_error()
+: <a class="el" href="classelectrometer_1_1_electrometer_exception.html#electrometer_1_1_electrometer_exceptiona9">electrometer::ElectrometerException</a></ul>
+<h3><a class="anchor" name="index_r">- r -</a></h3><ul>
+<li>range_up()
+: <a class="el" href="class_n___photo_voltaique.html#_n___photo_voltaiquea2">N_PhotoVoltaique</a>, <a class="el" href="class_n___photo_conducteur.html#_n___photo_conducteura2">N_PhotoConducteur</a>, <a class="el" href="class_keithley__6514.html#_keithley__6514a2">Keithley_6514</a>, <a class="el" href="class_keithley__6512.html#_keithley__6512a3">Keithley_6512</a>, <a class="el" href="class_keithley__6487.html#_keithley__6487a2">Keithley_6487</a>, <a class="el" href="class_keithley__6485.html#_keithley__6485a2">Keithley_6485</a>, <a class="el" href="class_keithley__617.html#_keithley__617a3">Keithley_617</a>, <a class="el" href="class_keithley__487.html#_keithley__487a2">Keithley_487</a>, <a class="el" href="class_keithley__486.html#_keithley__486a2">Keithley_486</a>, <a class="el" href="class_keithley__485.html#_keithley__485a2">Keithley_485</a>, <a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a11">AbstractElectrometerClass</a><li>read()
+: <a class="el" href="class_tango_serial_link.html#_tango_serial_linka3">TangoSerialLink</a>, <a class="el" href="class_tango_gpib_link.html#_tango_gpib_linka3">TangoGpibLink</a>, <a class="el" href="class_communication_link.html#_communication_linka3">CommunicationLink</a><li>reason
+: <a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_erroro0">electrometer::Error</a></ul>
+<h3><a class="anchor" name="index_s">- s -</a></h3><ul>
+<li>set_isDiffSuportedMode()
+: <a class="el" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola34">KeithleySCPIProtocol</a><li>set_range()
+: <a class="el" href="class_novelec_protocol.html#_novelec_protocola2">NovelecProtocol</a>, <a class="el" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola2">KeithleySCPIProtocol</a>, <a class="el" href="class_keithley_d_d_c_protocol.html#_keithley_d_d_c_protocola2">KeithleyDDCProtocol</a>, <a class="el" href="class_electrometer_protocol.html#_electrometer_protocola2">ElectrometerProtocol</a><li>set_Zero_VonF_function()
+: <a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a4">Novelec_MCCE2</a>, <a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a32">AbstractElectrometerClass</a><li>setAmperMeterMode()
+: <a class="el" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola14">KeithleySCPIProtocol</a>, <a class="el" href="class_keithley_d_d_c_protocol.html#_keithley_d_d_c_protocola15">KeithleyDDCProtocol</a>, <a class="el" href="class_keithley__6514.html#_keithley__6514a4">Keithley_6514</a>, <a class="el" href="class_keithley__6512.html#_keithley__6512a5">Keithley_6512</a>, <a class="el" href="class_keithley__6487.html#_keithley__6487a4">Keithley_6487</a>, <a class="el" href="class_keithley__617.html#_keithley__617a5">Keithley_617</a>, <a class="el" href="class_keithley__487.html#_keithley__487a5">Keithley_487</a><li>severity
+: <a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_erroro3">electrometer::Error</a><li>switch_MCCE2_ON()
+: <a class="el" href="class_novelec_protocol.html#_novelec_protocola8">NovelecProtocol</a>, <a class="el" href="class_electrometer_protocol.html#_keithley_s_c_p_i_protocola37">ElectrometerProtocol</a></ul>
+<h3><a class="anchor" name="index_t">- t -</a></h3><ul>
+<li>TangoGpibLink()
+: <a class="el" href="class_tango_gpib_link.html#_tango_gpib_linka0">TangoGpibLink</a><li>TangoSerialLink()
+: <a class="el" href="class_tango_serial_link.html#_tango_serial_linka0">TangoSerialLink</a></ul>
+<h3><a class="anchor" name="index_w">- w -</a></h3><ul>
+<li>write()
+: <a class="el" href="class_tango_serial_link.html#_tango_serial_linka2">TangoSerialLink</a>, <a class="el" href="class_tango_gpib_link.html#_tango_gpib_linka2">TangoGpibLink</a>, <a class="el" href="class_communication_link.html#_communication_linka2">CommunicationLink</a><li>write_read()
+: <a class="el" href="class_tango_serial_link.html#_tango_serial_linka4">TangoSerialLink</a>, <a class="el" href="class_tango_gpib_link.html#_tango_gpib_linka4">TangoGpibLink</a>, <a class="el" href="class_communication_link.html#_communication_linka4">CommunicationLink</a></ul>
+<h3><a class="anchor" name="index_~">- ~ -</a></h3><ul>
+<li>~AbstractElectrometerClass()
+: <a class="el" href="class_abstract_electrometer_class.html#_abstract_electrometer_classa1">AbstractElectrometerClass</a><li>~CommunicationLink()
+: <a class="el" href="class_communication_link.html#_communication_linka1">CommunicationLink</a><li>~ElectrometerException()
+: <a class="el" href="classelectrometer_1_1_electrometer_exception.html#electrometer_1_1_electrometer_exceptiona6">electrometer::ElectrometerException</a><li>~ElectrometerProtocol()
+: <a class="el" href="class_electrometer_protocol.html#_electrometer_protocola1">ElectrometerProtocol</a><li>~Error()
+: <a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_errora4">electrometer::Error</a><li>~Keithley_485()
+: <a class="el" href="class_keithley__485.html#_keithley__485a1">Keithley_485</a><li>~Keithley_486()
+: <a class="el" href="class_keithley__486.html#_keithley__486a1">Keithley_486</a><li>~Keithley_487()
+: <a class="el" href="class_keithley__487.html#_keithley__487a1">Keithley_487</a><li>~Keithley_617()
+: <a class="el" href="class_keithley__617.html#_keithley__617a1">Keithley_617</a><li>~Keithley_6485()
+: <a class="el" href="class_keithley__6485.html#_keithley__6485a1">Keithley_6485</a><li>~Keithley_6487()
+: <a class="el" href="class_keithley__6487.html#_keithley__6487a1">Keithley_6487</a><li>~Keithley_6512()
+: <a class="el" href="class_keithley__6512.html#_keithley__6512a1">Keithley_6512</a><li>~Keithley_6514()
+: <a class="el" href="class_keithley__6514.html#_keithley__6514a1">Keithley_6514</a><li>~KeithleyDDCProtocol()
+: <a class="el" href="class_keithley_d_d_c_protocol.html#_keithley_d_d_c_protocola1">KeithleyDDCProtocol</a><li>~KeithleySCPIProtocol()
+: <a class="el" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola1">KeithleySCPIProtocol</a><li>~N_PhotoConducteur()
+: <a class="el" href="class_n___photo_conducteur.html#_n___photo_conducteura1">N_PhotoConducteur</a><li>~N_PhotoVoltaique()
+: <a class="el" href="class_n___photo_voltaique.html#_n___photo_voltaiquea1">N_PhotoVoltaique</a><li>~Novelec_MCCE2()
+: <a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a1">Novelec_MCCE2</a><li>~NovelecProtocol()
+: <a class="el" href="class_novelec_protocol.html#_novelec_protocola1">NovelecProtocol</a><li>~TangoGpibLink()
+: <a class="el" href="class_tango_gpib_link.html#_tango_gpib_linka1">TangoGpibLink</a><li>~TangoSerialLink()
+: <a class="el" href="class_tango_serial_link.html#_tango_serial_linka1">TangoSerialLink</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:19 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/functions_func.html b/doc/html/functions_func.html
new file mode 100644
index 0000000000000000000000000000000000000000..8a6d3866b24c2ddccbbc4c476572547b6f6bbcc9
--- /dev/null
+++ b/doc/html/functions_func.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Class Members - Functions</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a></div>
+<div class="qindex"><a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
+<div class="qindex"><a class="qindex" href="#index_a">a</a> | <a class="qindex" href="#index_c">c</a> | <a class="qindex" href="#index_e">e</a> | <a class="qindex" href="#index_g">g</a> | <a class="qindex" href="#index_i">i</a> | <a class="qindex" href="#index_k">k</a> | <a class="qindex" href="#index_m">m</a> | <a class="qindex" href="#index_n">n</a> | <a class="qindex" href="#index_o">o</a> | <a class="qindex" href="#index_p">p</a> | <a class="qindex" href="#index_r">r</a> | <a class="qindex" href="#index_s">s</a> | <a class="qindex" href="#index_t">t</a> | <a class="qindex" href="#index_w">w</a> | <a class="qindex" href="#index_~">~</a></div>
+
+<p>
+
+<p>
+<h3><a class="anchor" name="index_a">- a -</a></h3><ul>
+<li>AbstractElectrometerClass()
+: <a class="el" href="class_abstract_electrometer_class.html#_abstract_electrometer_classa0">AbstractElectrometerClass</a><li>autoRange_off()
+: <a class="el" href="class_keithley__6512.html#_keithley__6512a2">Keithley_6512</a>, <a class="el" href="class_keithley__617.html#_keithley__617a2">Keithley_617</a><li>autoRange_on()
+: <a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a17">AbstractElectrometerClass</a></ul>
+<h3><a class="anchor" name="index_c">- c -</a></h3><ul>
+<li>CommunicationLink()
+: <a class="el" href="class_communication_link.html#_communication_linka0">CommunicationLink</a></ul>
+<h3><a class="anchor" name="index_e">- e -</a></h3><ul>
+<li>electrometer_status()
+: <a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a10">Novelec_MCCE2</a>, <a class="el" href="class_keithley__6512.html#_keithley__6512a11">Keithley_6512</a>, <a class="el" href="class_keithley__617.html#_keithley__617a11">Keithley_617</a>, <a class="el" href="class_keithley__487.html#_keithley__487a8">Keithley_487</a>, <a class="el" href="class_keithley__486.html#_keithley__486a6">Keithley_486</a>, <a class="el" href="class_keithley__485.html#_keithley__485a5">Keithley_485</a>, <a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a44">AbstractElectrometerClass</a><li>ElectrometerException()
+: <a class="el" href="classelectrometer_1_1_electrometer_exception.html#electrometer_1_1_electrometer_exceptiona4">electrometer::ElectrometerException</a><li>ElectrometerProtocol()
+: <a class="el" href="class_electrometer_protocol.html#_electrometer_protocola0">ElectrometerProtocol</a><li>Error()
+: <a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_errora3">electrometer::Error</a></ul>
+<h3><a class="anchor" name="index_g">- g -</a></h3><ul>
+<li>get_ElectroMeterFrequency()
+: <a class="el" href="class_n___photo_voltaique.html#_n___photo_voltaiquea4">N_PhotoVoltaique</a><li>get_ElectroMeterGain()
+: <a class="el" href="class_n___photo_conducteur.html#_n___photo_conducteura4">N_PhotoConducteur</a><li>get_ElectroMeterMode()
+: <a class="el" href="class_keithley__6512.html#_keithley__6512a9">Keithley_6512</a>, <a class="el" href="class_keithley__617.html#_keithley__617a9">Keithley_617</a>, <a class="el" href="class_keithley__487.html#_keithley__487a6">Keithley_487</a>, <a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a45">AbstractElectrometerClass</a><li>get_ElectroMeterPolarity()
+: <a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a2">Novelec_MCCE2</a>, <a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a38">AbstractElectrometerClass</a><li>get_ElectroMeterRange()
+: <a class="el" href="class_keithley__486.html#_keithley__486a5">Keithley_486</a>, <a class="el" href="class_keithley__485.html#_keithley__485a4">Keithley_485</a><li>get_mode()
+: <a class="el" href="class_novelec_protocol.html#_novelec_protocola15">NovelecProtocol</a>, <a class="el" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola32">KeithleySCPIProtocol</a>, <a class="el" href="class_keithley_d_d_c_protocol.html#_keithley_d_d_c_protocola22">KeithleyDDCProtocol</a><li>get_raw_status()
+: <a class="el" href="class_novelec_protocol.html#_novelec_protocola14">NovelecProtocol</a>, <a class="el" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola31">KeithleySCPIProtocol</a>, <a class="el" href="class_keithley_d_d_c_protocol.html#_keithley_d_d_c_protocola21">KeithleyDDCProtocol</a>, <a class="el" href="class_electrometer_protocol.html#_electrometer_protocola9">ElectrometerProtocol</a><li>get_value()
+: <a class="el" href="class_novelec_protocol.html#_novelec_protocola7">NovelecProtocol</a>, <a class="el" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola18">KeithleySCPIProtocol</a>, <a class="el" href="class_keithley_d_d_c_protocol.html#_keithley_d_d_c_protocola14">KeithleyDDCProtocol</a>, <a class="el" href="class_electrometer_protocol.html#_electrometer_protocola6">ElectrometerProtocol</a>, <a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a16">AbstractElectrometerClass</a></ul>
+<h3><a class="anchor" name="index_i">- i -</a></h3><ul>
+<li>init_keithley()
+: <a class="el" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola19">KeithleySCPIProtocol</a>, <a class="el" href="class_electrometer_protocol.html#_novelec_protocola24">ElectrometerProtocol</a>, <a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a29">AbstractElectrometerClass</a></ul>
+<h3><a class="anchor" name="index_k">- k -</a></h3><ul>
+<li>Keithley_485()
+: <a class="el" href="class_keithley__485.html#_keithley__485a0">Keithley_485</a><li>Keithley_486()
+: <a class="el" href="class_keithley__486.html#_keithley__486a0">Keithley_486</a><li>Keithley_487()
+: <a class="el" href="class_keithley__487.html#_keithley__487a0">Keithley_487</a><li>Keithley_617()
+: <a class="el" href="class_keithley__617.html#_keithley__617a0">Keithley_617</a><li>Keithley_6485()
+: <a class="el" href="class_keithley__6485.html#_keithley__6485a0">Keithley_6485</a><li>Keithley_6487()
+: <a class="el" href="class_keithley__6487.html#_keithley__6487a0">Keithley_6487</a><li>Keithley_6512()
+: <a class="el" href="class_keithley__6512.html#_keithley__6512a0">Keithley_6512</a><li>Keithley_6514()
+: <a class="el" href="class_keithley__6514.html#_keithley__6514a0">Keithley_6514</a><li>KeithleyDDCProtocol()
+: <a class="el" href="class_keithley_d_d_c_protocol.html#_keithley_d_d_c_protocola0">KeithleyDDCProtocol</a><li>KeithleySCPIProtocol()
+: <a class="el" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola0">KeithleySCPIProtocol</a></ul>
+<h3><a class="anchor" name="index_m">- m -</a></h3><ul>
+<li>mcce_on()
+: <a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a8">Novelec_MCCE2</a></ul>
+<h3><a class="anchor" name="index_n">- n -</a></h3><ul>
+<li>N_PhotoConducteur()
+: <a class="el" href="class_n___photo_conducteur.html#_n___photo_conducteura0">N_PhotoConducteur</a><li>N_PhotoVoltaique()
+: <a class="el" href="class_n___photo_voltaique.html#_n___photo_voltaiquea0">N_PhotoVoltaique</a><li>Novelec_MCCE2()
+: <a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a0">Novelec_MCCE2</a><li>NovelecProtocol()
+: <a class="el" href="class_novelec_protocol.html#_novelec_protocola0">NovelecProtocol</a></ul>
+<h3><a class="anchor" name="index_o">- o -</a></h3><ul>
+<li>operator=()
+: <a class="el" href="classelectrometer_1_1_electrometer_exception.html#electrometer_1_1_electrometer_exceptiona5">electrometer::ElectrometerException</a>, <a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_errora5">electrometer::Error</a></ul>
+<h3><a class="anchor" name="index_p">- p -</a></h3><ul>
+<li>push_error()
+: <a class="el" href="classelectrometer_1_1_electrometer_exception.html#electrometer_1_1_electrometer_exceptiona9">electrometer::ElectrometerException</a></ul>
+<h3><a class="anchor" name="index_r">- r -</a></h3><ul>
+<li>range_up()
+: <a class="el" href="class_n___photo_voltaique.html#_n___photo_voltaiquea2">N_PhotoVoltaique</a>, <a class="el" href="class_n___photo_conducteur.html#_n___photo_conducteura2">N_PhotoConducteur</a>, <a class="el" href="class_keithley__6514.html#_keithley__6514a2">Keithley_6514</a>, <a class="el" href="class_keithley__6512.html#_keithley__6512a3">Keithley_6512</a>, <a class="el" href="class_keithley__6487.html#_keithley__6487a2">Keithley_6487</a>, <a class="el" href="class_keithley__6485.html#_keithley__6485a2">Keithley_6485</a>, <a class="el" href="class_keithley__617.html#_keithley__617a3">Keithley_617</a>, <a class="el" href="class_keithley__487.html#_keithley__487a2">Keithley_487</a>, <a class="el" href="class_keithley__486.html#_keithley__486a2">Keithley_486</a>, <a class="el" href="class_keithley__485.html#_keithley__485a2">Keithley_485</a>, <a class="el" href="class_abstract_electrometer_class.html#_novelec___m_c_c_e2a11">AbstractElectrometerClass</a><li>read()
+: <a class="el" href="class_tango_serial_link.html#_tango_serial_linka3">TangoSerialLink</a>, <a class="el" href="class_tango_gpib_link.html#_tango_gpib_linka3">TangoGpibLink</a>, <a class="el" href="class_communication_link.html#_communication_linka3">CommunicationLink</a></ul>
+<h3><a class="anchor" name="index_s">- s -</a></h3><ul>
+<li>set_isDiffSuportedMode()
+: <a class="el" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola34">KeithleySCPIProtocol</a><li>set_range()
+: <a class="el" href="class_novelec_protocol.html#_novelec_protocola2">NovelecProtocol</a>, <a class="el" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola2">KeithleySCPIProtocol</a>, <a class="el" href="class_keithley_d_d_c_protocol.html#_keithley_d_d_c_protocola2">KeithleyDDCProtocol</a>, <a class="el" href="class_electrometer_protocol.html#_electrometer_protocola2">ElectrometerProtocol</a><li>set_Zero_VonF_function()
+: <a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a4">Novelec_MCCE2</a>, <a class="el" href="class_abstract_electrometer_class.html#_keithley__6514a32">AbstractElectrometerClass</a><li>setAmperMeterMode()
+: <a class="el" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola14">KeithleySCPIProtocol</a>, <a class="el" href="class_keithley_d_d_c_protocol.html#_keithley_d_d_c_protocola15">KeithleyDDCProtocol</a>, <a class="el" href="class_keithley__6514.html#_keithley__6514a4">Keithley_6514</a>, <a class="el" href="class_keithley__6512.html#_keithley__6512a5">Keithley_6512</a>, <a class="el" href="class_keithley__6487.html#_keithley__6487a4">Keithley_6487</a>, <a class="el" href="class_keithley__617.html#_keithley__617a5">Keithley_617</a>, <a class="el" href="class_keithley__487.html#_keithley__487a5">Keithley_487</a><li>switch_MCCE2_ON()
+: <a class="el" href="class_novelec_protocol.html#_novelec_protocola8">NovelecProtocol</a>, <a class="el" href="class_electrometer_protocol.html#_keithley_s_c_p_i_protocola37">ElectrometerProtocol</a></ul>
+<h3><a class="anchor" name="index_t">- t -</a></h3><ul>
+<li>TangoGpibLink()
+: <a class="el" href="class_tango_gpib_link.html#_tango_gpib_linka0">TangoGpibLink</a><li>TangoSerialLink()
+: <a class="el" href="class_tango_serial_link.html#_tango_serial_linka0">TangoSerialLink</a></ul>
+<h3><a class="anchor" name="index_w">- w -</a></h3><ul>
+<li>write()
+: <a class="el" href="class_tango_serial_link.html#_tango_serial_linka2">TangoSerialLink</a>, <a class="el" href="class_tango_gpib_link.html#_tango_gpib_linka2">TangoGpibLink</a>, <a class="el" href="class_communication_link.html#_communication_linka2">CommunicationLink</a><li>write_read()
+: <a class="el" href="class_tango_serial_link.html#_tango_serial_linka4">TangoSerialLink</a>, <a class="el" href="class_tango_gpib_link.html#_tango_gpib_linka4">TangoGpibLink</a>, <a class="el" href="class_communication_link.html#_communication_linka4">CommunicationLink</a></ul>
+<h3><a class="anchor" name="index_~">- ~ -</a></h3><ul>
+<li>~AbstractElectrometerClass()
+: <a class="el" href="class_abstract_electrometer_class.html#_abstract_electrometer_classa1">AbstractElectrometerClass</a><li>~CommunicationLink()
+: <a class="el" href="class_communication_link.html#_communication_linka1">CommunicationLink</a><li>~ElectrometerException()
+: <a class="el" href="classelectrometer_1_1_electrometer_exception.html#electrometer_1_1_electrometer_exceptiona6">electrometer::ElectrometerException</a><li>~ElectrometerProtocol()
+: <a class="el" href="class_electrometer_protocol.html#_electrometer_protocola1">ElectrometerProtocol</a><li>~Error()
+: <a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_errora4">electrometer::Error</a><li>~Keithley_485()
+: <a class="el" href="class_keithley__485.html#_keithley__485a1">Keithley_485</a><li>~Keithley_486()
+: <a class="el" href="class_keithley__486.html#_keithley__486a1">Keithley_486</a><li>~Keithley_487()
+: <a class="el" href="class_keithley__487.html#_keithley__487a1">Keithley_487</a><li>~Keithley_617()
+: <a class="el" href="class_keithley__617.html#_keithley__617a1">Keithley_617</a><li>~Keithley_6485()
+: <a class="el" href="class_keithley__6485.html#_keithley__6485a1">Keithley_6485</a><li>~Keithley_6487()
+: <a class="el" href="class_keithley__6487.html#_keithley__6487a1">Keithley_6487</a><li>~Keithley_6512()
+: <a class="el" href="class_keithley__6512.html#_keithley__6512a1">Keithley_6512</a><li>~Keithley_6514()
+: <a class="el" href="class_keithley__6514.html#_keithley__6514a1">Keithley_6514</a><li>~KeithleyDDCProtocol()
+: <a class="el" href="class_keithley_d_d_c_protocol.html#_keithley_d_d_c_protocola1">KeithleyDDCProtocol</a><li>~KeithleySCPIProtocol()
+: <a class="el" href="class_keithley_s_c_p_i_protocol.html#_keithley_s_c_p_i_protocola1">KeithleySCPIProtocol</a><li>~N_PhotoConducteur()
+: <a class="el" href="class_n___photo_conducteur.html#_n___photo_conducteura1">N_PhotoConducteur</a><li>~N_PhotoVoltaique()
+: <a class="el" href="class_n___photo_voltaique.html#_n___photo_voltaiquea1">N_PhotoVoltaique</a><li>~Novelec_MCCE2()
+: <a class="el" href="class_novelec___m_c_c_e2.html#_novelec___m_c_c_e2a1">Novelec_MCCE2</a><li>~NovelecProtocol()
+: <a class="el" href="class_novelec_protocol.html#_novelec_protocola1">NovelecProtocol</a><li>~TangoGpibLink()
+: <a class="el" href="class_tango_gpib_link.html#_tango_gpib_linka1">TangoGpibLink</a><li>~TangoSerialLink()
+: <a class="el" href="class_tango_serial_link.html#_tango_serial_linka1">TangoSerialLink</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:19 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/functions_vars.html b/doc/html/functions_vars.html
new file mode 100644
index 0000000000000000000000000000000000000000..9b0f92a48d2d7b8c3c5191799111c9c51b90d743
--- /dev/null
+++ b/doc/html/functions_vars.html
@@ -0,0 +1,22 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Class Members - Variables</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindexHL" href="functions.html">Class&nbsp;Members</a></div>
+<div class="qindex"><a class="qindex" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindexHL" href="functions_vars.html">Variables</a></div>
+
+<p>
+<ul>
+<li>desc
+: <a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_erroro1">electrometer::Error</a><li>errors
+: <a class="el" href="classelectrometer_1_1_electrometer_exception.html#electrometer_1_1_electrometer_exceptiono0">electrometer::ElectrometerException</a><li>origin
+: <a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_erroro2">electrometer::Error</a><li>reason
+: <a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_erroro0">electrometer::Error</a><li>severity
+: <a class="el" href="classelectrometer_1_1_error.html#electrometer_1_1_erroro3">electrometer::Error</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:19 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/group___communication.html b/doc/html/group___communication.html
new file mode 100644
index 0000000000000000000000000000000000000000..20ff1e94a77eb3f8ec3784ade8a73df2981b417c
--- /dev/null
+++ b/doc/html/group___communication.html
@@ -0,0 +1,25 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Management</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>Management</h1><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_communication_link.html">CommunicationLink</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Abstract class to manage a specific communication bus.  <a href="class_communication_link.html#_details">More...</a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tango_gpib_link.html">TangoGpibLink</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This class manage the GPIB communication bus.  <a href="class_tango_gpib_link.html#_details">More...</a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tango_serial_link.html">TangoSerialLink</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This class manage the SERIAL communication bus.  <a href="class_tango_serial_link.html#_details">More...</a><br></td></tr>
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:23 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/group___d_d_c.html b/doc/html/group___d_d_c.html
new file mode 100644
index 0000000000000000000000000000000000000000..c5c9e482a75d8c26a801b46fb8172ae5458aa417
--- /dev/null
+++ b/doc/html/group___d_d_c.html
@@ -0,0 +1,31 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Keithley</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>Keithley</h1><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__485.html">Keithley_485</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This class manage 485 Keithley type.  <a href="class_keithley__485.html#_details">More...</a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__486.html">Keithley_486</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This class manage 486 Keithley type.  <a href="class_keithley__486.html#_details">More...</a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__487.html">Keithley_487</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This class manage 487 Keithley type.  <a href="class_keithley__487.html#_details">More...</a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__617.html">Keithley_617</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This class manage 617 Keithley type.  <a href="class_keithley__617.html#_details">More...</a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__6512.html">Keithley_6512</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This class manage 6512 Keithley type.  <a href="class_keithley__6512.html#_details">More...</a><br></td></tr>
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:23 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/group___novelec.html b/doc/html/group___novelec.html
new file mode 100644
index 0000000000000000000000000000000000000000..c25290ee73e744a576cbefffc76820dd12d21837
--- /dev/null
+++ b/doc/html/group___novelec.html
@@ -0,0 +1,25 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Novelec</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>Novelec</h1><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_n___photo_conducteur.html">N_PhotoConducteur</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This class manage Novelec PhotoConductor types.  <a href="class_n___photo_conducteur.html#_details">More...</a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_n___photo_voltaique.html">N_PhotoVoltaique</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This class manage Novelec PhotoVoltaique types.  <a href="class_n___photo_voltaique.html#_details">More...</a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This class manage Novelec MCCE-2 type.  <a href="class_novelec___m_c_c_e2.html#_details">More...</a><br></td></tr>
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:23 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/group___s_c_p_i.html b/doc/html/group___s_c_p_i.html
new file mode 100644
index 0000000000000000000000000000000000000000..f9f23e11381111a70bf3d876fbffc99be12ff1a0
--- /dev/null
+++ b/doc/html/group___s_c_p_i.html
@@ -0,0 +1,25 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Keithley</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>Keithley</h1><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__6485.html">Keithley_6485</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This class manage 6485 Keithley type.  <a href="class_keithley__6485.html#_details">More...</a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__6487.html">Keithley_6487</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This class manage 6487 Keithley type.  <a href="class_keithley__6487.html#_details">More...</a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley__6514.html">Keithley_6514</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This class manage 6514 Keithley type.  <a href="class_keithley__6514.html#_details">More...</a><br></td></tr>
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:23 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/group___standard.html b/doc/html/group___standard.html
new file mode 100644
index 0000000000000000000000000000000000000000..0b7311d58e3988aaada4fe88ec169f62b658b5d9
--- /dev/null
+++ b/doc/html/group___standard.html
@@ -0,0 +1,28 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Commands Protocol</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>Commands Protocol</h1><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This abstract class manage the Electrometers Commands Protocol.  <a href="class_electrometer_protocol.html#_details">More...</a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This class manage the Keithley DDC Commands Protocol.  <a href="class_keithley_d_d_c_protocol.html#_details">More...</a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This class manage the Keithley SCPI Commands Protocol.  <a href="class_keithley_s_c_p_i_protocol.html#_details">More...</a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_novelec_protocol.html">NovelecProtocol</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This class manage the Novelec Commands Protocol.  <a href="class_novelec_protocol.html#_details">More...</a><br></td></tr>
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:23 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/hierarchy.html b/doc/html/hierarchy.html
new file mode 100644
index 0000000000000000000000000000000000000000..62256516b67ef71544959582bcaf5553637e7e7f
--- /dev/null
+++ b/doc/html/hierarchy.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Hierarchical Index</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindexHL" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>Electrometers Library Class Hierarchy</h1>This inheritance list is sorted roughly, but not completely, alphabetically:<ul>
+<li><a class="el" href="class_abstract_electrometer_class.html">AbstractElectrometerClass</a>
+<ul>
+<li><a class="el" href="class_keithley__485.html">Keithley_485</a>
+<li><a class="el" href="class_keithley__486.html">Keithley_486</a>
+<li><a class="el" href="class_keithley__487.html">Keithley_487</a>
+<li><a class="el" href="class_keithley__617.html">Keithley_617</a>
+<li><a class="el" href="class_keithley__6485.html">Keithley_6485</a>
+<li><a class="el" href="class_keithley__6487.html">Keithley_6487</a>
+<li><a class="el" href="class_keithley__6512.html">Keithley_6512</a>
+<li><a class="el" href="class_keithley__6514.html">Keithley_6514</a>
+<li><a class="el" href="class_novelec___m_c_c_e2.html">Novelec_MCCE2</a>
+<ul>
+<li><a class="el" href="class_n___photo_conducteur.html">N_PhotoConducteur</a>
+<li><a class="el" href="class_n___photo_voltaique.html">N_PhotoVoltaique</a>
+</ul>
+</ul>
+<li><a class="el" href="class_communication_link.html">CommunicationLink</a>
+<ul>
+<li><a class="el" href="class_tango_gpib_link.html">TangoGpibLink</a>
+<li><a class="el" href="class_tango_serial_link.html">TangoSerialLink</a>
+</ul>
+<li><a class="el" href="classelectrometer_1_1_electrometer_exception.html">electrometer::ElectrometerException</a>
+<li><a class="el" href="class_electrometer_protocol.html">ElectrometerProtocol</a>
+<ul>
+<li><a class="el" href="class_keithley_d_d_c_protocol.html">KeithleyDDCProtocol</a>
+<li><a class="el" href="class_keithley_s_c_p_i_protocol.html">KeithleySCPIProtocol</a>
+<li><a class="el" href="class_novelec_protocol.html">NovelecProtocol</a>
+</ul>
+<li><a class="el" href="classelectrometer_1_1_error.html">electrometer::Error</a>
+</ul>
+<hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:19 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/index.html b/doc/html/index.html
new file mode 100644
index 0000000000000000000000000000000000000000..d20d6cbfd379923d4fee8b7b4c66c0b023a0fbbb
--- /dev/null
+++ b/doc/html/index.html
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Main Page</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindexHL" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>Electrometers Library Documentation</h1>
+<p>
+<h3 align="center">1.0 </h3><hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:18 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/html/modules.html b/doc/html/modules.html
new file mode 100644
index 0000000000000000000000000000000000000000..d8484d63a6c611a018f9dd753cfccecef357ac8a
--- /dev/null
+++ b/doc/html/modules.html
@@ -0,0 +1,19 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Electrometers Library: Module Index</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindexHL" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
+<h1>Electrometers Library Modules</h1>Here is a list of all modules:<ul>
+<li><a class="el" href="group___communication.html">Management</a>
+<li><a class="el" href="group___standard.html">Commands Protocol</a>
+<li><a class="el" href="group___d_d_c.html">Keithley</a>
+<li><a class="el" href="group___s_c_p_i.html">Keithley</a>
+<li><a class="el" href="group___novelec.html">Novelec</a>
+</ul>
+<hr size="1"><address style="align: right;"><small>Generated on Fri Dec 1 15:32:23 2006 for Electrometers Library by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/doc/latex/Helvetica.ttf b/doc/latex/Helvetica.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..8051f8a119f13c1cce42c147c8252d69c40d8dff
Binary files /dev/null and b/doc/latex/Helvetica.ttf differ
diff --git a/doc/latex/Makefile b/doc/latex/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..9b448d834d1b9059634d597e24531438f2af40c8
--- /dev/null
+++ b/doc/latex/Makefile
@@ -0,0 +1,39 @@
+all clean: refman.dvi
+
+ps: refman.ps
+
+pdf: refman.pdf
+
+ps_2on1: refman_2on1.ps
+
+pdf_2on1: refman_2on1.pdf
+
+refman.ps: refman.dvi
+	dvips -o refman.ps refman.dvi
+
+refman.pdf: refman.ps
+	gswin32c -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=refman.pdf -c save pop -f refman.ps
+
+refman.dvi: refman.tex doxygen.sty
+	echo "Running latex..."
+	latex refman.tex
+	echo "Running makeindex..."
+	makeindex refman.idx
+	echo "Rerunning latex...."
+	latex refman.tex
+	latex_count=5 ; \
+	while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\
+	    do \
+	      echo "Rerunning latex...." ;\
+	      latex refman.tex ;\
+	      latex_count=`expr $$latex_count - 1` ;\
+	    done
+
+refman_2on1.ps: refman.ps
+	psnup -2 refman.ps >refman_2on1.ps
+
+refman_2on1.pdf: refman_2on1.ps
+	gswin32c -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=refman_2on1.pdf -c save pop -f refman_2on1.ps
+
+clean:
+	rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out refman.pdf
diff --git a/doc/latex/annotated.tex b/doc/latex/annotated.tex
new file mode 100644
index 0000000000000000000000000000000000000000..cf4ee6fcf636b07284613cf56e3fa86f189e02e4
--- /dev/null
+++ b/doc/latex/annotated.tex
@@ -0,0 +1,24 @@
+\section{Electrometers Library Class List}
+Here are the classes, structs, unions and interfaces with brief descriptions:\begin{CompactList}
+\item\contentsline{section}{{\bf Abstract\-Electrometer\-Class} (Visible class from the DServer )}{\pageref{class_abstract_electrometer_class}}{}
+\item\contentsline{section}{{\bf Communication\-Link} (Abstract class to manage a specific communication bus )}{\pageref{class_communication_link}}{}
+\item\contentsline{section}{{\bf electrometer::Electrometer\-Exception} (Detailed description to be written )}{\pageref{classelectrometer_1_1_electrometer_exception}}{}
+\item\contentsline{section}{{\bf Electrometer\-Protocol} (This abstract class manage the Electrometers Commands Protocol )}{\pageref{class_electrometer_protocol}}{}
+\item\contentsline{section}{{\bf electrometer::Error} (Detailed description to be written )}{\pageref{classelectrometer_1_1_error}}{}
+\item\contentsline{section}{{\bf Keithley\_\-485} (This class manage 485 Keithley type )}{\pageref{class_keithley__485}}{}
+\item\contentsline{section}{{\bf Keithley\_\-486} (This class manage 486 Keithley type )}{\pageref{class_keithley__486}}{}
+\item\contentsline{section}{{\bf Keithley\_\-487} (This class manage 487 Keithley type )}{\pageref{class_keithley__487}}{}
+\item\contentsline{section}{{\bf Keithley\_\-617} (This class manage 617 Keithley type )}{\pageref{class_keithley__617}}{}
+\item\contentsline{section}{{\bf Keithley\_\-6485} (This class manage 6485 Keithley type )}{\pageref{class_keithley__6485}}{}
+\item\contentsline{section}{{\bf Keithley\_\-6487} (This class manage 6487 Keithley type )}{\pageref{class_keithley__6487}}{}
+\item\contentsline{section}{{\bf Keithley\_\-6512} (This class manage 6512 Keithley type )}{\pageref{class_keithley__6512}}{}
+\item\contentsline{section}{{\bf Keithley\_\-6514} (This class manage 6514 Keithley type )}{\pageref{class_keithley__6514}}{}
+\item\contentsline{section}{{\bf Keithley\-DDCProtocol} (This class manage the Keithley DDC Commands Protocol )}{\pageref{class_keithley_d_d_c_protocol}}{}
+\item\contentsline{section}{{\bf Keithley\-SCPIProtocol} (This class manage the Keithley SCPI Commands Protocol )}{\pageref{class_keithley_s_c_p_i_protocol}}{}
+\item\contentsline{section}{{\bf N\_\-Photo\-Conducteur} (This class manage Novelec Photo\-Conductor types )}{\pageref{class_n___photo_conducteur}}{}
+\item\contentsline{section}{{\bf N\_\-Photo\-Voltaique} (This class manage Novelec Photo\-Voltaique types )}{\pageref{class_n___photo_voltaique}}{}
+\item\contentsline{section}{{\bf Novelec\_\-MCCE2} (This class manage Novelec MCCE-2 type )}{\pageref{class_novelec___m_c_c_e2}}{}
+\item\contentsline{section}{{\bf Novelec\-Protocol} (This class manage the Novelec Commands Protocol )}{\pageref{class_novelec_protocol}}{}
+\item\contentsline{section}{{\bf Tango\-Gpib\-Link} (This class manage the GPIB communication bus )}{\pageref{class_tango_gpib_link}}{}
+\item\contentsline{section}{{\bf Tango\-Serial\-Link} (This class manage the SERIAL communication bus )}{\pageref{class_tango_serial_link}}{}
+\end{CompactList}
diff --git a/doc/latex/class_abstract_electrometer_class.eps b/doc/latex/class_abstract_electrometer_class.eps
new file mode 100644
index 0000000000000000000000000000000000000000..814494bdc90045059c46d964afe1843c64467349
--- /dev/null
+++ b/doc/latex/class_abstract_electrometer_class.eps
@@ -0,0 +1,232 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 591.716
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 0.845 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 10 def
+/cols 2 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(AbstractElectrometerClass) cw
+(Keithley_485) cw
+(Keithley_486) cw
+(Keithley_487) cw
+(Keithley_617) cw
+(Keithley_6485) cw
+(Keithley_6487) cw
+(Keithley_6512) cw
+(Keithley_6514) cw
+(Novelec_MCCE2) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (AbstractElectrometerClass) 0 9 box
+ (Keithley_485) 1 8 box
+ (Keithley_486) 1 7 box
+ (Keithley_487) 1 6 box
+ (Keithley_617) 1 5 box
+ (Keithley_6485) 1 4 box
+ (Keithley_6487) 1 3 box
+ (Keithley_6512) 1 2 box
+ (Keithley_6514) 1 1 box
+ (Novelec_MCCE2) 1 0 box
+1 0 mark
+
+% ----- relations -----
+
+solid
+1 0 8.25 out
+solid
+0 0 8.5 hedge
+solid
+0 0 7.5 hedge
+solid
+0 0 6.5 hedge
+solid
+0 0 5.5 hedge
+solid
+0 0 4.5 hedge
+solid
+0 0 3.5 hedge
+solid
+0 0 2.5 hedge
+solid
+0 0 1.5 hedge
+solid
+0 0 0.5 hedge
+solid
+0 9 0.5 vedge
diff --git a/doc/latex/class_abstract_electrometer_class.tex b/doc/latex/class_abstract_electrometer_class.tex
new file mode 100644
index 0000000000000000000000000000000000000000..c112391b46ef48a6c331f289dbf418279e737f06
--- /dev/null
+++ b/doc/latex/class_abstract_electrometer_class.tex
@@ -0,0 +1,208 @@
+\section{Abstract\-Electrometer\-Class Class Reference}
+\label{class_abstract_electrometer_class}\index{AbstractElectrometerClass@{AbstractElectrometerClass}}
+Visible class from the DServer.  
+
+
+{\tt \#include $<$Abstract\-Electrometer\-Class.h$>$}
+
+Inheritance diagram for Abstract\-Electrometer\-Class::\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=10cm]{class_abstract_electrometer_class}
+\end{center}
+\end{figure}
+\subsection*{Public Member Functions}
+\begin{CompactItemize}
+\item 
+{\bf Abstract\-Electrometer\-Class} (std::string com\-Link\_\-device\_\-name)\label{class_abstract_electrometer_class__abstract_electrometer_classa0}
+
+\begin{CompactList}\small\item\em Initialization. \item\end{CompactList}\item 
+virtual {\bf $\sim$Abstract\-Electrometer\-Class} (void)\label{class_abstract_electrometer_class__abstract_electrometer_classa1}
+
+\begin{CompactList}\small\item\em Release resources. \item\end{CompactList}\item 
+virtual void {\bf range\_\-up} (void)=0\label{class_abstract_electrometer_class__novelec___m_c_c_e2a11}
+
+\begin{CompactList}\small\item\em Electrometer common functions. \item\end{CompactList}\item 
+virtual void {\bf range\_\-down} (void)=0\label{class_abstract_electrometer_class__novelec___m_c_c_e2a12}
+
+\item 
+virtual void {\bf reset} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a13}
+
+\item 
+virtual void {\bf local} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a14}
+
+\item 
+virtual void {\bf remote} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a15}
+
+\item 
+std::string {\bf get\_\-value} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a16}
+
+\begin{CompactList}\small\item\em Electrometer : cmd to get electrometer data. \item\end{CompactList}\item 
+void {\bf auto\-Range\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a17}
+
+\begin{CompactList}\small\item\em Keithley Electrometer methods. \item\end{CompactList}\item 
+void {\bf zero\_\-check\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a18}
+
+\item 
+void {\bf zero\_\-check\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a19}
+
+\item 
+void {\bf zero\_\-correct\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a20}
+
+\item 
+void {\bf zero\_\-correct\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a21}
+
+\item 
+void {\bf auto\_\-zero\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a22}
+
+\item 
+void {\bf auto\_\-zero\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a23}
+
+\item 
+virtual void {\bf auto\-Range\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a24}
+
+\item 
+virtual void {\bf set\-Amper\-Meter\-Mode} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a25}
+
+\item 
+virtual void {\bf set\-Volt\-Meter\-Mode} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a26}
+
+\item 
+virtual void {\bf set\-Ohm\-Meter\-Mode} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a27}
+
+\item 
+virtual void {\bf set\-Coulomb\-Meter\-Mode} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a28}
+
+\item 
+void {\bf init\_\-keithley} (void)
+\begin{CompactList}\small\item\em Following functions are only supported for SCPI protocol. \item\end{CompactList}\item 
+void {\bf clear\_\-registers} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a30}
+
+\item 
+void {\bf average\-State\-ON} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a31}
+
+\item 
+void {\bf average\-State\-OFF} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a32}
+
+\item 
+void {\bf set\_\-knplc} (std::string n\-PLC)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a33}
+
+\item 
+void {\bf set\_\-triggercount} (std::string trigcounts)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a34}
+
+\item 
+void {\bf set\_\-averagecount} (std::string avercounts)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a35}
+
+\item 
+void {\bf set\_\-averagecontrol} (std::string averctrl)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a36}
+
+\item 
+std::string {\bf get\_\-knplc} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a37}
+
+\item 
+std::string {\bf get\_\-triggercount} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a38}
+
+\item 
+std::string {\bf get\_\-averagecount} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a39}
+
+\item 
+std::string {\bf get\_\-averagecontrol} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a40}
+
+\item 
+virtual void {\bf set\_\-Zero\_\-Von\-F\_\-function} (void)
+\begin{CompactList}\small\item\em Novelec Electrometer methods. \item\end{CompactList}\item 
+virtual void {\bf set\_\-Offset\_\-Zero\-V1\_\-function} (void)\label{class_abstract_electrometer_class__keithley__6514a33}
+
+\item 
+virtual void {\bf set\_\-Leakage\_\-Zero\-V2\_\-function} (void)\label{class_abstract_electrometer_class__keithley__6514a34}
+
+\item 
+virtual void {\bf set\_\-Test\_\-function} (void)\label{class_abstract_electrometer_class__keithley__6514a35}
+
+\item 
+virtual void {\bf mcce\_\-on} (void)\label{class_abstract_electrometer_class__keithley__6514a36}
+
+\item 
+virtual void {\bf mcce\_\-off} (void)\label{class_abstract_electrometer_class__keithley__6514a37}
+
+\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Polarity} (void)\label{class_abstract_electrometer_class__keithley__6514a38}
+
+\begin{CompactList}\small\item\em Novelec getters and setters. \item\end{CompactList}\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Frequency} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a41}
+
+\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Gain} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a42}
+
+\item 
+virtual void {\bf set\_\-Electro\-Meter\-Polarity} (std::string pola)\label{class_abstract_electrometer_class__keithley__6514a41}
+
+\item 
+virtual void {\bf set\_\-Electro\-Meter\-Frequency} (std::string freq)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a43}
+
+\item 
+virtual void {\bf set\_\-Electro\-Meter\-Gain} (std::string gain)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a44}
+
+\item 
+virtual std::string {\bf electrometer\_\-status} (void)\label{class_abstract_electrometer_class__keithley__6514a44}
+
+\begin{CompactList}\small\item\em Electrometer Status. \item\end{CompactList}\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Mode} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a45}
+
+\begin{CompactList}\small\item\em Common getters and setters. \item\end{CompactList}\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Range} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a46}
+
+\end{CompactItemize}
+\subsection*{Protected Attributes}
+\begin{CompactItemize}
+\item 
+short {\bf \_\-range}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p1}
+
+\item 
+std::string {\bf \_\-range\-Str}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p2}
+
+\item 
+std::string {\bf \_\-mode}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p3}
+
+\item 
+{\bf Electrometer\-Protocol} $\ast$ {\bf \_\-electrometer\-Protocol}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p4}
+
+\item 
+std::string {\bf \_\-device\_\-proxy\_\-name}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p5}
+
+\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+Visible class from the DServer. 
+
+\begin{Desc}
+\item[Author:]Xavier Elattaoui \end{Desc}
+\begin{Desc}
+\item[Date:]11-2006 \end{Desc}
+
+
+
+
+\subsection{Member Function Documentation}
+\index{AbstractElectrometerClass@{Abstract\-Electrometer\-Class}!init_keithley@{init\_\-keithley}}
+\index{init_keithley@{init\_\-keithley}!AbstractElectrometerClass@{Abstract\-Electrometer\-Class}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Abstract\-Electrometer\-Class::init\_\-keithley (void)}\label{class_abstract_electrometer_class__novelec___m_c_c_e2a29}
+
+
+Following functions are only supported for SCPI protocol. 
+
+\index{AbstractElectrometerClass@{Abstract\-Electrometer\-Class}!set_Zero_VonF_function@{set\_\-Zero\_\-VonF\_\-function}}
+\index{set_Zero_VonF_function@{set\_\-Zero\_\-VonF\_\-function}!AbstractElectrometerClass@{Abstract\-Electrometer\-Class}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual void Abstract\-Electrometer\-Class::set\_\-Zero\_\-Von\-F\_\-function (void)\hspace{0.3cm}{\tt  [virtual]}}\label{class_abstract_electrometer_class__keithley__6514a32}
+
+
+Novelec Electrometer methods. 
+
+Following functions are only supported for Novelec Protocol
+
+Reimplemented in {\bf Novelec\_\-MCCE2} {\rm (p.\,\pageref{class_novelec___m_c_c_e2__novelec___m_c_c_e2a4})}.
+
+The documentation for this class was generated from the following file:\begin{CompactItemize}
+\item 
+Abstract\-Electrometer\-Class.h\end{CompactItemize}
diff --git a/doc/latex/class_communication_link.eps b/doc/latex/class_communication_link.eps
new file mode 100644
index 0000000000000000000000000000000000000000..9b2059ee0b74920fafb38eed76e6e60b79f10c01
--- /dev/null
+++ b/doc/latex/class_communication_link.eps
@@ -0,0 +1,203 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 156.25
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 3.2 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 2 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(CommunicationLink) cw
+(TangoGpibLink) cw
+(TangoSerialLink) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (CommunicationLink) 0.5 1 box
+ (TangoGpibLink) 0 2.23517e-008 box
+ (TangoSerialLink) 1 2.23517e-008 box
+
+% ----- relations -----
+
+solid
+1 0.5 0.25 out
+solid
+0 1 1 conn
+solid
+0 0 0.75 in
+solid
+0 1 0.75 in
diff --git a/doc/latex/class_communication_link.tex b/doc/latex/class_communication_link.tex
new file mode 100644
index 0000000000000000000000000000000000000000..47ccb05f82d7ff1c2384f69fce4bedcc7842f78c
--- /dev/null
+++ b/doc/latex/class_communication_link.tex
@@ -0,0 +1,106 @@
+\section{Communication\-Link Class Reference}
+\label{class_communication_link}\index{CommunicationLink@{CommunicationLink}}
+Abstract class to manage a specific communication bus.  
+
+
+{\tt \#include $<$Communication\-Link.h$>$}
+
+Inheritance diagram for Communication\-Link::\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2cm]{class_communication_link}
+\end{center}
+\end{figure}
+\subsection*{Public Member Functions}
+\begin{CompactItemize}
+\item 
+{\bf Communication\-Link} (std::string \&communication\_\-link\_\-name)
+\item 
+virtual {\bf $\sim$Communication\-Link} (void)
+\item 
+virtual void {\bf write} (std::string)=0
+\begin{CompactList}\small\item\em Send command (data) as string to hardware. \item\end{CompactList}\item 
+virtual std::string {\bf read} (void)=0
+\begin{CompactList}\small\item\em Gets hardware response as string. \item\end{CompactList}\item 
+virtual std::string {\bf write\_\-read} (std::string cmd\_\-to\_\-send)=0
+\begin{CompactList}\small\item\em Performs a write read operation as string. \item\end{CompactList}\end{CompactItemize}
+\subsection*{Protected Attributes}
+\begin{CompactItemize}
+\item 
+std::string {\bf \_\-communication\_\-Device\_\-name}\label{class_communication_link__tango_serial_linkp0}
+
+\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+Abstract class to manage a specific communication bus. 
+
+\begin{Desc}
+\item[Author:]Xavier Elattaoui \end{Desc}
+\begin{Desc}
+\item[Date:]11-2006 \end{Desc}
+
+
+
+
+\subsection{Constructor \& Destructor Documentation}
+\index{CommunicationLink@{Communication\-Link}!CommunicationLink@{CommunicationLink}}
+\index{CommunicationLink@{CommunicationLink}!CommunicationLink@{Communication\-Link}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}Communication\-Link::Communication\-Link (std::string \& {\em communication\_\-link\_\-name})}\label{class_communication_link__communication_linka0}
+
+
+Initialization.\index{CommunicationLink@{Communication\-Link}!~CommunicationLink@{$\sim$CommunicationLink}}
+\index{~CommunicationLink@{$\sim$CommunicationLink}!CommunicationLink@{Communication\-Link}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual Communication\-Link::$\sim${\bf Communication\-Link} (void)\hspace{0.3cm}{\tt  [virtual]}}\label{class_communication_link__communication_linka1}
+
+
+Release resources.
+
+\subsection{Member Function Documentation}
+\index{CommunicationLink@{Communication\-Link}!read@{read}}
+\index{read@{read}!CommunicationLink@{Communication\-Link}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual std::string Communication\-Link::read (void)\hspace{0.3cm}{\tt  [pure virtual]}}\label{class_communication_link__communication_linka3}
+
+
+Gets hardware response as string. 
+
+\begin{Desc}
+\item[Exceptions:]
+\begin{description}
+\item[{\em Tango::Dev\-Failed}]\end{description}
+\end{Desc}
+
+
+Implemented in {\bf Tango\-Gpib\-Link} {\rm (p.\,\pageref{class_tango_gpib_link__tango_gpib_linka3})}, and {\bf Tango\-Serial\-Link} {\rm (p.\,\pageref{class_tango_serial_link__tango_serial_linka3})}.\index{CommunicationLink@{Communication\-Link}!write@{write}}
+\index{write@{write}!CommunicationLink@{Communication\-Link}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual void Communication\-Link::write (std::string)\hspace{0.3cm}{\tt  [pure virtual]}}\label{class_communication_link__communication_linka2}
+
+
+Send command (data) as string to hardware. 
+
+\begin{Desc}
+\item[Exceptions:]
+\begin{description}
+\item[{\em Tango::Dev\-Failed}]\end{description}
+\end{Desc}
+
+
+Implemented in {\bf Tango\-Gpib\-Link} {\rm (p.\,\pageref{class_tango_gpib_link__tango_gpib_linka2})}, and {\bf Tango\-Serial\-Link} {\rm (p.\,\pageref{class_tango_serial_link__tango_serial_linka2})}.\index{CommunicationLink@{Communication\-Link}!write_read@{write\_\-read}}
+\index{write_read@{write\_\-read}!CommunicationLink@{Communication\-Link}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual std::string Communication\-Link::write\_\-read (std::string {\em cmd\_\-to\_\-send})\hspace{0.3cm}{\tt  [pure virtual]}}\label{class_communication_link__communication_linka4}
+
+
+Performs a write read operation as string. 
+
+\begin{Desc}
+\item[Exceptions:]
+\begin{description}
+\item[{\em Tango::Dev\-Failed}]\end{description}
+\end{Desc}
+
+
+Implemented in {\bf Tango\-Gpib\-Link} {\rm (p.\,\pageref{class_tango_gpib_link__tango_gpib_linka4})}, and {\bf Tango\-Serial\-Link} {\rm (p.\,\pageref{class_tango_serial_link__tango_serial_linka4})}.
+
+The documentation for this class was generated from the following file:\begin{CompactItemize}
+\item 
+Communication\-Link.h\end{CompactItemize}
diff --git a/doc/latex/class_electrometer_protocol.eps b/doc/latex/class_electrometer_protocol.eps
new file mode 100644
index 0000000000000000000000000000000000000000..c45308237af4d345ccaacdada2c39ef007e8d3b8
--- /dev/null
+++ b/doc/latex/class_electrometer_protocol.eps
@@ -0,0 +1,207 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 95.2381
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 5.25 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 3 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(ElectrometerProtocol) cw
+(KeithleyDDCProtocol) cw
+(KeithleySCPIProtocol) cw
+(NovelecProtocol) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (ElectrometerProtocol) 1 1 box
+ (KeithleyDDCProtocol) 0 2.23517e-008 box
+ (KeithleySCPIProtocol) 1 2.23517e-008 box
+ (NovelecProtocol) 2 2.23517e-008 box
+
+% ----- relations -----
+
+solid
+1 1 0.25 out
+solid
+0 2 1 conn
+solid
+0 0 0.75 in
+solid
+0 1 0.75 in
+solid
+0 2 0.75 in
diff --git a/doc/latex/class_electrometer_protocol.tex b/doc/latex/class_electrometer_protocol.tex
new file mode 100644
index 0000000000000000000000000000000000000000..890bede41a691857417b4185efd5f1a3b4f51a02
--- /dev/null
+++ b/doc/latex/class_electrometer_protocol.tex
@@ -0,0 +1,182 @@
+\section{Electrometer\-Protocol Class Reference}
+\label{class_electrometer_protocol}\index{ElectrometerProtocol@{ElectrometerProtocol}}
+This abstract class manage the Electrometers Commands Protocol.  
+
+
+{\tt \#include $<$Electrometer\-Protocol.h$>$}
+
+Inheritance diagram for Electrometer\-Protocol::\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2cm]{class_electrometer_protocol}
+\end{center}
+\end{figure}
+\subsection*{Public Member Functions}
+\begin{CompactItemize}
+\item 
+{\bf Electrometer\-Protocol} ()\label{class_electrometer_protocol__electrometer_protocola0}
+
+\begin{CompactList}\small\item\em Initialization. \item\end{CompactList}\item 
+virtual {\bf $\sim$Electrometer\-Protocol} ()\label{class_electrometer_protocol__electrometer_protocola1}
+
+\begin{CompactList}\small\item\em Release resources. \item\end{CompactList}\item 
+virtual void {\bf set\_\-range} (std::string val)=0\label{class_electrometer_protocol__electrometer_protocola2}
+
+\begin{CompactList}\small\item\em Common Electrometer Functions. \item\end{CompactList}\item 
+virtual void {\bf reset} (void)=0\label{class_electrometer_protocol__electrometer_protocola3}
+
+\item 
+virtual void {\bf local} (void)\label{class_electrometer_protocol__keithley_s_c_p_i_protocola35}
+
+\item 
+virtual void {\bf remote} (void)\label{class_electrometer_protocol__keithley_s_c_p_i_protocola36}
+
+\item 
+virtual std::string {\bf get\_\-value} (void)=0\label{class_electrometer_protocol__electrometer_protocola6}
+
+\begin{CompactList}\small\item\em Common Electrometer : getters \& setters. \item\end{CompactList}\item 
+virtual std::string {\bf get\_\-mode} (void)=0\label{class_electrometer_protocol__electrometer_protocola7}
+
+\item 
+virtual std::string {\bf get\_\-range} (void)=0\label{class_electrometer_protocol__electrometer_protocola8}
+
+\item 
+virtual std::string {\bf get\_\-raw\_\-status} (void)=0\label{class_electrometer_protocol__electrometer_protocola9}
+
+\begin{CompactList}\small\item\em Common Get Raw Electrometer Status. \item\end{CompactList}\item 
+virtual void {\bf init\_\-keithley} (void)\label{class_electrometer_protocol__novelec_protocola24}
+
+\begin{CompactList}\small\item\em Electrometer : Keithley protocol dependent commands. \item\end{CompactList}\item 
+virtual void {\bf set\_\-knplc} (std::string n\-PLC)\label{class_electrometer_protocol__novelec_protocola25}
+
+\item 
+virtual void {\bf set\_\-triggercount} (std::string trigcounts)\label{class_electrometer_protocol__novelec_protocola26}
+
+\item 
+virtual void {\bf set\_\-averagecount} (std::string avercounts)\label{class_electrometer_protocol__novelec_protocola27}
+
+\item 
+virtual void {\bf set\_\-averagecontrol} (std::string averctrl)\label{class_electrometer_protocol__novelec_protocola28}
+
+\item 
+virtual std::string {\bf get\_\-knplc} (void)\label{class_electrometer_protocol__novelec_protocola29}
+
+\item 
+virtual std::string {\bf get\_\-triggercount} (void)\label{class_electrometer_protocol__novelec_protocola30}
+
+\item 
+virtual std::string {\bf get\_\-averagecount} (void)\label{class_electrometer_protocol__novelec_protocola31}
+
+\item 
+virtual std::string {\bf get\_\-averagecontrol} (void)\label{class_electrometer_protocol__novelec_protocola32}
+
+\item 
+virtual void {\bf clear\_\-registers} (void)\label{class_electrometer_protocol__novelec_protocola33}
+
+\item 
+virtual void {\bf average\-State\-ON} (void)\label{class_electrometer_protocol__novelec_protocola34}
+
+\item 
+virtual void {\bf average\-State\-OFF} (void)\label{class_electrometer_protocol__novelec_protocola35}
+
+\item 
+virtual void {\bf set\-Amper\-Meter\-Mode} (void)\label{class_electrometer_protocol__novelec_protocola36}
+
+\item 
+virtual void {\bf set\-Volt\-Meter\-Mode} (void)\label{class_electrometer_protocol__novelec_protocola37}
+
+\item 
+virtual void {\bf set\-Ohm\-Meter\-Mode} (void)\label{class_electrometer_protocol__novelec_protocola38}
+
+\item 
+virtual void {\bf set\-Coulomb\-Meter\-Mode} (void)\label{class_electrometer_protocol__novelec_protocola39}
+
+\item 
+virtual void {\bf auto\-Range\_\-on} (void)\label{class_electrometer_protocol__novelec_protocola40}
+
+\item 
+virtual void {\bf auto\-Range\_\-off} (void)\label{class_electrometer_protocol__novelec_protocola41}
+
+\item 
+virtual void {\bf zero\_\-check\_\-on} (void)\label{class_electrometer_protocol__novelec_protocola42}
+
+\item 
+virtual void {\bf zero\_\-check\_\-off} (void)\label{class_electrometer_protocol__novelec_protocola43}
+
+\item 
+virtual void {\bf zero\_\-correct\_\-on} (void)\label{class_electrometer_protocol__novelec_protocola44}
+
+\item 
+virtual void {\bf zero\_\-correct\_\-off} (void)\label{class_electrometer_protocol__novelec_protocola45}
+
+\item 
+virtual void {\bf auto\_\-zero\_\-on} (void)\label{class_electrometer_protocol__novelec_protocola46}
+
+\item 
+virtual void {\bf auto\_\-zero\_\-off} (void)\label{class_electrometer_protocol__novelec_protocola47}
+
+\item 
+virtual void {\bf switch\_\-MCCE2\_\-ON} (void)\label{class_electrometer_protocol__keithley_s_c_p_i_protocola37}
+
+\begin{CompactList}\small\item\em Electrometer : Novelec protocol dependent commands. \item\end{CompactList}\item 
+virtual void {\bf switch\_\-MCCE2\_\-OFF} (void)\label{class_electrometer_protocol__keithley_s_c_p_i_protocola38}
+
+\item 
+virtual void {\bf unable\_\-zero\-VF\_\-func} (void)\label{class_electrometer_protocol__keithley_s_c_p_i_protocola39}
+
+\item 
+virtual void {\bf unable\_\-offset\_\-zero\-V1\_\-func} (void)\label{class_electrometer_protocol__keithley_s_c_p_i_protocola40}
+
+\item 
+virtual void {\bf unable\_\-leakage\_\-zero\-V2\_\-func} (void)\label{class_electrometer_protocol__keithley_s_c_p_i_protocola41}
+
+\item 
+virtual void {\bf unable\_\-test\_\-func} (void)\label{class_electrometer_protocol__keithley_s_c_p_i_protocola42}
+
+\item 
+virtual std::string {\bf get\_\-polarity} (void)\label{class_electrometer_protocol__keithley_s_c_p_i_protocola43}
+
+\item 
+virtual std::string {\bf get\_\-frequency} (void)\label{class_electrometer_protocol__keithley_s_c_p_i_protocola44}
+
+\item 
+virtual std::string {\bf get\_\-gain} (void)\label{class_electrometer_protocol__keithley_s_c_p_i_protocola45}
+
+\item 
+virtual void {\bf set\_\-polarity} (std::string pola)\label{class_electrometer_protocol__keithley_s_c_p_i_protocola46}
+
+\item 
+virtual void {\bf set\_\-frequency} (std::string freq)\label{class_electrometer_protocol__keithley_s_c_p_i_protocola47}
+
+\item 
+virtual void {\bf set\_\-gain} (std::string gain)\label{class_electrometer_protocol__keithley_s_c_p_i_protocola48}
+
+\end{CompactItemize}
+\subsection*{Protected Attributes}
+\begin{CompactItemize}
+\item 
+short {\bf \_\-range}\label{class_electrometer_protocol__novelec_protocolp4}
+
+\item 
+std::string {\bf \_\-mode}\label{class_electrometer_protocol__novelec_protocolp5}
+
+\item 
+{\bf Communication\-Link} $\ast$ {\bf \_\-communication\_\-link}\label{class_electrometer_protocol__novelec_protocolp6}
+
+\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+This abstract class manage the Electrometers Commands Protocol. 
+
+\begin{Desc}
+\item[Author:]Xavier Elattaoui \end{Desc}
+\begin{Desc}
+\item[Date:]11-2006 \end{Desc}
+
+
+
+
+The documentation for this class was generated from the following file:\begin{CompactItemize}
+\item 
+Electrometer\-Protocol.h\end{CompactItemize}
diff --git a/doc/latex/class_keithley__485.eps b/doc/latex/class_keithley__485.eps
new file mode 100644
index 0000000000000000000000000000000000000000..52c986eebcbc9e49fbf9dfa950f3b47dc5520897
--- /dev/null
+++ b/doc/latex/class_keithley__485.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 236.686
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 2.1125 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(Keithley_485) cw
+(AbstractElectrometerClass) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (Keithley_485) 0 0 box
+ (AbstractElectrometerClass) 0 1 box
+
+% ----- relations -----
+
+solid
+0 0 0 out
+solid
+1 0 1 in
diff --git a/doc/latex/class_keithley__485.tex b/doc/latex/class_keithley__485.tex
new file mode 100644
index 0000000000000000000000000000000000000000..0fb560a07a117a0c19fcc9a756e6bb6ec04275b9
--- /dev/null
+++ b/doc/latex/class_keithley__485.tex
@@ -0,0 +1,208 @@
+\section{Keithley\_\-485 Class Reference}
+\label{class_keithley__485}\index{Keithley_485@{Keithley\_\-485}}
+This class manage 485 Keithley type.  
+
+
+{\tt \#include $<$Keithley\_\-485.h$>$}
+
+Inheritance diagram for Keithley\_\-485::\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2cm]{class_keithley__485}
+\end{center}
+\end{figure}
+\subsection*{Public Member Functions}
+\begin{CompactItemize}
+\item 
+{\bf Keithley\_\-485} (std::string \&com\-Link\_\-device\_\-name)\label{class_keithley__485__keithley__485a0}
+
+\begin{CompactList}\small\item\em Initialization. \item\end{CompactList}\item 
+virtual {\bf $\sim$Keithley\_\-485} (void)\label{class_keithley__485__keithley__485a1}
+
+\begin{CompactList}\small\item\em Release resources. \item\end{CompactList}\item 
+void {\bf range\_\-up} (void)\label{class_keithley__485__keithley__485a2}
+
+\begin{CompactList}\small\item\em Device dependent commands. \item\end{CompactList}\item 
+void {\bf range\_\-down} (void)\label{class_keithley__485__keithley__485a3}
+
+\item 
+std::string {\bf get\_\-Electro\-Meter\-Range} (void)\label{class_keithley__485__keithley__485a4}
+
+\begin{CompactList}\small\item\em getter(s) \& setter(s) \item\end{CompactList}\item 
+std::string {\bf electrometer\_\-status} (void)\label{class_keithley__485__keithley__485a5}
+
+\begin{CompactList}\small\item\em Electrometer Status. \item\end{CompactList}\item 
+virtual void {\bf reset} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a13}
+
+\item 
+virtual void {\bf local} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a14}
+
+\item 
+virtual void {\bf remote} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a15}
+
+\item 
+std::string {\bf get\_\-value} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a16}
+
+\begin{CompactList}\small\item\em Electrometer : cmd to get electrometer data. \item\end{CompactList}\item 
+void {\bf auto\-Range\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a17}
+
+\begin{CompactList}\small\item\em Keithley Electrometer methods. \item\end{CompactList}\item 
+void {\bf zero\_\-check\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a18}
+
+\item 
+void {\bf zero\_\-check\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a19}
+
+\item 
+void {\bf zero\_\-correct\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a20}
+
+\item 
+void {\bf zero\_\-correct\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a21}
+
+\item 
+void {\bf auto\_\-zero\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a22}
+
+\item 
+void {\bf auto\_\-zero\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a23}
+
+\item 
+virtual void {\bf auto\-Range\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a24}
+
+\item 
+virtual void {\bf set\-Amper\-Meter\-Mode} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a25}
+
+\item 
+virtual void {\bf set\-Volt\-Meter\-Mode} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a26}
+
+\item 
+virtual void {\bf set\-Ohm\-Meter\-Mode} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a27}
+
+\item 
+virtual void {\bf set\-Coulomb\-Meter\-Mode} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a28}
+
+\item 
+void {\bf init\_\-keithley} (void)
+\begin{CompactList}\small\item\em Following functions are only supported for SCPI protocol. \item\end{CompactList}\item 
+void {\bf clear\_\-registers} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a30}
+
+\item 
+void {\bf average\-State\-ON} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a31}
+
+\item 
+void {\bf average\-State\-OFF} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a32}
+
+\item 
+void {\bf set\_\-knplc} (std::string n\-PLC)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a33}
+
+\item 
+void {\bf set\_\-triggercount} (std::string trigcounts)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a34}
+
+\item 
+void {\bf set\_\-averagecount} (std::string avercounts)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a35}
+
+\item 
+void {\bf set\_\-averagecontrol} (std::string averctrl)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a36}
+
+\item 
+std::string {\bf get\_\-knplc} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a37}
+
+\item 
+std::string {\bf get\_\-triggercount} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a38}
+
+\item 
+std::string {\bf get\_\-averagecount} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a39}
+
+\item 
+std::string {\bf get\_\-averagecontrol} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a40}
+
+\item 
+virtual void {\bf set\_\-Zero\_\-Von\-F\_\-function} (void)
+\begin{CompactList}\small\item\em Novelec Electrometer methods. \item\end{CompactList}\item 
+virtual void {\bf set\_\-Offset\_\-Zero\-V1\_\-function} (void)\label{class_abstract_electrometer_class__keithley__6514a33}
+
+\item 
+virtual void {\bf set\_\-Leakage\_\-Zero\-V2\_\-function} (void)\label{class_abstract_electrometer_class__keithley__6514a34}
+
+\item 
+virtual void {\bf set\_\-Test\_\-function} (void)\label{class_abstract_electrometer_class__keithley__6514a35}
+
+\item 
+virtual void {\bf mcce\_\-on} (void)\label{class_abstract_electrometer_class__keithley__6514a36}
+
+\item 
+virtual void {\bf mcce\_\-off} (void)\label{class_abstract_electrometer_class__keithley__6514a37}
+
+\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Polarity} (void)\label{class_abstract_electrometer_class__keithley__6514a38}
+
+\begin{CompactList}\small\item\em Novelec getters and setters. \item\end{CompactList}\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Frequency} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a41}
+
+\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Gain} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a42}
+
+\item 
+virtual void {\bf set\_\-Electro\-Meter\-Polarity} (std::string pola)\label{class_abstract_electrometer_class__keithley__6514a41}
+
+\item 
+virtual void {\bf set\_\-Electro\-Meter\-Frequency} (std::string freq)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a43}
+
+\item 
+virtual void {\bf set\_\-Electro\-Meter\-Gain} (std::string gain)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a44}
+
+\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Mode} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a45}
+
+\begin{CompactList}\small\item\em Common getters and setters. \item\end{CompactList}\end{CompactItemize}
+\subsection*{Protected Attributes}
+\begin{CompactItemize}
+\item 
+short {\bf \_\-range}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p1}
+
+\item 
+std::string {\bf \_\-range\-Str}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p2}
+
+\item 
+std::string {\bf \_\-mode}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p3}
+
+\item 
+{\bf Electrometer\-Protocol} $\ast$ {\bf \_\-electrometer\-Protocol}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p4}
+
+\item 
+std::string {\bf \_\-device\_\-proxy\_\-name}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p5}
+
+\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+This class manage 485 Keithley type. 
+
+\begin{Desc}
+\item[Author:]Xavier Elattaoui \end{Desc}
+\begin{Desc}
+\item[Date:]11-2006 \end{Desc}
+
+
+
+
+\subsection{Member Function Documentation}
+\index{Keithley_485@{Keithley\_\-485}!init_keithley@{init\_\-keithley}}
+\index{init_keithley@{init\_\-keithley}!Keithley_485@{Keithley\_\-485}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Abstract\-Electrometer\-Class::init\_\-keithley (void)\hspace{0.3cm}{\tt  [inherited]}}\label{class_abstract_electrometer_class__novelec___m_c_c_e2a29}
+
+
+Following functions are only supported for SCPI protocol. 
+
+\index{Keithley_485@{Keithley\_\-485}!set_Zero_VonF_function@{set\_\-Zero\_\-VonF\_\-function}}
+\index{set_Zero_VonF_function@{set\_\-Zero\_\-VonF\_\-function}!Keithley_485@{Keithley\_\-485}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual void Abstract\-Electrometer\-Class::set\_\-Zero\_\-Von\-F\_\-function (void)\hspace{0.3cm}{\tt  [virtual, inherited]}}\label{class_abstract_electrometer_class__keithley__6514a32}
+
+
+Novelec Electrometer methods. 
+
+Following functions are only supported for Novelec Protocol
+
+Reimplemented in {\bf Novelec\_\-MCCE2} {\rm (p.\,\pageref{class_novelec___m_c_c_e2__novelec___m_c_c_e2a4})}.
+
+The documentation for this class was generated from the following file:\begin{CompactItemize}
+\item 
+Keithley\_\-485.h\end{CompactItemize}
diff --git a/doc/latex/class_keithley__486.eps b/doc/latex/class_keithley__486.eps
new file mode 100644
index 0000000000000000000000000000000000000000..f7c4a96e9e472676789dbff963b84ddbf8ebb5d7
--- /dev/null
+++ b/doc/latex/class_keithley__486.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 236.686
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 2.1125 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(Keithley_486) cw
+(AbstractElectrometerClass) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (Keithley_486) 0 0 box
+ (AbstractElectrometerClass) 0 1 box
+
+% ----- relations -----
+
+solid
+0 0 0 out
+solid
+1 0 1 in
diff --git a/doc/latex/class_keithley__486.tex b/doc/latex/class_keithley__486.tex
new file mode 100644
index 0000000000000000000000000000000000000000..d9874088f3ed5f4372860b1d9493ece476a643e2
--- /dev/null
+++ b/doc/latex/class_keithley__486.tex
@@ -0,0 +1,208 @@
+\section{Keithley\_\-486 Class Reference}
+\label{class_keithley__486}\index{Keithley_486@{Keithley\_\-486}}
+This class manage 486 Keithley type.  
+
+
+{\tt \#include $<$Keithley\_\-486.h$>$}
+
+Inheritance diagram for Keithley\_\-486::\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2cm]{class_keithley__486}
+\end{center}
+\end{figure}
+\subsection*{Public Member Functions}
+\begin{CompactItemize}
+\item 
+{\bf Keithley\_\-486} (std::string \&com\-Link\_\-device\_\-name)\label{class_keithley__486__keithley__486a0}
+
+\begin{CompactList}\small\item\em Initialization. \item\end{CompactList}\item 
+virtual {\bf $\sim$Keithley\_\-486} (void)\label{class_keithley__486__keithley__486a1}
+
+\begin{CompactList}\small\item\em Release resources. \item\end{CompactList}\item 
+void {\bf range\_\-up} (void)\label{class_keithley__486__keithley__486a2}
+
+\begin{CompactList}\small\item\em Device dependent commands. \item\end{CompactList}\item 
+void {\bf range\_\-down} (void)\label{class_keithley__486__keithley__486a3}
+
+\item 
+void {\bf auto\-Range\_\-off} (void)\label{class_keithley__486__keithley__486a4}
+
+\item 
+std::string {\bf get\_\-Electro\-Meter\-Range} (void)\label{class_keithley__486__keithley__486a5}
+
+\begin{CompactList}\small\item\em getter(s) \& setter(s) \item\end{CompactList}\item 
+std::string {\bf electrometer\_\-status} (void)\label{class_keithley__486__keithley__486a6}
+
+\begin{CompactList}\small\item\em Electrometer status. \item\end{CompactList}\item 
+virtual void {\bf reset} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a13}
+
+\item 
+virtual void {\bf local} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a14}
+
+\item 
+virtual void {\bf remote} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a15}
+
+\item 
+std::string {\bf get\_\-value} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a16}
+
+\begin{CompactList}\small\item\em Electrometer : cmd to get electrometer data. \item\end{CompactList}\item 
+void {\bf auto\-Range\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a17}
+
+\begin{CompactList}\small\item\em Keithley Electrometer methods. \item\end{CompactList}\item 
+void {\bf zero\_\-check\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a18}
+
+\item 
+void {\bf zero\_\-check\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a19}
+
+\item 
+void {\bf zero\_\-correct\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a20}
+
+\item 
+void {\bf zero\_\-correct\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a21}
+
+\item 
+void {\bf auto\_\-zero\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a22}
+
+\item 
+void {\bf auto\_\-zero\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a23}
+
+\item 
+virtual void {\bf set\-Amper\-Meter\-Mode} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a25}
+
+\item 
+virtual void {\bf set\-Volt\-Meter\-Mode} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a26}
+
+\item 
+virtual void {\bf set\-Ohm\-Meter\-Mode} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a27}
+
+\item 
+virtual void {\bf set\-Coulomb\-Meter\-Mode} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a28}
+
+\item 
+void {\bf init\_\-keithley} (void)
+\begin{CompactList}\small\item\em Following functions are only supported for SCPI protocol. \item\end{CompactList}\item 
+void {\bf clear\_\-registers} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a30}
+
+\item 
+void {\bf average\-State\-ON} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a31}
+
+\item 
+void {\bf average\-State\-OFF} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a32}
+
+\item 
+void {\bf set\_\-knplc} (std::string n\-PLC)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a33}
+
+\item 
+void {\bf set\_\-triggercount} (std::string trigcounts)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a34}
+
+\item 
+void {\bf set\_\-averagecount} (std::string avercounts)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a35}
+
+\item 
+void {\bf set\_\-averagecontrol} (std::string averctrl)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a36}
+
+\item 
+std::string {\bf get\_\-knplc} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a37}
+
+\item 
+std::string {\bf get\_\-triggercount} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a38}
+
+\item 
+std::string {\bf get\_\-averagecount} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a39}
+
+\item 
+std::string {\bf get\_\-averagecontrol} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a40}
+
+\item 
+virtual void {\bf set\_\-Zero\_\-Von\-F\_\-function} (void)
+\begin{CompactList}\small\item\em Novelec Electrometer methods. \item\end{CompactList}\item 
+virtual void {\bf set\_\-Offset\_\-Zero\-V1\_\-function} (void)\label{class_abstract_electrometer_class__keithley__6514a33}
+
+\item 
+virtual void {\bf set\_\-Leakage\_\-Zero\-V2\_\-function} (void)\label{class_abstract_electrometer_class__keithley__6514a34}
+
+\item 
+virtual void {\bf set\_\-Test\_\-function} (void)\label{class_abstract_electrometer_class__keithley__6514a35}
+
+\item 
+virtual void {\bf mcce\_\-on} (void)\label{class_abstract_electrometer_class__keithley__6514a36}
+
+\item 
+virtual void {\bf mcce\_\-off} (void)\label{class_abstract_electrometer_class__keithley__6514a37}
+
+\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Polarity} (void)\label{class_abstract_electrometer_class__keithley__6514a38}
+
+\begin{CompactList}\small\item\em Novelec getters and setters. \item\end{CompactList}\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Frequency} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a41}
+
+\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Gain} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a42}
+
+\item 
+virtual void {\bf set\_\-Electro\-Meter\-Polarity} (std::string pola)\label{class_abstract_electrometer_class__keithley__6514a41}
+
+\item 
+virtual void {\bf set\_\-Electro\-Meter\-Frequency} (std::string freq)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a43}
+
+\item 
+virtual void {\bf set\_\-Electro\-Meter\-Gain} (std::string gain)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a44}
+
+\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Mode} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a45}
+
+\begin{CompactList}\small\item\em Common getters and setters. \item\end{CompactList}\end{CompactItemize}
+\subsection*{Protected Attributes}
+\begin{CompactItemize}
+\item 
+short {\bf \_\-range}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p1}
+
+\item 
+std::string {\bf \_\-range\-Str}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p2}
+
+\item 
+std::string {\bf \_\-mode}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p3}
+
+\item 
+{\bf Electrometer\-Protocol} $\ast$ {\bf \_\-electrometer\-Protocol}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p4}
+
+\item 
+std::string {\bf \_\-device\_\-proxy\_\-name}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p5}
+
+\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+This class manage 486 Keithley type. 
+
+\begin{Desc}
+\item[Author:]Xavier Elattaoui \end{Desc}
+\begin{Desc}
+\item[Date:]11-2006 \end{Desc}
+
+
+
+
+\subsection{Member Function Documentation}
+\index{Keithley_486@{Keithley\_\-486}!init_keithley@{init\_\-keithley}}
+\index{init_keithley@{init\_\-keithley}!Keithley_486@{Keithley\_\-486}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Abstract\-Electrometer\-Class::init\_\-keithley (void)\hspace{0.3cm}{\tt  [inherited]}}\label{class_abstract_electrometer_class__novelec___m_c_c_e2a29}
+
+
+Following functions are only supported for SCPI protocol. 
+
+\index{Keithley_486@{Keithley\_\-486}!set_Zero_VonF_function@{set\_\-Zero\_\-VonF\_\-function}}
+\index{set_Zero_VonF_function@{set\_\-Zero\_\-VonF\_\-function}!Keithley_486@{Keithley\_\-486}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual void Abstract\-Electrometer\-Class::set\_\-Zero\_\-Von\-F\_\-function (void)\hspace{0.3cm}{\tt  [virtual, inherited]}}\label{class_abstract_electrometer_class__keithley__6514a32}
+
+
+Novelec Electrometer methods. 
+
+Following functions are only supported for Novelec Protocol
+
+Reimplemented in {\bf Novelec\_\-MCCE2} {\rm (p.\,\pageref{class_novelec___m_c_c_e2__novelec___m_c_c_e2a4})}.
+
+The documentation for this class was generated from the following file:\begin{CompactItemize}
+\item 
+Keithley\_\-486.h\end{CompactItemize}
diff --git a/doc/latex/class_keithley__487.eps b/doc/latex/class_keithley__487.eps
new file mode 100644
index 0000000000000000000000000000000000000000..1133e207f53375b5ce9256e783fdfea32b318b58
--- /dev/null
+++ b/doc/latex/class_keithley__487.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 236.686
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 2.1125 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(Keithley_487) cw
+(AbstractElectrometerClass) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (Keithley_487) 0 0 box
+ (AbstractElectrometerClass) 0 1 box
+
+% ----- relations -----
+
+solid
+0 0 0 out
+solid
+1 0 1 in
diff --git a/doc/latex/class_keithley__487.tex b/doc/latex/class_keithley__487.tex
new file mode 100644
index 0000000000000000000000000000000000000000..46fb063ba20d021485304d0da67fe2f970fa07ab
--- /dev/null
+++ b/doc/latex/class_keithley__487.tex
@@ -0,0 +1,208 @@
+\section{Keithley\_\-487 Class Reference}
+\label{class_keithley__487}\index{Keithley_487@{Keithley\_\-487}}
+This class manage 487 Keithley type.  
+
+
+{\tt \#include $<$Keithley\_\-487.h$>$}
+
+Inheritance diagram for Keithley\_\-487::\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2cm]{class_keithley__487}
+\end{center}
+\end{figure}
+\subsection*{Public Member Functions}
+\begin{CompactItemize}
+\item 
+{\bf Keithley\_\-487} (std::string \&com\-Link\_\-device\_\-name)\label{class_keithley__487__keithley__487a0}
+
+\begin{CompactList}\small\item\em Initialization. \item\end{CompactList}\item 
+virtual {\bf $\sim$Keithley\_\-487} (void)\label{class_keithley__487__keithley__487a1}
+
+\begin{CompactList}\small\item\em Release resources. \item\end{CompactList}\item 
+void {\bf range\_\-up} (void)\label{class_keithley__487__keithley__487a2}
+
+\begin{CompactList}\small\item\em Electrometer methods. \item\end{CompactList}\item 
+void {\bf range\_\-down} (void)\label{class_keithley__487__keithley__487a3}
+
+\item 
+void {\bf auto\-Range\_\-off} (void)\label{class_keithley__487__keithley__487a4}
+
+\item 
+void {\bf set\-Amper\-Meter\-Mode} (void)\label{class_keithley__487__keithley__487a5}
+
+\begin{CompactList}\small\item\em Electrometer Function(s). \item\end{CompactList}\item 
+std::string {\bf get\_\-Electro\-Meter\-Mode} (void)\label{class_keithley__487__keithley__487a6}
+
+\begin{CompactList}\small\item\em getter(s) \& setter(s) \item\end{CompactList}\item 
+std::string {\bf get\_\-Electro\-Meter\-Range} (void)\label{class_keithley__487__keithley__487a7}
+
+\item 
+std::string {\bf electrometer\_\-status} (void)\label{class_keithley__487__keithley__487a8}
+
+\begin{CompactList}\small\item\em Electrometer status. \item\end{CompactList}\item 
+virtual void {\bf reset} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a13}
+
+\item 
+virtual void {\bf local} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a14}
+
+\item 
+virtual void {\bf remote} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a15}
+
+\item 
+std::string {\bf get\_\-value} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a16}
+
+\begin{CompactList}\small\item\em Electrometer : cmd to get electrometer data. \item\end{CompactList}\item 
+void {\bf auto\-Range\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a17}
+
+\begin{CompactList}\small\item\em Keithley Electrometer methods. \item\end{CompactList}\item 
+void {\bf zero\_\-check\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a18}
+
+\item 
+void {\bf zero\_\-check\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a19}
+
+\item 
+void {\bf zero\_\-correct\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a20}
+
+\item 
+void {\bf zero\_\-correct\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a21}
+
+\item 
+void {\bf auto\_\-zero\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a22}
+
+\item 
+void {\bf auto\_\-zero\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a23}
+
+\item 
+virtual void {\bf set\-Volt\-Meter\-Mode} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a26}
+
+\item 
+virtual void {\bf set\-Ohm\-Meter\-Mode} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a27}
+
+\item 
+virtual void {\bf set\-Coulomb\-Meter\-Mode} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a28}
+
+\item 
+void {\bf init\_\-keithley} (void)
+\begin{CompactList}\small\item\em Following functions are only supported for SCPI protocol. \item\end{CompactList}\item 
+void {\bf clear\_\-registers} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a30}
+
+\item 
+void {\bf average\-State\-ON} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a31}
+
+\item 
+void {\bf average\-State\-OFF} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a32}
+
+\item 
+void {\bf set\_\-knplc} (std::string n\-PLC)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a33}
+
+\item 
+void {\bf set\_\-triggercount} (std::string trigcounts)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a34}
+
+\item 
+void {\bf set\_\-averagecount} (std::string avercounts)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a35}
+
+\item 
+void {\bf set\_\-averagecontrol} (std::string averctrl)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a36}
+
+\item 
+std::string {\bf get\_\-knplc} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a37}
+
+\item 
+std::string {\bf get\_\-triggercount} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a38}
+
+\item 
+std::string {\bf get\_\-averagecount} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a39}
+
+\item 
+std::string {\bf get\_\-averagecontrol} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a40}
+
+\item 
+virtual void {\bf set\_\-Zero\_\-Von\-F\_\-function} (void)
+\begin{CompactList}\small\item\em Novelec Electrometer methods. \item\end{CompactList}\item 
+virtual void {\bf set\_\-Offset\_\-Zero\-V1\_\-function} (void)\label{class_abstract_electrometer_class__keithley__6514a33}
+
+\item 
+virtual void {\bf set\_\-Leakage\_\-Zero\-V2\_\-function} (void)\label{class_abstract_electrometer_class__keithley__6514a34}
+
+\item 
+virtual void {\bf set\_\-Test\_\-function} (void)\label{class_abstract_electrometer_class__keithley__6514a35}
+
+\item 
+virtual void {\bf mcce\_\-on} (void)\label{class_abstract_electrometer_class__keithley__6514a36}
+
+\item 
+virtual void {\bf mcce\_\-off} (void)\label{class_abstract_electrometer_class__keithley__6514a37}
+
+\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Polarity} (void)\label{class_abstract_electrometer_class__keithley__6514a38}
+
+\begin{CompactList}\small\item\em Novelec getters and setters. \item\end{CompactList}\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Frequency} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a41}
+
+\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Gain} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a42}
+
+\item 
+virtual void {\bf set\_\-Electro\-Meter\-Polarity} (std::string pola)\label{class_abstract_electrometer_class__keithley__6514a41}
+
+\item 
+virtual void {\bf set\_\-Electro\-Meter\-Frequency} (std::string freq)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a43}
+
+\item 
+virtual void {\bf set\_\-Electro\-Meter\-Gain} (std::string gain)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a44}
+
+\end{CompactItemize}
+\subsection*{Protected Attributes}
+\begin{CompactItemize}
+\item 
+short {\bf \_\-range}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p1}
+
+\item 
+std::string {\bf \_\-range\-Str}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p2}
+
+\item 
+std::string {\bf \_\-mode}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p3}
+
+\item 
+{\bf Electrometer\-Protocol} $\ast$ {\bf \_\-electrometer\-Protocol}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p4}
+
+\item 
+std::string {\bf \_\-device\_\-proxy\_\-name}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p5}
+
+\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+This class manage 487 Keithley type. 
+
+\begin{Desc}
+\item[Author:]Xavier Elattaoui \end{Desc}
+\begin{Desc}
+\item[Date:]11-2006 \end{Desc}
+
+
+
+
+\subsection{Member Function Documentation}
+\index{Keithley_487@{Keithley\_\-487}!init_keithley@{init\_\-keithley}}
+\index{init_keithley@{init\_\-keithley}!Keithley_487@{Keithley\_\-487}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Abstract\-Electrometer\-Class::init\_\-keithley (void)\hspace{0.3cm}{\tt  [inherited]}}\label{class_abstract_electrometer_class__novelec___m_c_c_e2a29}
+
+
+Following functions are only supported for SCPI protocol. 
+
+\index{Keithley_487@{Keithley\_\-487}!set_Zero_VonF_function@{set\_\-Zero\_\-VonF\_\-function}}
+\index{set_Zero_VonF_function@{set\_\-Zero\_\-VonF\_\-function}!Keithley_487@{Keithley\_\-487}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual void Abstract\-Electrometer\-Class::set\_\-Zero\_\-Von\-F\_\-function (void)\hspace{0.3cm}{\tt  [virtual, inherited]}}\label{class_abstract_electrometer_class__keithley__6514a32}
+
+
+Novelec Electrometer methods. 
+
+Following functions are only supported for Novelec Protocol
+
+Reimplemented in {\bf Novelec\_\-MCCE2} {\rm (p.\,\pageref{class_novelec___m_c_c_e2__novelec___m_c_c_e2a4})}.
+
+The documentation for this class was generated from the following file:\begin{CompactItemize}
+\item 
+Keithley\_\-487.h\end{CompactItemize}
diff --git a/doc/latex/class_keithley__617.eps b/doc/latex/class_keithley__617.eps
new file mode 100644
index 0000000000000000000000000000000000000000..03dea0f92a9476084d0fdd784a1c037ba7d80c78
--- /dev/null
+++ b/doc/latex/class_keithley__617.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 236.686
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 2.1125 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(Keithley_617) cw
+(AbstractElectrometerClass) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (Keithley_617) 0 0 box
+ (AbstractElectrometerClass) 0 1 box
+
+% ----- relations -----
+
+solid
+0 0 0 out
+solid
+1 0 1 in
diff --git a/doc/latex/class_keithley__617.tex b/doc/latex/class_keithley__617.tex
new file mode 100644
index 0000000000000000000000000000000000000000..919328d80ac7aa572c29d012a62e312cdfc75090
--- /dev/null
+++ b/doc/latex/class_keithley__617.tex
@@ -0,0 +1,208 @@
+\section{Keithley\_\-617 Class Reference}
+\label{class_keithley__617}\index{Keithley_617@{Keithley\_\-617}}
+This class manage 617 Keithley type.  
+
+
+{\tt \#include $<$Keithley\_\-617.h$>$}
+
+Inheritance diagram for Keithley\_\-617::\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2cm]{class_keithley__617}
+\end{center}
+\end{figure}
+\subsection*{Public Member Functions}
+\begin{CompactItemize}
+\item 
+{\bf Keithley\_\-617} (std::string \&com\-Link\_\-device\_\-name)\label{class_keithley__617__keithley__617a0}
+
+\begin{CompactList}\small\item\em Initialization. \item\end{CompactList}\item 
+virtual {\bf $\sim$Keithley\_\-617} (void)\label{class_keithley__617__keithley__617a1}
+
+\begin{CompactList}\small\item\em Release resources. \item\end{CompactList}\item 
+void {\bf auto\-Range\_\-off} (void)\label{class_keithley__617__keithley__617a2}
+
+\begin{CompactList}\small\item\em Device dependent commands. \item\end{CompactList}\item 
+void {\bf range\_\-up} (void)\label{class_keithley__617__keithley__617a3}
+
+\begin{CompactList}\small\item\em Electrometer common functions. \item\end{CompactList}\item 
+void {\bf range\_\-down} (void)\label{class_keithley__617__keithley__617a4}
+
+\item 
+void {\bf set\-Amper\-Meter\-Mode} (void)\label{class_keithley__617__keithley__617a5}
+
+\begin{CompactList}\small\item\em Electrometer Mode. \item\end{CompactList}\item 
+void {\bf set\-Volt\-Meter\-Mode} (void)\label{class_keithley__617__keithley__617a6}
+
+\item 
+void {\bf set\-Ohm\-Meter\-Mode} (void)\label{class_keithley__617__keithley__617a7}
+
+\item 
+void {\bf set\-Coulomb\-Meter\-Mode} (void)\label{class_keithley__617__keithley__617a8}
+
+\item 
+std::string {\bf get\_\-Electro\-Meter\-Mode} (void)\label{class_keithley__617__keithley__617a9}
+
+\begin{CompactList}\small\item\em getter(s) \& setter(s) \item\end{CompactList}\item 
+std::string {\bf get\_\-Electro\-Meter\-Range} (void)\label{class_keithley__617__keithley__617a10}
+
+\item 
+std::string {\bf electrometer\_\-status} (void)\label{class_keithley__617__keithley__617a11}
+
+\begin{CompactList}\small\item\em Electrometer status. \item\end{CompactList}\item 
+virtual void {\bf reset} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a13}
+
+\item 
+virtual void {\bf local} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a14}
+
+\item 
+virtual void {\bf remote} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a15}
+
+\item 
+std::string {\bf get\_\-value} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a16}
+
+\begin{CompactList}\small\item\em Electrometer : cmd to get electrometer data. \item\end{CompactList}\item 
+void {\bf auto\-Range\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a17}
+
+\begin{CompactList}\small\item\em Keithley Electrometer methods. \item\end{CompactList}\item 
+void {\bf zero\_\-check\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a18}
+
+\item 
+void {\bf zero\_\-check\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a19}
+
+\item 
+void {\bf zero\_\-correct\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a20}
+
+\item 
+void {\bf zero\_\-correct\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a21}
+
+\item 
+void {\bf auto\_\-zero\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a22}
+
+\item 
+void {\bf auto\_\-zero\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a23}
+
+\item 
+void {\bf init\_\-keithley} (void)
+\begin{CompactList}\small\item\em Following functions are only supported for SCPI protocol. \item\end{CompactList}\item 
+void {\bf clear\_\-registers} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a30}
+
+\item 
+void {\bf average\-State\-ON} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a31}
+
+\item 
+void {\bf average\-State\-OFF} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a32}
+
+\item 
+void {\bf set\_\-knplc} (std::string n\-PLC)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a33}
+
+\item 
+void {\bf set\_\-triggercount} (std::string trigcounts)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a34}
+
+\item 
+void {\bf set\_\-averagecount} (std::string avercounts)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a35}
+
+\item 
+void {\bf set\_\-averagecontrol} (std::string averctrl)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a36}
+
+\item 
+std::string {\bf get\_\-knplc} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a37}
+
+\item 
+std::string {\bf get\_\-triggercount} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a38}
+
+\item 
+std::string {\bf get\_\-averagecount} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a39}
+
+\item 
+std::string {\bf get\_\-averagecontrol} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a40}
+
+\item 
+virtual void {\bf set\_\-Zero\_\-Von\-F\_\-function} (void)
+\begin{CompactList}\small\item\em Novelec Electrometer methods. \item\end{CompactList}\item 
+virtual void {\bf set\_\-Offset\_\-Zero\-V1\_\-function} (void)\label{class_abstract_electrometer_class__keithley__6514a33}
+
+\item 
+virtual void {\bf set\_\-Leakage\_\-Zero\-V2\_\-function} (void)\label{class_abstract_electrometer_class__keithley__6514a34}
+
+\item 
+virtual void {\bf set\_\-Test\_\-function} (void)\label{class_abstract_electrometer_class__keithley__6514a35}
+
+\item 
+virtual void {\bf mcce\_\-on} (void)\label{class_abstract_electrometer_class__keithley__6514a36}
+
+\item 
+virtual void {\bf mcce\_\-off} (void)\label{class_abstract_electrometer_class__keithley__6514a37}
+
+\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Polarity} (void)\label{class_abstract_electrometer_class__keithley__6514a38}
+
+\begin{CompactList}\small\item\em Novelec getters and setters. \item\end{CompactList}\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Frequency} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a41}
+
+\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Gain} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a42}
+
+\item 
+virtual void {\bf set\_\-Electro\-Meter\-Polarity} (std::string pola)\label{class_abstract_electrometer_class__keithley__6514a41}
+
+\item 
+virtual void {\bf set\_\-Electro\-Meter\-Frequency} (std::string freq)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a43}
+
+\item 
+virtual void {\bf set\_\-Electro\-Meter\-Gain} (std::string gain)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a44}
+
+\end{CompactItemize}
+\subsection*{Protected Attributes}
+\begin{CompactItemize}
+\item 
+short {\bf \_\-range}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p1}
+
+\item 
+std::string {\bf \_\-range\-Str}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p2}
+
+\item 
+std::string {\bf \_\-mode}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p3}
+
+\item 
+{\bf Electrometer\-Protocol} $\ast$ {\bf \_\-electrometer\-Protocol}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p4}
+
+\item 
+std::string {\bf \_\-device\_\-proxy\_\-name}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p5}
+
+\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+This class manage 617 Keithley type. 
+
+\begin{Desc}
+\item[Author:]Xavier Elattaoui \end{Desc}
+\begin{Desc}
+\item[Date:]11-2006 \end{Desc}
+
+
+
+
+\subsection{Member Function Documentation}
+\index{Keithley_617@{Keithley\_\-617}!init_keithley@{init\_\-keithley}}
+\index{init_keithley@{init\_\-keithley}!Keithley_617@{Keithley\_\-617}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Abstract\-Electrometer\-Class::init\_\-keithley (void)\hspace{0.3cm}{\tt  [inherited]}}\label{class_abstract_electrometer_class__novelec___m_c_c_e2a29}
+
+
+Following functions are only supported for SCPI protocol. 
+
+\index{Keithley_617@{Keithley\_\-617}!set_Zero_VonF_function@{set\_\-Zero\_\-VonF\_\-function}}
+\index{set_Zero_VonF_function@{set\_\-Zero\_\-VonF\_\-function}!Keithley_617@{Keithley\_\-617}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual void Abstract\-Electrometer\-Class::set\_\-Zero\_\-Von\-F\_\-function (void)\hspace{0.3cm}{\tt  [virtual, inherited]}}\label{class_abstract_electrometer_class__keithley__6514a32}
+
+
+Novelec Electrometer methods. 
+
+Following functions are only supported for Novelec Protocol
+
+Reimplemented in {\bf Novelec\_\-MCCE2} {\rm (p.\,\pageref{class_novelec___m_c_c_e2__novelec___m_c_c_e2a4})}.
+
+The documentation for this class was generated from the following file:\begin{CompactItemize}
+\item 
+Keithley\_\-617.h\end{CompactItemize}
diff --git a/doc/latex/class_keithley__6485.eps b/doc/latex/class_keithley__6485.eps
new file mode 100644
index 0000000000000000000000000000000000000000..f2b7344826fc614ea0c576f99c14c64778ec86a9
--- /dev/null
+++ b/doc/latex/class_keithley__6485.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 236.686
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 2.1125 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(Keithley_6485) cw
+(AbstractElectrometerClass) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (Keithley_6485) 0 0 box
+ (AbstractElectrometerClass) 0 1 box
+
+% ----- relations -----
+
+solid
+0 0 0 out
+solid
+1 0 1 in
diff --git a/doc/latex/class_keithley__6485.tex b/doc/latex/class_keithley__6485.tex
new file mode 100644
index 0000000000000000000000000000000000000000..3da4e28cdcfafba955db2772347e15651e76e577
--- /dev/null
+++ b/doc/latex/class_keithley__6485.tex
@@ -0,0 +1,208 @@
+\section{Keithley\_\-6485 Class Reference}
+\label{class_keithley__6485}\index{Keithley_6485@{Keithley\_\-6485}}
+This class manage 6485 Keithley type.  
+
+
+{\tt \#include $<$Keithley\_\-6485.h$>$}
+
+Inheritance diagram for Keithley\_\-6485::\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2cm]{class_keithley__6485}
+\end{center}
+\end{figure}
+\subsection*{Public Member Functions}
+\begin{CompactItemize}
+\item 
+{\bf Keithley\_\-6485} (std::string \&com\-Link\_\-device\_\-name)\label{class_keithley__6485__keithley__6485a0}
+
+\begin{CompactList}\small\item\em Initialization. \item\end{CompactList}\item 
+virtual {\bf $\sim$Keithley\_\-6485} (void)\label{class_keithley__6485__keithley__6485a1}
+
+\begin{CompactList}\small\item\em Release resources. \item\end{CompactList}\item 
+void {\bf range\_\-up} (void)\label{class_keithley__6485__keithley__6485a2}
+
+\begin{CompactList}\small\item\em Device dependent commands. \item\end{CompactList}\item 
+void {\bf range\_\-down} (void)\label{class_keithley__6485__keithley__6485a3}
+
+\item 
+virtual void {\bf reset} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a13}
+
+\item 
+virtual void {\bf local} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a14}
+
+\item 
+virtual void {\bf remote} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a15}
+
+\item 
+std::string {\bf get\_\-value} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a16}
+
+\begin{CompactList}\small\item\em Electrometer : cmd to get electrometer data. \item\end{CompactList}\item 
+void {\bf auto\-Range\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a17}
+
+\begin{CompactList}\small\item\em Keithley Electrometer methods. \item\end{CompactList}\item 
+void {\bf zero\_\-check\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a18}
+
+\item 
+void {\bf zero\_\-check\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a19}
+
+\item 
+void {\bf zero\_\-correct\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a20}
+
+\item 
+void {\bf zero\_\-correct\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a21}
+
+\item 
+void {\bf auto\_\-zero\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a22}
+
+\item 
+void {\bf auto\_\-zero\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a23}
+
+\item 
+virtual void {\bf auto\-Range\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a24}
+
+\item 
+virtual void {\bf set\-Amper\-Meter\-Mode} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a25}
+
+\item 
+virtual void {\bf set\-Volt\-Meter\-Mode} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a26}
+
+\item 
+virtual void {\bf set\-Ohm\-Meter\-Mode} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a27}
+
+\item 
+virtual void {\bf set\-Coulomb\-Meter\-Mode} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a28}
+
+\item 
+void {\bf init\_\-keithley} (void)
+\begin{CompactList}\small\item\em Following functions are only supported for SCPI protocol. \item\end{CompactList}\item 
+void {\bf clear\_\-registers} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a30}
+
+\item 
+void {\bf average\-State\-ON} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a31}
+
+\item 
+void {\bf average\-State\-OFF} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a32}
+
+\item 
+void {\bf set\_\-knplc} (std::string n\-PLC)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a33}
+
+\item 
+void {\bf set\_\-triggercount} (std::string trigcounts)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a34}
+
+\item 
+void {\bf set\_\-averagecount} (std::string avercounts)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a35}
+
+\item 
+void {\bf set\_\-averagecontrol} (std::string averctrl)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a36}
+
+\item 
+std::string {\bf get\_\-knplc} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a37}
+
+\item 
+std::string {\bf get\_\-triggercount} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a38}
+
+\item 
+std::string {\bf get\_\-averagecount} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a39}
+
+\item 
+std::string {\bf get\_\-averagecontrol} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a40}
+
+\item 
+virtual void {\bf set\_\-Zero\_\-Von\-F\_\-function} (void)
+\begin{CompactList}\small\item\em Novelec Electrometer methods. \item\end{CompactList}\item 
+virtual void {\bf set\_\-Offset\_\-Zero\-V1\_\-function} (void)\label{class_abstract_electrometer_class__keithley__6514a33}
+
+\item 
+virtual void {\bf set\_\-Leakage\_\-Zero\-V2\_\-function} (void)\label{class_abstract_electrometer_class__keithley__6514a34}
+
+\item 
+virtual void {\bf set\_\-Test\_\-function} (void)\label{class_abstract_electrometer_class__keithley__6514a35}
+
+\item 
+virtual void {\bf mcce\_\-on} (void)\label{class_abstract_electrometer_class__keithley__6514a36}
+
+\item 
+virtual void {\bf mcce\_\-off} (void)\label{class_abstract_electrometer_class__keithley__6514a37}
+
+\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Polarity} (void)\label{class_abstract_electrometer_class__keithley__6514a38}
+
+\begin{CompactList}\small\item\em Novelec getters and setters. \item\end{CompactList}\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Frequency} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a41}
+
+\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Gain} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a42}
+
+\item 
+virtual void {\bf set\_\-Electro\-Meter\-Polarity} (std::string pola)\label{class_abstract_electrometer_class__keithley__6514a41}
+
+\item 
+virtual void {\bf set\_\-Electro\-Meter\-Frequency} (std::string freq)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a43}
+
+\item 
+virtual void {\bf set\_\-Electro\-Meter\-Gain} (std::string gain)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a44}
+
+\item 
+virtual std::string {\bf electrometer\_\-status} (void)\label{class_abstract_electrometer_class__keithley__6514a44}
+
+\begin{CompactList}\small\item\em Electrometer Status. \item\end{CompactList}\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Mode} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a45}
+
+\begin{CompactList}\small\item\em Common getters and setters. \item\end{CompactList}\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Range} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a46}
+
+\end{CompactItemize}
+\subsection*{Protected Attributes}
+\begin{CompactItemize}
+\item 
+short {\bf \_\-range}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p1}
+
+\item 
+std::string {\bf \_\-range\-Str}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p2}
+
+\item 
+std::string {\bf \_\-mode}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p3}
+
+\item 
+{\bf Electrometer\-Protocol} $\ast$ {\bf \_\-electrometer\-Protocol}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p4}
+
+\item 
+std::string {\bf \_\-device\_\-proxy\_\-name}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p5}
+
+\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+This class manage 6485 Keithley type. 
+
+\begin{Desc}
+\item[Author:]Xavier Elattaoui \end{Desc}
+\begin{Desc}
+\item[Date:]11-2006 \end{Desc}
+
+
+
+
+\subsection{Member Function Documentation}
+\index{Keithley_6485@{Keithley\_\-6485}!init_keithley@{init\_\-keithley}}
+\index{init_keithley@{init\_\-keithley}!Keithley_6485@{Keithley\_\-6485}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Abstract\-Electrometer\-Class::init\_\-keithley (void)\hspace{0.3cm}{\tt  [inherited]}}\label{class_abstract_electrometer_class__novelec___m_c_c_e2a29}
+
+
+Following functions are only supported for SCPI protocol. 
+
+\index{Keithley_6485@{Keithley\_\-6485}!set_Zero_VonF_function@{set\_\-Zero\_\-VonF\_\-function}}
+\index{set_Zero_VonF_function@{set\_\-Zero\_\-VonF\_\-function}!Keithley_6485@{Keithley\_\-6485}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual void Abstract\-Electrometer\-Class::set\_\-Zero\_\-Von\-F\_\-function (void)\hspace{0.3cm}{\tt  [virtual, inherited]}}\label{class_abstract_electrometer_class__keithley__6514a32}
+
+
+Novelec Electrometer methods. 
+
+Following functions are only supported for Novelec Protocol
+
+Reimplemented in {\bf Novelec\_\-MCCE2} {\rm (p.\,\pageref{class_novelec___m_c_c_e2__novelec___m_c_c_e2a4})}.
+
+The documentation for this class was generated from the following file:\begin{CompactItemize}
+\item 
+Keithley\_\-6485.h\end{CompactItemize}
diff --git a/doc/latex/class_keithley__6487.eps b/doc/latex/class_keithley__6487.eps
new file mode 100644
index 0000000000000000000000000000000000000000..43796aa6adf46c6b54a4f6e9154fa2297ed22d65
--- /dev/null
+++ b/doc/latex/class_keithley__6487.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 236.686
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 2.1125 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(Keithley_6487) cw
+(AbstractElectrometerClass) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (Keithley_6487) 0 0 box
+ (AbstractElectrometerClass) 0 1 box
+
+% ----- relations -----
+
+solid
+0 0 0 out
+solid
+1 0 1 in
diff --git a/doc/latex/class_keithley__6487.tex b/doc/latex/class_keithley__6487.tex
new file mode 100644
index 0000000000000000000000000000000000000000..aeb5b29f627e081a79e9dce9d6176e57b884619d
--- /dev/null
+++ b/doc/latex/class_keithley__6487.tex
@@ -0,0 +1,208 @@
+\section{Keithley\_\-6487 Class Reference}
+\label{class_keithley__6487}\index{Keithley_6487@{Keithley\_\-6487}}
+This class manage 6487 Keithley type.  
+
+
+{\tt \#include $<$Keithley\_\-6487.h$>$}
+
+Inheritance diagram for Keithley\_\-6487::\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2cm]{class_keithley__6487}
+\end{center}
+\end{figure}
+\subsection*{Public Member Functions}
+\begin{CompactItemize}
+\item 
+{\bf Keithley\_\-6487} (std::string \&com\-Link\_\-device\_\-name)\label{class_keithley__6487__keithley__6487a0}
+
+\begin{CompactList}\small\item\em Initialization. \item\end{CompactList}\item 
+virtual {\bf $\sim$Keithley\_\-6487} (void)\label{class_keithley__6487__keithley__6487a1}
+
+\begin{CompactList}\small\item\em Release resources. \item\end{CompactList}\item 
+void {\bf range\_\-up} (void)\label{class_keithley__6487__keithley__6487a2}
+
+\begin{CompactList}\small\item\em Device dependent commands. \item\end{CompactList}\item 
+void {\bf range\_\-down} (void)\label{class_keithley__6487__keithley__6487a3}
+
+\item 
+void {\bf set\-Amper\-Meter\-Mode} (void)\label{class_keithley__6487__keithley__6487a4}
+
+\begin{CompactList}\small\item\em Electrometer Mode. \item\end{CompactList}\item 
+virtual void {\bf reset} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a13}
+
+\item 
+virtual void {\bf local} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a14}
+
+\item 
+virtual void {\bf remote} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a15}
+
+\item 
+std::string {\bf get\_\-value} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a16}
+
+\begin{CompactList}\small\item\em Electrometer : cmd to get electrometer data. \item\end{CompactList}\item 
+void {\bf auto\-Range\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a17}
+
+\begin{CompactList}\small\item\em Keithley Electrometer methods. \item\end{CompactList}\item 
+void {\bf zero\_\-check\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a18}
+
+\item 
+void {\bf zero\_\-check\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a19}
+
+\item 
+void {\bf zero\_\-correct\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a20}
+
+\item 
+void {\bf zero\_\-correct\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a21}
+
+\item 
+void {\bf auto\_\-zero\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a22}
+
+\item 
+void {\bf auto\_\-zero\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a23}
+
+\item 
+virtual void {\bf auto\-Range\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a24}
+
+\item 
+virtual void {\bf set\-Volt\-Meter\-Mode} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a26}
+
+\item 
+virtual void {\bf set\-Ohm\-Meter\-Mode} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a27}
+
+\item 
+virtual void {\bf set\-Coulomb\-Meter\-Mode} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a28}
+
+\item 
+void {\bf init\_\-keithley} (void)
+\begin{CompactList}\small\item\em Following functions are only supported for SCPI protocol. \item\end{CompactList}\item 
+void {\bf clear\_\-registers} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a30}
+
+\item 
+void {\bf average\-State\-ON} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a31}
+
+\item 
+void {\bf average\-State\-OFF} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a32}
+
+\item 
+void {\bf set\_\-knplc} (std::string n\-PLC)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a33}
+
+\item 
+void {\bf set\_\-triggercount} (std::string trigcounts)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a34}
+
+\item 
+void {\bf set\_\-averagecount} (std::string avercounts)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a35}
+
+\item 
+void {\bf set\_\-averagecontrol} (std::string averctrl)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a36}
+
+\item 
+std::string {\bf get\_\-knplc} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a37}
+
+\item 
+std::string {\bf get\_\-triggercount} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a38}
+
+\item 
+std::string {\bf get\_\-averagecount} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a39}
+
+\item 
+std::string {\bf get\_\-averagecontrol} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a40}
+
+\item 
+virtual void {\bf set\_\-Zero\_\-Von\-F\_\-function} (void)
+\begin{CompactList}\small\item\em Novelec Electrometer methods. \item\end{CompactList}\item 
+virtual void {\bf set\_\-Offset\_\-Zero\-V1\_\-function} (void)\label{class_abstract_electrometer_class__keithley__6514a33}
+
+\item 
+virtual void {\bf set\_\-Leakage\_\-Zero\-V2\_\-function} (void)\label{class_abstract_electrometer_class__keithley__6514a34}
+
+\item 
+virtual void {\bf set\_\-Test\_\-function} (void)\label{class_abstract_electrometer_class__keithley__6514a35}
+
+\item 
+virtual void {\bf mcce\_\-on} (void)\label{class_abstract_electrometer_class__keithley__6514a36}
+
+\item 
+virtual void {\bf mcce\_\-off} (void)\label{class_abstract_electrometer_class__keithley__6514a37}
+
+\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Polarity} (void)\label{class_abstract_electrometer_class__keithley__6514a38}
+
+\begin{CompactList}\small\item\em Novelec getters and setters. \item\end{CompactList}\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Frequency} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a41}
+
+\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Gain} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a42}
+
+\item 
+virtual void {\bf set\_\-Electro\-Meter\-Polarity} (std::string pola)\label{class_abstract_electrometer_class__keithley__6514a41}
+
+\item 
+virtual void {\bf set\_\-Electro\-Meter\-Frequency} (std::string freq)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a43}
+
+\item 
+virtual void {\bf set\_\-Electro\-Meter\-Gain} (std::string gain)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a44}
+
+\item 
+virtual std::string {\bf electrometer\_\-status} (void)\label{class_abstract_electrometer_class__keithley__6514a44}
+
+\begin{CompactList}\small\item\em Electrometer Status. \item\end{CompactList}\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Mode} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a45}
+
+\begin{CompactList}\small\item\em Common getters and setters. \item\end{CompactList}\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Range} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a46}
+
+\end{CompactItemize}
+\subsection*{Protected Attributes}
+\begin{CompactItemize}
+\item 
+short {\bf \_\-range}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p1}
+
+\item 
+std::string {\bf \_\-range\-Str}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p2}
+
+\item 
+std::string {\bf \_\-mode}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p3}
+
+\item 
+{\bf Electrometer\-Protocol} $\ast$ {\bf \_\-electrometer\-Protocol}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p4}
+
+\item 
+std::string {\bf \_\-device\_\-proxy\_\-name}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p5}
+
+\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+This class manage 6487 Keithley type. 
+
+\begin{Desc}
+\item[Author:]Xavier Elattaoui \end{Desc}
+\begin{Desc}
+\item[Date:]11-2006 \end{Desc}
+
+
+
+
+\subsection{Member Function Documentation}
+\index{Keithley_6487@{Keithley\_\-6487}!init_keithley@{init\_\-keithley}}
+\index{init_keithley@{init\_\-keithley}!Keithley_6487@{Keithley\_\-6487}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Abstract\-Electrometer\-Class::init\_\-keithley (void)\hspace{0.3cm}{\tt  [inherited]}}\label{class_abstract_electrometer_class__novelec___m_c_c_e2a29}
+
+
+Following functions are only supported for SCPI protocol. 
+
+\index{Keithley_6487@{Keithley\_\-6487}!set_Zero_VonF_function@{set\_\-Zero\_\-VonF\_\-function}}
+\index{set_Zero_VonF_function@{set\_\-Zero\_\-VonF\_\-function}!Keithley_6487@{Keithley\_\-6487}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual void Abstract\-Electrometer\-Class::set\_\-Zero\_\-Von\-F\_\-function (void)\hspace{0.3cm}{\tt  [virtual, inherited]}}\label{class_abstract_electrometer_class__keithley__6514a32}
+
+
+Novelec Electrometer methods. 
+
+Following functions are only supported for Novelec Protocol
+
+Reimplemented in {\bf Novelec\_\-MCCE2} {\rm (p.\,\pageref{class_novelec___m_c_c_e2__novelec___m_c_c_e2a4})}.
+
+The documentation for this class was generated from the following file:\begin{CompactItemize}
+\item 
+Keithley\_\-6487.h\end{CompactItemize}
diff --git a/doc/latex/class_keithley__6512.eps b/doc/latex/class_keithley__6512.eps
new file mode 100644
index 0000000000000000000000000000000000000000..8e734fe790bc5173a53ccb59bfc27671e37080d2
--- /dev/null
+++ b/doc/latex/class_keithley__6512.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 236.686
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 2.1125 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(Keithley_6512) cw
+(AbstractElectrometerClass) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (Keithley_6512) 0 0 box
+ (AbstractElectrometerClass) 0 1 box
+
+% ----- relations -----
+
+solid
+0 0 0 out
+solid
+1 0 1 in
diff --git a/doc/latex/class_keithley__6512.tex b/doc/latex/class_keithley__6512.tex
new file mode 100644
index 0000000000000000000000000000000000000000..83a29aaa4be4a4dc9a21b8bb949bdcfc24ab95a9
--- /dev/null
+++ b/doc/latex/class_keithley__6512.tex
@@ -0,0 +1,208 @@
+\section{Keithley\_\-6512 Class Reference}
+\label{class_keithley__6512}\index{Keithley_6512@{Keithley\_\-6512}}
+This class manage 6512 Keithley type.  
+
+
+{\tt \#include $<$Keithley\_\-6512.h$>$}
+
+Inheritance diagram for Keithley\_\-6512::\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2cm]{class_keithley__6512}
+\end{center}
+\end{figure}
+\subsection*{Public Member Functions}
+\begin{CompactItemize}
+\item 
+{\bf Keithley\_\-6512} (std::string \&com\-Link\_\-device\_\-name)\label{class_keithley__6512__keithley__6512a0}
+
+\begin{CompactList}\small\item\em Initialization. \item\end{CompactList}\item 
+virtual {\bf $\sim$Keithley\_\-6512} (void)\label{class_keithley__6512__keithley__6512a1}
+
+\begin{CompactList}\small\item\em Release resources. \item\end{CompactList}\item 
+void {\bf auto\-Range\_\-off} (void)\label{class_keithley__6512__keithley__6512a2}
+
+\begin{CompactList}\small\item\em Device dependent commands. \item\end{CompactList}\item 
+void {\bf range\_\-up} (void)\label{class_keithley__6512__keithley__6512a3}
+
+\begin{CompactList}\small\item\em Electrometer common functions. \item\end{CompactList}\item 
+void {\bf range\_\-down} (void)\label{class_keithley__6512__keithley__6512a4}
+
+\item 
+void {\bf set\-Amper\-Meter\-Mode} (void)\label{class_keithley__6512__keithley__6512a5}
+
+\begin{CompactList}\small\item\em Electrometer Mode. \item\end{CompactList}\item 
+void {\bf set\-Volt\-Meter\-Mode} (void)\label{class_keithley__6512__keithley__6512a6}
+
+\item 
+void {\bf set\-Ohm\-Meter\-Mode} (void)\label{class_keithley__6512__keithley__6512a7}
+
+\item 
+void {\bf set\-Coulomb\-Meter\-Mode} (void)\label{class_keithley__6512__keithley__6512a8}
+
+\item 
+std::string {\bf get\_\-Electro\-Meter\-Mode} (void)\label{class_keithley__6512__keithley__6512a9}
+
+\begin{CompactList}\small\item\em getter(s) \& setter(s) \item\end{CompactList}\item 
+std::string {\bf get\_\-Electro\-Meter\-Range} (void)\label{class_keithley__6512__keithley__6512a10}
+
+\item 
+std::string {\bf electrometer\_\-status} (void)\label{class_keithley__6512__keithley__6512a11}
+
+\begin{CompactList}\small\item\em Electrometer status. \item\end{CompactList}\item 
+virtual void {\bf reset} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a13}
+
+\item 
+virtual void {\bf local} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a14}
+
+\item 
+virtual void {\bf remote} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a15}
+
+\item 
+std::string {\bf get\_\-value} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a16}
+
+\begin{CompactList}\small\item\em Electrometer : cmd to get electrometer data. \item\end{CompactList}\item 
+void {\bf auto\-Range\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a17}
+
+\begin{CompactList}\small\item\em Keithley Electrometer methods. \item\end{CompactList}\item 
+void {\bf zero\_\-check\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a18}
+
+\item 
+void {\bf zero\_\-check\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a19}
+
+\item 
+void {\bf zero\_\-correct\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a20}
+
+\item 
+void {\bf zero\_\-correct\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a21}
+
+\item 
+void {\bf auto\_\-zero\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a22}
+
+\item 
+void {\bf auto\_\-zero\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a23}
+
+\item 
+void {\bf init\_\-keithley} (void)
+\begin{CompactList}\small\item\em Following functions are only supported for SCPI protocol. \item\end{CompactList}\item 
+void {\bf clear\_\-registers} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a30}
+
+\item 
+void {\bf average\-State\-ON} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a31}
+
+\item 
+void {\bf average\-State\-OFF} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a32}
+
+\item 
+void {\bf set\_\-knplc} (std::string n\-PLC)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a33}
+
+\item 
+void {\bf set\_\-triggercount} (std::string trigcounts)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a34}
+
+\item 
+void {\bf set\_\-averagecount} (std::string avercounts)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a35}
+
+\item 
+void {\bf set\_\-averagecontrol} (std::string averctrl)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a36}
+
+\item 
+std::string {\bf get\_\-knplc} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a37}
+
+\item 
+std::string {\bf get\_\-triggercount} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a38}
+
+\item 
+std::string {\bf get\_\-averagecount} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a39}
+
+\item 
+std::string {\bf get\_\-averagecontrol} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a40}
+
+\item 
+virtual void {\bf set\_\-Zero\_\-Von\-F\_\-function} (void)
+\begin{CompactList}\small\item\em Novelec Electrometer methods. \item\end{CompactList}\item 
+virtual void {\bf set\_\-Offset\_\-Zero\-V1\_\-function} (void)\label{class_abstract_electrometer_class__keithley__6514a33}
+
+\item 
+virtual void {\bf set\_\-Leakage\_\-Zero\-V2\_\-function} (void)\label{class_abstract_electrometer_class__keithley__6514a34}
+
+\item 
+virtual void {\bf set\_\-Test\_\-function} (void)\label{class_abstract_electrometer_class__keithley__6514a35}
+
+\item 
+virtual void {\bf mcce\_\-on} (void)\label{class_abstract_electrometer_class__keithley__6514a36}
+
+\item 
+virtual void {\bf mcce\_\-off} (void)\label{class_abstract_electrometer_class__keithley__6514a37}
+
+\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Polarity} (void)\label{class_abstract_electrometer_class__keithley__6514a38}
+
+\begin{CompactList}\small\item\em Novelec getters and setters. \item\end{CompactList}\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Frequency} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a41}
+
+\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Gain} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a42}
+
+\item 
+virtual void {\bf set\_\-Electro\-Meter\-Polarity} (std::string pola)\label{class_abstract_electrometer_class__keithley__6514a41}
+
+\item 
+virtual void {\bf set\_\-Electro\-Meter\-Frequency} (std::string freq)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a43}
+
+\item 
+virtual void {\bf set\_\-Electro\-Meter\-Gain} (std::string gain)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a44}
+
+\end{CompactItemize}
+\subsection*{Protected Attributes}
+\begin{CompactItemize}
+\item 
+short {\bf \_\-range}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p1}
+
+\item 
+std::string {\bf \_\-range\-Str}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p2}
+
+\item 
+std::string {\bf \_\-mode}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p3}
+
+\item 
+{\bf Electrometer\-Protocol} $\ast$ {\bf \_\-electrometer\-Protocol}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p4}
+
+\item 
+std::string {\bf \_\-device\_\-proxy\_\-name}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p5}
+
+\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+This class manage 6512 Keithley type. 
+
+\begin{Desc}
+\item[Author:]Xavier Elattaoui \end{Desc}
+\begin{Desc}
+\item[Date:]11-2006 \end{Desc}
+
+
+
+
+\subsection{Member Function Documentation}
+\index{Keithley_6512@{Keithley\_\-6512}!init_keithley@{init\_\-keithley}}
+\index{init_keithley@{init\_\-keithley}!Keithley_6512@{Keithley\_\-6512}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Abstract\-Electrometer\-Class::init\_\-keithley (void)\hspace{0.3cm}{\tt  [inherited]}}\label{class_abstract_electrometer_class__novelec___m_c_c_e2a29}
+
+
+Following functions are only supported for SCPI protocol. 
+
+\index{Keithley_6512@{Keithley\_\-6512}!set_Zero_VonF_function@{set\_\-Zero\_\-VonF\_\-function}}
+\index{set_Zero_VonF_function@{set\_\-Zero\_\-VonF\_\-function}!Keithley_6512@{Keithley\_\-6512}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual void Abstract\-Electrometer\-Class::set\_\-Zero\_\-Von\-F\_\-function (void)\hspace{0.3cm}{\tt  [virtual, inherited]}}\label{class_abstract_electrometer_class__keithley__6514a32}
+
+
+Novelec Electrometer methods. 
+
+Following functions are only supported for Novelec Protocol
+
+Reimplemented in {\bf Novelec\_\-MCCE2} {\rm (p.\,\pageref{class_novelec___m_c_c_e2__novelec___m_c_c_e2a4})}.
+
+The documentation for this class was generated from the following file:\begin{CompactItemize}
+\item 
+Keithley\_\-6512.h\end{CompactItemize}
diff --git a/doc/latex/class_keithley__6514.eps b/doc/latex/class_keithley__6514.eps
new file mode 100644
index 0000000000000000000000000000000000000000..82dbb2e20326fe67fa0656c831b955e69fb5fafd
--- /dev/null
+++ b/doc/latex/class_keithley__6514.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 236.686
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 2.1125 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(Keithley_6514) cw
+(AbstractElectrometerClass) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (Keithley_6514) 0 0 box
+ (AbstractElectrometerClass) 0 1 box
+
+% ----- relations -----
+
+solid
+0 0 0 out
+solid
+1 0 1 in
diff --git a/doc/latex/class_keithley__6514.tex b/doc/latex/class_keithley__6514.tex
new file mode 100644
index 0000000000000000000000000000000000000000..e440baa63a9eff20f78058f5ebdb95d4b63332f1
--- /dev/null
+++ b/doc/latex/class_keithley__6514.tex
@@ -0,0 +1,208 @@
+\section{Keithley\_\-6514 Class Reference}
+\label{class_keithley__6514}\index{Keithley_6514@{Keithley\_\-6514}}
+This class manage 6514 Keithley type.  
+
+
+{\tt \#include $<$Keithley\_\-6514.h$>$}
+
+Inheritance diagram for Keithley\_\-6514::\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2cm]{class_keithley__6514}
+\end{center}
+\end{figure}
+\subsection*{Public Member Functions}
+\begin{CompactItemize}
+\item 
+{\bf Keithley\_\-6514} (std::string \&com\-Link\_\-device\_\-name)\label{class_keithley__6514__keithley__6514a0}
+
+\begin{CompactList}\small\item\em Initialization. \item\end{CompactList}\item 
+virtual {\bf $\sim$Keithley\_\-6514} (void)\label{class_keithley__6514__keithley__6514a1}
+
+\begin{CompactList}\small\item\em Release resources. \item\end{CompactList}\item 
+void {\bf range\_\-up} (void)\label{class_keithley__6514__keithley__6514a2}
+
+\begin{CompactList}\small\item\em Device dependent commands. \item\end{CompactList}\item 
+void {\bf range\_\-down} (void)\label{class_keithley__6514__keithley__6514a3}
+
+\item 
+void {\bf set\-Amper\-Meter\-Mode} (void)\label{class_keithley__6514__keithley__6514a4}
+
+\begin{CompactList}\small\item\em Electrometer Mode. \item\end{CompactList}\item 
+void {\bf set\-Volt\-Meter\-Mode} (void)\label{class_keithley__6514__keithley__6514a5}
+
+\item 
+void {\bf set\-Ohm\-Meter\-Mode} (void)\label{class_keithley__6514__keithley__6514a6}
+
+\item 
+void {\bf set\-Coulomb\-Meter\-Mode} (void)\label{class_keithley__6514__keithley__6514a7}
+
+\item 
+virtual void {\bf reset} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a13}
+
+\item 
+virtual void {\bf local} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a14}
+
+\item 
+virtual void {\bf remote} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a15}
+
+\item 
+std::string {\bf get\_\-value} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a16}
+
+\begin{CompactList}\small\item\em Electrometer : cmd to get electrometer data. \item\end{CompactList}\item 
+void {\bf auto\-Range\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a17}
+
+\begin{CompactList}\small\item\em Keithley Electrometer methods. \item\end{CompactList}\item 
+void {\bf zero\_\-check\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a18}
+
+\item 
+void {\bf zero\_\-check\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a19}
+
+\item 
+void {\bf zero\_\-correct\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a20}
+
+\item 
+void {\bf zero\_\-correct\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a21}
+
+\item 
+void {\bf auto\_\-zero\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a22}
+
+\item 
+void {\bf auto\_\-zero\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a23}
+
+\item 
+virtual void {\bf auto\-Range\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a24}
+
+\item 
+void {\bf init\_\-keithley} (void)
+\begin{CompactList}\small\item\em Following functions are only supported for SCPI protocol. \item\end{CompactList}\item 
+void {\bf clear\_\-registers} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a30}
+
+\item 
+void {\bf average\-State\-ON} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a31}
+
+\item 
+void {\bf average\-State\-OFF} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a32}
+
+\item 
+void {\bf set\_\-knplc} (std::string n\-PLC)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a33}
+
+\item 
+void {\bf set\_\-triggercount} (std::string trigcounts)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a34}
+
+\item 
+void {\bf set\_\-averagecount} (std::string avercounts)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a35}
+
+\item 
+void {\bf set\_\-averagecontrol} (std::string averctrl)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a36}
+
+\item 
+std::string {\bf get\_\-knplc} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a37}
+
+\item 
+std::string {\bf get\_\-triggercount} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a38}
+
+\item 
+std::string {\bf get\_\-averagecount} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a39}
+
+\item 
+std::string {\bf get\_\-averagecontrol} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a40}
+
+\item 
+virtual void {\bf set\_\-Zero\_\-Von\-F\_\-function} (void)
+\begin{CompactList}\small\item\em Novelec Electrometer methods. \item\end{CompactList}\item 
+virtual void {\bf set\_\-Offset\_\-Zero\-V1\_\-function} (void)\label{class_abstract_electrometer_class__keithley__6514a33}
+
+\item 
+virtual void {\bf set\_\-Leakage\_\-Zero\-V2\_\-function} (void)\label{class_abstract_electrometer_class__keithley__6514a34}
+
+\item 
+virtual void {\bf set\_\-Test\_\-function} (void)\label{class_abstract_electrometer_class__keithley__6514a35}
+
+\item 
+virtual void {\bf mcce\_\-on} (void)\label{class_abstract_electrometer_class__keithley__6514a36}
+
+\item 
+virtual void {\bf mcce\_\-off} (void)\label{class_abstract_electrometer_class__keithley__6514a37}
+
+\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Polarity} (void)\label{class_abstract_electrometer_class__keithley__6514a38}
+
+\begin{CompactList}\small\item\em Novelec getters and setters. \item\end{CompactList}\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Frequency} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a41}
+
+\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Gain} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a42}
+
+\item 
+virtual void {\bf set\_\-Electro\-Meter\-Polarity} (std::string pola)\label{class_abstract_electrometer_class__keithley__6514a41}
+
+\item 
+virtual void {\bf set\_\-Electro\-Meter\-Frequency} (std::string freq)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a43}
+
+\item 
+virtual void {\bf set\_\-Electro\-Meter\-Gain} (std::string gain)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a44}
+
+\item 
+virtual std::string {\bf electrometer\_\-status} (void)\label{class_abstract_electrometer_class__keithley__6514a44}
+
+\begin{CompactList}\small\item\em Electrometer Status. \item\end{CompactList}\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Mode} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a45}
+
+\begin{CompactList}\small\item\em Common getters and setters. \item\end{CompactList}\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Range} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a46}
+
+\end{CompactItemize}
+\subsection*{Protected Attributes}
+\begin{CompactItemize}
+\item 
+short {\bf \_\-range}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p1}
+
+\item 
+std::string {\bf \_\-range\-Str}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p2}
+
+\item 
+std::string {\bf \_\-mode}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p3}
+
+\item 
+{\bf Electrometer\-Protocol} $\ast$ {\bf \_\-electrometer\-Protocol}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p4}
+
+\item 
+std::string {\bf \_\-device\_\-proxy\_\-name}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p5}
+
+\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+This class manage 6514 Keithley type. 
+
+\begin{Desc}
+\item[Author:]Xavier Elattaoui \end{Desc}
+\begin{Desc}
+\item[Date:]11-2006 \end{Desc}
+
+
+
+
+\subsection{Member Function Documentation}
+\index{Keithley_6514@{Keithley\_\-6514}!init_keithley@{init\_\-keithley}}
+\index{init_keithley@{init\_\-keithley}!Keithley_6514@{Keithley\_\-6514}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Abstract\-Electrometer\-Class::init\_\-keithley (void)\hspace{0.3cm}{\tt  [inherited]}}\label{class_abstract_electrometer_class__novelec___m_c_c_e2a29}
+
+
+Following functions are only supported for SCPI protocol. 
+
+\index{Keithley_6514@{Keithley\_\-6514}!set_Zero_VonF_function@{set\_\-Zero\_\-VonF\_\-function}}
+\index{set_Zero_VonF_function@{set\_\-Zero\_\-VonF\_\-function}!Keithley_6514@{Keithley\_\-6514}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual void Abstract\-Electrometer\-Class::set\_\-Zero\_\-Von\-F\_\-function (void)\hspace{0.3cm}{\tt  [virtual, inherited]}}\label{class_abstract_electrometer_class__keithley__6514a32}
+
+
+Novelec Electrometer methods. 
+
+Following functions are only supported for Novelec Protocol
+
+Reimplemented in {\bf Novelec\_\-MCCE2} {\rm (p.\,\pageref{class_novelec___m_c_c_e2__novelec___m_c_c_e2a4})}.
+
+The documentation for this class was generated from the following file:\begin{CompactItemize}
+\item 
+Keithley\_\-6514.h\end{CompactItemize}
diff --git a/doc/latex/class_keithley_d_d_c_protocol.eps b/doc/latex/class_keithley_d_d_c_protocol.eps
new file mode 100644
index 0000000000000000000000000000000000000000..a56045f7a577dc743dda96e4eeff7d86f80df689
--- /dev/null
+++ b/doc/latex/class_keithley_d_d_c_protocol.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 287.77
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.7375 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(KeithleyDDCProtocol) cw
+(ElectrometerProtocol) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (KeithleyDDCProtocol) 0 0 box
+ (ElectrometerProtocol) 0 1 box
+
+% ----- relations -----
+
+solid
+0 0 0 out
+solid
+1 0 1 in
diff --git a/doc/latex/class_keithley_d_d_c_protocol.tex b/doc/latex/class_keithley_d_d_c_protocol.tex
new file mode 100644
index 0000000000000000000000000000000000000000..b92a427d26bf805c8bd77cc4d413fba38319f4dc
--- /dev/null
+++ b/doc/latex/class_keithley_d_d_c_protocol.tex
@@ -0,0 +1,191 @@
+\section{Keithley\-DDCProtocol Class Reference}
+\label{class_keithley_d_d_c_protocol}\index{KeithleyDDCProtocol@{KeithleyDDCProtocol}}
+This class manage the Keithley DDC Commands Protocol.  
+
+
+{\tt \#include $<$Keithley\-DDCProtocol.h$>$}
+
+Inheritance diagram for Keithley\-DDCProtocol::\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2cm]{class_keithley_d_d_c_protocol}
+\end{center}
+\end{figure}
+\subsection*{Public Member Functions}
+\begin{CompactItemize}
+\item 
+{\bf Keithley\-DDCProtocol} (std::string \&gpib\_\-device\_\-name)\label{class_keithley_d_d_c_protocol__keithley_d_d_c_protocola0}
+
+\begin{CompactList}\small\item\em Initialization. \item\end{CompactList}\item 
+virtual {\bf $\sim$Keithley\-DDCProtocol} (void)\label{class_keithley_d_d_c_protocol__keithley_d_d_c_protocola1}
+
+\begin{CompactList}\small\item\em Release resources. \item\end{CompactList}\item 
+void {\bf set\_\-range} (std::string value)\label{class_keithley_d_d_c_protocol__keithley_d_d_c_protocola2}
+
+\begin{CompactList}\small\item\em Electrometer Functions. \item\end{CompactList}\item 
+void {\bf auto\-Range\_\-on} (void)\label{class_keithley_d_d_c_protocol__keithley_d_d_c_protocola3}
+
+\item 
+void {\bf auto\-Range\_\-off} (void)\label{class_keithley_d_d_c_protocol__keithley_d_d_c_protocola4}
+
+\item 
+void {\bf auto\-Range\_\-OFF\_\-for\-K486\_\-487} (void)\label{class_keithley_d_d_c_protocol__keithley_d_d_c_protocola5}
+
+\item 
+void {\bf auto\-Range\_\-OFF\_\-for\-K617\_\-6512} (void)\label{class_keithley_d_d_c_protocol__keithley_d_d_c_protocola6}
+
+\item 
+void {\bf zero\_\-check\_\-on} (void)\label{class_keithley_d_d_c_protocol__keithley_d_d_c_protocola7}
+
+\item 
+void {\bf zero\_\-check\_\-off} (void)\label{class_keithley_d_d_c_protocol__keithley_d_d_c_protocola8}
+
+\item 
+void {\bf zero\_\-correct\_\-on} (void)\label{class_keithley_d_d_c_protocol__keithley_d_d_c_protocola9}
+
+\item 
+void {\bf zero\_\-correct\_\-off} (void)\label{class_keithley_d_d_c_protocol__keithley_d_d_c_protocola10}
+
+\item 
+void {\bf auto\_\-zero\_\-on} (void)\label{class_keithley_d_d_c_protocol__keithley_d_d_c_protocola11}
+
+\item 
+void {\bf auto\_\-zero\_\-off} (void)\label{class_keithley_d_d_c_protocol__keithley_d_d_c_protocola12}
+
+\item 
+void {\bf reset} (void)\label{class_keithley_d_d_c_protocol__keithley_d_d_c_protocola13}
+
+\item 
+std::string {\bf get\_\-value} (void)\label{class_keithley_d_d_c_protocol__keithley_d_d_c_protocola14}
+
+\begin{CompactList}\small\item\em Electrometer : cmd to get electrometer data. \item\end{CompactList}\item 
+void {\bf set\-Amper\-Meter\-Mode} (void)\label{class_keithley_d_d_c_protocol__keithley_d_d_c_protocola15}
+
+\begin{CompactList}\small\item\em Electrometer Mode. \item\end{CompactList}\item 
+void {\bf set\-Amper\-Meter\-Mode\_\-for\-K487} (void)\label{class_keithley_d_d_c_protocol__keithley_d_d_c_protocola16}
+
+\item 
+void {\bf set\-Volt\-Meter\-Mode} (void)\label{class_keithley_d_d_c_protocol__keithley_d_d_c_protocola17}
+
+\item 
+void {\bf set\-Ohm\-Meter\-Mode} (void)\label{class_keithley_d_d_c_protocol__keithley_d_d_c_protocola18}
+
+\item 
+void {\bf set\-Coulomb\-Meter\-Mode} (void)\label{class_keithley_d_d_c_protocol__keithley_d_d_c_protocola19}
+
+\item 
+void {\bf clear\_\-registers} (void)\label{class_keithley_d_d_c_protocol__keithley_d_d_c_protocola20}
+
+\item 
+std::string {\bf get\_\-raw\_\-status} (void)\label{class_keithley_d_d_c_protocol__keithley_d_d_c_protocola21}
+
+\begin{CompactList}\small\item\em Get Raw Electrometer Status. \item\end{CompactList}\item 
+std::string {\bf get\_\-mode} (void)\label{class_keithley_d_d_c_protocol__keithley_d_d_c_protocola22}
+
+\begin{CompactList}\small\item\em Electrometer Mode : getters and setters. \item\end{CompactList}\item 
+std::string {\bf get\_\-range} (void)\label{class_keithley_d_d_c_protocol__keithley_d_d_c_protocola23}
+
+\item 
+virtual void {\bf local} (void)\label{class_electrometer_protocol__keithley_s_c_p_i_protocola35}
+
+\item 
+virtual void {\bf remote} (void)\label{class_electrometer_protocol__keithley_s_c_p_i_protocola36}
+
+\item 
+virtual void {\bf init\_\-keithley} (void)\label{class_electrometer_protocol__novelec_protocola24}
+
+\begin{CompactList}\small\item\em Electrometer : Keithley protocol dependent commands. \item\end{CompactList}\item 
+virtual void {\bf set\_\-knplc} (std::string n\-PLC)\label{class_electrometer_protocol__novelec_protocola25}
+
+\item 
+virtual void {\bf set\_\-triggercount} (std::string trigcounts)\label{class_electrometer_protocol__novelec_protocola26}
+
+\item 
+virtual void {\bf set\_\-averagecount} (std::string avercounts)\label{class_electrometer_protocol__novelec_protocola27}
+
+\item 
+virtual void {\bf set\_\-averagecontrol} (std::string averctrl)\label{class_electrometer_protocol__novelec_protocola28}
+
+\item 
+virtual std::string {\bf get\_\-knplc} (void)\label{class_electrometer_protocol__novelec_protocola29}
+
+\item 
+virtual std::string {\bf get\_\-triggercount} (void)\label{class_electrometer_protocol__novelec_protocola30}
+
+\item 
+virtual std::string {\bf get\_\-averagecount} (void)\label{class_electrometer_protocol__novelec_protocola31}
+
+\item 
+virtual std::string {\bf get\_\-averagecontrol} (void)\label{class_electrometer_protocol__novelec_protocola32}
+
+\item 
+virtual void {\bf average\-State\-ON} (void)\label{class_electrometer_protocol__novelec_protocola34}
+
+\item 
+virtual void {\bf average\-State\-OFF} (void)\label{class_electrometer_protocol__novelec_protocola35}
+
+\item 
+virtual void {\bf switch\_\-MCCE2\_\-ON} (void)\label{class_electrometer_protocol__keithley_s_c_p_i_protocola37}
+
+\begin{CompactList}\small\item\em Electrometer : Novelec protocol dependent commands. \item\end{CompactList}\item 
+virtual void {\bf switch\_\-MCCE2\_\-OFF} (void)\label{class_electrometer_protocol__keithley_s_c_p_i_protocola38}
+
+\item 
+virtual void {\bf unable\_\-zero\-VF\_\-func} (void)\label{class_electrometer_protocol__keithley_s_c_p_i_protocola39}
+
+\item 
+virtual void {\bf unable\_\-offset\_\-zero\-V1\_\-func} (void)\label{class_electrometer_protocol__keithley_s_c_p_i_protocola40}
+
+\item 
+virtual void {\bf unable\_\-leakage\_\-zero\-V2\_\-func} (void)\label{class_electrometer_protocol__keithley_s_c_p_i_protocola41}
+
+\item 
+virtual void {\bf unable\_\-test\_\-func} (void)\label{class_electrometer_protocol__keithley_s_c_p_i_protocola42}
+
+\item 
+virtual std::string {\bf get\_\-polarity} (void)\label{class_electrometer_protocol__keithley_s_c_p_i_protocola43}
+
+\item 
+virtual std::string {\bf get\_\-frequency} (void)\label{class_electrometer_protocol__keithley_s_c_p_i_protocola44}
+
+\item 
+virtual std::string {\bf get\_\-gain} (void)\label{class_electrometer_protocol__keithley_s_c_p_i_protocola45}
+
+\item 
+virtual void {\bf set\_\-polarity} (std::string pola)\label{class_electrometer_protocol__keithley_s_c_p_i_protocola46}
+
+\item 
+virtual void {\bf set\_\-frequency} (std::string freq)\label{class_electrometer_protocol__keithley_s_c_p_i_protocola47}
+
+\item 
+virtual void {\bf set\_\-gain} (std::string gain)\label{class_electrometer_protocol__keithley_s_c_p_i_protocola48}
+
+\end{CompactItemize}
+\subsection*{Protected Attributes}
+\begin{CompactItemize}
+\item 
+short {\bf \_\-range}\label{class_electrometer_protocol__novelec_protocolp4}
+
+\item 
+std::string {\bf \_\-mode}\label{class_electrometer_protocol__novelec_protocolp5}
+
+\item 
+{\bf Communication\-Link} $\ast$ {\bf \_\-communication\_\-link}\label{class_electrometer_protocol__novelec_protocolp6}
+
+\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+This class manage the Keithley DDC Commands Protocol. 
+
+\begin{Desc}
+\item[Author:]Xavier Elattaoui \end{Desc}
+\begin{Desc}
+\item[Date:]11-2006 \end{Desc}
+
+
+
+
+The documentation for this class was generated from the following file:\begin{CompactItemize}
+\item 
+Keithley\-DDCProtocol.h\end{CompactItemize}
diff --git a/doc/latex/class_keithley_s_c_p_i_protocol.eps b/doc/latex/class_keithley_s_c_p_i_protocol.eps
new file mode 100644
index 0000000000000000000000000000000000000000..9879ece43469984c751f8ad23055c04551e42556
--- /dev/null
+++ b/doc/latex/class_keithley_s_c_p_i_protocol.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 285.714
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.75 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(KeithleySCPIProtocol) cw
+(ElectrometerProtocol) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (KeithleySCPIProtocol) 0 0 box
+ (ElectrometerProtocol) 0 1 box
+
+% ----- relations -----
+
+solid
+0 0 0 out
+solid
+1 0 1 in
diff --git a/doc/latex/class_keithley_s_c_p_i_protocol.tex b/doc/latex/class_keithley_s_c_p_i_protocol.tex
new file mode 100644
index 0000000000000000000000000000000000000000..e79b2aa890391a8a35a2e6941a4672e582ba2532
--- /dev/null
+++ b/doc/latex/class_keithley_s_c_p_i_protocol.tex
@@ -0,0 +1,198 @@
+\section{Keithley\-SCPIProtocol Class Reference}
+\label{class_keithley_s_c_p_i_protocol}\index{KeithleySCPIProtocol@{KeithleySCPIProtocol}}
+This class manage the Keithley SCPI Commands Protocol.  
+
+
+{\tt \#include $<$Keithley\-SCPIProtocol.h$>$}
+
+Inheritance diagram for Keithley\-SCPIProtocol::\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2cm]{class_keithley_s_c_p_i_protocol}
+\end{center}
+\end{figure}
+\subsection*{Public Member Functions}
+\begin{CompactItemize}
+\item 
+{\bf Keithley\-SCPIProtocol} (std::string \&gpib\_\-device\_\-name)\label{class_keithley_s_c_p_i_protocol__keithley_s_c_p_i_protocola0}
+
+\begin{CompactList}\small\item\em Initialization. \item\end{CompactList}\item 
+virtual {\bf $\sim$Keithley\-SCPIProtocol} (void)\label{class_keithley_s_c_p_i_protocol__keithley_s_c_p_i_protocola1}
+
+\begin{CompactList}\small\item\em Release resources. \item\end{CompactList}\item 
+void {\bf set\_\-range} (std::string value)\label{class_keithley_s_c_p_i_protocol__keithley_s_c_p_i_protocola2}
+
+\begin{CompactList}\small\item\em Electrometer Functions. \item\end{CompactList}\item 
+void {\bf auto\-Range\_\-on} (void)\label{class_keithley_s_c_p_i_protocol__keithley_s_c_p_i_protocola3}
+
+\item 
+void {\bf auto\-Range\_\-off} (void)\label{class_keithley_s_c_p_i_protocol__keithley_s_c_p_i_protocola4}
+
+\item 
+void {\bf zero\_\-check\_\-on} (void)\label{class_keithley_s_c_p_i_protocol__keithley_s_c_p_i_protocola5}
+
+\item 
+void {\bf zero\_\-check\_\-off} (void)\label{class_keithley_s_c_p_i_protocol__keithley_s_c_p_i_protocola6}
+
+\item 
+void {\bf zero\_\-correct\_\-on} (void)\label{class_keithley_s_c_p_i_protocol__keithley_s_c_p_i_protocola7}
+
+\item 
+void {\bf zero\_\-correct\_\-off} (void)\label{class_keithley_s_c_p_i_protocol__keithley_s_c_p_i_protocola8}
+
+\item 
+void {\bf zero\_\-correct\_\-state\_\-on} (void)\label{class_keithley_s_c_p_i_protocol__keithley_s_c_p_i_protocola9}
+
+\item 
+void {\bf zero\_\-correct\_\-state\_\-off} (void)\label{class_keithley_s_c_p_i_protocol__keithley_s_c_p_i_protocola10}
+
+\item 
+void {\bf auto\_\-zero\_\-on} (void)\label{class_keithley_s_c_p_i_protocol__keithley_s_c_p_i_protocola11}
+
+\item 
+void {\bf auto\_\-zero\_\-off} (void)\label{class_keithley_s_c_p_i_protocol__keithley_s_c_p_i_protocola12}
+
+\item 
+void {\bf reset} (void)\label{class_keithley_s_c_p_i_protocol__keithley_s_c_p_i_protocola13}
+
+\item 
+void {\bf set\-Amper\-Meter\-Mode} (void)\label{class_keithley_s_c_p_i_protocol__keithley_s_c_p_i_protocola14}
+
+\begin{CompactList}\small\item\em Electrometer Mode. \item\end{CompactList}\item 
+void {\bf set\-Volt\-Meter\-Mode} (void)\label{class_keithley_s_c_p_i_protocol__keithley_s_c_p_i_protocola15}
+
+\item 
+void {\bf set\-Ohm\-Meter\-Mode} (void)\label{class_keithley_s_c_p_i_protocol__keithley_s_c_p_i_protocola16}
+
+\item 
+void {\bf set\-Coulomb\-Meter\-Mode} (void)\label{class_keithley_s_c_p_i_protocol__keithley_s_c_p_i_protocola17}
+
+\item 
+std::string {\bf get\_\-value} (void)\label{class_keithley_s_c_p_i_protocol__keithley_s_c_p_i_protocola18}
+
+\begin{CompactList}\small\item\em Electrometer : cmd to get electrometer data. \item\end{CompactList}\item 
+void {\bf init\_\-keithley} (void)\label{class_keithley_s_c_p_i_protocol__keithley_s_c_p_i_protocola19}
+
+\begin{CompactList}\small\item\em Electrometer : Keithley protocol dependent commands. \item\end{CompactList}\item 
+void {\bf set\_\-knplc} (std::string n\-PLC)\label{class_keithley_s_c_p_i_protocol__keithley_s_c_p_i_protocola20}
+
+\item 
+void {\bf set\_\-triggercount} (std::string trigcounts)\label{class_keithley_s_c_p_i_protocol__keithley_s_c_p_i_protocola21}
+
+\item 
+void {\bf set\_\-averagecount} (std::string avercounts)\label{class_keithley_s_c_p_i_protocol__keithley_s_c_p_i_protocola22}
+
+\item 
+void {\bf set\_\-averagecontrol} (std::string averctrl)\label{class_keithley_s_c_p_i_protocol__keithley_s_c_p_i_protocola23}
+
+\item 
+std::string {\bf get\_\-knplc} (void)\label{class_keithley_s_c_p_i_protocol__keithley_s_c_p_i_protocola24}
+
+\item 
+std::string {\bf get\_\-triggercount} (void)\label{class_keithley_s_c_p_i_protocol__keithley_s_c_p_i_protocola25}
+
+\item 
+std::string {\bf get\_\-averagecount} (void)\label{class_keithley_s_c_p_i_protocol__keithley_s_c_p_i_protocola26}
+
+\item 
+std::string {\bf get\_\-averagecontrol} (void)\label{class_keithley_s_c_p_i_protocol__keithley_s_c_p_i_protocola27}
+
+\item 
+void {\bf clear\_\-registers} (void)\label{class_keithley_s_c_p_i_protocol__keithley_s_c_p_i_protocola28}
+
+\item 
+void {\bf average\-State\-ON} (void)\label{class_keithley_s_c_p_i_protocol__keithley_s_c_p_i_protocola29}
+
+\item 
+void {\bf average\-State\-OFF} (void)\label{class_keithley_s_c_p_i_protocol__keithley_s_c_p_i_protocola30}
+
+\item 
+std::string {\bf get\_\-raw\_\-status} (void)\label{class_keithley_s_c_p_i_protocol__keithley_s_c_p_i_protocola31}
+
+\begin{CompactList}\small\item\em Get Raw Electrometer Status. \item\end{CompactList}\item 
+std::string {\bf get\_\-mode} (void)\label{class_keithley_s_c_p_i_protocol__keithley_s_c_p_i_protocola32}
+
+\begin{CompactList}\small\item\em Electrometer : getter and setter. \item\end{CompactList}\item 
+std::string {\bf get\_\-range} (void)\label{class_keithley_s_c_p_i_protocol__keithley_s_c_p_i_protocola33}
+
+\item 
+void {\bf set\_\-is\-Diff\-Suported\-Mode} (bool support\-Diff\-Mode)
+\item 
+virtual void {\bf local} (void)\label{class_electrometer_protocol__keithley_s_c_p_i_protocola35}
+
+\item 
+virtual void {\bf remote} (void)\label{class_electrometer_protocol__keithley_s_c_p_i_protocola36}
+
+\item 
+virtual void {\bf switch\_\-MCCE2\_\-ON} (void)\label{class_electrometer_protocol__keithley_s_c_p_i_protocola37}
+
+\begin{CompactList}\small\item\em Electrometer : Novelec protocol dependent commands. \item\end{CompactList}\item 
+virtual void {\bf switch\_\-MCCE2\_\-OFF} (void)\label{class_electrometer_protocol__keithley_s_c_p_i_protocola38}
+
+\item 
+virtual void {\bf unable\_\-zero\-VF\_\-func} (void)\label{class_electrometer_protocol__keithley_s_c_p_i_protocola39}
+
+\item 
+virtual void {\bf unable\_\-offset\_\-zero\-V1\_\-func} (void)\label{class_electrometer_protocol__keithley_s_c_p_i_protocola40}
+
+\item 
+virtual void {\bf unable\_\-leakage\_\-zero\-V2\_\-func} (void)\label{class_electrometer_protocol__keithley_s_c_p_i_protocola41}
+
+\item 
+virtual void {\bf unable\_\-test\_\-func} (void)\label{class_electrometer_protocol__keithley_s_c_p_i_protocola42}
+
+\item 
+virtual std::string {\bf get\_\-polarity} (void)\label{class_electrometer_protocol__keithley_s_c_p_i_protocola43}
+
+\item 
+virtual std::string {\bf get\_\-frequency} (void)\label{class_electrometer_protocol__keithley_s_c_p_i_protocola44}
+
+\item 
+virtual std::string {\bf get\_\-gain} (void)\label{class_electrometer_protocol__keithley_s_c_p_i_protocola45}
+
+\item 
+virtual void {\bf set\_\-polarity} (std::string pola)\label{class_electrometer_protocol__keithley_s_c_p_i_protocola46}
+
+\item 
+virtual void {\bf set\_\-frequency} (std::string freq)\label{class_electrometer_protocol__keithley_s_c_p_i_protocola47}
+
+\item 
+virtual void {\bf set\_\-gain} (std::string gain)\label{class_electrometer_protocol__keithley_s_c_p_i_protocola48}
+
+\end{CompactItemize}
+\subsection*{Protected Attributes}
+\begin{CompactItemize}
+\item 
+short {\bf \_\-range}\label{class_electrometer_protocol__novelec_protocolp4}
+
+\item 
+std::string {\bf \_\-mode}\label{class_electrometer_protocol__novelec_protocolp5}
+
+\item 
+{\bf Communication\-Link} $\ast$ {\bf \_\-communication\_\-link}\label{class_electrometer_protocol__novelec_protocolp6}
+
+\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+This class manage the Keithley SCPI Commands Protocol. 
+
+\begin{Desc}
+\item[Author:]Xavier Elattaoui \end{Desc}
+\begin{Desc}
+\item[Date:]11-2006 \end{Desc}
+
+
+
+
+\subsection{Member Function Documentation}
+\index{KeithleySCPIProtocol@{Keithley\-SCPIProtocol}!set_isDiffSuportedMode@{set\_\-isDiffSuportedMode}}
+\index{set_isDiffSuportedMode@{set\_\-isDiffSuportedMode}!KeithleySCPIProtocol@{Keithley\-SCPIProtocol}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Keithley\-SCPIProtocol::set\_\-is\-Diff\-Suported\-Mode (bool {\em support\-Diff\-Mode})\hspace{0.3cm}{\tt  [inline]}}\label{class_keithley_s_c_p_i_protocol__keithley_s_c_p_i_protocola34}
+
+
+
+
+The documentation for this class was generated from the following file:\begin{CompactItemize}
+\item 
+Keithley\-SCPIProtocol.h\end{CompactItemize}
diff --git a/doc/latex/class_n___photo_conducteur.eps b/doc/latex/class_n___photo_conducteur.eps
new file mode 100644
index 0000000000000000000000000000000000000000..42a9d29b8f742e9020ee4376f8b791db6eae2841
--- /dev/null
+++ b/doc/latex/class_n___photo_conducteur.eps
@@ -0,0 +1,203 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 355.03
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.40833 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 3 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(N_PhotoConducteur) cw
+(Novelec_MCCE2) cw
+(AbstractElectrometerClass) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (N_PhotoConducteur) 0 0 box
+ (Novelec_MCCE2) 0 1 box
+ (AbstractElectrometerClass) 0 2 box
+
+% ----- relations -----
+
+solid
+0 0 0 out
+solid
+1 0 1 in
+solid
+0 0 1 out
+solid
+1 0 2 in
diff --git a/doc/latex/class_n___photo_conducteur.tex b/doc/latex/class_n___photo_conducteur.tex
new file mode 100644
index 0000000000000000000000000000000000000000..67b8da6f4021712a7b4fbb0fd2e1aa2856353e59
--- /dev/null
+++ b/doc/latex/class_n___photo_conducteur.tex
@@ -0,0 +1,211 @@
+\section{N\_\-Photo\-Conducteur Class Reference}
+\label{class_n___photo_conducteur}\index{N_PhotoConducteur@{N\_\-PhotoConducteur}}
+This class manage Novelec Photo\-Conductor types.  
+
+
+{\tt \#include $<$N\_\-Photo\-Conducteur.h$>$}
+
+Inheritance diagram for N\_\-Photo\-Conducteur::\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=3cm]{class_n___photo_conducteur}
+\end{center}
+\end{figure}
+\subsection*{Public Member Functions}
+\begin{CompactItemize}
+\item 
+{\bf N\_\-Photo\-Conducteur} (std::string \&com\-Link\_\-device\_\-name, short channel\_\-address, short electro\-Type)\label{class_n___photo_conducteur__n___photo_conducteura0}
+
+\begin{CompactList}\small\item\em Initialization. \item\end{CompactList}\item 
+virtual {\bf $\sim$N\_\-Photo\-Conducteur} (void)\label{class_n___photo_conducteur__n___photo_conducteura1}
+
+\begin{CompactList}\small\item\em Release resources. \item\end{CompactList}\item 
+void {\bf range\_\-up} (void)\label{class_n___photo_conducteur__n___photo_conducteura2}
+
+\begin{CompactList}\small\item\em device dependent commands. \item\end{CompactList}\item 
+void {\bf range\_\-down} (void)\label{class_n___photo_conducteur__n___photo_conducteura3}
+
+\item 
+std::string {\bf get\_\-Electro\-Meter\-Gain} (void)\label{class_n___photo_conducteur__n___photo_conducteura4}
+
+\begin{CompactList}\small\item\em getters and setters. \item\end{CompactList}\item 
+void {\bf set\_\-Electro\-Meter\-Gain} (std::string)\label{class_n___photo_conducteur__n___photo_conducteura5}
+
+\item 
+std::string {\bf get\_\-Electro\-Meter\-Polarity} (void)\label{class_novelec___m_c_c_e2__novelec___m_c_c_e2a2}
+
+\begin{CompactList}\small\item\em Novelec getters and setters. \item\end{CompactList}\item 
+void {\bf set\_\-Electro\-Meter\-Polarity} (std::string)\label{class_novelec___m_c_c_e2__novelec___m_c_c_e2a3}
+
+\item 
+void {\bf set\_\-Zero\_\-Von\-F\_\-function} (void)\label{class_novelec___m_c_c_e2__novelec___m_c_c_e2a4}
+
+\begin{CompactList}\small\item\em Electrometer Functions : mode for novelec types. \item\end{CompactList}\item 
+void {\bf set\_\-Offset\_\-Zero\-V1\_\-function} (void)\label{class_novelec___m_c_c_e2__novelec___m_c_c_e2a5}
+
+\item 
+void {\bf set\_\-Leakage\_\-Zero\-V2\_\-function} (void)\label{class_novelec___m_c_c_e2__novelec___m_c_c_e2a6}
+
+\item 
+void {\bf set\_\-Test\_\-function} (void)\label{class_novelec___m_c_c_e2__novelec___m_c_c_e2a7}
+
+\item 
+void {\bf mcce\_\-on} (void)
+\begin{CompactList}\small\item\em Commands to start/stop the data acquisition. \item\end{CompactList}\item 
+void {\bf mcce\_\-off} (void)\label{class_novelec___m_c_c_e2__novelec___m_c_c_e2a9}
+
+\item 
+std::string {\bf electrometer\_\-status} (void)\label{class_novelec___m_c_c_e2__novelec___m_c_c_e2a10}
+
+\begin{CompactList}\small\item\em Electrometer Status. \item\end{CompactList}\item 
+virtual void {\bf reset} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a13}
+
+\item 
+virtual void {\bf local} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a14}
+
+\item 
+virtual void {\bf remote} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a15}
+
+\item 
+std::string {\bf get\_\-value} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a16}
+
+\begin{CompactList}\small\item\em Electrometer : cmd to get electrometer data. \item\end{CompactList}\item 
+void {\bf auto\-Range\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a17}
+
+\begin{CompactList}\small\item\em Keithley Electrometer methods. \item\end{CompactList}\item 
+void {\bf zero\_\-check\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a18}
+
+\item 
+void {\bf zero\_\-check\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a19}
+
+\item 
+void {\bf zero\_\-correct\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a20}
+
+\item 
+void {\bf zero\_\-correct\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a21}
+
+\item 
+void {\bf auto\_\-zero\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a22}
+
+\item 
+void {\bf auto\_\-zero\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a23}
+
+\item 
+virtual void {\bf auto\-Range\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a24}
+
+\item 
+virtual void {\bf set\-Amper\-Meter\-Mode} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a25}
+
+\item 
+virtual void {\bf set\-Volt\-Meter\-Mode} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a26}
+
+\item 
+virtual void {\bf set\-Ohm\-Meter\-Mode} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a27}
+
+\item 
+virtual void {\bf set\-Coulomb\-Meter\-Mode} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a28}
+
+\item 
+void {\bf init\_\-keithley} (void)
+\begin{CompactList}\small\item\em Following functions are only supported for SCPI protocol. \item\end{CompactList}\item 
+void {\bf clear\_\-registers} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a30}
+
+\item 
+void {\bf average\-State\-ON} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a31}
+
+\item 
+void {\bf average\-State\-OFF} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a32}
+
+\item 
+void {\bf set\_\-knplc} (std::string n\-PLC)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a33}
+
+\item 
+void {\bf set\_\-triggercount} (std::string trigcounts)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a34}
+
+\item 
+void {\bf set\_\-averagecount} (std::string avercounts)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a35}
+
+\item 
+void {\bf set\_\-averagecontrol} (std::string averctrl)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a36}
+
+\item 
+std::string {\bf get\_\-knplc} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a37}
+
+\item 
+std::string {\bf get\_\-triggercount} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a38}
+
+\item 
+std::string {\bf get\_\-averagecount} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a39}
+
+\item 
+std::string {\bf get\_\-averagecontrol} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a40}
+
+\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Frequency} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a41}
+
+\item 
+virtual void {\bf set\_\-Electro\-Meter\-Frequency} (std::string freq)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a43}
+
+\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Mode} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a45}
+
+\begin{CompactList}\small\item\em Common getters and setters. \item\end{CompactList}\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Range} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a46}
+
+\end{CompactItemize}
+\subsection*{Protected Attributes}
+\begin{CompactItemize}
+\item 
+short {\bf \_\-range\-Limit}\label{class_novelec___m_c_c_e2__novelec___m_c_c_e2p0}
+
+\item 
+short {\bf \_\-range}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p1}
+
+\item 
+std::string {\bf \_\-range\-Str}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p2}
+
+\item 
+std::string {\bf \_\-mode}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p3}
+
+\item 
+{\bf Electrometer\-Protocol} $\ast$ {\bf \_\-electrometer\-Protocol}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p4}
+
+\item 
+std::string {\bf \_\-device\_\-proxy\_\-name}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p5}
+
+\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+This class manage Novelec Photo\-Conductor types. 
+
+\begin{Desc}
+\item[Author:]Xavier Elattaoui \end{Desc}
+\begin{Desc}
+\item[Date:]11-2006 \end{Desc}
+
+
+
+
+\subsection{Member Function Documentation}
+\index{N_PhotoConducteur@{N\_\-Photo\-Conducteur}!init_keithley@{init\_\-keithley}}
+\index{init_keithley@{init\_\-keithley}!N_PhotoConducteur@{N\_\-Photo\-Conducteur}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Abstract\-Electrometer\-Class::init\_\-keithley (void)\hspace{0.3cm}{\tt  [inherited]}}\label{class_abstract_electrometer_class__novelec___m_c_c_e2a29}
+
+
+Following functions are only supported for SCPI protocol. 
+
+\index{N_PhotoConducteur@{N\_\-Photo\-Conducteur}!mcce_on@{mcce\_\-on}}
+\index{mcce_on@{mcce\_\-on}!N_PhotoConducteur@{N\_\-Photo\-Conducteur}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Novelec\_\-MCCE2::mcce\_\-on (void)\hspace{0.3cm}{\tt  [virtual, inherited]}}\label{class_novelec___m_c_c_e2__novelec___m_c_c_e2a8}
+
+
+Commands to start/stop the data acquisition. 
+
+This emulate the MCCE2 key ON/OFF (all parameters must be set before switching ON the MCCE2)
+
+Reimplemented from {\bf Abstract\-Electrometer\-Class} {\rm (p.\,\pageref{class_abstract_electrometer_class})}.
+
+The documentation for this class was generated from the following file:\begin{CompactItemize}
+\item 
+N\_\-Photo\-Conducteur.h\end{CompactItemize}
diff --git a/doc/latex/class_n___photo_voltaique.eps b/doc/latex/class_n___photo_voltaique.eps
new file mode 100644
index 0000000000000000000000000000000000000000..386632d53143d5df029b7c685c114ce050ee2732
--- /dev/null
+++ b/doc/latex/class_n___photo_voltaique.eps
@@ -0,0 +1,203 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 355.03
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.40833 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 3 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(N_PhotoVoltaique) cw
+(Novelec_MCCE2) cw
+(AbstractElectrometerClass) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (N_PhotoVoltaique) 0 0 box
+ (Novelec_MCCE2) 0 1 box
+ (AbstractElectrometerClass) 0 2 box
+
+% ----- relations -----
+
+solid
+0 0 0 out
+solid
+1 0 1 in
+solid
+0 0 1 out
+solid
+1 0 2 in
diff --git a/doc/latex/class_n___photo_voltaique.tex b/doc/latex/class_n___photo_voltaique.tex
new file mode 100644
index 0000000000000000000000000000000000000000..04bfcc01b2538c7a062a3c92f786e230022faadf
--- /dev/null
+++ b/doc/latex/class_n___photo_voltaique.tex
@@ -0,0 +1,211 @@
+\section{N\_\-Photo\-Voltaique Class Reference}
+\label{class_n___photo_voltaique}\index{N_PhotoVoltaique@{N\_\-PhotoVoltaique}}
+This class manage Novelec Photo\-Voltaique types.  
+
+
+{\tt \#include $<$N\_\-Photo\-Voltaique.h$>$}
+
+Inheritance diagram for N\_\-Photo\-Voltaique::\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=3cm]{class_n___photo_voltaique}
+\end{center}
+\end{figure}
+\subsection*{Public Member Functions}
+\begin{CompactItemize}
+\item 
+{\bf N\_\-Photo\-Voltaique} (std::string com\-Link\_\-device\_\-name, short channel\_\-address, short electro\-Type)\label{class_n___photo_voltaique__n___photo_voltaiquea0}
+
+\begin{CompactList}\small\item\em Initialization. \item\end{CompactList}\item 
+virtual {\bf $\sim$N\_\-Photo\-Voltaique} (void)\label{class_n___photo_voltaique__n___photo_voltaiquea1}
+
+\begin{CompactList}\small\item\em Release resources. \item\end{CompactList}\item 
+void {\bf range\_\-up} (void)\label{class_n___photo_voltaique__n___photo_voltaiquea2}
+
+\begin{CompactList}\small\item\em device dependent commands. \item\end{CompactList}\item 
+void {\bf range\_\-down} (void)\label{class_n___photo_voltaique__n___photo_voltaiquea3}
+
+\item 
+std::string {\bf get\_\-Electro\-Meter\-Frequency} (void)\label{class_n___photo_voltaique__n___photo_voltaiquea4}
+
+\begin{CompactList}\small\item\em getters and setters. \item\end{CompactList}\item 
+void {\bf set\_\-Electro\-Meter\-Frequency} (std::string)\label{class_n___photo_voltaique__n___photo_voltaiquea5}
+
+\item 
+std::string {\bf get\_\-Electro\-Meter\-Polarity} (void)\label{class_novelec___m_c_c_e2__novelec___m_c_c_e2a2}
+
+\begin{CompactList}\small\item\em Novelec getters and setters. \item\end{CompactList}\item 
+void {\bf set\_\-Electro\-Meter\-Polarity} (std::string)\label{class_novelec___m_c_c_e2__novelec___m_c_c_e2a3}
+
+\item 
+void {\bf set\_\-Zero\_\-Von\-F\_\-function} (void)\label{class_novelec___m_c_c_e2__novelec___m_c_c_e2a4}
+
+\begin{CompactList}\small\item\em Electrometer Functions : mode for novelec types. \item\end{CompactList}\item 
+void {\bf set\_\-Offset\_\-Zero\-V1\_\-function} (void)\label{class_novelec___m_c_c_e2__novelec___m_c_c_e2a5}
+
+\item 
+void {\bf set\_\-Leakage\_\-Zero\-V2\_\-function} (void)\label{class_novelec___m_c_c_e2__novelec___m_c_c_e2a6}
+
+\item 
+void {\bf set\_\-Test\_\-function} (void)\label{class_novelec___m_c_c_e2__novelec___m_c_c_e2a7}
+
+\item 
+void {\bf mcce\_\-on} (void)
+\begin{CompactList}\small\item\em Commands to start/stop the data acquisition. \item\end{CompactList}\item 
+void {\bf mcce\_\-off} (void)\label{class_novelec___m_c_c_e2__novelec___m_c_c_e2a9}
+
+\item 
+std::string {\bf electrometer\_\-status} (void)\label{class_novelec___m_c_c_e2__novelec___m_c_c_e2a10}
+
+\begin{CompactList}\small\item\em Electrometer Status. \item\end{CompactList}\item 
+virtual void {\bf reset} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a13}
+
+\item 
+virtual void {\bf local} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a14}
+
+\item 
+virtual void {\bf remote} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a15}
+
+\item 
+std::string {\bf get\_\-value} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a16}
+
+\begin{CompactList}\small\item\em Electrometer : cmd to get electrometer data. \item\end{CompactList}\item 
+void {\bf auto\-Range\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a17}
+
+\begin{CompactList}\small\item\em Keithley Electrometer methods. \item\end{CompactList}\item 
+void {\bf zero\_\-check\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a18}
+
+\item 
+void {\bf zero\_\-check\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a19}
+
+\item 
+void {\bf zero\_\-correct\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a20}
+
+\item 
+void {\bf zero\_\-correct\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a21}
+
+\item 
+void {\bf auto\_\-zero\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a22}
+
+\item 
+void {\bf auto\_\-zero\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a23}
+
+\item 
+virtual void {\bf auto\-Range\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a24}
+
+\item 
+virtual void {\bf set\-Amper\-Meter\-Mode} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a25}
+
+\item 
+virtual void {\bf set\-Volt\-Meter\-Mode} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a26}
+
+\item 
+virtual void {\bf set\-Ohm\-Meter\-Mode} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a27}
+
+\item 
+virtual void {\bf set\-Coulomb\-Meter\-Mode} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a28}
+
+\item 
+void {\bf init\_\-keithley} (void)
+\begin{CompactList}\small\item\em Following functions are only supported for SCPI protocol. \item\end{CompactList}\item 
+void {\bf clear\_\-registers} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a30}
+
+\item 
+void {\bf average\-State\-ON} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a31}
+
+\item 
+void {\bf average\-State\-OFF} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a32}
+
+\item 
+void {\bf set\_\-knplc} (std::string n\-PLC)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a33}
+
+\item 
+void {\bf set\_\-triggercount} (std::string trigcounts)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a34}
+
+\item 
+void {\bf set\_\-averagecount} (std::string avercounts)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a35}
+
+\item 
+void {\bf set\_\-averagecontrol} (std::string averctrl)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a36}
+
+\item 
+std::string {\bf get\_\-knplc} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a37}
+
+\item 
+std::string {\bf get\_\-triggercount} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a38}
+
+\item 
+std::string {\bf get\_\-averagecount} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a39}
+
+\item 
+std::string {\bf get\_\-averagecontrol} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a40}
+
+\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Gain} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a42}
+
+\item 
+virtual void {\bf set\_\-Electro\-Meter\-Gain} (std::string gain)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a44}
+
+\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Mode} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a45}
+
+\begin{CompactList}\small\item\em Common getters and setters. \item\end{CompactList}\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Range} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a46}
+
+\end{CompactItemize}
+\subsection*{Protected Attributes}
+\begin{CompactItemize}
+\item 
+short {\bf \_\-range\-Limit}\label{class_novelec___m_c_c_e2__novelec___m_c_c_e2p0}
+
+\item 
+short {\bf \_\-range}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p1}
+
+\item 
+std::string {\bf \_\-range\-Str}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p2}
+
+\item 
+std::string {\bf \_\-mode}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p3}
+
+\item 
+{\bf Electrometer\-Protocol} $\ast$ {\bf \_\-electrometer\-Protocol}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p4}
+
+\item 
+std::string {\bf \_\-device\_\-proxy\_\-name}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p5}
+
+\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+This class manage Novelec Photo\-Voltaique types. 
+
+\begin{Desc}
+\item[Author:]Xavier Elattaoui \end{Desc}
+\begin{Desc}
+\item[Date:]11-2006 \end{Desc}
+
+
+
+
+\subsection{Member Function Documentation}
+\index{N_PhotoVoltaique@{N\_\-Photo\-Voltaique}!init_keithley@{init\_\-keithley}}
+\index{init_keithley@{init\_\-keithley}!N_PhotoVoltaique@{N\_\-Photo\-Voltaique}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Abstract\-Electrometer\-Class::init\_\-keithley (void)\hspace{0.3cm}{\tt  [inherited]}}\label{class_abstract_electrometer_class__novelec___m_c_c_e2a29}
+
+
+Following functions are only supported for SCPI protocol. 
+
+\index{N_PhotoVoltaique@{N\_\-Photo\-Voltaique}!mcce_on@{mcce\_\-on}}
+\index{mcce_on@{mcce\_\-on}!N_PhotoVoltaique@{N\_\-Photo\-Voltaique}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Novelec\_\-MCCE2::mcce\_\-on (void)\hspace{0.3cm}{\tt  [virtual, inherited]}}\label{class_novelec___m_c_c_e2__novelec___m_c_c_e2a8}
+
+
+Commands to start/stop the data acquisition. 
+
+This emulate the MCCE2 key ON/OFF (all parameters must be set before switching ON the MCCE2)
+
+Reimplemented from {\bf Abstract\-Electrometer\-Class} {\rm (p.\,\pageref{class_abstract_electrometer_class})}.
+
+The documentation for this class was generated from the following file:\begin{CompactItemize}
+\item 
+N\_\-Photo\-Voltaique.h\end{CompactItemize}
diff --git a/doc/latex/class_novelec___m_c_c_e2.eps b/doc/latex/class_novelec___m_c_c_e2.eps
new file mode 100644
index 0000000000000000000000000000000000000000..4f963e597c135da8918dd05450d614f372e8140a
--- /dev/null
+++ b/doc/latex/class_novelec___m_c_c_e2.eps
@@ -0,0 +1,209 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 177.515
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 2.81667 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 3 def
+/cols 2 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(Novelec_MCCE2) cw
+(AbstractElectrometerClass) cw
+(N_PhotoConducteur) cw
+(N_PhotoVoltaique) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (Novelec_MCCE2) 0.5 1 box
+ (AbstractElectrometerClass) 0.5 2 box
+ (N_PhotoConducteur) 0 2.23517e-008 box
+ (N_PhotoVoltaique) 1 2.23517e-008 box
+
+% ----- relations -----
+
+solid
+0 0.5 1 out
+solid
+1 0.5 2 in
+solid
+1 0.5 0.25 out
+solid
+0 1 1 conn
+solid
+0 0 0.75 in
+solid
+0 1 0.75 in
diff --git a/doc/latex/class_novelec___m_c_c_e2.tex b/doc/latex/class_novelec___m_c_c_e2.tex
new file mode 100644
index 0000000000000000000000000000000000000000..e1dfb133891225c5d6ea54f3c9c9518ab64e8cc3
--- /dev/null
+++ b/doc/latex/class_novelec___m_c_c_e2.tex
@@ -0,0 +1,211 @@
+\section{Novelec\_\-MCCE2 Class Reference}
+\label{class_novelec___m_c_c_e2}\index{Novelec_MCCE2@{Novelec\_\-MCCE2}}
+This class manage Novelec MCCE-2 type.  
+
+
+{\tt \#include $<$Novelec\_\-MCCE2.h$>$}
+
+Inheritance diagram for Novelec\_\-MCCE2::\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=3cm]{class_novelec___m_c_c_e2}
+\end{center}
+\end{figure}
+\subsection*{Public Member Functions}
+\begin{CompactItemize}
+\item 
+{\bf Novelec\_\-MCCE2} (std::string \&com\-Link\_\-device\_\-name, short channel\_\-address, short electro\-Type)\label{class_novelec___m_c_c_e2__novelec___m_c_c_e2a0}
+
+\begin{CompactList}\small\item\em Initialization. \item\end{CompactList}\item 
+virtual {\bf $\sim$Novelec\_\-MCCE2} (void)\label{class_novelec___m_c_c_e2__novelec___m_c_c_e2a1}
+
+\begin{CompactList}\small\item\em Release resources. \item\end{CompactList}\item 
+std::string {\bf get\_\-Electro\-Meter\-Polarity} (void)\label{class_novelec___m_c_c_e2__novelec___m_c_c_e2a2}
+
+\begin{CompactList}\small\item\em Novelec getters and setters. \item\end{CompactList}\item 
+void {\bf set\_\-Electro\-Meter\-Polarity} (std::string)\label{class_novelec___m_c_c_e2__novelec___m_c_c_e2a3}
+
+\item 
+void {\bf set\_\-Zero\_\-Von\-F\_\-function} (void)\label{class_novelec___m_c_c_e2__novelec___m_c_c_e2a4}
+
+\begin{CompactList}\small\item\em Electrometer Functions : mode for novelec types. \item\end{CompactList}\item 
+void {\bf set\_\-Offset\_\-Zero\-V1\_\-function} (void)\label{class_novelec___m_c_c_e2__novelec___m_c_c_e2a5}
+
+\item 
+void {\bf set\_\-Leakage\_\-Zero\-V2\_\-function} (void)\label{class_novelec___m_c_c_e2__novelec___m_c_c_e2a6}
+
+\item 
+void {\bf set\_\-Test\_\-function} (void)\label{class_novelec___m_c_c_e2__novelec___m_c_c_e2a7}
+
+\item 
+void {\bf mcce\_\-on} (void)
+\begin{CompactList}\small\item\em Commands to start/stop the data acquisition. \item\end{CompactList}\item 
+void {\bf mcce\_\-off} (void)\label{class_novelec___m_c_c_e2__novelec___m_c_c_e2a9}
+
+\item 
+std::string {\bf electrometer\_\-status} (void)\label{class_novelec___m_c_c_e2__novelec___m_c_c_e2a10}
+
+\begin{CompactList}\small\item\em Electrometer Status. \item\end{CompactList}\item 
+virtual void {\bf range\_\-up} (void)=0\label{class_abstract_electrometer_class__novelec___m_c_c_e2a11}
+
+\begin{CompactList}\small\item\em Electrometer common functions. \item\end{CompactList}\item 
+virtual void {\bf range\_\-down} (void)=0\label{class_abstract_electrometer_class__novelec___m_c_c_e2a12}
+
+\item 
+virtual void {\bf reset} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a13}
+
+\item 
+virtual void {\bf local} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a14}
+
+\item 
+virtual void {\bf remote} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a15}
+
+\item 
+std::string {\bf get\_\-value} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a16}
+
+\begin{CompactList}\small\item\em Electrometer : cmd to get electrometer data. \item\end{CompactList}\item 
+void {\bf auto\-Range\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a17}
+
+\begin{CompactList}\small\item\em Keithley Electrometer methods. \item\end{CompactList}\item 
+void {\bf zero\_\-check\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a18}
+
+\item 
+void {\bf zero\_\-check\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a19}
+
+\item 
+void {\bf zero\_\-correct\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a20}
+
+\item 
+void {\bf zero\_\-correct\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a21}
+
+\item 
+void {\bf auto\_\-zero\_\-on} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a22}
+
+\item 
+void {\bf auto\_\-zero\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a23}
+
+\item 
+virtual void {\bf auto\-Range\_\-off} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a24}
+
+\item 
+virtual void {\bf set\-Amper\-Meter\-Mode} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a25}
+
+\item 
+virtual void {\bf set\-Volt\-Meter\-Mode} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a26}
+
+\item 
+virtual void {\bf set\-Ohm\-Meter\-Mode} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a27}
+
+\item 
+virtual void {\bf set\-Coulomb\-Meter\-Mode} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a28}
+
+\item 
+void {\bf init\_\-keithley} (void)
+\begin{CompactList}\small\item\em Following functions are only supported for SCPI protocol. \item\end{CompactList}\item 
+void {\bf clear\_\-registers} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a30}
+
+\item 
+void {\bf average\-State\-ON} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a31}
+
+\item 
+void {\bf average\-State\-OFF} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a32}
+
+\item 
+void {\bf set\_\-knplc} (std::string n\-PLC)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a33}
+
+\item 
+void {\bf set\_\-triggercount} (std::string trigcounts)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a34}
+
+\item 
+void {\bf set\_\-averagecount} (std::string avercounts)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a35}
+
+\item 
+void {\bf set\_\-averagecontrol} (std::string averctrl)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a36}
+
+\item 
+std::string {\bf get\_\-knplc} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a37}
+
+\item 
+std::string {\bf get\_\-triggercount} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a38}
+
+\item 
+std::string {\bf get\_\-averagecount} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a39}
+
+\item 
+std::string {\bf get\_\-averagecontrol} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a40}
+
+\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Frequency} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a41}
+
+\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Gain} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a42}
+
+\item 
+virtual void {\bf set\_\-Electro\-Meter\-Frequency} (std::string freq)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a43}
+
+\item 
+virtual void {\bf set\_\-Electro\-Meter\-Gain} (std::string gain)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a44}
+
+\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Mode} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a45}
+
+\begin{CompactList}\small\item\em Common getters and setters. \item\end{CompactList}\item 
+virtual std::string {\bf get\_\-Electro\-Meter\-Range} (void)\label{class_abstract_electrometer_class__novelec___m_c_c_e2a46}
+
+\end{CompactItemize}
+\subsection*{Protected Attributes}
+\begin{CompactItemize}
+\item 
+short {\bf \_\-range\-Limit}\label{class_novelec___m_c_c_e2__novelec___m_c_c_e2p0}
+
+\item 
+short {\bf \_\-range}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p1}
+
+\item 
+std::string {\bf \_\-range\-Str}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p2}
+
+\item 
+std::string {\bf \_\-mode}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p3}
+
+\item 
+{\bf Electrometer\-Protocol} $\ast$ {\bf \_\-electrometer\-Protocol}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p4}
+
+\item 
+std::string {\bf \_\-device\_\-proxy\_\-name}\label{class_abstract_electrometer_class__novelec___m_c_c_e2p5}
+
+\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+This class manage Novelec MCCE-2 type. 
+
+\begin{Desc}
+\item[Author:]Xavier Elattaoui \end{Desc}
+\begin{Desc}
+\item[Date:]11-2006 \end{Desc}
+
+
+
+
+\subsection{Member Function Documentation}
+\index{Novelec_MCCE2@{Novelec\_\-MCCE2}!init_keithley@{init\_\-keithley}}
+\index{init_keithley@{init\_\-keithley}!Novelec_MCCE2@{Novelec\_\-MCCE2}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Abstract\-Electrometer\-Class::init\_\-keithley (void)\hspace{0.3cm}{\tt  [inherited]}}\label{class_abstract_electrometer_class__novelec___m_c_c_e2a29}
+
+
+Following functions are only supported for SCPI protocol. 
+
+\index{Novelec_MCCE2@{Novelec\_\-MCCE2}!mcce_on@{mcce\_\-on}}
+\index{mcce_on@{mcce\_\-on}!Novelec_MCCE2@{Novelec\_\-MCCE2}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Novelec\_\-MCCE2::mcce\_\-on (void)\hspace{0.3cm}{\tt  [virtual]}}\label{class_novelec___m_c_c_e2__novelec___m_c_c_e2a8}
+
+
+Commands to start/stop the data acquisition. 
+
+This emulate the MCCE2 key ON/OFF (all parameters must be set before switching ON the MCCE2)
+
+Reimplemented from {\bf Abstract\-Electrometer\-Class} {\rm (p.\,\pageref{class_abstract_electrometer_class})}.
+
+The documentation for this class was generated from the following file:\begin{CompactItemize}
+\item 
+Novelec\_\-MCCE2.h\end{CompactItemize}
diff --git a/doc/latex/class_novelec_protocol.eps b/doc/latex/class_novelec_protocol.eps
new file mode 100644
index 0000000000000000000000000000000000000000..de3bd1e300b8f99651e1dcb1ef933b5d125a6c9c
--- /dev/null
+++ b/doc/latex/class_novelec_protocol.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 289.855
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.725 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(NovelecProtocol) cw
+(ElectrometerProtocol) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (NovelecProtocol) 0 0 box
+ (ElectrometerProtocol) 0 1 box
+
+% ----- relations -----
+
+solid
+0 0 0 out
+solid
+1 0 1 in
diff --git a/doc/latex/class_novelec_protocol.tex b/doc/latex/class_novelec_protocol.tex
new file mode 100644
index 0000000000000000000000000000000000000000..4ff0c3601f68bf6d914769dd305c934f4d3e6564
--- /dev/null
+++ b/doc/latex/class_novelec_protocol.tex
@@ -0,0 +1,206 @@
+\section{Novelec\-Protocol Class Reference}
+\label{class_novelec_protocol}\index{NovelecProtocol@{NovelecProtocol}}
+This class manage the Novelec Commands Protocol.  
+
+
+{\tt \#include $<$Novelec\-Protocol.h$>$}
+
+Inheritance diagram for Novelec\-Protocol::\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2cm]{class_novelec_protocol}
+\end{center}
+\end{figure}
+\subsection*{Public Member Functions}
+\begin{CompactItemize}
+\item 
+{\bf Novelec\-Protocol} (std::string \&gpib\_\-device\_\-name, short channel\_\-address, short electro\-Type\-Number)\label{class_novelec_protocol__novelec_protocola0}
+
+\begin{CompactList}\small\item\em Initialization. \item\end{CompactList}\item 
+virtual {\bf $\sim$Novelec\-Protocol} (void)\label{class_novelec_protocol__novelec_protocola1}
+
+\begin{CompactList}\small\item\em Release resources. \item\end{CompactList}\item 
+void {\bf set\_\-range} (std::string value)\label{class_novelec_protocol__novelec_protocola2}
+
+\begin{CompactList}\small\item\em Electrometer Functions. \item\end{CompactList}\item 
+std::string {\bf get\_\-range} (void)\label{class_novelec_protocol__novelec_protocola3}
+
+\item 
+void {\bf reset} (void)\label{class_novelec_protocol__novelec_protocola4}
+
+\item 
+void {\bf local} (void)\label{class_novelec_protocol__novelec_protocola5}
+
+\item 
+void {\bf remote} (void)\label{class_novelec_protocol__novelec_protocola6}
+
+\item 
+std::string {\bf get\_\-value} (void)\label{class_novelec_protocol__novelec_protocola7}
+
+\begin{CompactList}\small\item\em Electrometer : cmd to get electrometer data. \item\end{CompactList}\item 
+void {\bf switch\_\-MCCE2\_\-ON} (void)\label{class_novelec_protocol__novelec_protocola8}
+
+\begin{CompactList}\small\item\em Electrometer Mode : Novelec SUPPORTS these commands. \item\end{CompactList}\item 
+void {\bf switch\_\-MCCE2\_\-OFF} (void)\label{class_novelec_protocol__novelec_protocola9}
+
+\item 
+void {\bf unable\_\-zero\-VF\_\-func} (void)\label{class_novelec_protocol__novelec_protocola10}
+
+\item 
+void {\bf unable\_\-offset\_\-zero\-V1\_\-func} (void)\label{class_novelec_protocol__novelec_protocola11}
+
+\item 
+void {\bf unable\_\-leakage\_\-zero\-V2\_\-func} (void)\label{class_novelec_protocol__novelec_protocola12}
+
+\item 
+void {\bf unable\_\-test\_\-func} (void)\label{class_novelec_protocol__novelec_protocola13}
+
+\item 
+std::string {\bf get\_\-raw\_\-status} (void)\label{class_novelec_protocol__novelec_protocola14}
+
+\begin{CompactList}\small\item\em Get Raw Electrometer Status. \item\end{CompactList}\item 
+std::string {\bf get\_\-mode} (void)\label{class_novelec_protocol__novelec_protocola15}
+
+\begin{CompactList}\small\item\em Electrometer Mode : getters and setters. \item\end{CompactList}\item 
+std::string {\bf get\_\-polarity} (void)\label{class_novelec_protocol__novelec_protocola16}
+
+\item 
+std::string {\bf get\_\-frequency} (void)\label{class_novelec_protocol__novelec_protocola17}
+
+\item 
+std::string {\bf get\_\-gain} (void)\label{class_novelec_protocol__novelec_protocola18}
+
+\item 
+std::string {\bf get\_\-errors} (void)\label{class_novelec_protocol__novelec_protocola19}
+
+\item 
+std::string {\bf get\_\-electrotype} (void)\label{class_novelec_protocol__novelec_protocola20}
+
+\item 
+void {\bf set\_\-polarity} (std::string pola)\label{class_novelec_protocol__novelec_protocola21}
+
+\item 
+void {\bf set\_\-frequency} (std::string freq)\label{class_novelec_protocol__novelec_protocola22}
+
+\item 
+void {\bf set\_\-gain} (std::string gain)\label{class_novelec_protocol__novelec_protocola23}
+
+\item 
+virtual void {\bf init\_\-keithley} (void)\label{class_electrometer_protocol__novelec_protocola24}
+
+\begin{CompactList}\small\item\em Electrometer : Keithley protocol dependent commands. \item\end{CompactList}\item 
+virtual void {\bf set\_\-knplc} (std::string n\-PLC)\label{class_electrometer_protocol__novelec_protocola25}
+
+\item 
+virtual void {\bf set\_\-triggercount} (std::string trigcounts)\label{class_electrometer_protocol__novelec_protocola26}
+
+\item 
+virtual void {\bf set\_\-averagecount} (std::string avercounts)\label{class_electrometer_protocol__novelec_protocola27}
+
+\item 
+virtual void {\bf set\_\-averagecontrol} (std::string averctrl)\label{class_electrometer_protocol__novelec_protocola28}
+
+\item 
+virtual std::string {\bf get\_\-knplc} (void)\label{class_electrometer_protocol__novelec_protocola29}
+
+\item 
+virtual std::string {\bf get\_\-triggercount} (void)\label{class_electrometer_protocol__novelec_protocola30}
+
+\item 
+virtual std::string {\bf get\_\-averagecount} (void)\label{class_electrometer_protocol__novelec_protocola31}
+
+\item 
+virtual std::string {\bf get\_\-averagecontrol} (void)\label{class_electrometer_protocol__novelec_protocola32}
+
+\item 
+virtual void {\bf clear\_\-registers} (void)\label{class_electrometer_protocol__novelec_protocola33}
+
+\item 
+virtual void {\bf average\-State\-ON} (void)\label{class_electrometer_protocol__novelec_protocola34}
+
+\item 
+virtual void {\bf average\-State\-OFF} (void)\label{class_electrometer_protocol__novelec_protocola35}
+
+\item 
+virtual void {\bf set\-Amper\-Meter\-Mode} (void)\label{class_electrometer_protocol__novelec_protocola36}
+
+\item 
+virtual void {\bf set\-Volt\-Meter\-Mode} (void)\label{class_electrometer_protocol__novelec_protocola37}
+
+\item 
+virtual void {\bf set\-Ohm\-Meter\-Mode} (void)\label{class_electrometer_protocol__novelec_protocola38}
+
+\item 
+virtual void {\bf set\-Coulomb\-Meter\-Mode} (void)\label{class_electrometer_protocol__novelec_protocola39}
+
+\item 
+virtual void {\bf auto\-Range\_\-on} (void)\label{class_electrometer_protocol__novelec_protocola40}
+
+\item 
+virtual void {\bf auto\-Range\_\-off} (void)\label{class_electrometer_protocol__novelec_protocola41}
+
+\item 
+virtual void {\bf zero\_\-check\_\-on} (void)\label{class_electrometer_protocol__novelec_protocola42}
+
+\item 
+virtual void {\bf zero\_\-check\_\-off} (void)\label{class_electrometer_protocol__novelec_protocola43}
+
+\item 
+virtual void {\bf zero\_\-correct\_\-on} (void)\label{class_electrometer_protocol__novelec_protocola44}
+
+\item 
+virtual void {\bf zero\_\-correct\_\-off} (void)\label{class_electrometer_protocol__novelec_protocola45}
+
+\item 
+virtual void {\bf auto\_\-zero\_\-on} (void)\label{class_electrometer_protocol__novelec_protocola46}
+
+\item 
+virtual void {\bf auto\_\-zero\_\-off} (void)\label{class_electrometer_protocol__novelec_protocola47}
+
+\end{CompactItemize}
+\subsection*{Protected Member Functions}
+\begin{CompactItemize}
+\item 
+std::string {\bf check\_\-and\_\-extract\_\-data} (std::string resp\_\-to\_\-check)\label{class_novelec_protocol__novelec_protocolb0}
+
+\end{CompactItemize}
+\subsection*{Protected Attributes}
+\begin{CompactItemize}
+\item 
+short {\bf \_\-dev\-Add}\label{class_novelec_protocol__novelec_protocolp0}
+
+\item 
+short {\bf \_\-nov\-Type}\label{class_novelec_protocol__novelec_protocolp1}
+
+\item 
+short {\bf \_\-range\-Parameter\-Num}\label{class_novelec_protocol__novelec_protocolp2}
+
+\item 
+std::string {\bf \_\-function}\label{class_novelec_protocol__novelec_protocolp3}
+
+\item 
+short {\bf \_\-range}\label{class_electrometer_protocol__novelec_protocolp4}
+
+\item 
+std::string {\bf \_\-mode}\label{class_electrometer_protocol__novelec_protocolp5}
+
+\item 
+{\bf Communication\-Link} $\ast$ {\bf \_\-communication\_\-link}\label{class_electrometer_protocol__novelec_protocolp6}
+
+\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+This class manage the Novelec Commands Protocol. 
+
+\begin{Desc}
+\item[Author:]Xavier Elattaoui \end{Desc}
+\begin{Desc}
+\item[Date:]11-2006 \end{Desc}
+
+
+
+
+The documentation for this class was generated from the following file:\begin{CompactItemize}
+\item 
+Novelec\-Protocol.h\end{CompactItemize}
diff --git a/doc/latex/class_tango_gpib_link.eps b/doc/latex/class_tango_gpib_link.eps
new file mode 100644
index 0000000000000000000000000000000000000000..8bc877c7279a7a8379769baadcab7329f9b6b9e7
--- /dev/null
+++ b/doc/latex/class_tango_gpib_link.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 312.5
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.6 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(TangoGpibLink) cw
+(CommunicationLink) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (TangoGpibLink) 0 0 box
+ (CommunicationLink) 0 1 box
+
+% ----- relations -----
+
+solid
+0 0 0 out
+solid
+1 0 1 in
diff --git a/doc/latex/class_tango_gpib_link.tex b/doc/latex/class_tango_gpib_link.tex
new file mode 100644
index 0000000000000000000000000000000000000000..4641dac1d91bb6366e169e4cf7b555bf5212d796
--- /dev/null
+++ b/doc/latex/class_tango_gpib_link.tex
@@ -0,0 +1,102 @@
+\section{Tango\-Gpib\-Link Class Reference}
+\label{class_tango_gpib_link}\index{TangoGpibLink@{TangoGpibLink}}
+This class manage the GPIB communication bus.  
+
+
+{\tt \#include $<$Tango\-Gpib\-Link.h$>$}
+
+Inheritance diagram for Tango\-Gpib\-Link::\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2cm]{class_tango_gpib_link}
+\end{center}
+\end{figure}
+\subsection*{Public Member Functions}
+\begin{CompactItemize}
+\item 
+{\bf Tango\-Gpib\-Link} (std::string \&gpib\_\-device\_\-name)
+\item 
+virtual {\bf $\sim$Tango\-Gpib\-Link} (void)\label{class_tango_gpib_link__tango_gpib_linka1}
+
+\begin{CompactList}\small\item\em Release resources. \item\end{CompactList}\item 
+void {\bf write} (std::string cmd)  throw (Tango::Dev\-Failed)
+\begin{CompactList}\small\item\em Send command (data) as string to hardware. \item\end{CompactList}\item 
+std::string {\bf read} (void)  throw (Tango::Dev\-Failed)
+\begin{CompactList}\small\item\em Gets hardware response as string. \item\end{CompactList}\item 
+std::string {\bf write\_\-read} (std::string cmd)  throw (Tango::Dev\-Failed)
+\begin{CompactList}\small\item\em Performs a write read operation as string. \item\end{CompactList}\end{CompactItemize}
+\subsection*{Protected Attributes}
+\begin{CompactItemize}
+\item 
+std::string {\bf \_\-communication\_\-Device\_\-name}\label{class_communication_link__tango_serial_linkp0}
+
+\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+This class manage the GPIB communication bus. 
+
+\begin{Desc}
+\item[Author:]Xavier Elattaoui \end{Desc}
+\begin{Desc}
+\item[Date:]11-2006 \end{Desc}
+
+
+
+
+\subsection{Constructor \& Destructor Documentation}
+\index{TangoGpibLink@{Tango\-Gpib\-Link}!TangoGpibLink@{TangoGpibLink}}
+\index{TangoGpibLink@{TangoGpibLink}!TangoGpibLink@{Tango\-Gpib\-Link}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}Tango\-Gpib\-Link::Tango\-Gpib\-Link (std::string \& {\em gpib\_\-device\_\-name})}\label{class_tango_gpib_link__tango_gpib_linka0}
+
+
+Initialization.
+
+\subsection{Member Function Documentation}
+\index{TangoGpibLink@{Tango\-Gpib\-Link}!read@{read}}
+\index{read@{read}!TangoGpibLink@{Tango\-Gpib\-Link}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}std::string Tango\-Gpib\-Link::read (void)  throw (Tango::Dev\-Failed)\hspace{0.3cm}{\tt  [virtual]}}\label{class_tango_gpib_link__tango_gpib_linka3}
+
+
+Gets hardware response as string. 
+
+\begin{Desc}
+\item[Exceptions:]
+\begin{description}
+\item[{\em Tango::Dev\-Failed}]\end{description}
+\end{Desc}
+
+
+Implements {\bf Communication\-Link} {\rm (p.\,\pageref{class_communication_link__communication_linka3})}.\index{TangoGpibLink@{Tango\-Gpib\-Link}!write@{write}}
+\index{write@{write}!TangoGpibLink@{Tango\-Gpib\-Link}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Tango\-Gpib\-Link::write (std::string {\em cmd})  throw (Tango::Dev\-Failed)\hspace{0.3cm}{\tt  [virtual]}}\label{class_tango_gpib_link__tango_gpib_linka2}
+
+
+Send command (data) as string to hardware. 
+
+\begin{Desc}
+\item[Exceptions:]
+\begin{description}
+\item[{\em Tango::Dev\-Failed}]\end{description}
+\end{Desc}
+
+
+Implements {\bf Communication\-Link} {\rm (p.\,\pageref{class_communication_link__communication_linka2})}.\index{TangoGpibLink@{Tango\-Gpib\-Link}!write_read@{write\_\-read}}
+\index{write_read@{write\_\-read}!TangoGpibLink@{Tango\-Gpib\-Link}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}std::string Tango\-Gpib\-Link::write\_\-read (std::string {\em cmd})  throw (Tango::Dev\-Failed)\hspace{0.3cm}{\tt  [virtual]}}\label{class_tango_gpib_link__tango_gpib_linka4}
+
+
+Performs a write read operation as string. 
+
+\begin{Desc}
+\item[Exceptions:]
+\begin{description}
+\item[{\em Tango::Dev\-Failed}]\end{description}
+\end{Desc}
+
+
+Implements {\bf Communication\-Link} {\rm (p.\,\pageref{class_communication_link__communication_linka4})}.
+
+The documentation for this class was generated from the following file:\begin{CompactItemize}
+\item 
+Tango\-Gpib\-Link.h\end{CompactItemize}
diff --git a/doc/latex/class_tango_serial_link.eps b/doc/latex/class_tango_serial_link.eps
new file mode 100644
index 0000000000000000000000000000000000000000..aba6e43f731c08002d992fd1f5e905a04aee20d9
--- /dev/null
+++ b/doc/latex/class_tango_serial_link.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 312.5
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.6 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(TangoSerialLink) cw
+(CommunicationLink) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (TangoSerialLink) 0 0 box
+ (CommunicationLink) 0 1 box
+
+% ----- relations -----
+
+solid
+0 0 0 out
+solid
+1 0 1 in
diff --git a/doc/latex/class_tango_serial_link.tex b/doc/latex/class_tango_serial_link.tex
new file mode 100644
index 0000000000000000000000000000000000000000..411c5191b6f824c2fe958a3cd47582f64214bb13
--- /dev/null
+++ b/doc/latex/class_tango_serial_link.tex
@@ -0,0 +1,104 @@
+\section{Tango\-Serial\-Link Class Reference}
+\label{class_tango_serial_link}\index{TangoSerialLink@{TangoSerialLink}}
+This class manage the SERIAL communication bus.  
+
+
+{\tt \#include $<$Tango\-Serial\-Link.h$>$}
+
+Inheritance diagram for Tango\-Serial\-Link::\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2cm]{class_tango_serial_link}
+\end{center}
+\end{figure}
+\subsection*{Public Member Functions}
+\begin{CompactItemize}
+\item 
+{\bf Tango\-Serial\-Link} (std::string \&serial\_\-device\_\-name)\label{class_tango_serial_link__tango_serial_linka0}
+
+\begin{CompactList}\small\item\em Initialization. \item\end{CompactList}\item 
+virtual {\bf $\sim$Tango\-Serial\-Link} (void)
+\begin{CompactList}\small\item\em Release resources. \item\end{CompactList}\item 
+void {\bf write} (std::string cmd)  throw (Tango::Dev\-Failed)
+\begin{CompactList}\small\item\em Send command (data) as string to hardware. \item\end{CompactList}\item 
+std::string {\bf read} (void)  throw (Tango::Dev\-Failed)
+\begin{CompactList}\small\item\em Gets hardware response as string. \item\end{CompactList}\item 
+std::string {\bf write\_\-read} (std::string cmd)  throw (Tango::Dev\-Failed)
+\begin{CompactList}\small\item\em Performs a write read operation as string. \item\end{CompactList}\end{CompactItemize}
+\subsection*{Protected Attributes}
+\begin{CompactItemize}
+\item 
+std::string {\bf \_\-communication\_\-Device\_\-name}\label{class_communication_link__tango_serial_linkp0}
+
+\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+This class manage the SERIAL communication bus. 
+
+\begin{Desc}
+\item[Author:]Xavier Elattaoui \end{Desc}
+\begin{Desc}
+\item[Date:]11-2006 \end{Desc}
+
+
+
+
+\subsection{Constructor \& Destructor Documentation}
+\index{TangoSerialLink@{Tango\-Serial\-Link}!~TangoSerialLink@{$\sim$TangoSerialLink}}
+\index{~TangoSerialLink@{$\sim$TangoSerialLink}!TangoSerialLink@{Tango\-Serial\-Link}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual Tango\-Serial\-Link::$\sim${\bf Tango\-Serial\-Link} (void)\hspace{0.3cm}{\tt  [virtual]}}\label{class_tango_serial_link__tango_serial_linka1}
+
+
+Release resources. 
+
+
+
+\subsection{Member Function Documentation}
+\index{TangoSerialLink@{Tango\-Serial\-Link}!read@{read}}
+\index{read@{read}!TangoSerialLink@{Tango\-Serial\-Link}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}std::string Tango\-Serial\-Link::read (void)  throw (Tango::Dev\-Failed)\hspace{0.3cm}{\tt  [virtual]}}\label{class_tango_serial_link__tango_serial_linka3}
+
+
+Gets hardware response as string. 
+
+\begin{Desc}
+\item[Exceptions:]
+\begin{description}
+\item[{\em Tango::Dev\-Failed}]\end{description}
+\end{Desc}
+
+
+Implements {\bf Communication\-Link} {\rm (p.\,\pageref{class_communication_link__communication_linka3})}.\index{TangoSerialLink@{Tango\-Serial\-Link}!write@{write}}
+\index{write@{write}!TangoSerialLink@{Tango\-Serial\-Link}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Tango\-Serial\-Link::write (std::string {\em cmd})  throw (Tango::Dev\-Failed)\hspace{0.3cm}{\tt  [virtual]}}\label{class_tango_serial_link__tango_serial_linka2}
+
+
+Send command (data) as string to hardware. 
+
+\begin{Desc}
+\item[Exceptions:]
+\begin{description}
+\item[{\em Tango::Dev\-Failed}]\end{description}
+\end{Desc}
+
+
+Implements {\bf Communication\-Link} {\rm (p.\,\pageref{class_communication_link__communication_linka2})}.\index{TangoSerialLink@{Tango\-Serial\-Link}!write_read@{write\_\-read}}
+\index{write_read@{write\_\-read}!TangoSerialLink@{Tango\-Serial\-Link}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}std::string Tango\-Serial\-Link::write\_\-read (std::string {\em cmd})  throw (Tango::Dev\-Failed)\hspace{0.3cm}{\tt  [virtual]}}\label{class_tango_serial_link__tango_serial_linka4}
+
+
+Performs a write read operation as string. 
+
+\begin{Desc}
+\item[Exceptions:]
+\begin{description}
+\item[{\em Tango::Dev\-Failed}]\end{description}
+\end{Desc}
+
+
+Implements {\bf Communication\-Link} {\rm (p.\,\pageref{class_communication_link__communication_linka4})}.
+
+The documentation for this class was generated from the following file:\begin{CompactItemize}
+\item 
+Tango\-Serial\-Link.h\end{CompactItemize}
diff --git a/doc/latex/classelectrometer_1_1_electrometer_exception.tex b/doc/latex/classelectrometer_1_1_electrometer_exception.tex
new file mode 100644
index 0000000000000000000000000000000000000000..e4c2bb5a2cf4265a05bb9233cf7de2f259dcd827
--- /dev/null
+++ b/doc/latex/classelectrometer_1_1_electrometer_exception.tex
@@ -0,0 +1,109 @@
+\section{electrometer::Electrometer\-Exception Class Reference}
+\label{classelectrometer_1_1_electrometer_exception}\index{electrometer::ElectrometerException@{electrometer::ElectrometerException}}
+detailed description to be written  
+
+
+{\tt \#include $<$Electrometer\-Exception.h$>$}
+
+\subsection*{Public Member Functions}
+\begin{CompactItemize}
+\item 
+{\bf Electrometer\-Exception} (void)
+\item 
+{\bf Electrometer\-Exception} (const char $\ast$reason, const char $\ast$desc, const char $\ast$origin, int severity=electrometer::ERR)
+\item 
+{\bf Electrometer\-Exception} (const std::string \&reason, const std::string \&desc, const std::string \&origin, int severity=electrometer::ERR)
+\item 
+{\bf Electrometer\-Exception} (const {\bf Error} \&error)
+\item 
+{\bf Electrometer\-Exception} (const {\bf Electrometer\-Exception} \&src)
+\item 
+{\bf Electrometer\-Exception} \& {\bf operator=} (const {\bf Electrometer\-Exception} \&\_\-src)
+\item 
+virtual {\bf $\sim$Electrometer\-Exception} (void)
+\item 
+void {\bf push\_\-error} (const char $\ast$reason, const char $\ast$desc, const char $\ast$origin, int severity=electrometer::ERR)
+\item 
+void {\bf push\_\-error} (const std::string \&reason, const std::string \&desc, const std::string \&origin, int severity=electrometer::ERR)
+\item 
+void {\bf push\_\-error} (const {\bf Error} \&error)
+\end{CompactItemize}
+\subsection*{Public Attributes}
+\begin{CompactItemize}
+\item 
+Error\-List {\bf errors}
+\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+detailed description to be written 
+
+
+
+\subsection{Constructor \& Destructor Documentation}
+\index{electrometer::ElectrometerException@{electrometer::Electrometer\-Exception}!ElectrometerException@{ElectrometerException}}
+\index{ElectrometerException@{ElectrometerException}!electrometer::ElectrometerException@{electrometer::Electrometer\-Exception}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}electrometer::Electrometer\-Exception::Electrometer\-Exception (void)}\label{classelectrometer_1_1_electrometer_exception_electrometer_1_1_electrometer_exceptiona0}
+
+
+Initialization. \index{electrometer::ElectrometerException@{electrometer::Electrometer\-Exception}!ElectrometerException@{ElectrometerException}}
+\index{ElectrometerException@{ElectrometerException}!electrometer::ElectrometerException@{electrometer::Electrometer\-Exception}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}electrometer::Electrometer\-Exception::Electrometer\-Exception (const char $\ast$ {\em reason}, const char $\ast$ {\em desc}, const char $\ast$ {\em origin}, int {\em severity} = {\tt electrometer::ERR})}\label{classelectrometer_1_1_electrometer_exception_electrometer_1_1_electrometer_exceptiona1}
+
+
+Initialization. \index{electrometer::ElectrometerException@{electrometer::Electrometer\-Exception}!ElectrometerException@{ElectrometerException}}
+\index{ElectrometerException@{ElectrometerException}!electrometer::ElectrometerException@{electrometer::Electrometer\-Exception}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}electrometer::Electrometer\-Exception::Electrometer\-Exception (const std::string \& {\em reason}, const std::string \& {\em desc}, const std::string \& {\em origin}, int {\em severity} = {\tt electrometer::ERR})}\label{classelectrometer_1_1_electrometer_exception_electrometer_1_1_electrometer_exceptiona2}
+
+
+Initialization. \index{electrometer::ElectrometerException@{electrometer::Electrometer\-Exception}!ElectrometerException@{ElectrometerException}}
+\index{ElectrometerException@{ElectrometerException}!electrometer::ElectrometerException@{electrometer::Electrometer\-Exception}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}electrometer::Electrometer\-Exception::Electrometer\-Exception (const {\bf Error} \& {\em error})}\label{classelectrometer_1_1_electrometer_exception_electrometer_1_1_electrometer_exceptiona3}
+
+
+Initialization. \index{electrometer::ElectrometerException@{electrometer::Electrometer\-Exception}!ElectrometerException@{ElectrometerException}}
+\index{ElectrometerException@{ElectrometerException}!electrometer::ElectrometerException@{electrometer::Electrometer\-Exception}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}electrometer::Electrometer\-Exception::Electrometer\-Exception (const {\bf Electrometer\-Exception} \& {\em src})}\label{classelectrometer_1_1_electrometer_exception_electrometer_1_1_electrometer_exceptiona4}
+
+
+Copy constructor. \index{electrometer::ElectrometerException@{electrometer::Electrometer\-Exception}!~ElectrometerException@{$\sim$ElectrometerException}}
+\index{~ElectrometerException@{$\sim$ElectrometerException}!electrometer::ElectrometerException@{electrometer::Electrometer\-Exception}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual electrometer::Electrometer\-Exception::$\sim${\bf Electrometer\-Exception} (void)\hspace{0.3cm}{\tt  [virtual]}}\label{classelectrometer_1_1_electrometer_exception_electrometer_1_1_electrometer_exceptiona6}
+
+
+Release resources. 
+
+\subsection{Member Function Documentation}
+\index{electrometer::ElectrometerException@{electrometer::Electrometer\-Exception}!operator=@{operator=}}
+\index{operator=@{operator=}!electrometer::ElectrometerException@{electrometer::Electrometer\-Exception}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf Electrometer\-Exception}\& electrometer::Electrometer\-Exception::operator= (const {\bf Electrometer\-Exception} \& {\em \_\-src})}\label{classelectrometer_1_1_electrometer_exception_electrometer_1_1_electrometer_exceptiona5}
+
+
+operator= \index{electrometer::ElectrometerException@{electrometer::Electrometer\-Exception}!push_error@{push\_\-error}}
+\index{push_error@{push\_\-error}!electrometer::ElectrometerException@{electrometer::Electrometer\-Exception}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void electrometer::Electrometer\-Exception::push\_\-error (const {\bf Error} \& {\em error})}\label{classelectrometer_1_1_electrometer_exception_electrometer_1_1_electrometer_exceptiona9}
+
+
+Push the specified error into the errors list. \index{electrometer::ElectrometerException@{electrometer::Electrometer\-Exception}!push_error@{push\_\-error}}
+\index{push_error@{push\_\-error}!electrometer::ElectrometerException@{electrometer::Electrometer\-Exception}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void electrometer::Electrometer\-Exception::push\_\-error (const std::string \& {\em reason}, const std::string \& {\em desc}, const std::string \& {\em origin}, int {\em severity} = {\tt electrometer::ERR})}\label{classelectrometer_1_1_electrometer_exception_electrometer_1_1_electrometer_exceptiona8}
+
+
+Push the specified error into the errors list. \index{electrometer::ElectrometerException@{electrometer::Electrometer\-Exception}!push_error@{push\_\-error}}
+\index{push_error@{push\_\-error}!electrometer::ElectrometerException@{electrometer::Electrometer\-Exception}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void electrometer::Electrometer\-Exception::push\_\-error (const char $\ast$ {\em reason}, const char $\ast$ {\em desc}, const char $\ast$ {\em origin}, int {\em severity} = {\tt electrometer::ERR})}\label{classelectrometer_1_1_electrometer_exception_electrometer_1_1_electrometer_exceptiona7}
+
+
+Push the specified error into the errors list. 
+
+\subsection{Member Data Documentation}
+\index{electrometer::ElectrometerException@{electrometer::Electrometer\-Exception}!errors@{errors}}
+\index{errors@{errors}!electrometer::ElectrometerException@{electrometer::Electrometer\-Exception}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}Error\-List {\bf electrometer::Electrometer\-Exception::errors}}\label{classelectrometer_1_1_electrometer_exception_electrometer_1_1_electrometer_exceptiono0}
+
+
+The errors list 
+
+The documentation for this class was generated from the following file:\begin{CompactItemize}
+\item 
+Electrometer\-Exception.h\end{CompactItemize}
diff --git a/doc/latex/classelectrometer_1_1_error.tex b/doc/latex/classelectrometer_1_1_error.tex
new file mode 100644
index 0000000000000000000000000000000000000000..f9dd6c9f76a3063cde98cfe27f0acac0e45b2c1b
--- /dev/null
+++ b/doc/latex/classelectrometer_1_1_error.tex
@@ -0,0 +1,102 @@
+\section{electrometer::Error Class Reference}
+\label{classelectrometer_1_1_error}\index{electrometer::Error@{electrometer::Error}}
+detailed description to be written  
+
+
+{\tt \#include $<$Electrometer\-Exception.h$>$}
+
+\subsection*{Public Member Functions}
+\begin{CompactItemize}
+\item 
+{\bf Error} (void)
+\item 
+{\bf Error} (const char $\ast${\bf reason}, const char $\ast${\bf desc}, const char $\ast${\bf origin}, int {\bf severity}=electrometer::ERR)
+\item 
+{\bf Error} (const std::string \&{\bf reason}, const std::string \&{\bf desc}, const std::string \&{\bf origin}, int {\bf severity}=electrometer::ERR)
+\item 
+{\bf Error} (const {\bf Error} \&src)
+\item 
+virtual {\bf $\sim$Error} (void)
+\item 
+{\bf Error} \& {\bf operator=} (const {\bf Error} \&\_\-src)
+\end{CompactItemize}
+\subsection*{Public Attributes}
+\begin{CompactItemize}
+\item 
+std::string {\bf reason}
+\item 
+std::string {\bf desc}
+\item 
+std::string {\bf origin}
+\item 
+int {\bf severity}
+\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+detailed description to be written 
+
+
+
+\subsection{Constructor \& Destructor Documentation}
+\index{electrometer::Error@{electrometer::Error}!Error@{Error}}
+\index{Error@{Error}!electrometer::Error@{electrometer::Error}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}electrometer::Error::Error (void)}\label{classelectrometer_1_1_error_electrometer_1_1_errora0}
+
+
+Initialization. \index{electrometer::Error@{electrometer::Error}!Error@{Error}}
+\index{Error@{Error}!electrometer::Error@{electrometer::Error}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}electrometer::Error::Error (const char $\ast$ {\em reason}, const char $\ast$ {\em desc}, const char $\ast$ {\em origin}, int {\em severity} = {\tt electrometer::ERR})}\label{classelectrometer_1_1_error_electrometer_1_1_errora1}
+
+
+Initialization. \index{electrometer::Error@{electrometer::Error}!Error@{Error}}
+\index{Error@{Error}!electrometer::Error@{electrometer::Error}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}electrometer::Error::Error (const std::string \& {\em reason}, const std::string \& {\em desc}, const std::string \& {\em origin}, int {\em severity} = {\tt electrometer::ERR})}\label{classelectrometer_1_1_error_electrometer_1_1_errora2}
+
+
+Initialization. \index{electrometer::Error@{electrometer::Error}!Error@{Error}}
+\index{Error@{Error}!electrometer::Error@{electrometer::Error}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}electrometer::Error::Error (const {\bf Error} \& {\em src})}\label{classelectrometer_1_1_error_electrometer_1_1_errora3}
+
+
+Copy constructor. \index{electrometer::Error@{electrometer::Error}!~Error@{$\sim$Error}}
+\index{~Error@{$\sim$Error}!electrometer::Error@{electrometer::Error}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual electrometer::Error::$\sim${\bf Error} (void)\hspace{0.3cm}{\tt  [virtual]}}\label{classelectrometer_1_1_error_electrometer_1_1_errora4}
+
+
+{\bf Error}{\rm (p.\,\pageref{classelectrometer_1_1_error})} details: code 
+
+\subsection{Member Function Documentation}
+\index{electrometer::Error@{electrometer::Error}!operator=@{operator=}}
+\index{operator=@{operator=}!electrometer::Error@{electrometer::Error}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf Error}\& electrometer::Error::operator= (const {\bf Error} \& {\em \_\-src})}\label{classelectrometer_1_1_error_electrometer_1_1_errora5}
+
+
+operator= 
+
+\subsection{Member Data Documentation}
+\index{electrometer::Error@{electrometer::Error}!desc@{desc}}
+\index{desc@{desc}!electrometer::Error@{electrometer::Error}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}std::string {\bf electrometer::Error::desc}}\label{classelectrometer_1_1_error_electrometer_1_1_erroro1}
+
+
+{\bf Error}{\rm (p.\,\pageref{classelectrometer_1_1_error})} details: description \index{electrometer::Error@{electrometer::Error}!origin@{origin}}
+\index{origin@{origin}!electrometer::Error@{electrometer::Error}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}std::string {\bf electrometer::Error::origin}}\label{classelectrometer_1_1_error_electrometer_1_1_erroro2}
+
+
+{\bf Error}{\rm (p.\,\pageref{classelectrometer_1_1_error})} details: origin \index{electrometer::Error@{electrometer::Error}!reason@{reason}}
+\index{reason@{reason}!electrometer::Error@{electrometer::Error}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}std::string {\bf electrometer::Error::reason}}\label{classelectrometer_1_1_error_electrometer_1_1_erroro0}
+
+
+{\bf Error}{\rm (p.\,\pageref{classelectrometer_1_1_error})} details: reason \index{electrometer::Error@{electrometer::Error}!severity@{severity}}
+\index{severity@{severity}!electrometer::Error@{electrometer::Error}}
+\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int {\bf electrometer::Error::severity}}\label{classelectrometer_1_1_error_electrometer_1_1_erroro3}
+
+
+{\bf Error}{\rm (p.\,\pageref{classelectrometer_1_1_error})} details: severity 
+
+The documentation for this class was generated from the following file:\begin{CompactItemize}
+\item 
+Electrometer\-Exception.h\end{CompactItemize}
diff --git a/doc/latex/dir_000000.tex b/doc/latex/dir_000000.tex
new file mode 100644
index 0000000000000000000000000000000000000000..7fca54dafd46b2b31d289d180fb15e5a1af1735b
--- /dev/null
+++ b/doc/latex/dir_000000.tex
@@ -0,0 +1,7 @@
+\section{D:/ Directory Reference}
+\label{dir_000000}\index{D:/ Directory Reference@{D:/ Directory Reference}}
+\subsection*{Directories}
+\begin{CompactItemize}
+\item 
+directory{\bf Device\-Server\-Src}
+\end{CompactItemize}
diff --git a/doc/latex/dir_000001.tex b/doc/latex/dir_000001.tex
new file mode 100644
index 0000000000000000000000000000000000000000..bceee2917004fb78dc2b2364fe9b20ea90450712
--- /dev/null
+++ b/doc/latex/dir_000001.tex
@@ -0,0 +1,7 @@
+\section{D:/Device\-Server\-Src/ Directory Reference}
+\label{dir_000001}\index{D:/DeviceServerSrc/ Directory Reference@{D:/DeviceServerSrc/ Directory Reference}}
+\subsection*{Directories}
+\begin{CompactItemize}
+\item 
+directory{\bf Electrometers\-Library}
+\end{CompactItemize}
diff --git a/doc/latex/dir_000002.tex b/doc/latex/dir_000002.tex
new file mode 100644
index 0000000000000000000000000000000000000000..aac8d03d92739445106ae1edc3ae11740b54df25
--- /dev/null
+++ b/doc/latex/dir_000002.tex
@@ -0,0 +1,7 @@
+\section{D:/Device\-Server\-Src/Electrometers\-Library/ Directory Reference}
+\label{dir_000002}\index{D:/DeviceServerSrc/ElectrometersLibrary/ Directory Reference@{D:/DeviceServerSrc/ElectrometersLibrary/ Directory Reference}}
+\subsection*{Directories}
+\begin{CompactItemize}
+\item 
+directory{\bf include}
+\end{CompactItemize}
diff --git a/doc/latex/dir_000003.tex b/doc/latex/dir_000003.tex
new file mode 100644
index 0000000000000000000000000000000000000000..8caef7cb9d473b78dc618bbd7a9e694a4a35017a
--- /dev/null
+++ b/doc/latex/dir_000003.tex
@@ -0,0 +1,45 @@
+\section{D:/Device\-Server\-Src/Electrometers\-Library/include/ Directory Reference}
+\label{dir_000003}\index{D:/DeviceServerSrc/ElectrometersLibrary/include/ Directory Reference@{D:/DeviceServerSrc/ElectrometersLibrary/include/ Directory Reference}}
+\subsection*{Files}
+\begin{CompactItemize}
+\item 
+file {\bf AbstractElectrometerClass.h}
+\item 
+file {\bf CommunicationLink.h}
+\item 
+file {\bf ElectrometerException.h}
+\item 
+file {\bf ElectrometerProtocol.h}
+\item 
+file {\bf Keithley_485.h}
+\item 
+file {\bf Keithley_486.h}
+\item 
+file {\bf Keithley_487.h}
+\item 
+file {\bf Keithley_617.h}
+\item 
+file {\bf Keithley_6485.h}
+\item 
+file {\bf Keithley_6487.h}
+\item 
+file {\bf Keithley_6512.h}
+\item 
+file {\bf Keithley_6514.h}
+\item 
+file {\bf KeithleyDDCProtocol.h}
+\item 
+file {\bf KeithleySCPIProtocol.h}
+\item 
+file {\bf N_PhotoConducteur.h}
+\item 
+file {\bf N_PhotoVoltaique.h}
+\item 
+file {\bf Novelec_MCCE2.h}
+\item 
+file {\bf NovelecProtocol.h}
+\item 
+file {\bf TangoGpibLink.h}
+\item 
+file {\bf TangoSerialLink.h}
+\end{CompactItemize}
diff --git a/doc/latex/doxygen.sty b/doc/latex/doxygen.sty
new file mode 100644
index 0000000000000000000000000000000000000000..9f88e9b6491a0dcdf57b1adc6d2c84400b3b3832
--- /dev/null
+++ b/doc/latex/doxygen.sty
@@ -0,0 +1,64 @@
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{doxygen}
+\RequirePackage{calc}
+\RequirePackage{array}
+\pagestyle{fancyplain}
+\newcommand{\clearemptydoublepage}{\newpage{\pagestyle{empty}\cleardoublepage}}
+\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
+\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}
+\lhead[\fancyplain{}{\bfseries\thepage}]
+        {\fancyplain{}{\bfseries\rightmark}}
+\rhead[\fancyplain{}{\bfseries\leftmark}]
+        {\fancyplain{}{\bfseries\thepage}}
+\rfoot[\fancyplain{}{\bfseries\scriptsize Generated on Fri Dec 1 15:32:18 2006 for Electrometers Library by Doxygen }]{}
+\lfoot[]{\fancyplain{}{\bfseries\scriptsize Generated on Fri Dec 1 15:32:18 2006 for Electrometers Library by Doxygen }}
+\cfoot{}
+\newenvironment{CompactList}
+{\begin{list}{}{
+  \setlength{\leftmargin}{0.5cm}
+  \setlength{\itemsep}{0pt}
+  \setlength{\parsep}{0pt}
+  \setlength{\topsep}{0pt}
+  \renewcommand{\makelabel}{}}}
+{\end{list}}
+\newenvironment{CompactItemize}
+{
+  \begin{itemize}
+  \setlength{\itemsep}{-3pt}
+  \setlength{\parsep}{0pt}
+  \setlength{\topsep}{0pt}
+  \setlength{\partopsep}{0pt}
+}
+{\end{itemize}}
+\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}
+\newlength{\tmplength}
+\newenvironment{TabularC}[1]
+{
+\setlength{\tmplength}
+     {\linewidth/(#1)-\tabcolsep*2-\arrayrulewidth*(#1+1)/(#1)}
+      \par\begin{tabular*}{\linewidth}
+             {*{#1}{|>{\PBS\raggedright\hspace{0pt}}p{\the\tmplength}}|}
+}
+{\end{tabular*}\par}
+\newcommand{\entrylabel}[1]{
+   {\parbox[b]{\labelwidth-4pt}{\makebox[0pt][l]{\textbf{#1}}\\}}}
+\newenvironment{Desc}
+{\begin{list}{}
+  {
+    \settowidth{\labelwidth}{40pt}
+    \setlength{\leftmargin}{\labelwidth}
+    \setlength{\parsep}{0pt}
+    \setlength{\itemsep}{-4pt}
+    \renewcommand{\makelabel}{\entrylabel}
+  }
+}
+{\end{list}}
+\newenvironment{Indent}
+  {\begin{list}{}{\setlength{\leftmargin}{0.5cm}}
+      \item[]\ignorespaces}
+  {\unskip\end{list}}
+\setlength{\parindent}{0cm}
+\setlength{\parskip}{0.2cm}
+\addtocounter{secnumdepth}{1}
+\sloppy
+\usepackage[T1]{fontenc}
diff --git a/doc/latex/group___communication.tex b/doc/latex/group___communication.tex
new file mode 100644
index 0000000000000000000000000000000000000000..f3fe4e747138ee7735b68f928ab3bc24974e0081
--- /dev/null
+++ b/doc/latex/group___communication.tex
@@ -0,0 +1,11 @@
+\section{Management}
+\label{group___communication}\index{Management@{Management}}
+\subsection*{Classes}
+\begin{CompactItemize}
+\item 
+class {\bf Communication\-Link}
+\begin{CompactList}\small\item\em Abstract class to manage a specific communication bus. \item\end{CompactList}\item 
+class {\bf Tango\-Gpib\-Link}
+\begin{CompactList}\small\item\em This class manage the GPIB communication bus. \item\end{CompactList}\item 
+class {\bf Tango\-Serial\-Link}
+\begin{CompactList}\small\item\em This class manage the SERIAL communication bus. \item\end{CompactList}\end{CompactItemize}
diff --git a/doc/latex/group___d_d_c.tex b/doc/latex/group___d_d_c.tex
new file mode 100644
index 0000000000000000000000000000000000000000..40c4c533610880ac21ed9743f94a012227c6f687
--- /dev/null
+++ b/doc/latex/group___d_d_c.tex
@@ -0,0 +1,15 @@
+\section{Keithley}
+\label{group___d_d_c}\index{Keithley@{Keithley}}
+\subsection*{Classes}
+\begin{CompactItemize}
+\item 
+class {\bf Keithley\_\-485}
+\begin{CompactList}\small\item\em This class manage 485 Keithley type. \item\end{CompactList}\item 
+class {\bf Keithley\_\-486}
+\begin{CompactList}\small\item\em This class manage 486 Keithley type. \item\end{CompactList}\item 
+class {\bf Keithley\_\-487}
+\begin{CompactList}\small\item\em This class manage 487 Keithley type. \item\end{CompactList}\item 
+class {\bf Keithley\_\-617}
+\begin{CompactList}\small\item\em This class manage 617 Keithley type. \item\end{CompactList}\item 
+class {\bf Keithley\_\-6512}
+\begin{CompactList}\small\item\em This class manage 6512 Keithley type. \item\end{CompactList}\end{CompactItemize}
diff --git a/doc/latex/group___novelec.tex b/doc/latex/group___novelec.tex
new file mode 100644
index 0000000000000000000000000000000000000000..9ebc7f52317d9a9495d5b092ba5b2fbbf986342a
--- /dev/null
+++ b/doc/latex/group___novelec.tex
@@ -0,0 +1,11 @@
+\section{Novelec}
+\label{group___novelec}\index{Novelec@{Novelec}}
+\subsection*{Classes}
+\begin{CompactItemize}
+\item 
+class {\bf N\_\-Photo\-Conducteur}
+\begin{CompactList}\small\item\em This class manage Novelec Photo\-Conductor types. \item\end{CompactList}\item 
+class {\bf N\_\-Photo\-Voltaique}
+\begin{CompactList}\small\item\em This class manage Novelec Photo\-Voltaique types. \item\end{CompactList}\item 
+class {\bf Novelec\_\-MCCE2}
+\begin{CompactList}\small\item\em This class manage Novelec MCCE-2 type. \item\end{CompactList}\end{CompactItemize}
diff --git a/doc/latex/group___s_c_p_i.tex b/doc/latex/group___s_c_p_i.tex
new file mode 100644
index 0000000000000000000000000000000000000000..0facc9c34065c1df3cf074389aeef3841575bfa9
--- /dev/null
+++ b/doc/latex/group___s_c_p_i.tex
@@ -0,0 +1,11 @@
+\section{Keithley}
+\label{group___s_c_p_i}\index{Keithley@{Keithley}}
+\subsection*{Classes}
+\begin{CompactItemize}
+\item 
+class {\bf Keithley\_\-6485}
+\begin{CompactList}\small\item\em This class manage 6485 Keithley type. \item\end{CompactList}\item 
+class {\bf Keithley\_\-6487}
+\begin{CompactList}\small\item\em This class manage 6487 Keithley type. \item\end{CompactList}\item 
+class {\bf Keithley\_\-6514}
+\begin{CompactList}\small\item\em This class manage 6514 Keithley type. \item\end{CompactList}\end{CompactItemize}
diff --git a/doc/latex/group___standard.tex b/doc/latex/group___standard.tex
new file mode 100644
index 0000000000000000000000000000000000000000..062117f45244b3647d12841932d0eefb879fcffa
--- /dev/null
+++ b/doc/latex/group___standard.tex
@@ -0,0 +1,13 @@
+\section{Commands Protocol}
+\label{group___standard}\index{Commands Protocol@{Commands Protocol}}
+\subsection*{Classes}
+\begin{CompactItemize}
+\item 
+class {\bf Electrometer\-Protocol}
+\begin{CompactList}\small\item\em This abstract class manage the Electrometers Commands Protocol. \item\end{CompactList}\item 
+class {\bf Keithley\-DDCProtocol}
+\begin{CompactList}\small\item\em This class manage the Keithley DDC Commands Protocol. \item\end{CompactList}\item 
+class {\bf Keithley\-SCPIProtocol}
+\begin{CompactList}\small\item\em This class manage the Keithley SCPI Commands Protocol. \item\end{CompactList}\item 
+class {\bf Novelec\-Protocol}
+\begin{CompactList}\small\item\em This class manage the Novelec Commands Protocol. \item\end{CompactList}\end{CompactItemize}
diff --git a/doc/latex/hierarchy.tex b/doc/latex/hierarchy.tex
new file mode 100644
index 0000000000000000000000000000000000000000..036f4813f14ed673d7e74e8ac5665f4da2955b4c
--- /dev/null
+++ b/doc/latex/hierarchy.tex
@@ -0,0 +1,32 @@
+\section{Electrometers Library Class Hierarchy}
+This inheritance list is sorted roughly, but not completely, alphabetically:\begin{CompactList}
+\item \contentsline{section}{Abstract\-Electrometer\-Class}{\pageref{class_abstract_electrometer_class}}{}
+\begin{CompactList}
+\item \contentsline{section}{Keithley\_\-485}{\pageref{class_keithley__485}}{}
+\item \contentsline{section}{Keithley\_\-486}{\pageref{class_keithley__486}}{}
+\item \contentsline{section}{Keithley\_\-487}{\pageref{class_keithley__487}}{}
+\item \contentsline{section}{Keithley\_\-617}{\pageref{class_keithley__617}}{}
+\item \contentsline{section}{Keithley\_\-6485}{\pageref{class_keithley__6485}}{}
+\item \contentsline{section}{Keithley\_\-6487}{\pageref{class_keithley__6487}}{}
+\item \contentsline{section}{Keithley\_\-6512}{\pageref{class_keithley__6512}}{}
+\item \contentsline{section}{Keithley\_\-6514}{\pageref{class_keithley__6514}}{}
+\item \contentsline{section}{Novelec\_\-MCCE2}{\pageref{class_novelec___m_c_c_e2}}{}
+\begin{CompactList}
+\item \contentsline{section}{N\_\-Photo\-Conducteur}{\pageref{class_n___photo_conducteur}}{}
+\item \contentsline{section}{N\_\-Photo\-Voltaique}{\pageref{class_n___photo_voltaique}}{}
+\end{CompactList}
+\end{CompactList}
+\item \contentsline{section}{Communication\-Link}{\pageref{class_communication_link}}{}
+\begin{CompactList}
+\item \contentsline{section}{Tango\-Gpib\-Link}{\pageref{class_tango_gpib_link}}{}
+\item \contentsline{section}{Tango\-Serial\-Link}{\pageref{class_tango_serial_link}}{}
+\end{CompactList}
+\item \contentsline{section}{electrometer::Electrometer\-Exception}{\pageref{classelectrometer_1_1_electrometer_exception}}{}
+\item \contentsline{section}{Electrometer\-Protocol}{\pageref{class_electrometer_protocol}}{}
+\begin{CompactList}
+\item \contentsline{section}{Keithley\-DDCProtocol}{\pageref{class_keithley_d_d_c_protocol}}{}
+\item \contentsline{section}{Keithley\-SCPIProtocol}{\pageref{class_keithley_s_c_p_i_protocol}}{}
+\item \contentsline{section}{Novelec\-Protocol}{\pageref{class_novelec_protocol}}{}
+\end{CompactList}
+\item \contentsline{section}{electrometer::Error}{\pageref{classelectrometer_1_1_error}}{}
+\end{CompactList}
diff --git a/doc/latex/modules.tex b/doc/latex/modules.tex
new file mode 100644
index 0000000000000000000000000000000000000000..505d064fd201a376f0182105dc66846533c016f0
--- /dev/null
+++ b/doc/latex/modules.tex
@@ -0,0 +1,8 @@
+\section{Electrometers Library Modules}
+Here is a list of all modules:\begin{CompactList}
+\item \contentsline{section}{Management}{\pageref{group___communication}}{}
+\item \contentsline{section}{Commands Protocol}{\pageref{group___standard}}{}
+\item \contentsline{section}{Keithley}{\pageref{group___d_d_c}}{}
+\item \contentsline{section}{Keithley}{\pageref{group___s_c_p_i}}{}
+\item \contentsline{section}{Novelec}{\pageref{group___novelec}}{}
+\end{CompactList}
diff --git a/doc/latex/refman.tex b/doc/latex/refman.tex
new file mode 100644
index 0000000000000000000000000000000000000000..fd0f8c399dfd0abfef74b61cc2f7a8dc3042370c
--- /dev/null
+++ b/doc/latex/refman.tex
@@ -0,0 +1,65 @@
+\documentclass[a4paper]{book}
+\usepackage{a4wide}
+\usepackage{makeidx}
+\usepackage{fancyhdr}
+\usepackage{graphicx}
+\usepackage{multicol}
+\usepackage{float}
+\usepackage{textcomp}
+\usepackage{alltt}
+\usepackage{doxygen}
+\makeindex
+\setcounter{tocdepth}{1}
+\renewcommand{\footrulewidth}{0.4pt}
+\begin{document}
+\begin{titlepage}
+\vspace*{7cm}
+\begin{center}
+{\Large Electrometers Library Reference Manual\\[1ex]\large 1.0 }\\
+\vspace*{1cm}
+{\large Generated by Doxygen 1.3.9.1}\\
+\vspace*{0.5cm}
+{\small Fri Dec 1 15:32:18 2006}\\
+\end{center}
+\end{titlepage}
+\clearemptydoublepage
+\pagenumbering{roman}
+\tableofcontents
+\clearemptydoublepage
+\pagenumbering{arabic}
+\chapter{Electrometers Library Module Index}
+\input{modules}
+\chapter{Electrometers Library Hierarchical Index}
+\input{hierarchy}
+\chapter{Electrometers Library Class Index}
+\input{annotated}
+\chapter{Electrometers Library Module Documentation}
+\input{group___communication}
+\include{group___standard}
+\include{group___d_d_c}
+\include{group___s_c_p_i}
+\include{group___novelec}
+\chapter{Electrometers Library Class Documentation}
+\input{class_abstract_electrometer_class}
+\include{class_communication_link}
+\include{classelectrometer_1_1_electrometer_exception}
+\include{class_electrometer_protocol}
+\include{classelectrometer_1_1_error}
+\include{class_keithley__485}
+\include{class_keithley__486}
+\include{class_keithley__487}
+\include{class_keithley__617}
+\include{class_keithley__6485}
+\include{class_keithley__6487}
+\include{class_keithley__6512}
+\include{class_keithley__6514}
+\include{class_keithley_d_d_c_protocol}
+\include{class_keithley_s_c_p_i_protocol}
+\include{class_n___photo_conducteur}
+\include{class_n___photo_voltaique}
+\include{class_novelec___m_c_c_e2}
+\include{class_novelec_protocol}
+\include{class_tango_gpib_link}
+\include{class_tango_serial_link}
+\printindex
+\end{document}
diff --git a/include/AbstractElectrometerClass.h b/include/AbstractElectrometerClass.h
new file mode 100644
index 0000000000000000000000000000000000000000..5d88ecaeb749c425e1983e12df001f92f1f6e887
--- /dev/null
+++ b/include/AbstractElectrometerClass.h
@@ -0,0 +1,168 @@
+//+=============================================================================
+//
+// = CONTEXT
+//    TANGO Project - Abstract Electrometer Class Support Library
+//
+// = FILENAME
+//    AbstractElectrometerClass.h
+//
+//
+// $Author: stephle $
+//
+// $Revision: 1.1 $
+//
+// $Log: not supported by cvs2svn $
+//
+
+// ============================================================================
+
+#ifndef _ABSTRACT_ELECTROMETER_CLASS_H_
+#define _ABSTRACT_ELECTROMETER_CLASS_H_
+
+#include "ElectrometerProtocol.h"
+
+/**
+ *  \brief Visible class from the DServer
+ *
+ *  \author Xavier Elattaoui
+ *  \date 11-2006
+ */
+class AbstractElectrometerClass
+{
+public:
+
+	/**
+	*  \brief Initialization. 
+	*/
+	AbstractElectrometerClass (std::string comLink_device_name);
+	
+	/**
+	*  \brief Release resources.
+	*/
+	virtual ~AbstractElectrometerClass (void);
+
+	/**
+	*  \brief Electrometer common functions.
+	*/
+	virtual void range_up			(void) = 0;
+	virtual void range_down			(void) = 0;
+	virtual void reset				(void); 
+	virtual void local				(void);
+	virtual void remote				(void);
+
+	/**
+	*  \brief Electrometer : cmd to get electrometer data.
+	*/
+	std::string get_value			(void);
+	virtual std::vector<double> get_integratedValue		(void);
+	virtual std::vector<double> get_fetchValue		    (void);
+
+	/**
+	*  \brief Keithley Electrometer methods
+	*/
+	void autoRange_on		(void);
+	void zero_check_on		(void);
+	void zero_check_off		(void);
+	void zero_correct_on	(void);
+	void zero_correct_off	(void);
+	void auto_zero_on		(void);
+	void auto_zero_off		(void);
+	virtual void autoRange_off		(void);
+	virtual void setAmperMeterMode	(void);
+	virtual void setVoltMeterMode	(void);
+	virtual void setOhmMeterMode	(void);
+	virtual void setCoulombMeterMode(void);
+
+	/**
+	*  \brief  Following functions are only supported for SCPI protocol
+	*
+	*/
+	void init_keithley		(void); 
+	void clear_registers	(void); 
+	void averageStateON		(void); 
+	void averageStateOFF	(void); 
+	void set_knplc			(std::string nPLC);
+	void set_triggercount	(std::string trigcounts);
+	void set_triggerdelay	(std::string trigdelay);
+	void set_triggerdelayAuto	(std::string trigdelAuto);
+	void set_averagecount	(std::string avercounts);
+	void set_averagecontrol	(std::string averctrl);
+	std::string get_knplc			(void);
+	std::string get_triggercount	(void);
+	std::string get_triggerdelay	(void);
+	std::string get_triggerdelayAuto(void);
+	std::string get_averagecount	(void);
+	std::string get_averagecontrol	(void);
+	void set_buffer_size			(void);
+	void clear_buffer				(void);
+	void store_raw_input			(void);
+	void start_storing				(void);
+	void enable_SRQBufferFull		(void);
+	void disable_SRQBufferFull		(void);
+	std::string readStatusByteRegister (void);	//- used to know if the integration cycle is done! 
+	bool get_overloadRangeState		(void);		//- used to know if the device range is overloaded (DDC Keithley ONLY)! 
+
+	/**
+	*  \brief Novelec Electrometer methods
+	*
+	* Following functions are only supported for Novelec Protocol
+	*/
+	virtual void set_Zero_VonF_function		(void);
+	virtual void set_Offset_ZeroV1_function	(void);
+	virtual void set_Leakage_ZeroV2_function(void);
+	virtual void set_Test_function			(void);
+	virtual void set_Measure_function		(void);
+	virtual void mcce_on	(void);
+	virtual void mcce_off	(void);
+	/**
+	*  \brief Novelec getters and setters
+	*/
+	virtual std::string get_ElectroMeterPolarity (void);
+	virtual std::string get_ElectroMeterFrequency(void);
+	virtual std::string get_ElectroMeterGain	 (void);
+	virtual void set_ElectroMeterPolarity	(std::string pola);
+	virtual void set_ElectroMeterFrequency	(std::string freq);
+	virtual void set_ElectroMeterGain		(std::string gain);
+
+	/**
+	*  \brief Electrometer Status and State.
+	*/
+	virtual std::string electrometer_status	(void);
+
+	/**
+	*  \brief Common getters and setters
+	*/
+	virtual std::string get_ElectroMeterMode		(void);
+	virtual std::string get_ElectroMeterRange		(void);
+
+
+protected :
+
+	/**
+	*  \brief Electrometer State
+	*/
+	enum ElectroState
+	{
+		ON		= 0,
+		FAULT	= 8,
+		ALARM	= 11,
+		UNKNOWN	= 13
+	};
+	
+	ElectroState electrometerState;
+	
+	void set_electroState(ElectroState newState) { electrometerState = newState; };
+
+	short					_range;
+	std::string				_rangeStr;
+	std::string				_mode;
+	ElectrometerProtocol*	_electrometerProtocol;
+	std::string				_device_proxy_name;
+private :
+
+public :
+	ElectroState electrometer_state	(void) { return electrometerState; };
+
+};
+
+#endif // _ABSTRACT_ELECTROMETER_CLASS_H_
diff --git a/include/CommunicationLink.h b/include/CommunicationLink.h
new file mode 100644
index 0000000000000000000000000000000000000000..848a9332c3008d6bd1af6188bc0ec658ef303b5d
--- /dev/null
+++ b/include/CommunicationLink.h
@@ -0,0 +1,85 @@
+// ============================================================================
+//
+// = CONTEXT
+//    TANGO Project - Keithley Electrometer Support Library
+//
+// = FILENAME
+//    CommunicationLink.h
+//
+// = AUTHOR
+//    X. Elattaoui
+//
+//
+// $Author: stephle $
+//
+// $Revision: 1.1 $
+//
+// $Log: not supported by cvs2svn $
+//
+// ============================================================================
+
+#ifndef _COMMUNICATION_LINK_H_
+#define _COMMUNICATION_LINK_H_
+
+#include <string>
+
+// ============================================================================
+// DEPENDENCIES
+// ============================================================================
+
+
+/**
+ *  \addtogroup Communication Management
+ *  @{
+ */
+
+/**
+ *  \brief Abstract class to manage a specific communication bus
+ *
+ *  \author Xavier Elattaoui
+ *  \date 11-2006
+ */
+
+class CommunicationLink
+{
+public :
+	
+	/**
+	* Initialization. 
+	*/
+	CommunicationLink (std::string& communication_link_name);
+	
+	/**
+	* Release resources.
+	*/
+	virtual ~CommunicationLink (void);
+
+	/**
+	*  \brief Send command (data) as string to hardware.
+	*
+	*  \throws Tango::DevFailed
+	*/
+	virtual void write(std::string)	= 0; 
+	
+	/**
+	*  \brief Gets hardware response as string.
+	*
+	*  \throws Tango::DevFailed
+	*/
+	virtual std::string read(void)	= 0;
+
+	/**
+	*  \brief Performs a write read operation as string.
+	*
+	*  \throws Tango::DevFailed
+	*/
+	virtual std::string write_read(std::string cmd_to_send) = 0;
+
+protected :
+	std::string _communication_Device_name;
+
+};
+
+/** @} */	//- end addtogroup
+
+#endif // _COMMUNICATION_LINK_H_
diff --git a/include/ElectrometerException.h b/include/ElectrometerException.h
new file mode 100644
index 0000000000000000000000000000000000000000..836f87783bb7b2dbac79a19937942fd3e2fa5f98
--- /dev/null
+++ b/include/ElectrometerException.h
@@ -0,0 +1,192 @@
+//******************************************************************************************
+//
+//
+//		july 24, 2006 :  Header file for the Electrometers exceptions
+//					     (avaiable for all models Keithley and Novelec)
+//
+//
+//		author : X.Elattaoui
+//
+//		ElectrometerException.cpp: interface for the electrometer exceptions class.
+//
+//******************************************************************************************
+
+#ifndef _ELECTROMETER_EXCEPTION
+#define _ELECTROMETER_EXCEPTION
+
+#include <string>
+#include <vector>
+
+namespace electrometer{
+
+// ============================================================================
+// Electrometer Errors severities
+// ============================================================================
+typedef enum {
+  WARN, 
+  ERR, 
+  PANIC
+} ErrorSeverity;
+
+// ============================================================================
+//! The Electrometer exception abstraction base class.
+// ============================================================================
+//!  
+//! detailed description to be written
+//! 
+// ============================================================================
+class Error
+{
+public:
+
+  /**
+   * Initialization. 
+   */
+  Error (void);
+
+  /**
+   * Initialization. 
+   */
+  Error (const char *reason,
+				 const char *desc,
+				 const char *origin,
+	       int severity = electrometer::ERR);
+  
+
+  /**
+   * Initialization. 
+   */
+  Error (const std::string& reason,
+				 const std::string& desc,
+				 const std::string& origin, 
+	       int severity = electrometer::ERR);
+
+  /**
+   * Copy constructor. 
+   */
+  Error (const Error& src);
+
+  /**
+   * Error details: code 
+   */
+  virtual ~Error (void);
+
+  /**
+   * operator= 
+   */
+  Error& operator= (const Error& _src);
+
+  /**
+   * Error details: reason 
+   */
+  std::string reason;
+
+  /**
+   * Error details: description 
+   */
+  std::string desc;
+
+  /**
+   * Error details: origin 
+   */
+  std::string origin;
+
+  /**
+   * Error details: severity 
+   */
+  int severity;
+
+};
+
+// ============================================================================
+// The Electrometer error list.
+// ============================================================================
+typedef std::vector<Error> ErrorList;
+
+
+// ============================================================================
+//! The Electrometer exception abstraction base class.
+// ============================================================================
+//!  
+//! detailed description to be written
+//! 
+// ============================================================================
+class  ElectrometerException
+{
+public:
+
+  /**
+   * Initialization. 
+   */
+  ElectrometerException (void);
+
+  /**
+   * Initialization. 
+   */
+  ElectrometerException (const char *reason,
+					   const char *desc,
+					   const char *origin,
+		   int severity = electrometer::ERR);
+  
+  /**
+   * Initialization. 
+   */
+  ElectrometerException (const std::string& reason,
+					   const std::string& desc,
+					   const std::string& origin, 
+		   int severity = electrometer::ERR);
+
+  /**
+   * Initialization. 
+   */
+  ElectrometerException (const Error& error);
+
+
+  /**
+   * Copy constructor. 
+   */
+  ElectrometerException (const ElectrometerException& src);
+
+  /**
+   * operator=
+   */
+  ElectrometerException& operator= (const ElectrometerException& _src);
+
+  /**
+   * Release resources.
+   */
+  virtual ~ElectrometerException (void);
+
+  /**
+   * Push the specified error into the errors list.
+   */
+  void push_error (const char *reason,
+						 const char *desc,
+						       const char *origin, 
+			       int severity = electrometer::ERR);
+
+  /**
+   * Push the specified error into the errors list.
+   */
+  void push_error (const std::string& reason,
+		   const std::string& desc,
+		   const std::string& origin, 
+		   int severity = electrometer::ERR);
+
+  /**
+   * Push the specified error into the errors list.
+   */
+  void push_error (const Error& error);
+
+  /**
+   * The errors list
+   */
+   ErrorList errors;
+  
+
+};
+
+} // end namspace Electrometer
+#endif //_ELECTROMETER_EXCEPTION
+
+
diff --git a/include/ElectrometerProtocol.h b/include/ElectrometerProtocol.h
new file mode 100644
index 0000000000000000000000000000000000000000..358b3d1c24c2b77aa7c466b4aa823f51cdb19dc7
--- /dev/null
+++ b/include/ElectrometerProtocol.h
@@ -0,0 +1,152 @@
+// ============================================================================
+//
+// = CONTEXT
+//    TANGO Project - Electrometer Support Library
+//
+// = FILENAME
+//    ElectrometerProtocol.h
+//
+// = AUTHOR
+//    X. Elattaoui
+//
+//
+// $Author: stephle $
+//
+// $Revision: 1.1 $
+//
+// $Log: not supported by cvs2svn $
+//
+// ============================================================================
+
+#ifndef _ELECTROMETER_PROTOCOL_H_
+#define _ELECTROMETER_PROTOCOL_H_
+
+#include <vector>
+#include "CommunicationLink.h"
+
+/**
+ *  \addtogroup Standard Commands Protocol 
+ *  @{
+ */
+
+/**
+ *  \brief This abstract class manage the Electrometers Commands Protocol
+ *
+ *  \author Xavier Elattaoui
+ *  \date 11-2006
+ */
+
+class ElectrometerProtocol
+{
+public:
+
+	/**
+	*  \brief Initialization. 
+	*/
+	ElectrometerProtocol ();
+	
+	/**
+	*  \brief Release resources.
+	*/
+	virtual ~ElectrometerProtocol ();
+
+	/**
+	*  \brief Common Electrometer Functions.
+	*/
+	virtual void set_range (std::string val)= 0;
+	virtual void reset			(void) = 0; 
+	virtual void local			(void); 
+	virtual void remote			(void); 
+
+	/**
+	*  \brief Common Electrometer : getters & setters.
+	*/
+	virtual std::string get_value(void)		= 0;
+	virtual std::string get_mode (void)		= 0;
+	virtual std::string get_range(void)		= 0;
+	virtual std::vector<double> get_integratedValue		(void);
+	virtual std::vector<double> get_fetchValue		    (void);
+	virtual std::string readStatusByteRegister  (void); //- used to know if the integration cycle is done! 
+	virtual bool get_overloadRangeState         (void); //- used to know if the device range is overloaded! 
+
+	/**
+	*  \brief Common Get Raw Electrometer Status.
+	*/
+	virtual std::string get_raw_status (void) = 0;
+	
+	/**
+	*  \brief Electrometer : Keithley protocol dependent commands.
+	*/
+	virtual void init_keithley		(void); 
+	virtual void set_knplc			(std::string nPLC);
+	virtual void set_triggercount	(std::string trigcounts);
+	virtual void set_triggerdelay	(std::string trigdelay);
+	virtual void set_triggerdelayAuto (std::string trigdelAuto);
+	virtual void set_averagecount     (std::string avercounts);
+	virtual void set_averagecontrol   (std::string averctrl);
+	virtual std::string get_knplc			(void);
+	virtual std::string get_triggercount	(void);
+	virtual std::string get_triggerdelay	(void);
+	virtual std::string get_triggerdelayAuto(void);
+	virtual std::string get_averagecount	(void);
+	virtual std::string get_averagecontrol	(void);
+	virtual void clear_registers	(void); 
+	virtual void averageStateON		(void); 
+	virtual void averageStateOFF	(void); 
+	virtual void setAmperMeterMode	(void);
+	virtual void setVoltMeterMode	(void);
+	virtual void setOhmMeterMode	(void);
+	virtual void setCoulombMeterMode(void);
+	virtual void autoRange_on		(void);
+	virtual void autoRange_off		(void);
+	
+	virtual void zero_check_on		(void);
+	virtual void zero_check_off		(void);
+	virtual void zero_correct_on	(void);
+	virtual void zero_correct_off	(void);
+	virtual void auto_zero_on		(void);
+	virtual void auto_zero_off		(void);
+
+	/**
+	*  \brief Electrometer : Buffer config
+	*/
+  virtual void set_buffer_size		(void);
+  virtual void clear_buffer		    (void);
+  virtual void store_raw_input		(void);
+  virtual void start_storing		(void);
+  virtual void enable_SRQBufferFull	(void);
+  virtual void disable_SRQBufferFull(void);
+
+
+	/**
+	*  \brief Electrometer : Novelec protocol dependent commands.
+	*/
+	virtual void switch_MCCE2_ON		    (void);
+	virtual void switch_MCCE2_OFF		    (void);
+	virtual void unable_zeroVF_func		    (void);
+	virtual void unable_offset_zeroV1_func	(void);
+	virtual void unable_leakage_zeroV2_func	(void);
+	virtual void unable_test_func	        (void);
+	virtual void unable_measure_func        (void);
+	virtual std::string get_polarity	    (void);
+	virtual std::string get_frequency	    (void);
+	virtual std::string get_gain		    (void);
+	virtual void set_polarity		(std::string pola);
+	virtual void set_frequency		(std::string freq);
+	virtual void set_gain			(std::string gain);
+
+
+
+protected :
+	short		    _range;
+	std::string		_mode;
+	CommunicationLink* _communication_link;
+
+private :
+
+
+};
+
+/** @} */	//- end addtogroup
+
+#endif // _ELECTROMETER_PROTOCOL_H_
diff --git a/include/KeithleyDDCProtocol.h b/include/KeithleyDDCProtocol.h
new file mode 100644
index 0000000000000000000000000000000000000000..18843d50d1c5bce71205319b1e48390105ec0fe0
--- /dev/null
+++ b/include/KeithleyDDCProtocol.h
@@ -0,0 +1,114 @@
+// ============================================================================
+//
+// = CONTEXT
+//    TANGO Project - DDC Keithley Electrometer Support Library
+//		( DDC for Device Dependent Command )
+// = FILENAME
+//    KeithleyDDCProtocol.h
+//
+// = AUTHOR
+//    X. Elattaoui
+//
+// ============================================================================
+
+#ifndef _KEITHLEY_DDC_PROTOCOL_H_
+#define _KEITHLEY_DDC_PROTOCOL_H_
+
+#include "ElectrometerProtocol.h"
+#include "ElectrometerException.h"
+
+/**
+ *  \addtogroup Standard Commands Protocol 
+ *  @{
+ */
+
+/**
+ *  \brief This class manage the Keithley DDC Commands Protocol
+ *
+ *  \author Xavier Elattaoui
+ *  \date 11-2006
+ */
+
+class KeithleyDDCProtocol : public ElectrometerProtocol
+{
+public:
+
+	/**
+	*  \brief Initialization. 
+	*/
+	KeithleyDDCProtocol (std::string& gpib_device_name);
+	
+	/**
+	*  \brief Release resources.
+	*/
+	virtual ~KeithleyDDCProtocol (void);
+
+	/**
+	*  \brief Electrometer Functions.
+	*/
+	void set_range			(std::string value);
+	void autoRange_on		(void);
+	void autoRange_off		(void);
+	void autoRange_OFF_forK486_487 (void);
+	void autoRange_OFF_forK617_6512(void);
+
+	void zero_check_on		(void);
+	void zero_check_off		(void);
+	void zero_correct_on	(void);
+	void zero_correct_off	(void);
+	void auto_zero_on		(void);
+	void auto_zero_off		(void);
+
+	void reset				(void);
+//	void local				(void); // To be implemented in future library versions
+//	void remote				(void);
+	
+	/**
+	*  \brief Electrometer : cmd to get electrometer data.
+	*/
+	std::string get_value(void);
+
+	/**
+	*  \brief Electrometer Mode.
+	*/
+	void setAmperMeterMode	(void);
+	void setAmperMeterMode_forK487 (void);
+	void setVoltMeterMode	(void);
+	void setOhmMeterMode	(void);
+	void setCoulombMeterMode(void);
+	void clear_registers	(void);
+
+	/**
+	*  \brief Get Raw Electrometer Status.
+	*/
+	std::string get_raw_status (void) ;
+
+	/**
+	*  \brief Electrometer Mode : getters and setters.
+	*/
+	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! 
+
+		/*	TODO : for next PicoLib evolution
+	//- CMD B
+//	virtual void reading_mode (void);
+	virtual void reading_source (void);
+	//- CMD Q
+	virtual void data_store (void);
+	//- CMD G
+	virtual void data_format (void);
+	//- = REL
+	virtual void baseline_suppression_ON(void);
+	virtual void baseline_suppression_OFF(void);
+	*/
+protected :
+
+private :
+
+  bool _is_overloaded;
+};
+
+/** @} */	//- end addtogroup
+
+#endif // _KEITHLEY_DDC_PROTOCOL_H_
diff --git a/include/KeithleySCPIProtocol.h b/include/KeithleySCPIProtocol.h
new file mode 100644
index 0000000000000000000000000000000000000000..76ac51adeefca2fb2a8d69ca3539f6609c47c5fa
--- /dev/null
+++ b/include/KeithleySCPIProtocol.h
@@ -0,0 +1,138 @@
+// ============================================================================
+//
+// = CONTEXT
+//    TANGO Project - SCPI Keithley Electrometer Support Library
+//
+// = FILENAME
+//    KeithleySCPIProtocol.h
+//
+// = AUTHOR
+//    X. Elattaoui
+//
+// ============================================================================
+
+#ifndef _KEITHLEY_SCPI_PROTOCOL_H_
+#define _KEITHLEY_SCPI_PROTOCOL_H_
+
+#include <vector>
+#include "ElectrometerProtocol.h"
+#include "ElectrometerException.h"
+
+/**
+ *  \addtogroup Standard Commands Protocol 
+ *  @{
+ */
+
+/**
+ *  \brief This class manage the Keithley SCPI Commands Protocol
+ *
+ *  \author Xavier Elattaoui
+ *  \date 11-2006
+ */
+
+class KeithleySCPIProtocol : public ElectrometerProtocol
+{
+public:
+
+	/**
+	*  \brief Initialization. 
+	*/
+	KeithleySCPIProtocol (std::string& gpib_device_name);
+	
+	/**
+	*  \brief Release resources.
+	*/
+	virtual ~KeithleySCPIProtocol (void);
+
+	/**
+	*  \brief Electrometer Functions.
+	*/
+	void set_range			  (std::string value) ;
+	void autoRange_on		  (void);
+	void autoRange_off		(void);
+
+	void zero_check_on		(void);
+	void zero_check_off		(void);
+	void zero_correct_on	(void);
+	void zero_correct_off	(void);
+	void zero_correct_state_on (void);
+	void zero_correct_state_off(void);
+	void auto_zero_on		  (void);
+	void auto_zero_off		(void);
+	void reset				    (void);
+  void clear_registers	(void);
+
+	/**
+	*  \brief Electrometer Mode.
+	*/
+	void setAmperMeterMode	(void);
+	void setVoltMeterMode	  (void);
+	void setOhmMeterMode	  (void);
+	void setCoulombMeterMode(void);
+
+	/**
+	*  \brief Electrometer : cmd to get electrometer data.
+	*/
+	std::string get_value (void);
+	std::vector<double> get_integratedValue (void);
+	std::vector<double> get_fetchValue      (void);
+  std::string readStatusByteRegister (void); //- used to know if the integration cycle is done! 
+	
+  void init_keithley			(void); 
+	/**
+	*  \brief Electrometer : Acquisition config
+	*/
+  void set_knplc				  (std::string nPLC);
+	void set_triggercount		(std::string trigcounts);
+	void set_triggerdelay		(std::string trigdelay);
+	void set_triggerdelayAuto	(std::string trigdelAuto);
+	void set_averagecount		  (std::string avercounts);
+	void set_averagecontrol		(std::string averctrl);
+	void averageStateON			  (void);
+	void averageStateOFF		  (void);
+	std::string get_knplc			(void);
+	std::string get_triggercount	(void);
+	std::string get_triggerdelay	(void);
+	std::string get_triggerdelayAuto(void);
+	std::string get_averagecount	  (void);
+	std::string get_averagecontrol	(void);
+	/**
+	*  \brief Electrometer : Buffer config
+	*/
+  void set_buffer_size		(void);
+  void clear_buffer		    (void);
+  void store_raw_input		(void);
+  void start_storing		  (void);
+  void enable_SRQBufferFull		(void);
+  void disable_SRQBufferFull	(void);
+
+
+	/**
+	*  \brief Get Raw Electrometer Status.
+	*/
+	std::string get_raw_status (void) ;
+
+	/**
+	*  \brief Electrometer : getter and setter.
+	*/
+	std::string get_mode	(void);
+	std::string get_range	(void);
+
+	/**
+	*
+	*/
+	void set_isDiffSuportedMode	(bool supportDiffMode) 
+		{ isDiffSuportedMode = supportDiffMode; };
+
+protected :
+  std::vector<double> buildDataList (std::string listToParse);
+private :
+	bool isDiffSuportedMode;
+  std::string trigCountStr;
+
+
+};
+
+/** @} */	//- end addtogroup
+
+#endif // _KEITHLEY_SCPI_PROTOCOL_H_
diff --git a/include/Keithley_485.h b/include/Keithley_485.h
new file mode 100644
index 0000000000000000000000000000000000000000..cf0adee896c9c67363d761704a4aac5e26055227
--- /dev/null
+++ b/include/Keithley_485.h
@@ -0,0 +1,64 @@
+// ============================================================================
+//
+// = CONTEXT
+//    TANGO Project - Keithley Electrometer Support Library
+//
+// = FILENAME
+//    Keithley_485.h
+//
+// = AUTHOR
+//    X. Elattaoui
+//
+// ============================================================================
+
+#ifndef _KEITHLEY_485_H_
+#define _KEITHLEY_485_H_
+
+#include "AbstractElectrometerClass.h"
+
+/**
+ *  \addtogroup DDC Keithley 
+ *  @{
+ */
+
+/**
+ *  \brief This class manage 485 Keithley type
+ *
+ *  \author Xavier Elattaoui
+ *  \date 11-2006
+ */
+
+class Keithley_485 : public AbstractElectrometerClass
+{
+public:
+
+	/**
+	*  \brief Initialization. 
+	*/
+	Keithley_485 (std::string& comLink_device_name);
+	
+	/**
+	*  \brief Release resources.
+	*/
+	virtual ~Keithley_485 (void);
+
+	/**
+	*  \brief Device dependent commands.
+	*/
+	void range_up		(void);
+	void range_down		(void);
+
+	/**
+	*  \brief getter(s) & setter(s)	
+	*/
+	std::string get_ElectroMeterRange(void);
+	
+	/**
+	*  \brief Electrometer Status.
+	*/
+	std::string electrometer_status (void);
+};
+
+/** @} */	//- end addtogroup
+
+#endif // _KEITHLEY_485_H_
diff --git a/include/Keithley_486.h b/include/Keithley_486.h
new file mode 100644
index 0000000000000000000000000000000000000000..ec9565e12ff1014ce2b287336b4fa32122eefb4e
--- /dev/null
+++ b/include/Keithley_486.h
@@ -0,0 +1,70 @@
+// ============================================================================
+//
+// = CONTEXT
+//    TANGO Project - DDC Keithley Electrometer Support Library
+//
+// = FILENAME
+//    Keithley_486.h
+//
+// = AUTHOR
+//    X. Elattaoui
+//
+// ============================================================================
+
+#ifndef _KEITHLEY_486_H_
+#define _KEITHLEY_486_H_
+
+#include "AbstractElectrometerClass.h"
+
+/**
+ *  \addtogroup DDC Keithley
+ *  @{
+ */
+
+/**
+ *  \brief This class manage 486 Keithley type
+ *
+ *  \author Xavier Elattaoui
+ *  \date 11-2006
+ */
+
+class Keithley_486 : public AbstractElectrometerClass
+{
+public:
+
+	/**
+	*  \brief Initialization. 
+	*/
+	Keithley_486 (std::string& comLink_device_name);
+	
+	/**
+	*  \brief Release resources.
+	*/
+	virtual ~Keithley_486 (void);
+
+	/**
+	*  \brief Device dependent commands.
+	*/
+	void range_up (void);
+	void range_down (void);
+	void autoRange_off (void);
+	
+	/**
+	*  \brief getter(s) & setter(s)	
+	*/
+	std::string get_ElectroMeterRange(void);
+	
+	/**
+	*  \brief Electrometer status.
+	*/
+	std::string electrometer_status (void);
+
+	//-	TODO :
+	//	DDC_Filters*	_ddcFilters;
+	//	DDC_Triggers*	_ddcTriggers;
+
+};
+
+/** @} */	//- end addtogroup
+
+#endif // _KEITHLEY_486_H_
diff --git a/include/Keithley_487.h b/include/Keithley_487.h
new file mode 100644
index 0000000000000000000000000000000000000000..75b18aa6b0590451b6444d28031b9441cd879bf7
--- /dev/null
+++ b/include/Keithley_487.h
@@ -0,0 +1,76 @@
+// ============================================================================
+//
+// = CONTEXT
+//    TANGO Project - Keithley Electrometer Support Library
+//
+// = FILENAME
+//    Keithley_487.h
+//
+// = AUTHOR
+//    X. Elattaoui
+//
+// ============================================================================
+
+#ifndef _KEITHLEY_487_H_
+#define _KEITHLEY_487_H_
+
+#include "AbstractElectrometerClass.h"
+
+/**
+ *  \addtogroup DDC Keithley
+ *  @{
+ */
+
+/**
+ *  \brief This class manage 487 Keithley type
+ *
+ *  \author Xavier Elattaoui
+ *  \date 11-2006
+ */
+
+class Keithley_487 : public AbstractElectrometerClass
+{
+public:
+
+	/**
+	*  \brief Initialization. 
+	*/
+	Keithley_487 (std::string& comLink_device_name);
+	
+	/**
+	*  \brief Release resources.
+	*/
+	virtual ~Keithley_487 (void);
+
+	/**
+	*  \brief Electrometer methods.
+	*/
+	void range_up (void);
+	void range_down (void);
+	void autoRange_off (void);
+	/**
+	*  \brief Electrometer Function(s).
+	*/
+	void setAmperMeterMode (void);
+
+	/**
+	*  \brief getter(s) & setter(s)	
+	*/
+	std::string get_ElectroMeterMode(void);
+	std::string get_ElectroMeterRange(void);
+	
+	/**
+	*  \brief Electrometer status.
+	*/
+	std::string electrometer_status (void);
+
+	
+	//-	TODO :
+	//	DDC_Filters*	_ddcFilters;
+	//	DDC_Triggers*	_ddcTriggers;
+	
+};
+
+/** @} */	//- end addtogroup
+
+#endif // _KEITHLEY_487_H_
diff --git a/include/Keithley_617.h b/include/Keithley_617.h
new file mode 100644
index 0000000000000000000000000000000000000000..2fe43143b7387de4d3dd4a3725815ad6e493aa0a
--- /dev/null
+++ b/include/Keithley_617.h
@@ -0,0 +1,80 @@
+// ============================================================================
+//
+// = CONTEXT
+//    TANGO Project - DDC Keithley Electrometer Support Library
+//
+// = FILENAME
+//    Keithley_617.h
+//
+// = AUTHOR
+//    X. Elattaoui
+//
+// ============================================================================
+
+#ifndef _KEITHLEY_617_H_
+#define _KEITHLEY_617_H_
+
+#include "AbstractElectrometerClass.h"
+
+/**
+ *  \addtogroup DDC Keithley
+ *  @{
+ */
+
+/**
+ *  \brief This class manage 617 Keithley type
+ *
+ *  \author Xavier Elattaoui
+ *  \date 11-2006
+ */
+
+class Keithley_617 : public AbstractElectrometerClass
+{
+public:
+
+	/**
+	*  \brief Initialization. 
+	*/
+	Keithley_617 (std::string& comLink_device_name);
+	
+	/**
+	*  \brief Release resources.
+	*/
+	virtual ~Keithley_617 (void);
+
+	/**
+	*  \brief Device dependent commands.
+	*/
+	void autoRange_off (void);
+	void range_up (void);
+	void range_down (void);
+	
+	/**
+	*  \brief Electrometer Mode.
+	*/
+	void setAmperMeterMode (void);
+	void setVoltMeterMode (void);
+	void setOhmMeterMode (void);
+	void setCoulombMeterMode (void);
+
+	/**
+	*  \brief getter(s) & setter(s)	
+	*/
+	std::string get_ElectroMeterMode (void);
+	std::string get_ElectroMeterRange(void);
+	
+	/**
+	*  \brief Electrometer status.
+	*/
+	std::string electrometer_status (void);
+
+	
+	//-	TODO :
+	//	DDC_Filters*	_ddcFilters;
+	//	DDC_Triggers*	_ddcTriggers;
+	
+};
+
+/** @} */	//- end addtogroup
+
+#endif // _KEITHLEY_617_H_
diff --git a/include/Keithley_6485.h b/include/Keithley_6485.h
new file mode 100644
index 0000000000000000000000000000000000000000..9f2ae99b45390b40221d23a1fcc406ef5b428522
--- /dev/null
+++ b/include/Keithley_6485.h
@@ -0,0 +1,61 @@
+// ============================================================================
+//
+// = CONTEXT
+//    TANGO Project - Keithley Electrometer Support Library
+//
+// = FILENAME
+//    Keithley_6485.h
+//
+// = AUTHOR
+//    X. Elattaoui
+//
+// ============================================================================
+
+#ifndef _KEITHLEY_6485_H_
+#define _KEITHLEY_6485_H_
+
+#include "AbstractElectrometerClass.h"
+
+/**
+ *  \addtogroup SCPI Keithley
+ *  @{
+ */
+
+/**
+ *  \brief This class manage 6485 Keithley type
+ *
+ *  \author Xavier Elattaoui
+ *  \date 11-2006
+ */
+
+class Keithley_6485 : public AbstractElectrometerClass
+{
+public:
+
+	/**
+	*  \brief Initialization. 
+	*/
+	Keithley_6485 (std::string& comLink_device_name);
+	
+	/**
+	*  \brief Release resources.
+	*/
+	virtual ~Keithley_6485 (void);
+
+  std::vector<double> get_integratedValue (void);
+	std::vector<double> get_fetchValue      (void);
+	/**
+	*  \brief Device dependent commands.
+	*/
+	void range_up (void);
+	void range_down (void);
+
+private:
+	//- method to obtain the range index
+	void update_range (void);
+	
+};
+
+/** @} */	//- end addtogroup
+
+#endif // _KEITHLEY_6485_H_
diff --git a/include/Keithley_6487.h b/include/Keithley_6487.h
new file mode 100644
index 0000000000000000000000000000000000000000..a56487786d2ce80f371ada36f67e8c6e631d75de
--- /dev/null
+++ b/include/Keithley_6487.h
@@ -0,0 +1,69 @@
+// ============================================================================
+//
+// = CONTEXT
+//    TANGO Project - SCPI Keithley Electrometer Support Library
+//
+// = FILENAME
+//    Keithley_6487.h
+//
+// = AUTHOR
+//    X. Elattaoui
+//
+// ============================================================================
+
+#ifndef _KEITHLEY_6487_H_
+#define _KEITHLEY_6487_H_
+
+#include "AbstractElectrometerClass.h"
+
+/**
+ *  \addtogroup SCPI Keithley
+ *  @{
+ */
+
+/**
+ *  \brief This class manage 6487 Keithley type
+ *
+ *  \author Xavier Elattaoui
+ *  \date 11-2006
+ */
+
+class Keithley_6487 : public AbstractElectrometerClass
+{
+public:
+
+	/**
+	*  \brief Initialization. 
+	*/
+	Keithley_6487 (std::string& comLink_device_name);
+	
+	/**
+	*  \brief Release resources.
+	*/
+	virtual ~Keithley_6487 (void);
+
+	/**
+	*  \brief Device dependent commands.
+	*/
+	void range_up (void);
+	void range_down (void);
+	
+  std::vector<double> get_integratedValue (void);
+	std::vector<double> get_fetchValue      (void);
+	/**
+	*  \brief Electrometer Mode.
+	*/
+	void setAmperMeterMode (void);
+
+	//-	TODO :
+	//	SCPI_Filters*	_ddcFilters;
+	//	SCPI_Triggers*	_ddcTriggers;
+private:
+	//- method to obtain the range index
+	void update_range (void);
+	
+};
+
+/** @} */	//- end addtogroup
+
+#endif // _KEITHLEY_6487_H_
diff --git a/include/Keithley_6512.h b/include/Keithley_6512.h
new file mode 100644
index 0000000000000000000000000000000000000000..394e6ef32ce7e3a13bcf4707a1ec5eab37760b4a
--- /dev/null
+++ b/include/Keithley_6512.h
@@ -0,0 +1,80 @@
+// ============================================================================
+//
+// = CONTEXT
+//    TANGO Project - DDC Keithley Electrometer Support Library
+//
+// = FILENAME
+//    Keithley_6512.h
+//
+// = AUTHOR
+//    X. Elattaoui
+//
+// ============================================================================
+
+#ifndef _KEITHLEY_6512_H_
+#define _KEITHLEY_6512_H_
+
+#include "AbstractElectrometerClass.h"
+
+/**
+ *  \addtogroup DDC Keithley
+ *  @{
+ */
+
+/**
+ *  \brief This class manage 6512 Keithley type
+ *
+ *  \author Xavier Elattaoui
+ *  \date 11-2006
+ */
+
+class Keithley_6512 : public AbstractElectrometerClass
+{
+public:
+
+	/**
+	*  \brief Initialization. 
+	*/
+	Keithley_6512 (std::string& comLink_device_name);
+	
+	/**
+	*  \brief Release resources.
+	*/
+	virtual ~Keithley_6512 (void);
+
+	/**
+	*  \brief Device dependent commands.
+	*/
+	void autoRange_off (void);
+	void range_up (void);
+	void range_down (void);
+	
+	/**
+	*  \brief Electrometer Mode.
+	*/
+	void setAmperMeterMode (void);
+	void setVoltMeterMode (void);
+	void setOhmMeterMode (void);
+	void setCoulombMeterMode (void);
+
+	/**
+	*  \brief getter(s) & setter(s)	
+	*/
+	std::string get_ElectroMeterMode (void);
+	std::string get_ElectroMeterRange(void);
+	
+	/**
+	*  \brief Electrometer status.
+	*/
+	std::string electrometer_status (void);
+
+	
+	//-	TODO :
+	//	DDC_Filters*	_ddcFilters;
+	//	DDC_Triggers*	_ddcTriggers;
+	
+};
+
+/** @} */	//- end addtogroup
+
+#endif // _KEITHLEY_6512_H_
diff --git a/include/Keithley_6514.h b/include/Keithley_6514.h
new file mode 100644
index 0000000000000000000000000000000000000000..e2e3c0d1b5444702d233d0267d12878c89536df7
--- /dev/null
+++ b/include/Keithley_6514.h
@@ -0,0 +1,73 @@
+// ============================================================================
+//
+// = CONTEXT
+//    TANGO Project - SCPI Keithley Electrometer Support Library
+//
+// = FILENAME
+//    Keithley_6514.h
+//
+// = AUTHOR
+//    X. Elattaoui
+//
+// ============================================================================
+
+#ifndef _Keithley_6514_H_
+#define _Keithley_6514_H_
+
+#include "AbstractElectrometerClass.h"
+
+/**
+ *  \addtogroup SCPI Keithley
+ *  @{
+ */
+
+/**
+ *  \brief This class manage 6514 Keithley type
+ *
+ *  \author Xavier Elattaoui
+ *  \date 11-2006
+ */
+
+class Keithley_6514 : public AbstractElectrometerClass
+{
+public:
+
+	/**
+	*  \brief Initialization. 
+	*/
+	Keithley_6514 (std::string& comLink_device_name);
+	
+	/**
+	*  \brief Release resources.
+	*/
+	virtual ~Keithley_6514 (void);
+
+	/**
+	*  \brief Device dependent commands.
+	*/
+	void range_up (void);
+	void range_down (void);
+	
+  std::vector<double> get_integratedValue (void);
+	std::vector<double> get_fetchValue      (void);
+	/**
+	*  \brief Electrometer Mode.
+	*/
+	void setAmperMeterMode (void);
+	void setVoltMeterMode (void);
+	void setOhmMeterMode (void);
+	void setCoulombMeterMode (void);
+
+	//-	TODO :
+	//	SCPI_Filters*	_ddcFilters;
+	//	SCPI_Triggers*	_ddcTriggers;
+private:
+	//- method to obtain the range index
+	void update_range (void);
+	std::string _kmode;
+	
+};
+
+/** @} */	//- end addtogroup
+
+#endif // _Keithley_6514_H_
diff --git a/include/N_PhotoConducteur.h b/include/N_PhotoConducteur.h
new file mode 100644
index 0000000000000000000000000000000000000000..0871b40beab698b8bb9b2bb567689036580ce01c
--- /dev/null
+++ b/include/N_PhotoConducteur.h
@@ -0,0 +1,63 @@
+// ============================================================================
+//
+// = CONTEXT
+//    TANGO Project - Novelec Electrometer Support Library
+//
+// = FILENAME
+//    N_PhotoConducteur.h
+//
+// = AUTHOR
+//    X. Elattaoui
+//
+// ============================================================================
+
+#ifndef _NOVELEC_PHOTOCONDUCTEUR_H_
+#define _NOVELEC_PHOTOCONDUCTEUR_H_
+
+#include "Novelec_MCCE2.h"
+
+/**
+ *  \addtogroup Novelec
+ *  @{
+ */
+
+/**
+ *  \brief This class manage Novelec PhotoConductor types
+ *
+ *  \author Xavier Elattaoui
+ *  \date 11-2006
+ */
+
+class N_PhotoConducteur : public Novelec_MCCE2
+{
+public:
+
+	/**
+	*  \brief Initialization. 
+	*/
+	N_PhotoConducteur (std::string& comLink_device_name, short channel_address, short electroType);
+	
+	/**
+	*  \brief Release resources.
+	*/
+	virtual ~N_PhotoConducteur	(void);
+
+	/**
+	*  \brief device dependent commands.
+	*/
+	void	range_up			(void);
+	void	range_down			(void);
+	
+	/**
+	*  \brief getters and setters.
+	*/
+	std::string get_ElectroMeterGain	(void);
+	void	set_ElectroMeterGain		(std::string);
+
+protected :
+
+};
+
+/** @} */	//- end addtogroup
+
+#endif // _NOVELEC_PHOTOCONDUCTEUR_H_
diff --git a/include/N_PhotoVoltaique.h b/include/N_PhotoVoltaique.h
new file mode 100644
index 0000000000000000000000000000000000000000..d98d1528c9ff0a49e6c0e2aca3d39be1dce55ec2
--- /dev/null
+++ b/include/N_PhotoVoltaique.h
@@ -0,0 +1,68 @@
+// ============================================================================
+//
+// = CONTEXT
+//    TANGO Project - Novelec Electrometer Support Library
+//
+// = FILENAME
+//    N_PhotoVoltaique.h
+//
+// = AUTHOR
+//    X. Elattaoui
+//
+// ============================================================================
+
+#ifndef _NOVELEC_PHOTOVOLTAIQUE_H_
+#define _NOVELEC_PHOTOVOLTAIQUE_H_
+
+#include "Novelec_MCCE2.h"
+
+/**
+ *  \addtogroup Novelec
+ *  @{
+ */
+
+/**
+ *  \brief This class manage Novelec PhotoVoltaique types
+ *
+ *  \author Xavier Elattaoui
+ *  \date 11-2006
+ */
+
+class N_PhotoVoltaique : public Novelec_MCCE2
+{
+public:
+
+	/**
+	*  \brief Initialization. 
+	*/
+	N_PhotoVoltaique (std::string comLink_device_name, short channel_address, short electroType);
+	
+	/**
+	*  \brief Release resources.
+	*/
+	virtual ~N_PhotoVoltaique (void);
+
+	/**
+	*  \brief device dependent commands.
+	*/
+	void range_up	(void);
+	void range_down (void);
+	
+	/**
+	*  \brief getters and setters.
+	*/
+	std::string get_ElectroMeterFrequency(void);
+	void set_ElectroMeterFrequency	(std::string);
+
+	/**
+	* Electrometer Status.
+	*/
+//	std::string electrometer_status		(void);
+
+protected :
+
+};
+
+/** @} */	//- end addtogroup
+
+#endif // _NOVELEC_PHOTOVOLTAIQUE_H_
diff --git a/include/NovelecProtocol.h b/include/NovelecProtocol.h
new file mode 100644
index 0000000000000000000000000000000000000000..24359ad153b94e2c467f7e1576b346b5a3d419c3
--- /dev/null
+++ b/include/NovelecProtocol.h
@@ -0,0 +1,113 @@
+// ============================================================================
+//
+// = CONTEXT
+//    TANGO Project - Novelec Electrometer Support Library
+//		( Supported type : MCCE-2 )
+// = FILENAME
+//    NovelecProtocol.h
+//
+// = AUTHOR
+//    X. Elattaoui
+//
+// ============================================================================
+
+#ifndef _NOVELEC_MCCE2_PROTOCOL_H_
+#define _NOVELEC_MCCE2_PROTOCOL_H_
+
+#include "ElectrometerProtocol.h"
+#include "ElectrometerException.h"
+
+/**
+ *  \addtogroup Standard Commands Protocol 
+ *  @{
+ */
+
+/**
+ *  \brief This class manage the Novelec Commands Protocol
+ *
+ *  \author Xavier Elattaoui
+ *  \date 11-2006
+ */
+
+class NovelecProtocol : public ElectrometerProtocol
+{
+public:
+
+	/**
+	*  \brief Initialization. 
+	*/
+	NovelecProtocol (std::string& gpib_device_name, short channel_address, short electroTypeNumber);
+	
+	/**
+	*  \brief Release resources.
+	*/
+	virtual ~NovelecProtocol(void);
+
+	/**
+	*  \brief Electrometer Functions.
+	*/
+	void set_range	(std::string value);
+	std::string get_range		(void);
+
+	void reset (void);
+	void local (void);
+	void remote(void);
+	void clear_registers(void);			//- clear all errors
+
+	/**
+	*  \brief Electrometer : cmd to get electrometer data.
+	*/
+	std::string get_value		(void);
+
+	/**
+	*  \brief Electrometer Mode : Novelec SUPPORTS these commands
+	*/
+	void switch_MCCE2_ON		(void);
+	void switch_MCCE2_OFF		(void);
+	void unable_zeroVF_func		(void);
+	void unable_offset_zeroV1_func		(void);
+	void unable_leakage_zeroV2_func		(void);
+	void unable_test_func		(void);
+	void unable_measure_func	(void);
+
+	/**
+	*  \brief Get Raw Electrometer Status.
+	*/
+	std::string get_raw_status (void) ;
+	/**
+	*  \brief Electrometer Mode : getters and setters.
+	*/
+	std::string get_mode		(void);
+	std::string get_polarity	(void);
+	std::string get_frequency	(void);
+	std::string get_gain		(void);
+	std::string get_errors		(void);
+	std::string get_electrotype	(void);
+	void set_polarity	(std::string pola);
+	void set_frequency	(std::string freq);
+	void set_gain		(std::string gain);
+
+protected :
+	short _devAdd;								//- novelec active channel address
+	short _novType;								//- novelec type number (1 to 5)
+	short _rangeParameterNum;					//-	command number for the range 
+	std::string _function;						//- the novelec mode
+	
+	//- check if the cmd is understood
+	void check_command	(std::string resp_to_check);
+	//- check if the cmd is understood and extract data from the response
+	//- To do so, it check if the command number sent is in the received response (just after AWR cmdNum)
+	//- reply format : "devAddr AWR cmdNum = response " exp : response status "01 AWR 01 = value"
+	std::string check_and_extract_data	(std::string resp_to_check, short command_sent);
+
+private :
+	//- if true, parameters cannot be changed !
+	bool	_is_measure_mode_on;
+	//- if true, explicite response mode is enabled
+	bool	_is_explicite_resp_enabled;
+
+};
+
+/** @} */	//- end addtogroup
+
+#endif // _NOVELEC_MCCE2_PROTOCOL_H_
diff --git a/include/Novelec_MCCE2.h b/include/Novelec_MCCE2.h
new file mode 100644
index 0000000000000000000000000000000000000000..6cecc1226e1b3a8977610f76cdf1152a081738c6
--- /dev/null
+++ b/include/Novelec_MCCE2.h
@@ -0,0 +1,79 @@
+// ============================================================================
+//
+// = CONTEXT
+//    TANGO Project - Novelec Electrometer Support Library
+//
+// = FILENAME
+//    Novelec_MCCE2.h
+//
+// = AUTHOR
+//    X. Elattaoui
+//
+// ============================================================================
+
+#ifndef _NOVELEC_MCCE2_H_
+#define _NOVELEC_MCCE2_H_
+
+#include "AbstractElectrometerClass.h"
+
+/**
+ *  \addtogroup Novelec
+ *  @{
+ */
+
+/**
+ *  \brief This class manage Novelec MCCE-2 type
+ *
+ *  \author Xavier Elattaoui
+ *  \date 11-2006
+ */
+
+class Novelec_MCCE2 : public AbstractElectrometerClass
+{
+public:
+
+	/**
+	*  \brief Initialization. 
+	*/
+	Novelec_MCCE2 (std::string& comLink_device_name, short channel_address, short electroType);
+	
+	/**
+	*  \brief Release resources.
+	*/
+	virtual ~Novelec_MCCE2 (void);
+
+	std::string get_ElectroMeterPolarity(void);
+	void set_ElectroMeterPolarity	(std::string);
+
+	/**
+	*  \brief Electrometer Functions : mode for novelec types.
+	*/
+	void set_Zero_VonF_function			(void);
+	void set_Offset_ZeroV1_function		(void);
+	void set_Leakage_ZeroV2_function	(void);
+	void set_Test_function				(void);
+	void set_Measure_function			(void);
+
+	/**
+	*  \brief Commands to start/stop the data acquisition
+	*
+	* 
+	*	This emulate the MCCE2 key ON/OFF 
+	*	(all parameters must be set before switching ON the MCCE2)
+	*/
+	void mcce_on	(void);
+	void mcce_off	(void);
+
+	/**
+	*  \brief Electrometer Status.
+	*/
+	std::string electrometer_status		(void);
+
+protected :
+	short _rangeLimit;		//- define the range limit for each novelec type
+
+};
+
+/** @} */	//- end addtogroup
+
+#endif // _NOVELEC_MCCE2_H_
diff --git a/include/TangoGpibLink.h b/include/TangoGpibLink.h
new file mode 100644
index 0000000000000000000000000000000000000000..d03a03131c94d1992dc3dd5f07518f75937e16bb
--- /dev/null
+++ b/include/TangoGpibLink.h
@@ -0,0 +1,88 @@
+// ============================================================================
+//
+// = CONTEXT
+//    TANGO Project - Keithley Electrometer Support Library
+//
+// = FILENAME
+//    TangoGpibLink.h
+//
+// = AUTHOR
+//    X. Elattaoui
+//
+// ============================================================================
+
+#ifndef _TANGO_GPIB_LINK_H_
+#define _TANGO_GPIB_LINK_H_
+
+// ============================================================================
+// DEPENDENCIES
+// ============================================================================
+#include <tango.h>
+#include <DeviceProxyHelper.h>
+#include "CommunicationLink.h"
+
+/**
+ *  \addtogroup Communication Management
+ *  @{
+ */
+
+/**
+ *  \brief This class manage the GPIB communication bus
+ *
+ *  \author Xavier Elattaoui
+ *  \date 11-2006
+ */
+
+class TangoGpibLink : public CommunicationLink
+{
+
+public :
+	/**
+	* Initialization. 
+	*/
+	TangoGpibLink (std::string& gpib_device_name);
+	
+	/**
+	*  \brief Release resources.
+	*/
+	virtual ~TangoGpibLink (void);
+	
+	/**
+	*  \brief Send command (data) as string to hardware.
+	*
+	*  \throws Tango::DevFailed
+	*/
+	void write(std::string cmd)	 throw (Tango::DevFailed);
+	
+	/**
+	*  \brief Gets hardware response as string.
+	*
+	*  \throws Tango::DevFailed
+	*/
+	std::string read(void)		 throw (Tango::DevFailed);
+
+	/**
+	*  \brief Performs a write read operation as string.
+	*
+	*  \throws Tango::DevFailed
+	*/
+	std::string write_read(std::string cmd)  throw (Tango::DevFailed);
+
+private :
+
+	/**
+	* Creates a proxy on the specified GPIB Device.
+	*/
+	void create_gpib_proxy(void) throw (Tango::DevFailed);
+  
+	Tango::DeviceProxyHelper* _gpib_proxy;
+
+	bool _is_gpib_proxy_created;
+	
+	std::string response;
+
+};
+
+/** @} */	//- end addtogroup
+
+#endif		// _TANGO_GPIB_LINK_H_
diff --git a/include/TangoSerialLink.h b/include/TangoSerialLink.h
new file mode 100644
index 0000000000000000000000000000000000000000..826da785354403dbf789de069d60638709e5cd46
--- /dev/null
+++ b/include/TangoSerialLink.h
@@ -0,0 +1,87 @@
+// ============================================================================
+//
+// = CONTEXT
+//    TANGO Project - Keithley Electrometer Support Library
+//
+// = FILENAME
+//    TangoSerialLink.h
+//
+// = AUTHOR
+//    X. Elattaoui
+//
+// ============================================================================
+
+#ifndef _TANGO_SERIAL_LINK_H_
+#define _TANGO_SERIAL_LINK_H_
+
+// ============================================================================
+// DEPENDENCIES
+// ============================================================================
+#include <tango.h>
+#include <DeviceProxyHelper.h>
+#include "CommunicationLink.h"
+
+/**
+ *  \addtogroup Communication Management
+ *  @{
+ */
+
+/**
+ *  \brief This class manage the SERIAL communication bus
+ *
+ *  \author Xavier Elattaoui
+ *  \date 11-2006
+ */
+
+class TangoSerialLink : public CommunicationLink
+{
+	
+public :
+ 	/**
+	* \brief Initialization. 
+	*/
+	TangoSerialLink (std::string& serial_device_name);
+	
+	/**	
+	* \brief Release resources.
+	*/
+	virtual ~TangoSerialLink (void);
+	
+	/**
+	*  \brief Send command (data) as string to hardware.
+	*
+	*  \throws Tango::DevFailed
+	*/
+	void write(std::string cmd)	 throw (Tango::DevFailed);
+
+	/**
+	*  \brief Gets hardware response as string.
+	*
+	*  \throws Tango::DevFailed
+	*/
+	std::string read(void)		 throw (Tango::DevFailed);
+
+	/**
+	*  \brief Performs a write read operation as string.
+	*
+	*  \throws Tango::DevFailed
+	*/
+	std::string write_read(std::string cmd)  throw (Tango::DevFailed);
+
+private :
+	/**
+	* Creates a proxy on the specified Serial Device.
+	*/
+	void create_serial_proxy(void) throw (Tango::DevFailed);
+  
+	Tango::DeviceProxyHelper* _serial_proxy;
+
+	bool _is_serial_proxy_created;
+	
+	std::string response;
+
+};
+
+/** @} */	//- end addtogroup
+
+#endif // _TANGO_SERIAL_LINK_H_
diff --git a/src/AbstractElectrometerClass.cpp b/src/AbstractElectrometerClass.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..5ae09773868b4d56d0a4e8ddca5ba8be052acb0b
--- /dev/null
+++ b/src/AbstractElectrometerClass.cpp
@@ -0,0 +1,569 @@
+// ============================================================================
+//
+// = CONTEXT
+//    TANGO Project - Abstract Electrometer Class Support Library
+//
+// = FILENAME
+//    AbstractElectrometerClass.cpp
+//
+// = AUTHOR
+//    X. Elattaoui
+//
+// $Author: stephle $
+//
+// $Revision: 1.1 $
+//
+// $Log: not supported by cvs2svn $
+//
+// ============================================================================
+
+// ============================================================================
+// DEPENDENCIES
+// ============================================================================
+#include <iostream>
+#include <sstream>
+#include <string>
+#include <Xstring.h>
+#include "AbstractElectrometerClass.h"
+#include "ElectrometerException.h"
+
+// ============================================================================
+// AbstractElectrometerClass::AbstractElectrometerClass
+// ============================================================================
+AbstractElectrometerClass::AbstractElectrometerClass (std::string comLink_device_name)
+:	_device_proxy_name(comLink_device_name),
+	_range(0),
+	_rangeStr("NOT INITIALISED")
+{
+	std::cout << "AbstractElectrometerClass::AbstractElectrometerClass <-" << std::endl;
+
+
+	std::cout << "AbstractElectrometerClass::AbstractElectrometerClass ->" << std::endl;
+}
+
+// ============================================================================
+// AbstractElectrometerClass::~AbstractElectrometerClass
+// ============================================================================
+AbstractElectrometerClass::~AbstractElectrometerClass (void)
+{
+	std::cout << "AbstractElectrometerClass::~AbstractElectrometerClass <-" << std::endl;
+
+	if(_electrometerProtocol)
+	{
+		delete _electrometerProtocol;
+		_electrometerProtocol = 0;
+	}
+
+	std::cout << "AbstractElectrometerClass::~AbstractElectrometerClass ->" << std::endl;
+}
+
+
+// ============================================================================
+// AbstractElectrometerClass::zero_check_on
+// ============================================================================
+void AbstractElectrometerClass::zero_check_on (void) 
+{
+	//- send command
+	_electrometerProtocol->zero_check_on( );
+}
+// ============================================================================
+// AbstractElectrometerClass::zero_check_off
+// ============================================================================
+void AbstractElectrometerClass::zero_check_off (void) 
+{
+	//- send command
+	_electrometerProtocol->zero_check_off( );
+}
+
+// ============================================================================
+// AbstractElectrometerClass::zero_correct_on
+// ============================================================================
+void AbstractElectrometerClass::zero_correct_on (void) 
+{
+	//- send command
+	_electrometerProtocol->zero_correct_on( );
+}
+
+// ============================================================================
+// AbstractElectrometerClass::zero_correct_off
+// ============================================================================
+void AbstractElectrometerClass::zero_correct_off (void) 
+{
+	//- send command
+	_electrometerProtocol->zero_correct_off( );
+}
+
+// ============================================================================
+// AbstractElectrometerClass::autoRange_ON
+// ============================================================================
+void AbstractElectrometerClass::autoRange_on (void) 
+{
+	_electrometerProtocol->autoRange_on( );
+}
+
+// ============================================================================
+// AbstractElectrometerClass::autoRange_OFF
+// ============================================================================
+void AbstractElectrometerClass::autoRange_off (void) 
+{
+	_electrometerProtocol->autoRange_off( );
+}
+
+// ============================================================================
+// AbstractElectrometerClass::auto_zero_on
+// ============================================================================
+void AbstractElectrometerClass::auto_zero_on (void) 
+{
+	_electrometerProtocol->auto_zero_on( );
+}
+
+// ============================================================================
+// AbstractElectrometerClass::auto_zero_off
+// ============================================================================
+void AbstractElectrometerClass::auto_zero_off (void) 
+{
+	_electrometerProtocol->auto_zero_off( );
+}
+
+// ============================================================================
+// AbstractElectrometerClass::init_keithley
+// ============================================================================
+void AbstractElectrometerClass::init_keithley (void) 
+{
+	_electrometerProtocol->init_keithley( );
+}
+
+// ============================================================================
+// AbstractElectrometerClass::set_knplc
+// ============================================================================
+void AbstractElectrometerClass::set_knplc (std::string nplcValueStr) 
+{
+	_electrometerProtocol->set_knplc(nplcValueStr);
+}
+
+// ============================================================================
+// AbstractElectrometerClass::get_knplc
+// ============================================================================
+std::string AbstractElectrometerClass::get_knplc (void) 
+{
+	return _electrometerProtocol->get_knplc( );
+}
+
+// ============================================================================
+// AbstractElectrometerClass::set_triggercount
+// ============================================================================
+void AbstractElectrometerClass::set_triggercount (std::string trigCountStr) 
+{
+	_electrometerProtocol->set_triggercount(trigCountStr);
+}
+
+// ============================================================================
+// AbstractElectrometerClass::get_triggercount
+// ============================================================================
+std::string AbstractElectrometerClass::get_triggercount (void) 
+{
+	return _electrometerProtocol->get_triggercount( );
+}
+
+// ============================================================================
+// AbstractElectrometerClass::set_triggerdelay
+// ============================================================================
+void AbstractElectrometerClass::set_triggerdelay (std::string trigDelStr) 
+{
+	_electrometerProtocol->set_triggerdelay(trigDelStr);
+}
+
+// ============================================================================
+// AbstractElectrometerClass::get_triggerdelay
+// ============================================================================
+std::string AbstractElectrometerClass::get_triggerdelay (void) 
+{
+	return _electrometerProtocol->get_triggerdelay( );
+}
+
+// ============================================================================
+// AbstractElectrometerClass::set_triggerdelayAuto
+// ============================================================================
+void AbstractElectrometerClass::set_triggerdelayAuto (std::string trigDelAutoStr) 
+{
+	_electrometerProtocol->set_triggerdelayAuto(trigDelAutoStr);
+}
+
+// ============================================================================
+// AbstractElectrometerClass::get_triggerdelayAuto
+// ============================================================================
+std::string AbstractElectrometerClass::get_triggerdelayAuto (void) 
+{
+	return _electrometerProtocol->get_triggerdelayAuto( );
+}
+
+// ============================================================================
+// AbstractElectrometerClass::set_averagecount
+// ============================================================================
+void AbstractElectrometerClass::set_averagecount (std::string averCountStr) 
+{
+	_electrometerProtocol->set_averagecount(averCountStr);
+}
+
+// ============================================================================
+// AbstractElectrometerClass::get_averagecount
+// ============================================================================
+std::string AbstractElectrometerClass::get_averagecount (void) 
+{
+	return _electrometerProtocol->get_averagecount( );
+}
+
+// ============================================================================
+// AbstractElectrometerClass::set_averagecontrol
+// ============================================================================
+void AbstractElectrometerClass::set_averagecontrol (std::string averCtrlStr) 
+{
+	_electrometerProtocol->set_averagecontrol(averCtrlStr);
+}
+
+// ============================================================================
+// AbstractElectrometerClass::get_averagecontrol
+// ============================================================================
+std::string AbstractElectrometerClass::get_averagecontrol (void) 
+{
+	return _electrometerProtocol->get_averagecontrol( );
+}
+
+// ============================================================================
+// AbstractElectrometerClass::clear_registers
+// ============================================================================
+void AbstractElectrometerClass::clear_registers (void) 
+{
+	_electrometerProtocol->clear_registers();
+}
+
+// ============================================================================
+// AbstractElectrometerClass::averageStateON
+// ============================================================================
+void AbstractElectrometerClass::averageStateON (void) 
+{
+	_electrometerProtocol->averageStateON();
+}
+
+// ============================================================================
+// AbstractElectrometerClass::averageStateOFF
+// ============================================================================
+void AbstractElectrometerClass::averageStateOFF (void) 
+{
+	_electrometerProtocol->averageStateOFF();
+}
+
+// ============================================================================
+// AbstractElectrometerClass::get_value
+// ============================================================================
+std::string AbstractElectrometerClass::get_value (void) 
+{
+	std::string argout("no data");
+	argout = _electrometerProtocol->get_value( );
+
+	return argout;
+}
+
+// ============================================================================
+// AbstractElectrometerClass::get_integratedValue
+// ============================================================================
+std::vector<double> AbstractElectrometerClass::get_integratedValue (void) 
+{
+	return _electrometerProtocol->get_integratedValue( );
+}
+
+// ============================================================================
+// AbstractElectrometerClass::get_fetchValue
+// ============================================================================
+std::vector<double> AbstractElectrometerClass::get_fetchValue (void) 
+{
+	return _electrometerProtocol->get_fetchValue( );
+}
+
+// ============================================================================
+// AbstractElectrometerClass::reset
+// ============================================================================
+void AbstractElectrometerClass::reset (void) 
+{
+	_electrometerProtocol->reset( );
+}
+
+// ============================================================================
+// AbstractElectrometerClass::local
+// ============================================================================
+void AbstractElectrometerClass::local (void) 
+{
+	_electrometerProtocol->local( );
+}
+
+// ============================================================================
+// AbstractElectrometerClass::remote
+// ============================================================================
+void AbstractElectrometerClass::remote (void) 
+{
+	_electrometerProtocol->remote( );
+}
+
+// ============================================================================
+// AbstractElectrometerClass::get_ElectroMeterMode
+// ============================================================================
+std::string AbstractElectrometerClass::get_ElectroMeterMode (void)
+{ 
+	return _electrometerProtocol->get_mode( );	
+}
+
+// ============================================================================
+// AbstractElectrometerClass::get_ElectroMeterRange
+// ============================================================================
+std::string AbstractElectrometerClass::get_ElectroMeterRange (void)
+{ 
+	return _electrometerProtocol->get_range( );	
+}
+
+// ============================================================================
+// AbstractElectrometerClass::get_ElectroMeterRange
+// ============================================================================
+bool AbstractElectrometerClass::get_overloadRangeState (void)
+{ 
+	return _electrometerProtocol->get_overloadRangeState( );	
+}
+
+// ============================================================================
+// AbstractElectrometerClass::electrometer_status
+// ============================================================================
+std::string AbstractElectrometerClass::electrometer_status (void) 
+{
+	/**
+	*	This command is sent for SCPI devices only, so the SCPI State is updated here
+	*/
+	std::string argout("no data");
+	
+	try
+	{
+		argout = _electrometerProtocol->get_raw_status( );
+		//- if no error the error code is 0
+		if( XString<short>::convertFromString(&argout[0]) == ON)
+			set_electroState(ON);
+		else
+			set_electroState(ALARM);
+	}
+	catch(...)
+	{
+		set_electroState(FAULT);
+		throw;
+	}
+
+	return argout;
+}
+
+// ============================================================================
+// AbstractElectrometerClass::set_buffer_size
+// ============================================================================
+void AbstractElectrometerClass::set_buffer_size (void) 
+{
+  _electrometerProtocol->set_buffer_size();
+}
+
+// ============================================================================
+// AbstractElectrometerClass::clear_buffer
+// ============================================================================
+void AbstractElectrometerClass::clear_buffer (void) 
+{
+  _electrometerProtocol->clear_buffer();
+}
+
+// ============================================================================
+// AbstractElectrometerClass::store_raw_input
+// ============================================================================
+void AbstractElectrometerClass::store_raw_input (void) 
+{
+  _electrometerProtocol->store_raw_input();
+}
+
+// ============================================================================
+// AbstractElectrometerClass::start_storing
+// ============================================================================
+void AbstractElectrometerClass::start_storing (void) 
+{
+  _electrometerProtocol->start_storing();
+}
+
+// ============================================================================
+// AbstractElectrometerClass::enable_SRQBufferFull
+// ============================================================================
+void AbstractElectrometerClass::enable_SRQBufferFull (void) 
+{
+  _electrometerProtocol->enable_SRQBufferFull();
+}
+
+// ============================================================================
+// AbstractElectrometerClass::disable_SRQBufferFull
+// ============================================================================
+void AbstractElectrometerClass::disable_SRQBufferFull (void) 
+{
+  _electrometerProtocol->disable_SRQBufferFull();
+}
+
+// ============================================================================
+// AbstractElectrometerClass::readStatusByteRegister
+// ============================================================================
+std::string AbstractElectrometerClass::readStatusByteRegister (void) 
+{
+  return _electrometerProtocol->readStatusByteRegister();
+}
+
+// ============================================================================
+// AbstractElectrometerClass::MODE -> Ampere, Volt, Ohm, Coulomb and V on I meters
+// The general case is that following functions are not supported
+//	When supported by a particular electrometer, these methods must be defined in the 
+// corresponding electrometer class
+// ============================================================================
+// ============================================================================
+// AbstractElectrometerClass::setAmperMeterMode
+// ============================================================================
+void AbstractElectrometerClass::setAmperMeterMode (void) 
+{
+	_electrometerProtocol->setAmperMeterMode( );
+/*	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"This Electrometer does not support this command.",
+											"AbstractElectrometerClass::setAmperMeterMode( ).");
+*/}
+
+// ============================================================================
+// AbstractElectrometerClass::setVoltMeterMode
+// ============================================================================
+void AbstractElectrometerClass::setVoltMeterMode (void) 
+{
+	_electrometerProtocol->setVoltMeterMode( );
+/*	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"This Electrometer does not support this command.",
+											"AbstractElectrometerClass::setAmperMeterMode( ).");
+*/}
+
+// ============================================================================
+// AbstractElectrometerClass::setOhmMeterMode
+// ============================================================================
+void AbstractElectrometerClass::setOhmMeterMode (void) 
+{
+	_electrometerProtocol->setOhmMeterMode( );
+/*	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"This Electrometer does not support this command.",
+											"AbstractElectrometerClass::setAmperMeterMode( ).");
+*/}
+
+
+// ============================================================================
+// AbstractElectrometerClass::setCoulombMeterMode
+// ============================================================================
+void AbstractElectrometerClass::setCoulombMeterMode (void) 
+{
+	_electrometerProtocol->setCoulombMeterMode( );
+/*	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"This Electrometer does not support this command.",
+											"AbstractElectrometerClass::setAmperMeterMode( ).");
+*/}
+
+// ============================================================================
+// AbstractElectrometerClass::get_ElectroMeterPolarity
+// ============================================================================
+std::string AbstractElectrometerClass::get_ElectroMeterPolarity (void) 
+{
+	return _electrometerProtocol->get_polarity( );
+}
+
+// ============================================================================
+// AbstractElectrometerClass::get_ElectroMeterFrequency
+// ============================================================================
+std::string AbstractElectrometerClass::get_ElectroMeterFrequency (void) 
+{
+	return _electrometerProtocol->get_frequency( );
+}
+
+// ============================================================================
+// AbstractElectrometerClass::get_ElectroMeterGain
+// ============================================================================
+std::string AbstractElectrometerClass::get_ElectroMeterGain (void) 
+{
+	return _electrometerProtocol->get_gain( );
+}
+
+// ============================================================================
+// AbstractElectrometerClass::set_ElectroMeterPolarity
+// ============================================================================
+void AbstractElectrometerClass::set_ElectroMeterPolarity (std::string pola) 
+{
+	_electrometerProtocol->set_polarity(pola);
+}
+
+// ============================================================================
+// AbstractElectrometerClass::set_ElectroMeterFrequency
+// ============================================================================
+void AbstractElectrometerClass::set_ElectroMeterFrequency (std::string freq) 
+{
+	_electrometerProtocol->set_frequency(freq);
+}
+
+// ============================================================================
+// AbstractElectrometerClass::set_ElectroMeterGain
+// ============================================================================
+void AbstractElectrometerClass::set_ElectroMeterGain (std::string gain) 
+{
+	_electrometerProtocol->set_gain(gain);
+}
+
+// ============================================================================
+// AbstractElectrometerClass::set_Zero_VonF_function
+// ============================================================================
+void AbstractElectrometerClass::set_Zero_VonF_function (void) 
+{
+	_electrometerProtocol->unable_zeroVF_func( );
+}
+
+// ============================================================================
+// AbstractElectrometerClass::set_Offset_ZeroV1_function
+// ============================================================================
+void AbstractElectrometerClass::set_Offset_ZeroV1_function (void) 
+{
+	_electrometerProtocol->unable_offset_zeroV1_func( );
+}
+
+// ============================================================================
+// AbstractElectrometerClass::set_Leakage_ZeroV2_function
+// ============================================================================
+void AbstractElectrometerClass::set_Leakage_ZeroV2_function (void) 
+{
+	_electrometerProtocol->unable_leakage_zeroV2_func( );
+}
+
+// ============================================================================
+// AbstractElectrometerClass::set_Test_function
+// ============================================================================
+void AbstractElectrometerClass::set_Test_function (void) 
+{
+	_electrometerProtocol->unable_test_func( );
+}
+
+// ============================================================================
+// AbstractElectrometerClass::set_Measure_function
+// ============================================================================
+void AbstractElectrometerClass::set_Measure_function (void) 
+{
+	_electrometerProtocol->unable_measure_func( );
+}
+
+// ============================================================================
+// AbstractElectrometerClass::mcce_on
+// ============================================================================
+void AbstractElectrometerClass::mcce_on (void) 
+{
+	_electrometerProtocol->switch_MCCE2_ON( );
+}
+
+// ============================================================================
+// AbstractElectrometerClass::mcce_off
+// ============================================================================
+void AbstractElectrometerClass::mcce_off (void) 
+{
+	_electrometerProtocol->switch_MCCE2_OFF( );
+}
+
diff --git a/src/CommunicationLink.cpp b/src/CommunicationLink.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..e84998c87b78d6bc91b29ba3643dfae23cb8b9ae
--- /dev/null
+++ b/src/CommunicationLink.cpp
@@ -0,0 +1,50 @@
+// ============================================================================
+//
+// = CONTEXT
+//    TANGO Project - Electrometer Support Library
+//
+// = FILENAME
+//    CommunicationLink.cpp
+//
+// = AUTHOR
+//    X. Elattaoui
+//
+//
+// $Author: stephle $
+//
+// $Revision: 1.1 $
+//
+// $Log: not supported by cvs2svn $
+//
+// ============================================================================
+
+// ============================================================================
+// DEPENDENCIES
+// ============================================================================
+#include <iostream>
+#include "CommunicationLink.h"
+
+// ============================================================================
+// CommunicationLink::CommunicationLink
+// ============================================================================
+//CommunicationLink::CommunicationLink (const std::string& communication_link_name)
+CommunicationLink::CommunicationLink ( std::string& communication_link_name)
+:	_communication_Device_name(communication_link_name)
+{
+	std::cout << "CommunicationLink::CommunicationLink <-" << std::endl;
+
+
+	std::cout << "CommunicationLink::CommunicationLink ->" << std::endl;
+}
+
+// ============================================================================
+// CommunicationLink::~CommunicationLink
+// ============================================================================
+CommunicationLink::~CommunicationLink (void)
+{
+	std::cout << "CommunicationLink::~CommunicationLink <-" << std::endl;
+
+
+	std::cout << "CommunicationLink::~CommunicationLink ->" << std::endl;
+}
+
diff --git a/src/ElectrometerException.cpp b/src/ElectrometerException.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..eba1eab5160e46475a4ee4c7ea0ea1da233fc96f
--- /dev/null
+++ b/src/ElectrometerException.cpp
@@ -0,0 +1,213 @@
+//******************************************************************************************
+//
+//
+//		july 24, 2006 :  Source file for the Electrometers exceptions
+//					     (available for all models Keithley and Novelec)
+//
+//
+//		author : X.Elattaoui
+//
+//		ElectrometerException.cpp: interface for the communication exceptions class.
+//
+//
+// $Author: stephle $
+//
+// $Revision: 1.1 $
+//
+// $Log: not supported by cvs2svn $
+//
+//******************************************************************************************
+
+// ============================================================================
+// DEPENDENCIES
+#include "ElectrometerException.h"
+
+namespace electrometer {
+
+// ============================================================================
+// Error::Error
+// ============================================================================
+Error::Error (void)
+  :  reason ("unknown"),
+     desc ("unknown error"),
+     origin ("unknown"),
+     severity (electrometer::ERR)
+{
+
+}
+
+// ============================================================================
+// Error::Error
+// ============================================================================
+Error::Error (const char *_reason,
+	      const char *_desc,
+	      const char *_origin,
+	      int _severity)
+  :  reason (_reason),
+     desc (_desc),
+     origin (_origin),
+     severity (_severity)
+{
+
+}
+
+// ============================================================================
+// Error::Error
+// ============================================================================
+Error::Error (const std::string& _reason,
+	      const std::string& _desc,
+	      const std::string& _origin,
+	      int _severity)
+  :  reason (_reason),
+     desc (_desc),
+     origin (_origin),
+     severity (_severity)
+{
+
+}
+
+// ============================================================================
+// Error::Error
+// ============================================================================
+Error::Error (const Error& _src)
+  :  reason (_src.reason),
+     desc (_src.desc),
+     origin (_src.origin),
+     severity (_src.severity)
+{
+
+}
+
+// ============================================================================
+// Error::~Error
+// ============================================================================
+Error::~Error (void)
+{
+
+}
+
+// ============================================================================
+// Error::operator=
+// ============================================================================
+Error& Error::operator= (const Error& _src) 
+{
+  //- no self assign
+  if (this == &_src) {
+    return *this;
+  }
+
+  this->reason	= _src.reason;
+  this->desc	= _src.desc;
+  this->origin	= _src.origin;
+  this->severity = _src.severity;
+
+  return *this;
+}
+
+// ============================================================================
+// ElectrometerException::ElectrometerException
+// ============================================================================
+ElectrometerException::ElectrometerException (void)
+  : errors(0)
+{
+  this->push_error(Error());
+}
+
+// ============================================================================
+// ElectrometerException::ElectrometerException
+// ============================================================================
+ElectrometerException::ElectrometerException (const char *_reason,
+		      const char *_desc,
+		      const char *_origin,
+		      int _severity) 
+  : errors(0)
+{
+
+  this->push_error(Error(_reason, _desc, _origin, _severity));
+}
+
+// ============================================================================
+// ElectrometerException::ElectrometerException
+// ============================================================================
+ElectrometerException::ElectrometerException (const std::string& _reason,
+		      const std::string& _desc,
+		      const std::string& _origin,
+		      int _severity) 
+  : errors(0)
+{
+  this->push_error(_reason, _desc, _origin,_severity);
+}
+
+// ============================================================================
+// ElectrometerException::ElectrometerException
+// ============================================================================
+ElectrometerException::ElectrometerException (const ElectrometerException& _src)
+  : errors(0)
+{
+  for (unsigned int i = 0; i < _src.errors.size();  i++) {
+    this->push_error(_src.errors[i]);
+  }
+}
+
+// ============================================================================
+// ElectrometerException::ElectrometerException
+// ============================================================================
+ElectrometerException& ElectrometerException::operator= (const ElectrometerException& _src)
+{
+  //- no self assign
+  if (this == &_src) {
+    return *this;
+  }
+
+  this->errors.clear();
+
+  for (unsigned int i = 0; i < _src.errors.size();  i++) {
+    this->push_error(_src.errors[i]);
+  }
+
+  return *this;
+}
+
+// ============================================================================
+// ElectrometerException::~ElectrometerException
+// ============================================================================
+ElectrometerException::~ElectrometerException (void)
+{
+  this->errors.clear();
+}
+
+
+// ============================================================================
+// ElectrometerException::push_error
+// ============================================================================
+void ElectrometerException::push_error (const char *_reason,
+						      const char *_desc,
+							  const char *_origin, 
+			    int _severity)
+{
+  this->errors.push_back(Error(_reason, _desc, _origin, _severity));
+}
+
+// ============================================================================
+// ElectrometerException::push_error
+// ============================================================================
+void ElectrometerException::push_error (const std::string& _reason,
+						      const std::string& _desc,
+							  const std::string& _origin, 
+			    int _severity)
+{
+  this->errors.push_back(Error(_reason, _desc, _origin, _severity));
+}
+
+// ============================================================================
+// ElectrometerException::push_error
+// ============================================================================
+void ElectrometerException::push_error (const Error& _error)
+{
+  this->errors.push_back(_error);
+}
+
+
+} // namespace electrometer
+
+
diff --git a/src/ElectrometerProtocol.cpp b/src/ElectrometerProtocol.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..f57aae0a9e02dbef6e76f00a4858eb589408febc
--- /dev/null
+++ b/src/ElectrometerProtocol.cpp
@@ -0,0 +1,582 @@
+// ============================================================================
+//
+// = CONTEXT
+//    TANGO Project - ElectrometerProtocol Support Library
+//
+// = FILENAME
+//    ElectrometerProtocol.cpp
+//
+// = AUTHOR
+//    X. Elattaoui
+//
+// ============================================================================
+
+// ============================================================================
+// DEPENDENCIES
+// ============================================================================
+#include <iostream>
+#include "ElectrometerProtocol.h"
+#include "TangoGpibLink.h"
+#include "ElectrometerException.h"
+
+// ============================================================================
+// ElectrometerProtocol::ElectrometerProtocol
+// ============================================================================
+ElectrometerProtocol::ElectrometerProtocol () :
+	_range(0),
+	_mode("NOT INITIALISED"),
+	_communication_link(0)
+{
+	std::cout << "ElectrometerProtocol::ElectrometerProtocol <-" << std::endl;
+
+	std::cout << "ElectrometerProtocol::ElectrometerProtocol ->" << std::endl;
+}
+
+// ============================================================================
+// ElectrometerProtocol::~ElectrometerProtocol
+// ============================================================================
+ElectrometerProtocol::~ElectrometerProtocol (void)
+{
+	std::cout << "ElectrometerProtocol::~ElectrometerProtocol <-" << std::endl;
+
+	if(_communication_link)
+	{
+		delete _communication_link;
+		_communication_link = 0;
+	}
+
+	std::cout << "ElectrometerProtocol::~ElectrometerProtocol ->" << std::endl;
+}
+
+// ============================================================================
+// ElectrometerProtocol::local
+// ============================================================================
+void ElectrometerProtocol::local (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_IMPLEMENTED", 
+											"This command is not implemented, if you want it post a bug in MANTIS.",
+											"ElectrometerProtocol::local( ).");
+}
+
+// ============================================================================
+// ElectrometerProtocol::remote
+// ============================================================================
+void ElectrometerProtocol::remote (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_IMPLEMENTED", 
+											"This command is not implemented, if you want it post a bug in MANTIS.",
+											"ElectrometerProtocol::remote( ).");
+}
+
+// ============================================================================
+// ElectrometerProtocol::get_integratedValue
+// ============================================================================
+std::vector<double> ElectrometerProtocol::get_integratedValue (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"This Electrometer does not support this command.",
+											"ElectrometerProtocol::get_integratedValue( ).");
+}
+
+// ============================================================================
+// ElectrometerProtocol::get_fetchValue
+// ============================================================================
+std::vector<double> ElectrometerProtocol::get_fetchValue (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"This Electrometer does not support this command.",
+											"ElectrometerProtocol::get_fetchValue( ).");
+}
+
+// ============================================================================
+// ElectrometerProtocol::get_frequency
+// ============================================================================
+std::string ElectrometerProtocol::get_frequency (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"This Electrometer does not support this command.",
+											"ElectrometerProtocol::get_frequency( ).");
+}
+
+// ============================================================================
+// ElectrometerProtocol::get_gain
+// ============================================================================
+std::string ElectrometerProtocol::get_gain (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"This Electrometer does not support this command.",
+											"ElectrometerProtocol::get_gain( ).");
+}
+
+// ============================================================================
+// ElectrometerProtocol::get_polarity
+// ============================================================================
+std::string ElectrometerProtocol::get_polarity (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"This Electrometer does not support this command.",
+											"ElectrometerProtocol::get_polarity( ).");
+}
+
+// ============================================================================
+// ElectrometerProtocol::set_polarity
+// ============================================================================
+void ElectrometerProtocol::set_polarity (std::string ) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"This Electrometer does not support this command.",
+											"ElectrometerProtocol::set_polarity( ).");
+}
+
+// ============================================================================
+// ElectrometerProtocol::set_frequency
+// ============================================================================
+void ElectrometerProtocol::set_frequency (std::string ) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"This Electrometer does not support this command.",
+											"ElectrometerProtocol::set_frequency( ).");
+}
+
+// ============================================================================
+// ElectrometerProtocol::set_gain
+// ============================================================================
+void ElectrometerProtocol::set_gain (std::string ) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"This Electrometer does not support this command.",
+											"ElectrometerProtocol::set_gain( ).");
+}
+
+// ============================================================================
+// ElectrometerProtocol::unable_zeroVF_func
+// ============================================================================
+void ElectrometerProtocol::unable_zeroVF_func (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"This Electrometer does not support this command.",
+											"ElectrometerProtocol::unable_zeroVF_func( ).");
+}
+
+// ============================================================================
+// ElectrometerProtocol::unable_offset_zeroV1_func
+// ============================================================================
+void ElectrometerProtocol::unable_offset_zeroV1_func (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"This Electrometer does not support this command.",
+											"ElectrometerProtocol::unable_offset_zeroV1_func( ).");
+}
+
+// ============================================================================
+// ElectrometerProtocol::unable_leakage_zeroV2_func
+// ============================================================================
+void ElectrometerProtocol::unable_leakage_zeroV2_func (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"This Electrometer does not support this command.",
+											"ElectrometerProtocol::unable_leakage_zeroV2_func( ).");
+}
+
+// ============================================================================
+// ElectrometerProtocol::unable_test_func
+// ============================================================================
+void ElectrometerProtocol::unable_test_func (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"This Electrometer does not support this command.",
+											"ElectrometerProtocol::unable_test_func( ).");
+}
+
+// ============================================================================
+// ElectrometerProtocol::unable_measure_func
+// ============================================================================
+void ElectrometerProtocol::unable_measure_func (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"This Electrometer does not support this command.",
+											"ElectrometerProtocol::unable_measure_func( ).");
+}
+
+// ============================================================================
+// ElectrometerProtocol::switch_MCCE2_ON
+// ============================================================================
+void ElectrometerProtocol::switch_MCCE2_ON (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"This Electrometer does not support this command.",
+											"ElectrometerProtocol::switch_MCCE2_ON( ).");
+}
+
+// ============================================================================
+// ElectrometerProtocol::switch_MCCE2_OFF
+// ============================================================================
+void ElectrometerProtocol::switch_MCCE2_OFF (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"This Electrometer does not support this command.",
+											"ElectrometerProtocol::switch_MCCE2_OFF( ).");
+}
+
+// ============================================================================
+// ElectrometerProtocol::autoRange_ON
+// ============================================================================
+void ElectrometerProtocol::autoRange_on (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"Novelec does not support this command.",
+											"ElectrometerProtocol::autoRange_on( ).");
+}
+
+// ============================================================================
+// ElectrometerProtocol::autoRange_OFF
+// ============================================================================
+void ElectrometerProtocol::autoRange_off (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"Novelec does not support this command.",
+											"ElectrometerProtocol::autoRange_off( ).");
+}
+
+
+// ============================================================================
+// ElectrometerProtocol::zero_check_on
+// ============================================================================
+void ElectrometerProtocol::zero_check_on (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_IMPLEMENTED", 
+											"This will be done soon !!!.",
+											"ElectrometerProtocol::zero_check_on( ).");
+
+}
+// ============================================================================
+// ElectrometerProtocol::zero_check_off
+// ============================================================================
+void ElectrometerProtocol::zero_check_off (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_IMPLEMENTED", 
+											"This will be done soon !!!.",
+											"ElectrometerProtocol::zero_check_off( ).");
+}
+
+
+// ============================================================================
+// ElectrometerProtocol::zero_correct_on
+// ============================================================================
+void ElectrometerProtocol::zero_correct_on (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_IMPLEMENTED", 
+											"This will be done soon !!!.",
+											"ElectrometerProtocol::zero_correct_on( ).");
+}
+
+// ============================================================================
+// ElectrometerProtocol::zero_correct_off
+// ============================================================================
+void ElectrometerProtocol::zero_correct_off (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_IMPLEMENTED", 
+											"This will be done soon !!!.",
+											"ElectrometerProtocol::zero_correct_off( ).");
+
+}
+
+// ============================================================================
+// ElectrometerProtocol::auto_zero_on
+// ============================================================================
+void ElectrometerProtocol::auto_zero_on (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"Novelec does not support this command.",
+											"ElectrometerProtocol::auto_zero_on( ).");
+
+}
+
+// ============================================================================
+// ElectrometerProtocol::auto_zero_off
+// ============================================================================
+void ElectrometerProtocol::auto_zero_off (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"Novelec does not support this command.",
+											"ElectrometerProtocol::auto_zero_off( ).");
+
+}
+
+// ============================================================================
+// ElectrometerProtocol::setAmperMeterMode 
+// ============================================================================
+void ElectrometerProtocol::setAmperMeterMode (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"Novelec does not support this command.",
+											"ElectrometerProtocol::setAmperMeterMode( ).");
+}
+// ============================================================================
+// ElectrometerProtocol::setVoltMeterMode 
+// ============================================================================
+void ElectrometerProtocol::setVoltMeterMode (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"Novelec does not support this command.",
+											"ElectrometerProtocol::setVoltMeterMode( ).");
+}
+// ============================================================================
+// ElectrometerProtocol::setOhmMeterMode 
+// ============================================================================
+void ElectrometerProtocol::setOhmMeterMode (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"Novelec does not support this command.",
+											"ElectrometerProtocol::setOhmMeterMode( ).");
+}
+// ============================================================================
+// ElectrometerProtocol::setCoulombMeterMode 
+// ============================================================================
+void ElectrometerProtocol::setCoulombMeterMode (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"Novelec does not support this command.",
+											"ElectrometerProtocol::setCoulombMeterMode( ).");
+}
+
+// ============================================================================
+// ElectrometerProtocol::init_keithley
+// ============================================================================
+void ElectrometerProtocol::init_keithley (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"This Electrometer does not support this command.",
+											"ElectrometerProtocol::init_keithley( ).");
+}
+
+// ============================================================================
+// ElectrometerProtocol::set_knplc
+// ============================================================================
+void ElectrometerProtocol::set_knplc (std::string) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"This Electrometer does not support this command.",
+											"ElectrometerProtocol::set_knplc( ).");
+}
+
+// ============================================================================
+// ElectrometerProtocol::get_knplc
+// ============================================================================
+std::string ElectrometerProtocol::get_knplc (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"This Electrometer does not support this command.",
+											"ElectrometerProtocol::get_knplc( ).");
+}
+
+// ============================================================================
+// ElectrometerProtocol::set_triggercount
+// ============================================================================
+void ElectrometerProtocol::set_triggercount (std::string) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"This Electrometer does not support this command.",
+											"ElectrometerProtocol::set_triggercount( ).");
+}
+
+// ============================================================================
+// ElectrometerProtocol::get_triggercount
+// ============================================================================
+std::string ElectrometerProtocol::get_triggercount (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"This Electrometer does not support this command.",
+											"ElectrometerProtocol::get_triggercount( ).");
+}
+
+// ============================================================================
+// ElectrometerProtocol::set_triggerdelay
+// ============================================================================
+void ElectrometerProtocol::set_triggerdelay (std::string) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"This Electrometer does not support this command.",
+											"ElectrometerProtocol::set_triggerdelay( ).");
+}
+
+// ============================================================================
+// ElectrometerProtocol::get_triggerdelay
+// ============================================================================
+std::string ElectrometerProtocol::get_triggerdelay (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"This Electrometer does not support this command.",
+											"ElectrometerProtocol::get_triggerdelay( ).");
+}
+
+// ============================================================================
+// ElectrometerProtocol::set_triggerdelayAuto
+// ============================================================================
+void ElectrometerProtocol::set_triggerdelayAuto (std::string) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"This Electrometer does not support this command.",
+											"ElectrometerProtocol::set_triggerdelayAuto( ).");
+}
+
+// ============================================================================
+// ElectrometerProtocol::get_triggerdelayAuto
+// ============================================================================
+std::string ElectrometerProtocol::get_triggerdelayAuto (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"This Electrometer does not support this command.",
+											"ElectrometerProtocol::get_triggerdelayAuto( ).");
+}
+
+// ============================================================================
+// ElectrometerProtocol::set_averagecount
+// ============================================================================
+void ElectrometerProtocol::set_averagecount (std::string) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"This Electrometer does not support this command.",
+											"ElectrometerProtocol::set_averagecount( ).");
+}
+
+// ============================================================================
+// ElectrometerProtocol::get_averagecount
+// ============================================================================
+std::string ElectrometerProtocol::get_averagecount (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"This Electrometer does not support this command.",
+											"ElectrometerProtocol::get_averagecount( ).");
+}
+
+// ============================================================================
+// ElectrometerProtocol::set_averagecontrol
+// ============================================================================
+void ElectrometerProtocol::set_averagecontrol (std::string) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"This Electrometer does not support this command.",
+											"ElectrometerProtocol::set_averagecontrol( ).");
+}
+
+// ============================================================================
+// ElectrometerProtocol::get_averagecontrol
+// ============================================================================
+std::string ElectrometerProtocol::get_averagecontrol (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"This Electrometer does not support this command.",
+											"ElectrometerProtocol::get_averagecontrol( ).");
+}
+
+// ============================================================================
+// ElectrometerProtocol::clear_registers
+// ============================================================================
+void ElectrometerProtocol::clear_registers (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"This Electrometer does not support this command.",
+											"ElectrometerProtocol::clear_registers( ).");
+}
+
+// ============================================================================
+// ElectrometerProtocol::averageStateON
+// ============================================================================
+void ElectrometerProtocol::averageStateON (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"This Electrometer does not support this command.",
+											"ElectrometerProtocol::averageStateON( ).");
+}
+
+// ============================================================================
+// ElectrometerProtocol::averageStateOFF
+// ============================================================================
+void ElectrometerProtocol::averageStateOFF (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"This Electrometer does not support this command.",
+											"ElectrometerProtocol::averageStateOFF( ).");
+}
+
+// ============================================================================
+// ElectrometerProtocol::set_buffer_size
+// ============================================================================
+void ElectrometerProtocol::set_buffer_size (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"This Electrometer does not support this command.",
+											"ElectrometerProtocol::set_buffer_size( ).");
+}
+
+// ============================================================================
+// ElectrometerProtocol::clear_buffer
+// ============================================================================
+void ElectrometerProtocol::clear_buffer (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"This Electrometer does not support this command.",
+											"ElectrometerProtocol::clear_buffer( ).");
+}
+
+// ============================================================================
+// ElectrometerProtocol::store_raw_input
+// ============================================================================
+void ElectrometerProtocol::store_raw_input (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"This Electrometer does not support this command.",
+											"ElectrometerProtocol::store_raw_input( ).");
+}
+
+// ============================================================================
+// ElectrometerProtocol::start_storing
+// ============================================================================
+void ElectrometerProtocol::start_storing (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"This Electrometer does not support this command.",
+											"ElectrometerProtocol::start_storing( ).");
+}
+
+// ============================================================================
+// ElectrometerProtocol::enable_SRQBufferFull
+// ============================================================================
+void ElectrometerProtocol::enable_SRQBufferFull (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"This Electrometer does not support this command.",
+											"ElectrometerProtocol::enable_SRQBufferFull( ).");
+}
+
+// ============================================================================
+// ElectrometerProtocol::disable_SRQBufferFull
+// ============================================================================
+void ElectrometerProtocol::disable_SRQBufferFull (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"This Electrometer does not support this command.",
+											"ElectrometerProtocol::disable_SRQBufferFull( ).");
+}
+  
+// ============================================================================
+// ElectrometerProtocol::readStatusByteRegister
+// ============================================================================
+std::string ElectrometerProtocol::readStatusByteRegister (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"This Electrometer does not support this command.",
+											"ElectrometerProtocol::readStatusByteRegister( ).");
+}
+  
+// ============================================================================
+// ElectrometerProtocol::get_overloadRangeState (DDC Devices !!!)
+// ============================================================================
+bool ElectrometerProtocol::get_overloadRangeState (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"This Electrometer does not support this command.",
+											"ElectrometerProtocol::get_overloadRangeState( ).");
+}
+  
diff --git a/src/KeithleyDDCProtocol.cpp b/src/KeithleyDDCProtocol.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..12ac5e897384af6874e6142b35863c9957f8a30f
--- /dev/null
+++ b/src/KeithleyDDCProtocol.cpp
@@ -0,0 +1,447 @@
+// ============================================================================
+//
+// = CONTEXT
+//    TANGO Project - DDC KeithleyDDCProtocol Support Library
+//
+// = FILENAME
+//    KeithleyDDCProtocol.cpp
+//
+// = AUTHOR
+//    X. Elattaoui
+//
+// ============================================================================
+
+// ============================================================================
+// DEPENDENCIES
+// ============================================================================
+#include <iostream>
+#include <sstream>
+#include <string>
+#include "KeithleyDDCProtocol.h"
+#include "TangoGpibLink.h"
+
+// ============================================================================
+// KeithleyDDCProtocol::KeithleyDDCProtocol
+// ============================================================================
+KeithleyDDCProtocol::KeithleyDDCProtocol (std::string& gpib_device_name)
+:	ElectrometerProtocol(),
+_is_overloaded(false)
+{
+	std::cout << "KeithleyDDCProtocol::KeithleyDDCProtocol <-" << std::endl;
+
+	_communication_link = new TangoGpibLink (gpib_device_name);
+
+	std::cout << "KeithleyDDCProtocol::KeithleyDDCProtocol ->" << std::endl;
+}
+
+// ============================================================================
+// KeithleyDDCProtocol::~KeithleyDDCProtocol
+// ============================================================================
+KeithleyDDCProtocol::~KeithleyDDCProtocol (void)
+{
+	std::cout << "KeithleyDDCProtocol::~KeithleyDDCProtocol <-" << std::endl;
+
+	std::cout << "KeithleyDDCProtocol::~KeithleyDDCProtocol ->" << std::endl;
+}
+
+// ============================================================================
+// KeithleyDDCProtocol::set_range
+// ============================================================================
+void KeithleyDDCProtocol::set_range (std::string value) 
+{
+std::stringstream cmd_to_send;
+
+	//- send command to Keithley device
+	cmd_to_send << "R" << value << "X" << std::ends;
+	_communication_link->write(cmd_to_send.str());
+
+}
+
+// ============================================================================
+// KeithleyDDCProtocol::get_range
+// ============================================================================
+std::string KeithleyDDCProtocol::get_range (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"For DDC Keithley type, please check the status.",
+											"KeithleyDDCProtocol::get_range( ).");
+}
+
+// ============================================================================
+// KeithleyDDCProtocol::zero_check_on
+// ============================================================================
+void KeithleyDDCProtocol::zero_check_on (void) 
+{
+std::stringstream cmd_to_send;
+
+	//- send command
+	cmd_to_send << "C1X" << std::ends;
+	_communication_link->write(cmd_to_send.str());
+
+}
+// ============================================================================
+// KeithleyDDCProtocol::zero_check_off
+// ============================================================================
+void KeithleyDDCProtocol::zero_check_off (void) 
+{
+std::stringstream cmd_to_send;
+
+	//- send command
+	cmd_to_send << "C0X" << std::ends;
+	_communication_link->write(cmd_to_send.str());
+}
+
+
+// ============================================================================
+// KeithleyDDCProtocol::zero_correct_on
+// ============================================================================
+void KeithleyDDCProtocol::zero_correct_on (void) 
+{
+std::stringstream cmd_to_send;
+
+	//- send command
+	cmd_to_send << "Z1X" << std::ends;
+	_communication_link->write(cmd_to_send.str());
+
+}
+
+// ============================================================================
+// KeithleyDDCProtocol::zero_correct_off
+// ============================================================================
+void KeithleyDDCProtocol::zero_correct_off (void) 
+{
+std::stringstream cmd_to_send;
+
+	//- send command
+	cmd_to_send << "Z0X" << std::ends;
+	_communication_link->write(cmd_to_send.str());
+
+}
+
+// ============================================================================
+// KeithleyDDCProtocol::auto_zero_on
+// ============================================================================
+void KeithleyDDCProtocol::auto_zero_on (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"DDC Keithley does not support this command.",
+											"KeithleyDDCProtocol::auto_zero_on( ).");
+
+}
+
+// ============================================================================
+// KeithleyDDCProtocol::auto_zero_off
+// ============================================================================
+void KeithleyDDCProtocol::auto_zero_off (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"DDC Keithley does not support this command.",
+											"KeithleyDDCProtocol::auto_zero_off( ).");
+
+}
+
+// ============================================================================
+// KeithleyDDCProtocol::autoRange_ON
+// ============================================================================
+void KeithleyDDCProtocol::autoRange_on (void) 
+{
+std::stringstream cmd_to_send;
+
+	cmd_to_send << "R0X" << std::ends;
+	_communication_link->write(cmd_to_send.str());
+}
+
+// ============================================================================
+// KeithleyDDCProtocol::autoRange_OFF
+// ============================================================================
+void KeithleyDDCProtocol::autoRange_off (void) 
+{
+	throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", 
+											"DDC Keithley does not support this command.",
+											"KeithleyDDCProtocol::autoRange_off( ).");
+}
+
+// ============================================================================
+// KeithleyDDCProtocol::autoRange_OFF for Keithley 486 & 487
+// ============================================================================
+void KeithleyDDCProtocol::autoRange_OFF_forK486_487 (void) 
+{
+std::stringstream cmd_to_send;
+
+	//- send command
+	cmd_to_send << "R10X" << std::ends;
+	_communication_link->write(cmd_to_send.str());
+}
+
+// ============================================================================
+// KeithleyDDCProtocol::autoRange_OFF for Keithley 617 & 6512
+// ============================================================================
+void KeithleyDDCProtocol::autoRange_OFF_forK617_6512 (void) 
+{
+std::stringstream cmd_to_send;
+
+	//- send command
+	cmd_to_send << "R12X" << std::ends;
+	_communication_link->write(cmd_to_send.str());
+
+}
+
+// ============================================================================
+// KeithleyDDCProtocol::MODE -> Ampere, Volt, Ohm, Coulomb and V on I meters
+// ============================================================================
+// ============================================================================
+// KeithleyDDCProtocol::setAmperMeterMode (617 & 6512 Keithley DDC models
+// ============================================================================
+void KeithleyDDCProtocol::setAmperMeterMode (void) 
+{
+std::stringstream cmd_to_send;
+
+	//- mode current
+	_mode = "CURRent";
+
+	//- send command
+	cmd_to_send << "F1X" << std::ends;
+	_communication_link->write(cmd_to_send.str());
+
+}
+
+// ============================================================================
+// KeithleyDDCProtocol::setAmperMeterMode (487 Keithley DDC model
+// ============================================================================
+void KeithleyDDCProtocol::setAmperMeterMode_forK487 (void) 
+{
+std::stringstream cmd_to_send;
+
+	//- mode current
+	_mode = "CURRent";
+
+	//- send command
+	cmd_to_send << "F0X" << std::ends;
+	_communication_link->write(cmd_to_send.str());
+}
+
+// ============================================================================
+// KeithleyDDCProtocol::setVoltMeterMode (617 & 6512 Keithley DDC models
+// ============================================================================
+void KeithleyDDCProtocol::setVoltMeterMode (void) 
+{
+std::stringstream cmd_to_send;
+
+	//- mode volt
+	_mode = "VOLTage";
+
+	//- send command
+	cmd_to_send << "F0X" << std::ends;
+	_communication_link->write(cmd_to_send.str());
+
+}
+
+// ============================================================================
+// KeithleyDDCProtocol::setOhmMeterMode (617 & 6512 Keithley DDC models
+// ============================================================================
+void KeithleyDDCProtocol::setOhmMeterMode (void) 
+{
+std::stringstream cmd_to_send;
+
+	//- send command
+	//- mode ohm
+	_mode = "RESistance";
+
+	cmd_to_send << "F2X" << std::ends;
+	_communication_link->write(cmd_to_send.str());
+
+}
+
+// ============================================================================
+// KeithleyDDCProtocol::setCoulombMeterMode (617 & 6512 Keithley DDC models
+// ============================================================================
+void KeithleyDDCProtocol::setCoulombMeterMode (void) 
+{
+std::stringstream cmd_to_send;
+
+	//- mode coulomb
+	_mode = "CHARge";
+
+	//- send command
+	cmd_to_send << "F3X" << std::ends;
+	_communication_link->write(cmd_to_send.str());
+}
+
+// ============================================================================
+// KeithleyDDCProtocol::get_value
+// ============================================================================
+std::string KeithleyDDCProtocol::get_value (void) 
+{
+std::stringstream cmd_to_send;
+std::string argout("no data");
+
+	//- send command : G0X -> prefix (to check if device overload !) and second X to get data
+	cmd_to_send << "G0" << std::ends;
+	_communication_link->write(cmd_to_send.str());
+
+	//- get data value
+	cmd_to_send << "X" << std::ends;
+	argout = _communication_link->write_read(cmd_to_send.str());
+	
+  //- send command : G1X -> no prefix and second X to get data
+	cmd_to_send << "G1X" << std::ends;
+	_communication_link->write(cmd_to_send.str());
+
+  //- check if device range is overloaded
+  if(argout[0] == 'O')
+    _is_overloaded = true;
+  else
+    _is_overloaded = false;
+
+  //- return value : data begin at idx 4
+  argout = argout.substr(4);
+	return argout;
+}
+
+// ============================================================================
+// KeithleyDDCProtocol::reset
+// ============================================================================
+void KeithleyDDCProtocol::reset (void) 
+{
+std::stringstream cmd_to_send;
+	
+	//- send command to return to default conditions !!
+	cmd_to_send << "SDC" << std::ends;
+	_communication_link->write(cmd_to_send.str());
+}
+
+// ============================================================================
+// KeithleyDDCProtocol::get_raw_status
+// ============================================================================
+std::string KeithleyDDCProtocol::get_raw_status (void) 
+{
+std::stringstream cmd_to_send;
+std::string argout("no data");
+
+	//- send command : G0X -> show prefix ( = keithley type )
+	cmd_to_send << "G0X" << std::endl;
+	_communication_link->write(cmd_to_send.str());
+
+	cmd_to_send.str("");
+	//- get status word
+	cmd_to_send << "U0X" << std::endl;
+	argout = _communication_link->write_read(cmd_to_send.str());
+
+	std::cout << "\n\nKeithleyDDCProtocol::get_raw_status returns *" << argout << "*" << std::ends;
+
+	return argout;
+}
+
+// ============================================================================
+// KeithleyDDCProtocol::clear_registers
+// ============================================================================
+void KeithleyDDCProtocol::clear_registers (void) 
+{
+std::stringstream cmd_to_send;
+	
+	//- send command
+	cmd_to_send << "*CLS" << std::ends;
+	_communication_link->write(cmd_to_send.str());
+
+}
+
+// Following functions are part of commands supported via the DDC protocol. 
+// We may have to implement them after first tests on beamlines
+/*
+// ============================================================================
+// KeithleyDDCProtocol::setExternalFeedbackMeterMode (617 & 6512 Keithley DDC models
+// ============================================================================
+void KeithleyDDCProtocol::setExternalFeedbackMeterMode (void) 
+		throw (electrometer::ElectrometerException, Tango::DevFailed)
+{
+std::stringstream cmd_to_send;
+
+	//- send command
+	cmd_to_send << "F4X" << std::ends;
+	_communication_link->write(cmd_to_send.str());
+
+}
+
+// ============================================================================
+// KeithleyDDCProtocol::setVonIMeterMode (only 617 Keithley DDC model
+// ============================================================================
+void KeithleyDDCProtocol::setVonIMeterMode (void) 
+		throw (electrometer::ElectrometerException, Tango::DevFailed)
+{
+std::stringstream cmd_to_send;
+
+	//- send command
+	cmd_to_send << "F5X" << std::ends;
+	_communication_link->write(cmd_to_send.str());
+
+}
+
+// ============================================================================
+// KeithleyDDCProtocol::setVonIMeterMode (only 487 Keithley DDC model
+// ============================================================================
+void KeithleyDDCProtocol::setVonIMeterMode_forK487 (void) 
+		throw (electrometer::ElectrometerException, Tango::DevFailed)
+{
+std::stringstream cmd_to_send;
+
+	//- send command
+	cmd_to_send << "F1X" << std::ends;
+	_communication_link->write(cmd_to_send.str());
+
+}
+
+ ...  TO BE IMPLEMENTED !!!!! 
+
+// ============================================================================
+// KeithleyDDCProtocol::reading_source
+// ============================================================================
+void KeithleyDDCProtocol::reading_source (void) 
+		throw (electrometer::ElectrometerException, Tango::DevFailed)
+{
+
+}
+
+// ============================================================================
+// KeithleyDDCProtocol::reading_source
+// ============================================================================
+void KeithleyDDCProtocol::data_store (void) 
+		throw (electrometer::ElectrometerException, Tango::DevFailed)
+{
+
+}
+
+// ============================================================================
+// KeithleyDDCProtocol::reading_source
+// ============================================================================
+void KeithleyDDCProtocol::data_format (void) 
+		throw (electrometer::ElectrometerException, Tango::DevFailed)
+{
+
+}
+
+// ============================================================================
+// KeithleyDDCProtocol::reading_source
+// ============================================================================
+void KeithleyDDCProtocol::baseline_suppression_ON (void) 
+		throw (electrometer::ElectrometerException, Tango::DevFailed)
+{
+
+}
+
+// ============================================================================
+// KeithleyDDCProtocol::reading_source
+// ============================================================================
+void KeithleyDDCProtocol::baseline_suppression_OFF (void) 
+		throw (electrometer::ElectrometerException, Tango::DevFailed)
+{
+
+}
+// ============================================================================
+// KeithleyDDCProtocol::reading_source
+// ============================================================================
+void KeithleyDDCProtocol::keithley_status (void) 
+		throw (electrometer::ElectrometerException, Tango::DevFailed)
+{
+
+}
+*/
diff --git a/src/KeithleySCPIProtocol.cpp b/src/KeithleySCPIProtocol.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..62af3aed3c3b47eedf37616900ae8ecd9fb46859
--- /dev/null
+++ b/src/KeithleySCPIProtocol.cpp
@@ -0,0 +1,898 @@
+// ============================================================================
+//
+// = CONTEXT
+//    TANGO Project - SCPI KeithleySCPIProtocol Support Library
+//
+// = FILENAME
+//    KeithleySCPIProtocol.cpp
+//
+// = AUTHOR
+//    X. Elattaoui
+//
+// ============================================================================
+
+// ============================================================================
+// DEPENDENCIES
+// ============================================================================
+#include <iostream>
+#include <sstream>
+#include <string>
+#include <Xstring.h>
+#include "KeithleySCPIProtocol.h"
+#include "TangoGpibLink.h"
+
+// ============================================================================
+// KeithleySCPIProtocol::KeithleySCPIProtocol
+// ============================================================================
+KeithleySCPIProtocol::KeithleySCPIProtocol (std::string& gpib_device_name)
+:	ElectrometerProtocol(),
+	isDiffSuportedMode(false),
+  trigCountStr("")
+{
+	std::cout << "KeithleySCPIProtocol::KeithleySCPIProtocol <-" << std::endl;
+
+	_communication_link = new TangoGpibLink (gpib_device_name);
+
+  //- Select reading only
+  std::string cmd_to_send("FORM:ELEM READ");
+
+	//- send command
+	_communication_link->write(cmd_to_send);
+
+	std::cout << "KeithleySCPIProtocol::KeithleySCPIProtocol ->" << std::endl;
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::~KeithleySCPIProtocol
+// ============================================================================
+KeithleySCPIProtocol::~KeithleySCPIProtocol (void)
+{
+	std::cout << "KeithleySCPIProtocol::~KeithleySCPIProtocol <-" << std::endl;
+
+	std::cout << "KeithleySCPIProtocol::~KeithleySCPIProtocol ->" << std::endl;
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::set_range
+// ============================================================================
+void KeithleySCPIProtocol::set_range (std::string value) 
+{
+std::string cmd_to_send("");
+std::string tmpMode;
+	
+	//- get electrometer mode
+	tmpMode = get_mode( );
+
+	//- erase bad caracters
+	tmpMode.erase(tmpMode.find("\n") );
+	
+	//- send command to Keithley device
+	cmd_to_send = tmpMode + ":RANGe " + value ;
+	_communication_link->write(cmd_to_send);
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::zero_check_on
+// ============================================================================
+void KeithleySCPIProtocol::zero_check_on (void) 
+{
+std::string cmd_to_send("");
+
+	//- send command
+	cmd_to_send = "SYST:ZCH ON" ;
+	_communication_link->write(cmd_to_send);
+
+}
+// ============================================================================
+// KeithleySCPIProtocol::zero_check_off
+// ============================================================================
+void KeithleySCPIProtocol::zero_check_off (void) 
+{
+std::string cmd_to_send("");
+
+	//- send command
+	cmd_to_send = "SYST:ZCH OFF";
+	_communication_link->write(cmd_to_send);
+
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::zero_correct_on
+// ============================================================================
+void KeithleySCPIProtocol::zero_correct_on (void) 
+{
+std::string cmd_to_send("");
+
+	//- send command
+	cmd_to_send = "SYST:ZCOR ON" ;
+	_communication_link->write(cmd_to_send);
+
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::zero_correct_off
+// ============================================================================
+void KeithleySCPIProtocol::zero_correct_off (void) 
+{
+std::string cmd_to_send("");
+
+	//- send command
+	cmd_to_send = "SYST:ZCOR OFF" ;
+	_communication_link->write(cmd_to_send);
+
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::zero_correct_state_on
+// ============================================================================
+void KeithleySCPIProtocol::zero_correct_state_on (void) 
+{
+std::string cmd_to_send("");
+
+	//- send command
+	cmd_to_send = "SYST:ZCOR:STAT ON" ;
+	_communication_link->write(cmd_to_send);
+
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::zero_correct_state_off
+// ============================================================================
+void KeithleySCPIProtocol::zero_correct_state_off (void) 
+{
+std::string cmd_to_send("");
+
+	//- send command
+	cmd_to_send = "SYST:ZCOR:STAT OFF" ;
+	_communication_link->write(cmd_to_send);
+
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::autoRange_ON
+// ============================================================================
+void KeithleySCPIProtocol::autoRange_on (void) 
+{
+std::string cmd_to_send("");
+std::string tmpMode;
+	
+	//- get electrometer mode
+	tmpMode = get_mode( );
+
+	//- erase bad caracters
+	tmpMode.erase(tmpMode.find("\n") );
+
+	cmd_to_send = tmpMode + ":RANGe:AUTO ON" ;
+	_communication_link->write(cmd_to_send);
+
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::autoRange_OFF
+// ============================================================================
+void KeithleySCPIProtocol::autoRange_off (void) 
+{
+std::string cmd_to_send("");
+std::string tmpMode;
+	
+	//- get electrometer mode
+	tmpMode = get_mode( );
+
+	//- erase bad caracters
+	tmpMode.erase(tmpMode.find("\n") );
+
+	//- send command
+	cmd_to_send = tmpMode + ":RANGe:AUTO OFF";
+	_communication_link->write(cmd_to_send);
+
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::auto_zero_on
+// ============================================================================
+void KeithleySCPIProtocol::auto_zero_on (void) 
+{
+std::string cmd_to_send("");
+
+	//- send command
+	cmd_to_send = "SYST:AZER ON" ;
+	_communication_link->write(cmd_to_send);
+
+}
+// ============================================================================
+// KeithleySCPIProtocol::auto_zero_off
+// ============================================================================
+void KeithleySCPIProtocol::auto_zero_off (void) 
+{
+std::string cmd_to_send("");
+
+	//- send command
+	cmd_to_send = "SYST:AZER OFF" ;
+	_communication_link->write(cmd_to_send);
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::MODE -> Ampere, Volt, Ohm, Coulomb and V on I meters
+// ============================================================================
+// ============================================================================
+// KeithleySCPIProtocol::setAmperMeterMode
+// ============================================================================
+void KeithleySCPIProtocol::setAmperMeterMode (void) 
+{
+std::stringstream cmd_to_send;
+std::string mode_ ("");
+
+	//- mode current (send CURR)
+	mode_ = "CURRent";
+
+	//- send command
+	cmd_to_send << "FUNC \'" << mode_ << "\'" << std::endl;
+	_communication_link->write(cmd_to_send.str());
+
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::setVoltMeterMode
+// ============================================================================
+void KeithleySCPIProtocol::setVoltMeterMode (void) 
+{
+std::stringstream cmd_to_send;
+std::string mode_ ("");
+
+	//- mode volt
+	mode_ = "VOLTage";
+
+	//- send command
+	cmd_to_send << "FUNC \'" << mode_ << "\'" << std::endl;
+	_communication_link->write(cmd_to_send.str());
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::setOhmMeterMode
+// ============================================================================
+void KeithleySCPIProtocol::setOhmMeterMode (void) 
+{
+std::stringstream cmd_to_send;
+std::string mode_ ("");
+
+	//- mode ohm
+	mode_ = "RESistance";
+
+	//- send command
+	cmd_to_send << "FUNC \'" << mode_ << "\'" << std::endl;
+	_communication_link->write(cmd_to_send.str());
+
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::setCoulombMeterMode
+// ============================================================================
+void KeithleySCPIProtocol::setCoulombMeterMode (void) 
+{
+std::stringstream cmd_to_send;
+std::string mode_ ("");
+
+	//- mode coulomb
+	mode_ = "CHARge";
+
+	//- send command
+	cmd_to_send << "FUNC \'" << mode_ << "\'" << std::endl;
+	_communication_link->write(cmd_to_send.str());
+
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::get_mode
+// ============================================================================
+std::string KeithleySCPIProtocol::get_mode (void) 
+{
+std::string cmd_to_send("");
+	
+	//- get electrometer mode
+	if(isDiffSuportedMode)
+	{
+		//- send command
+		cmd_to_send = "FUNC?" ;
+		_mode =  _communication_link->write_read(cmd_to_send);
+		//- _mode returned is as this "RES" so, erase " caracters
+		_mode.erase(_mode.find("\""), 1);
+		_mode.erase(_mode.find("\""), 1);
+	}
+	else
+		_mode = "CURR\n";
+
+	return _mode;
+
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::get_range
+// ============================================================================
+std::string KeithleySCPIProtocol::get_range (void) 
+{
+std::string cmd_to_send("");
+std::string tmpMode;
+	
+	//- get electrometer mode
+	tmpMode = get_mode( );
+
+	//- erase bad caracters
+	tmpMode.erase(tmpMode.find("\n") );
+	
+	//- send command
+	cmd_to_send = tmpMode + ":RANGe?" ;
+	std::string _rangeStr = _communication_link->write_read(cmd_to_send);
+	
+	return _rangeStr;
+
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::get_value
+// ============================================================================
+std::string KeithleySCPIProtocol::get_value (void) 
+{
+std::string cmd_to_send("");
+std::string tmp("");
+
+	//- This command performs an INIT and then query the updated value
+	cmd_to_send = "MEAS?" ;
+	tmp = _communication_link->write_read(cmd_to_send);
+
+  //- extract all data
+  return tmp;
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::get_integratedValue
+// ============================================================================
+std::vector<double> KeithleySCPIProtocol::get_integratedValue (void) 
+{
+std::string cmd_to_send("");
+std::string tmp("");
+
+	//- This command performs an INIT and then query the bufferised values
+	cmd_to_send = "TRAC:DATA?" ;
+	tmp = _communication_link->write_read(cmd_to_send);
+
+  //- extract all data
+  return buildDataList(tmp);
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::get_fetchValue
+// ============================================================================
+std::vector<double> KeithleySCPIProtocol::get_fetchValue (void) 
+{
+std::string cmd_to_send("");
+std::string tmp("");
+
+	//- This command queries the last value(s)
+	cmd_to_send = "FETch?" ;
+	tmp = _communication_link->write_read(cmd_to_send);
+
+  //- extract all data
+  return buildDataList(tmp);
+
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::buildDataList
+//
+//  This method extract and convert data from the received string
+// ============================================================================
+std::vector<double> KeithleySCPIProtocol::buildDataList(std::string datalist)
+{
+std::string dataStr("");
+std::vector<double> argout;
+std::string::size_type posBeg;
+std::string::size_type posEnd;
+short numberOfData = 0;
+	//- 
+	posBeg = 0;
+	posEnd = datalist.find(',', posBeg);
+//-DEBUG std::cout << "\t*****::buildDataList -> argin :\n$" << datalist << "$" << std::endl;
+  //- there is just one value
+  if(posEnd == std::string::npos)
+  {
+		  argout.push_back( XString<double>::convertFromString(datalist) );
+//-DEBUG std::cout << "\t*****::buildDataList -> JUST ONE DATA :$" << datalist << "$" << std::endl;
+  }
+  else
+  {
+	  int i = 0;
+    //std::string tmp = get_triggercount();
+    numberOfData =  XString<short>::convertFromString(get_triggercount());
+
+    for(i=0; i < numberOfData; i++)
+    {
+		  dataStr = datalist.substr(posBeg,posEnd);
+		  argout.push_back( XString<double>::convertFromString(dataStr) );
+//-DEBUG std::cout << "\t*****::buildDataList -> FULL OF DATA : " << i << " -> $" << argout[i] << "$" << std::endl;
+      posBeg = posEnd+1;
+		  posEnd = datalist.find(',', posBeg);
+
+      //- end of string reached so latest data is here
+      if(posEnd == std::string::npos)
+      {
+        dataStr = datalist.substr(posBeg);
+   		  argout.push_back( XString<double>::convertFromString(dataStr) );
+        break;
+      }
+
+    }
+  }
+
+	return argout;
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::init_keithley to perform reading(s) data
+// ============================================================================
+void KeithleySCPIProtocol::init_keithley (void) 
+{
+std::string cmd_to_send("INIT");
+
+	//- send command : INIT to trigg readings !
+	_communication_link->write(cmd_to_send);
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::set_knplc : specify the integration rate
+// ============================================================================
+void KeithleySCPIProtocol::set_knplc (std::string nbNPLC) 
+{
+std::string cmd_to_send("");
+std::string tmpMode;
+	
+	//- get electrometer mode
+	tmpMode = get_mode( );
+
+	//- erase bad caracters
+	tmpMode.erase(tmpMode.find("\n") );
+	
+	//- send command
+	cmd_to_send = tmpMode + ":NPLC " + nbNPLC ;
+	_communication_link->write(cmd_to_send);
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::get_knplc : get the integration rate
+// ============================================================================
+std::string KeithleySCPIProtocol::get_knplc (void) 
+{
+std::string cmd_to_send("");
+std::string tmpMode;
+	
+	//- get electrometer mode
+	tmpMode = get_mode( );
+
+	//- erase bad caracters
+	tmpMode.erase(tmpMode.find("\n") );
+	
+	//- send command
+	cmd_to_send = tmpMode + ":NPLCycles?" ;
+	return _communication_link->write_read(cmd_to_send);
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::set_triggercount
+// ============================================================================
+void KeithleySCPIProtocol::set_triggercount (std::string nbTrigCount) 
+{
+std::string cmd_to_send("");
+
+	//- send command
+	cmd_to_send = "TRIG:COUN " + nbTrigCount ;
+	//- for internal use ( = keithley device buffer size)
+	trigCountStr = nbTrigCount;
+
+	_communication_link->write(cmd_to_send);
+
+	//- set buffer size ( = number of triggers )
+	set_buffer_size();
+
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::get_triggercount
+// ============================================================================
+std::string KeithleySCPIProtocol::get_triggercount (void) 
+{
+std::string cmd_to_send("");
+std::string response("");
+
+	//- send command
+	cmd_to_send = "TRIG:COUNt?" ;
+	response  = _communication_link->write_read(cmd_to_send);
+
+  return response;
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::set_triggerdelay
+// ============================================================================
+void KeithleySCPIProtocol::set_triggerdelay (std::string trigDelay) 
+{
+std::string cmd_to_send("");
+
+	//- send command
+	cmd_to_send = "TRIG:DEL " + trigDelay ;
+	_communication_link->write(cmd_to_send);
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::get_triggerdelay
+// ============================================================================
+std::string KeithleySCPIProtocol::get_triggerdelay (void) 
+{
+std::string cmd_to_send("");
+
+	//- send command
+	cmd_to_send = "TRIG:DEL?" ;
+	return _communication_link->write_read(cmd_to_send);
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::set_triggerdelayAuto
+// ============================================================================
+void KeithleySCPIProtocol::set_triggerdelayAuto (std::string trigDelayAuto) 
+{
+std::string cmd_to_send("");
+
+	//- send command
+	cmd_to_send = "TRIG:DEL:" + trigDelayAuto ;
+	_communication_link->write(cmd_to_send);
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::get_triggerdelayAuto
+// ============================================================================
+std::string KeithleySCPIProtocol::get_triggerdelayAuto (void) 
+{
+std::string cmd_to_send("");
+
+	//- send command
+	cmd_to_send = "TRIG:DEL:AUTO?" ;
+	return _communication_link->write_read(cmd_to_send);
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::set_averagecount
+// ============================================================================
+void KeithleySCPIProtocol::set_averagecount (std::string nbAverageCount) 
+{
+std::string cmd_to_send("");
+std::string tmpMode;
+	
+	//- get electrometer mode
+//	tmpMode = get_mode( );
+
+	//- erase bad caracters
+//	tmpMode.erase(tmpMode.find("\n") );
+	
+	//- send command
+	cmd_to_send = "AVER:COUN " + nbAverageCount;
+	_communication_link->write(cmd_to_send);
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::get_averagecount
+// ============================================================================
+std::string KeithleySCPIProtocol::get_averagecount (void) 
+{
+std::string cmd_to_send("");
+std::string tmpMode;
+	
+	//- get electrometer mode
+//	tmpMode = get_mode( );
+
+	//- erase bad caracters
+//	tmpMode.erase(tmpMode.find("\n") );
+	
+	//- send command
+	cmd_to_send = "AVER:COUNt?" ;
+	return _communication_link->write_read(cmd_to_send);
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::set_averagecontrol
+// ============================================================================
+void KeithleySCPIProtocol::set_averagecontrol (std::string nbAverageControl) 
+{
+std::string cmd_to_send("");
+std::string tmpMode;
+	
+	//- get electrometer mode
+//	tmpMode = get_mode( );
+
+	//- send command
+	cmd_to_send = "AVER:TCON " + nbAverageControl;
+	_communication_link->write(cmd_to_send);
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::get_averagecontrol
+// ============================================================================
+std::string KeithleySCPIProtocol::get_averagecontrol (void) 
+{
+std::string cmd_to_send("");
+std::string tmpMode;
+	
+	//- get electrometer mode
+//	tmpMode = get_mode( );
+
+	//- send command
+	cmd_to_send = "AVER:TCONtrol?" ;
+	return _communication_link->write_read(cmd_to_send);
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::clear_registers
+// ============================================================================
+void KeithleySCPIProtocol::clear_registers (void) 
+{
+std::string cmd_to_send("");
+	
+	//- send command
+	cmd_to_send = "*CLS" ;
+	_communication_link->write(cmd_to_send);
+
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::averageStateON
+// ============================================================================
+void KeithleySCPIProtocol::averageStateON (void) 
+{
+std::string cmd_to_send("");
+	
+	//- send command
+	cmd_to_send = "AVER ON" ;
+	_communication_link->write(cmd_to_send);
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::averageStateOFF
+// ============================================================================
+void KeithleySCPIProtocol::averageStateOFF (void) 
+{
+std::string cmd_to_send("");
+	
+	//- send command
+	cmd_to_send = "AVER OFF";
+	_communication_link->write(cmd_to_send);
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::reset
+// ============================================================================
+void KeithleySCPIProtocol::reset (void) 
+{
+std::string cmd_to_send("");
+	
+	//- send command
+	cmd_to_send = "*RST" ;
+	_communication_link->write(cmd_to_send);
+
+  //- Select reading only
+  cmd_to_send = "FORM:ELEM READ";
+
+	//- send command
+	_communication_link->write(cmd_to_send);
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::get_raw_status
+// ============================================================================
+std::string KeithleySCPIProtocol::get_raw_status (void) 
+{
+std::string cmd_to_send("");
+std::string argout("no data");
+
+	//- send command : read error queue only
+	cmd_to_send = "STAT:QUE?";
+	argout = _communication_link->write_read(cmd_to_send);
+
+
+	return argout;
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::set_buffer_size()
+// ============================================================================
+void KeithleySCPIProtocol::set_buffer_size (void) 
+{
+std::string cmd_to_send("");
+
+	//- send command : size = number of triggers
+	cmd_to_send = "TRAC:POIN " + trigCountStr;
+	_communication_link->write(cmd_to_send);
+
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::clear_buffer()
+// ============================================================================
+void KeithleySCPIProtocol::clear_buffer (void) 
+{
+std::string cmd_to_send("TRAC:CLEAR");
+
+	//- send command : clear previous data
+	_communication_link->write(cmd_to_send);
+
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::store_raw_input()
+// ============================================================================
+void KeithleySCPIProtocol::store_raw_input (void) 
+{
+std::string cmd_to_send("TRAC:FEED SENS");
+
+	//- send command : Store raw input readings
+	_communication_link->write(cmd_to_send);
+
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::start_storing()
+// ============================================================================
+void KeithleySCPIProtocol::start_storing (void) 
+{
+std::string cmd_to_send("TRAC:FEED:CONT NEXT");
+
+	//- send command : Start storing readings
+	_communication_link->write(cmd_to_send);
+
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::enable_SRQBufferFull()
+// ============================================================================
+void KeithleySCPIProtocol::enable_SRQBufferFull (void) 
+{
+/**********************************************************/
+/*  NOTE :                                                */
+/* 512 is the 10th bit in the MESUREMENT EVENT REGISTERS  */
+/* which the BUFFER FULL bit that can be enabled          */
+/**********************************************************/
+  
+  std::string cmd_to_send("STAT:MEAS:ENAB 512");
+
+	//- send command : enable buffer full in the Measurement event enable register
+	_communication_link->write(cmd_to_send);
+
+  //- Program the service request enable register: to send SRQ on Buffer Full !
+  cmd_to_send = "*SRE 1";
+
+	_communication_link->write(cmd_to_send);
+
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::disable_SRQBufferFull()
+// ============================================================================
+void KeithleySCPIProtocol::disable_SRQBufferFull (void) 
+{
+std::string cmd_to_send("STAT:MEAS?");
+
+	//- send command : disable buffer full event
+	_communication_link->write_read(cmd_to_send);
+
+  //- Disable the service request enable register
+  cmd_to_send = "*SRE 0";
+	_communication_link->write(cmd_to_send);
+
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::readStatusByteRegister()
+// ============================================================================
+std::string KeithleySCPIProtocol::readStatusByteRegister (void) 
+{
+std::string cmd_to_send("*STB?");
+
+	//- if asserted -> the event sets a bit in the Status Byte Register
+	return _communication_link->write_read(cmd_to_send);
+
+  //- Cf Keithley doc to know how the to get the wanted event 
+  //-   Chapter : Status Structure
+}
+
+
+
+
+// Following functions are part of commands supported via the SCPI protocol. 
+// We may have to implement them after first tests on beamlines
+
+/*
+// ============================================================================
+// KeithleySCPIProtocol::setExternalFeedbackMeterMode
+// ============================================================================
+void KeithleySCPIProtocol::setExternalFeedbackMeterMode (void) 
+{
+std::stringstream cmd_to_send;
+
+		cmd_to_send << "F4X" << std::endl;
+		_communication_link->write(cmd_to_send());
+
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::setVonIMeterMode
+// ============================================================================
+void KeithleySCPIProtocol::setVonIMeterMode (void) 
+{
+std::stringstream cmd_to_send;
+
+	//- send command
+	try
+	{
+		cmd_to_send << "F5X" << std::endl;
+		_communication_link->write(cmd_to_send.str());
+	}
+	catch(Tango::DevFailed& df)
+	{
+		Tango::Except::re_throw_exception (df,
+										(const char*)"COMMUNICATION_ERROR",
+										(const char*)"Unable to perform a write operation",
+										(const char*)"KeithleySCPIProtocol::setVonIMeterMode");
+	}
+	catch(...)
+	{
+		throw ;
+	}
+
+}
+*/
+
+/* TO BE IMPLEMENTED !!!!! 
+
+// ============================================================================
+// KeithleySCPIProtocol::reading_source
+// ============================================================================
+void KeithleySCPIProtocol::reading_source (void) 
+{
+
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::reading_source
+// ============================================================================
+void KeithleySCPIProtocol::data_store (void) 
+{
+
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::reading_source
+// ============================================================================
+void KeithleySCPIProtocol::data_format (void) 
+{
+
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::reading_source
+// ============================================================================
+void KeithleySCPIProtocol::baseline_suppression_ON (void) 
+{
+
+}
+
+// ============================================================================
+// KeithleySCPIProtocol::reading_source
+// ============================================================================
+void KeithleySCPIProtocol::baseline_suppression_OFF (void) 
+{
+
+}
+// ============================================================================
+// KeithleySCPIProtocol::reading_source
+// ============================================================================
+void KeithleySCPIProtocol::keithley_status (void) 
+{
+
+}
+*/
diff --git a/src/Keithley_485.cpp b/src/Keithley_485.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..1ac0af895beccce63735be7e3c11e5f7201c2d96
--- /dev/null
+++ b/src/Keithley_485.cpp
@@ -0,0 +1,255 @@
+// ============================================================================
+//
+// = CONTEXT
+//    TANGO Project - KeithleyElectrometer Support Library
+//
+// = FILENAME
+//    Keithley_485.cpp
+//
+// = AUTHOR
+//    X. Elattaoui
+//
+// ============================================================================
+static long KEITHLEY_MODEL = 485;
+
+// ============================================================================
+// DEPENDENCIES
+// ============================================================================
+#include <iostream>
+#include <stdexcept>
+#include <sstream>
+#include <string>
+#include <Xstring.h>
+#include "KeithleyDDCProtocol.h"
+#include "Keithley_485.h"
+/*
+* Valid Range values for a K_485
+*/
+static const std::string K485_rangeValue[] = {"AUTO ON","2E-9","2E-8","2E-7","2E-6","2E-5","2E-4","2E-3"};
+
+/*
+* Range limit
+*/
+static const short K485_rangeLimit	= 7;
+
+// ============================================================================
+// Keithley_485::Keithley_485
+// ============================================================================
+Keithley_485::Keithley_485 (std::string& comLink_device_name):AbstractElectrometerClass(comLink_device_name) 
+
+{
+	std::cout << "Keithley_485::Keithley_485 <-" << std::endl;
+
+	_electrometerProtocol = new KeithleyDDCProtocol (_device_proxy_name);
+	
+	std::cout << "Keithley_485::Keithley_485 ->" << std::endl;
+}
+
+// ============================================================================
+// Keithley_485::~Keithley_485
+// ============================================================================
+Keithley_485::~Keithley_485 (void)
+{
+	std::cout << "Keithley_485::~Keithley_485 <-" << std::endl;
+
+	std::cout << "Keithley_485::~Keithley_485 ->" << std::endl;
+}
+
+// ============================================================================
+// Keithley_485::range_up
+// ============================================================================
+void Keithley_485::range_up (void) 
+{
+std::stringstream cmd_to_send;
+
+	// force read of range on instrument to update _range variable 
+	electrometer_status();
+
+	_range += 1;
+
+	if(_range > K485_rangeLimit)
+	{
+		_range = K485_rangeLimit;
+		throw electrometer::ElectrometerException("OUT_OF_RANGE", 
+												"Range up limit reached.",
+												"Keithley_485::range_up( ).");
+	}
+
+	//- build and send the command
+	cmd_to_send << _range << std::endl;
+	_electrometerProtocol->set_range(cmd_to_send.str());
+}
+
+// ============================================================================
+// Keithley_485::range_down
+// ============================================================================
+void Keithley_485::range_down (void) 
+{
+
+std::stringstream cmd_to_send;
+
+	// force read of range on instrument to update _range variable
+	electrometer_status();
+
+	_range -= 1;
+
+	if(_range < 0)
+	{
+		_range=0;
+		throw electrometer::ElectrometerException("OUT_OF_RANGE", 
+												"Range down limit reached.",
+												"Keithley_485::range_down( ).");
+	}
+	//- build and send the command
+	cmd_to_send << _range << std::endl;
+	_electrometerProtocol->set_range(cmd_to_send.str());
+}
+
+// ============================================================================
+// Keithley_485::get_ElectroMeterRange
+// ============================================================================
+std::string Keithley_485::get_ElectroMeterRange (void) 
+{
+	// force read of range on instrument to update _range variable
+	electrometer_status();
+
+	return _rangeStr;
+}
+
+// ============================================================================
+// Keithley_485::electrometer_status
+// ============================================================================
+std::string Keithley_485::electrometer_status (void)
+{ 
+	std::string _kstatus("undefined status");
+	std::string argout("undefined status");
+	std::string tmp("");
+
+	//- read keithley status from HW	
+	_kstatus = _electrometerProtocol->get_raw_status();
+
+	//- build status
+	try
+	{
+		//- model number :
+		std::string modelNum = _kstatus.substr(0,3);
+		//- if not expected data (here model number)
+		if(modelNum.find("485") == std::string::npos)
+		{
+			set_electroState(ALARM);
+			argout = "Invalid status string received";
+			return argout;
+		}
+		argout = "Keithley Type : " + modelNum + "\n";
+		//- Zero check state
+		tmp = _kstatus.substr(3,1);
+		if(XString<short>::convertFromString(tmp))
+			argout += "Zero Check : ON\n";
+		else
+			argout += "Zero Check : OFF\n";
+		//- Log state
+		tmp = _kstatus.substr(4,1);
+		if(XString<short>::convertFromString(tmp))
+			argout += "Log : ON\n";
+		else
+			argout += "Log : OFF\n";
+		//- Range
+		tmp = _kstatus.substr(5,1);
+		 _range = XString<short>::convertFromString(tmp);
+		_rangeStr = K485_rangeValue[_range];
+		argout   += _rangeStr + "\n";
+		//- Relative (baseline suppress)
+		tmp = _kstatus.substr(6,1);
+		if(XString<short>::convertFromString(tmp))
+			argout += "Relative ON\n";
+		else
+			argout += "Relative OFF\n";
+		//- Relative (baseline suppress)
+		tmp = _kstatus.substr(7,1);
+		if(XString<short>::convertFromString(tmp))
+			argout += "EOI : Send\n";
+		else
+			argout += "EOI : Do Not Send\n";
+		//- Trigger
+		tmp = _kstatus.substr(8,1);
+		if(!XString<short>::convertFromString(tmp))
+			argout += "Trigger : Continuous on Talk\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 1)
+				argout += "Trigger :One-Shot on Talk\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 2)
+				argout += "Trigger :Continuous on Get\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 3)
+				argout += "Trigger :One-Shot on Get\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 4)
+				argout += "Trigger :Continuous on \"X\"\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 5)
+				argout += "Trigger :One-Shot on \"X\"\n";
+		//- SRQ Data Mask
+		tmp = _kstatus.substr(9,2);
+		if(!XString<short>::convertFromString(tmp))
+			argout += "SRQ Data Mask : SRQ Disabled\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 1)
+				argout += "SRQ Data Mask : Reading Overflow\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 8)
+				argout += "SRQ Data Mask : Reading Done\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 9)
+				argout += "SRQ Data Mask : Reading Done or Reading Overflow\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 16)
+				argout += "SRQ Data Mask : Busy\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 17)
+				argout += "SRQ Data Mask : Busy or Reading Overflow\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 24)
+				argout += "SRQ Data Mask : Busy or Reading Done\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 25)
+				argout += "SRQ Data Mask : Busy, Reading Done or Reading Overflow\n";
+		//- SRQ Error Mask
+		tmp = _kstatus.substr(9,2);
+		if(!XString<short>::convertFromString(tmp))
+			argout += "SRQ Error Mask : SRQ Disabled\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 1)
+				argout += "SRQ Error Mask : IDDCO\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 2)
+				argout += "SRQ Error Mask : IDDC\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 3)
+				argout += "SRQ Error Mask : IDDCO or IDDC\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 4)
+				argout += "SRQ Error Mask : Not in Remote\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 5)
+				argout += "SRQ Error Mask : Not in Remote or IDDCO\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 6)
+				argout += "SRQ Error Mask : Not in Remote or IDDC\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 7)
+				argout += "SRQ Error Mask : Not in Remote, IDDCO or IDDC\n";
+	}
+	catch(std::out_of_range)
+	{
+		set_electroState(ALARM);
+
+		throw electrometer::ElectrometerException("OUT_OF_RANGE", 
+												"Cannot extract device status [find or substr failed !].",
+												"Keithley_485::electrometer_status( ).");
+	}
+
+	set_electroState(ON);
+	return argout;
+}
+
diff --git a/src/Keithley_486.cpp b/src/Keithley_486.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..efa11a160708f3bad790ed82b11baa0d2bd2a9fa
--- /dev/null
+++ b/src/Keithley_486.cpp
@@ -0,0 +1,355 @@
+// ============================================================================
+//
+// = CONTEXT
+//    TANGO Project - DDC KeithleyElectrometer Support Library
+//
+// = FILENAME
+//    Keithley_486.cpp
+//
+// = AUTHOR
+//    X. Elattaoui
+//
+// ============================================================================
+static long KEITHLEY_MODEL = 486;
+
+// ============================================================================
+// DEPENDENCIES
+// ============================================================================
+#include <iostream>
+#include <stdexcept>
+#include <sstream>
+#include <string>
+#include <Xstring.h>
+#include "Keithley_486.h"
+#include "KeithleyDDCProtocol.h"
+/*
+* Valid Range values for a K_486
+*/
+static const std::string K486_rangeValue[] = {"AUTO ON","2E-9","2E-8","2E-7","2E-6","2E-5","2E-4","2E-3", "AUTO OFF"};
+/*
+* Range limit : no range for values R8 & R9 (R10 = AUTORANGE OFF)
+*/
+static short K486_rangeLimit = 8;
+
+
+// ============================================================================
+// Keithley_486::Keithley_486
+// ============================================================================
+Keithley_486::Keithley_486 (std::string& comLink_device_name):AbstractElectrometerClass(comLink_device_name) 
+{
+	std::cout << "Keithley_486::Keithley_486 <-" << std::endl;
+
+	//- build the keithley Electrometer obj
+	_electrometerProtocol = new KeithleyDDCProtocol(_device_proxy_name);
+
+	std::cout << "Keithley_486::Keithley_486 ->" << std::endl;
+}
+
+// ============================================================================
+// Keithley_486::~Keithley_486
+// ============================================================================
+Keithley_486::~Keithley_486 (void)
+{
+	std::cout << "Keithley_486::~Keithley_486 <-" << std::endl;
+
+	std::cout << "Keithley_486::~Keithley_486 ->" << std::endl;
+}
+
+// ============================================================================
+// Keithley_486::autoRange_off
+// ============================================================================
+void Keithley_486::autoRange_off (void) 
+{
+
+	//- send the appropriate command
+	KeithleyDDCProtocol* _kddc = dynamic_cast<KeithleyDDCProtocol*>(_electrometerProtocol);
+	if(_kddc)
+		_kddc->autoRange_OFF_forK486_487();
+}
+
+// ============================================================================
+// Keithley_486::range_up
+// ============================================================================
+void Keithley_486::range_up (void) 
+{
+std::stringstream cmd_to_send;
+
+	// force read of range on instrument to update _range variable 
+	electrometer_status();
+
+	_range += 1;
+
+	if(_range > K486_rangeLimit)
+	{
+		_range =K486_rangeLimit;
+		throw electrometer::ElectrometerException("OUT_OF_RANGE", 
+												"Range up limit reached.",
+												"Keithley_486::range_up( ).");
+	}
+
+	//- build and send the command
+	cmd_to_send << _range << std::endl;
+	_electrometerProtocol->set_range(cmd_to_send.str());
+}
+
+// ============================================================================
+// Keithley_486::range_down
+// ============================================================================
+void Keithley_486::range_down (void) 
+{
+std::stringstream cmd_to_send;
+
+	// force read of range on instrument to update _range variable
+	electrometer_status();
+
+	_range -= 1;
+
+	if(_range < 0)
+	{
+		_range = 0;
+		throw electrometer::ElectrometerException("OUT_OF_RANGE", 
+												"Range down limit reached.",
+												"Keithley_486::range_down( ).");
+	}
+	//- build and send the command
+	cmd_to_send << _range << std::endl;
+	_electrometerProtocol->set_range(cmd_to_send.str());
+}
+
+// ============================================================================
+// Keithley_486::get_ElectroMeterRange
+// ============================================================================
+std::string Keithley_486::get_ElectroMeterRange (void) 
+{
+	// force read of range on instrument to update _range variable
+	electrometer_status();
+
+	return _rangeStr;
+}
+
+// ============================================================================
+// Keithley_486::electrometer_status
+// ============================================================================
+std::string Keithley_486::electrometer_status (void)
+{ 
+	std::string _kstatus("undefined status");
+	std::string argout("undefined status");
+	std::string tmp("");
+
+	//- read keithley status from HW	
+	_kstatus = _electrometerProtocol->get_raw_status();
+
+	//- build status
+	try
+	{
+		//- model number :
+		std::string modelNum = _kstatus.substr(0,3);
+		//- if not expected data (here model number)
+		if(modelNum.find("486") == std::string::npos)
+		{
+			set_electroState(ALARM);
+			argout = "Invalid status string received";
+			return argout;
+		}
+		argout = "Keithley Type : " + modelNum + "\n";
+		//- Display Intensity ('A')
+		tmp = _kstatus.substr(_kstatus.find('A')+1,1);
+	std::cout << "\nDisplay Intensity = *" << tmp <<"*" << std::endl;
+		if(!XString<short>::convertFromString(tmp))
+			argout += "Display Intensity : NORMAL\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 1)
+			argout += "Display Intensity : DIM\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 2)
+			argout += "Display Intensity : OFF\n";
+		//- Reading Source ('B')
+		tmp = _kstatus.substr(_kstatus.find('B')+1,1);
+	std::cout << "\nReading Source = *" << tmp <<"*" << std::endl;
+		if(!XString<short>::convertFromString(tmp))
+			argout += "Reading Source : A/D Reading\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 1)
+			argout += "Reading Source : One Data Store Reading\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 2)
+			argout += "Reading Source : All Data Store Reading\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 3)
+			argout += "Reading Source : Max Data Store Reading\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 4)
+			argout += "Reading Source : Min Data Store Reading\n";
+		//- Zero check state ('C')
+		tmp = _kstatus.substr(_kstatus.find('C')+1,1);
+	std::cout << "\nZero check state = *" << tmp <<"*" << std::endl;
+		if(XString<short>::convertFromString(tmp))
+			argout += "Zero Check : Enabled\n";
+		else
+			argout += "Zero Check : Disabled\n";
+		//- Data Format ('G')
+		tmp = _kstatus.substr(_kstatus.find('G')+1,1);
+		if(!XString<short>::convertFromString(tmp))
+			argout += "Data Format : Reading With Prefix (ASCII)\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 1)
+			argout += "Data Format : Reading Without Prefix (ASCII)\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 2)
+			argout += "Data Format : Reading and Buffer Location With Prefix (ASCII)\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 3)
+			argout += "Data Format : Reading and Buffer Location Without Prefix (ASCII)\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 4)
+			argout += "Data Format : Binary Reading - precision, bytes reversed for Intel CPUs\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 5)
+			argout += "Data Format : Binary Reading - precision, bytes in normal order for Motorola CPUs\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 6)
+			argout += "Data Format : Binary Reading - counts and exponent, bytes reversed for Intel CPUs\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 7)
+			argout += "Data Format : Binary Reading - counts and exponent, bytes in normal order for Motorola CPUs\n";
+		//- Self Test ('J')
+		tmp = _kstatus.substr(_kstatus.find('J')+1,1);
+		if(!XString<short>::convertFromString(tmp))
+			argout += "Self Test : No Errors\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 1)
+			argout += "Self Test : ROM Error\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 2)
+			argout += "Self Test : RAM Error\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 3)
+			argout += "Self Test : ROM and RAM Error\n";
+		//- EOI & Bus Hold Off ('K')
+		tmp = _kstatus.substr(_kstatus.find('J')+1,1);
+		if(!XString<short>::convertFromString(tmp))
+			argout += "EOI & Bus Hold Off : EOI and Hold-Off\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 1)
+			argout += "EOI & Bus Hold Off : No EOI and Hold-Off\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 2)
+			argout += "EOI & Bus Hold Off : EOI and no Hold-Off\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 3)
+			argout += "EOI & Bus Hold Off : No EOI and no Hold-Off\n";
+		//- SRQ ('M')
+		tmp = _kstatus.substr(_kstatus.find('M')+1,3);
+		if(!XString<short>::convertFromString(tmp))
+			argout += "SRQ : Disabled\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 1)
+			argout += "SRQ : Reading Overflow\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 2)
+			argout += "SRQ : Data Store Full\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 4)
+			argout += "SRQ : Data Store 1/2 full\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 8)
+			argout += "SRQ : Reading Done\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 16)
+			argout += "SRQ : Ready\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 32)
+			argout += "SRQ : Error\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 128)
+			argout += "SRQ : Voltage Source Error\n";
+		//- Data Store Size ('N')
+		tmp = _kstatus.substr(_kstatus.find('N')+1,3);
+		if(!XString<short>::convertFromString(tmp))
+			argout += "Data Store Size : Wrap Around\n";
+		else
+			argout += "Data Store Size : " + tmp + "\n";
+		//- Filters ('P')
+		tmp = _kstatus.substr(_kstatus.find('P')+1,1);
+		if(!XString<short>::convertFromString(tmp))
+			argout += "Filters : Both Filters Disabled\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 1)
+			argout += "Filters : Digital Filter Enabled, Analog Filter Disabled\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 2)
+			argout += "Filters : Digital Filter Disabled, Analog Filter Enabled\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 3)
+			argout += "Filters : Both Filters Enabled\n";
+		//- Range ('Rmn')
+		//- check AutoRange
+		tmp = _kstatus.substr(_kstatus.find('R')+1,2);
+		std::cout << "\ncheck AutoRange = *" << tmp[0] << "*" << std::endl;
+//		if(atoi(&tmp[0]) == 0)
+		if(tmp[0] == '0')
+			argout += "Range : AutoRange Disabled\n";
+		else
+			argout += "Range : AutoRange Enabled\n";
+		//- range value
+//		tmp = _kstatus.substr(_kstatus.find('R')+2,1);
+		_range = atoi(&tmp[1]);
+		_rangeStr = K486_rangeValue[_range];
+	std::cout << "\nRange = *" << _range <<"*" << ", RangeStr=" << _rangeStr << std::endl;
+		argout   += _rangeStr + "\n";
+		//- Integration Period ('S')
+		tmp = _kstatus.substr(_kstatus.find('S')+1,1);
+		if(!XString<short>::convertFromString(tmp))
+			argout += "Integration Period : Fast (4-1/2d)\n";
+		else
+			argout += "Integration Period : Line Cycle (5-1/2d)\n";
+		//- Trigger ('T')
+		tmp = _kstatus.substr(_kstatus.find('T')+1,1);
+		if(!XString<short>::convertFromString(tmp))
+			argout += "Trigger : Multiple On Talk\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 1)
+			argout += "Trigger : One-shot On Talk\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 2)
+			argout += "Trigger : Multiple On Get\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 3)
+			argout += "Trigger : One-shot On Get)\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 4)
+			argout += "Trigger : Multiple On X\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 5)
+			argout += "Trigger : One-shot On X\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 6)
+			argout += "Trigger : Multiple On External Trigger\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 7)
+			argout += "Trigger : One-shot On External Trigger\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 8)
+			argout += "Trigger : Multiple On Operate\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 9)
+			argout += "Trigger : One-shot On Operate\n";
+		//- Relative ('Z') (baseline suppress)
+		tmp = _kstatus.substr(_kstatus.find('Z')+1,1);
+		if(!XString<short>::convertFromString(tmp))
+			argout += "Relative : Current Rel Disabled\n";
+		else
+			argout += "Relative : Current Rel Enabled\n";
+	}
+	catch(std::out_of_range)
+	{
+		set_electroState(ALARM);
+
+		throw electrometer::ElectrometerException("OUT_OF_RANGE", 
+												"Cannot extract device status [find or substr failed !].",
+												"Keithley_486::electrometer_status( ).");
+	}
+
+	set_electroState(ON);
+	return argout;
+}
diff --git a/src/Keithley_487.cpp b/src/Keithley_487.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..8496b32695d76bae4b245eeebaaf513fdd43d5c3
--- /dev/null
+++ b/src/Keithley_487.cpp
@@ -0,0 +1,388 @@
+// ============================================================================
+//
+// = CONTEXT
+//    TANGO Project - DDC KeithleyElectrometer Support Library
+//
+// = FILENAME
+//    Keithley_487.cpp
+//
+// = AUTHOR
+//    X. Elattaoui
+//
+// ============================================================================
+static long KEITHLEY_MODEL = 487;
+
+// ============================================================================
+// DEPENDENCIES
+// ============================================================================
+#include <iostream>
+#include <stdexcept>
+#include <sstream>
+#include <string>
+#include <Xstring.h>
+#include "Keithley_487.h"
+#include "KeithleyDDCProtocol.h"
+/*
+* Valid Range values for a K_487
+*/
+static const std::string K487_rangeValue[] = {"AUTO ON","2E-9","2E-8","2E-7","2E-6","2E-5","2E-4","2E-3", "AUTO OFF"};
+/*
+* Range limit : no range for values R8 & R9 (R10 = AUTORANGE OFF)
+*/
+static short K487_rangeLimit = 8;
+
+
+// ============================================================================
+// Keithley_487::Keithley_487
+// ============================================================================
+Keithley_487::Keithley_487 (std::string& comLink_device_name):AbstractElectrometerClass(comLink_device_name) 
+{
+	std::cout << "Keithley_487::Keithley_487 <-" << std::endl;
+
+	//- build the keithley Electrometer obj
+	_electrometerProtocol = new KeithleyDDCProtocol (_device_proxy_name);
+
+	std::cout << "Keithley_487::Keithley_487 ->" << std::endl;
+}
+
+// ============================================================================
+// Keithley_487::~Keithley_487
+// ============================================================================
+Keithley_487::~Keithley_487 (void)
+{
+	std::cout << "Keithley_487::~Keithley_487 <-" << std::endl;
+
+	std::cout << "Keithley_487::~Keithley_487 ->" << std::endl;
+}
+
+// ============================================================================
+// Keithley_487::autoRange_off
+// ============================================================================
+void Keithley_487::autoRange_off (void) 
+{
+
+	//- send the appropriate command
+	KeithleyDDCProtocol* _kddc = dynamic_cast<KeithleyDDCProtocol*>(_electrometerProtocol);
+	if(_kddc)
+		_kddc->autoRange_OFF_forK486_487();
+}
+
+// ============================================================================
+// Keithley_487::range_up
+// ============================================================================
+void Keithley_487::range_up (void) 
+{
+std::stringstream cmd_to_send;
+
+	// force read of range on instrument to update _range variable 
+	electrometer_status();
+
+	_range += 1;
+
+	if(_range > K487_rangeLimit)
+	{
+		_range = K487_rangeLimit;
+
+		throw electrometer::ElectrometerException("OUT_OF_RANGE", 
+												"Range up limit reached.",
+												"Keithley_487::range_up( ).");
+	}
+
+	//- build and send the command
+	cmd_to_send << _range << std::endl;
+	_electrometerProtocol->set_range(cmd_to_send.str());
+}
+
+// ============================================================================
+// Keithley_487::range_down
+// ============================================================================
+void Keithley_487::range_down (void) 
+{
+std::stringstream cmd_to_send;
+
+	// force read of range on instrument to update _range variable 
+	electrometer_status();
+
+	_range -= 1;
+
+	if(_range < 0)
+	{
+		_range=0;
+
+		throw electrometer::ElectrometerException("OUT_OF_RANGE", 
+												"Range down limit reached.",
+												"Keithley_487::range_down( ).");
+	}
+	//- build and send the command
+	cmd_to_send << _range << std::endl;
+	_electrometerProtocol->set_range(cmd_to_send.str());
+}
+
+// ============================================================================
+// Keithley_487::get_ElectroMeterRange
+// ============================================================================
+std::string Keithley_487::get_ElectroMeterRange (void) 
+{
+	// force read of range on instrument to update _range variable
+	electrometer_status();
+
+	return _rangeStr;
+}
+
+// ============================================================================
+// Keithley_487::get_ElectroMeterMode
+// ============================================================================
+std::string Keithley_487::get_ElectroMeterMode (void) 
+{
+	// force read of range on instrument to update _range variable
+	electrometer_status();
+
+	return _mode;
+}
+
+// ============================================================================
+// Keithley_487::setAmperMeterMode
+// ============================================================================
+void Keithley_487::setAmperMeterMode (void) 
+{
+
+	//- send the appropriate command
+	KeithleyDDCProtocol* _kddc = dynamic_cast<KeithleyDDCProtocol*>(_electrometerProtocol);
+	if(_kddc)
+		_kddc->setAmperMeterMode_forK487();
+	else
+		throw electrometer::ElectrometerException("BAD_CAST", 
+												"Unable to switch the electrmometer mode.",
+												"Keithley_487::setAmperMeterMode( ).");
+}
+
+// ============================================================================
+// Keithley_487::electrometer_status
+// ============================================================================
+std::string Keithley_487::electrometer_status (void)
+{ 
+	std::string _kstatus("undefined status");
+	std::string argout("undefined status");
+	std::string tmp("");
+
+	//- read keithley status from HW	
+	_kstatus = _electrometerProtocol->get_raw_status();
+
+	//- build status
+	try
+	{
+		std::string modelNum = _kstatus.substr(0,3);
+		//- if not expected data (here model number)
+		if(modelNum.find("487") == std::string::npos)
+		{
+			set_electroState(ALARM);
+			argout = "Invalid status string received";
+			return argout;
+		}
+		argout = "Keithley Type : " + modelNum + "\n";
+		//- Display Intensity ('A')
+		tmp = _kstatus.substr(_kstatus.find('A')+1,1);
+		if(!XString<short>::convertFromString(tmp))
+			argout += "Display Intensity : NORMAL\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 1)
+			argout += "Display Intensity : DIM\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 2)
+			argout += "Display Intensity : OFF\n";
+		//- Reading Source ('B')
+		tmp = _kstatus.substr(_kstatus.find('B'),1);
+		if(!XString<short>::convertFromString(tmp))
+			argout += "Reading Source : A/D Reading\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 1)
+			argout += "Reading Source : One Data Store Reading\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 2)
+			argout += "Reading Source : All Data Store Reading\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 3)
+			argout += "Reading Source : Max Data Store Reading\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 4)
+			argout += "Reading Source : Min Data Store Reading\n";
+		//- Zero check state ('C')
+		tmp = _kstatus.substr(_kstatus.find('C')+1,1);
+		if(XString<short>::convertFromString(tmp))
+			argout += "Zero Check : Enabled\n";
+		else
+			argout += "Zero Check : Disabled\n";
+		//- V/I Ohms ('F')
+		tmp = _kstatus.substr(_kstatus.find('F')+1,1);
+		if(XString<short>::convertFromString(tmp))
+		{
+			argout += "V/I Ohms : Enabled\n";
+			_mode = "V/I Ohms";
+		}
+		else
+		{
+			argout += "V/I Ohms : Disabled\n";
+			_mode = "CURRent";
+		}
+		//- Data Format ('G')
+		tmp = _kstatus.substr(_kstatus.find('G')+1,1);
+		if(!XString<short>::convertFromString(tmp))
+			argout += "Data Format : Reading With Prefix (ASCII)\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 1)
+			argout += "Data Format : Reading Without Prefix (ASCII)\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 2)
+			argout += "Data Format : Reading and Buffer Location With Prefix (ASCII)\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 3)
+			argout += "Data Format : Reading and Buffer Location Without Prefix (ASCII)\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 4)
+			argout += "Data Format : Binary Reading - precision, bytes reversed for Intel CPUs\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 5)
+			argout += "Data Format : Binary Reading - precision, bytes in normal order for Motorola CPUs\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 6)
+			argout += "Data Format : Binary Reading - counts and exponent, bytes reversed for Intel CPUs\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 7)
+			argout += "Data Format : Binary Reading - counts and exponent, bytes in normal order for Motorola CPUs\n";
+		//- Self Test ('J')
+		tmp = _kstatus.substr(_kstatus.find('J')+1,1);
+		if(!XString<short>::convertFromString(tmp))
+			argout += "Self Test : No Errors\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 1)
+			argout += "Self Test : ROM Error\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 2)
+			argout += "Self Test : RAM Error\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 3)
+			argout += "Self Test : ROM and RAM Error\n";
+		//- EOI & Bus Hold Off ('K')
+		tmp = _kstatus.substr(_kstatus.find('K')+1,1);
+		if(!XString<short>::convertFromString(tmp))
+			argout += "EOI & Bus Hold Off : EOI and Hold-Off\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 1)
+			argout += "EOI & Bus Hold Off : No EOI and Hold-Off\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 2)
+			argout += "EOI & Bus Hold Off : EOI and no Hold-Off\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 3)
+			argout += "EOI & Bus Hold Off : No EOI and no Hold-Off\n";
+		//- SRQ ('M')
+		tmp = _kstatus.substr(_kstatus.find('M')+1,3);
+		if(!XString<short>::convertFromString(tmp))
+			argout += "SRQ : Disabled\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 1)
+			argout += "SRQ : Reading Overflow\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 2)
+			argout += "SRQ : Data Store Full\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 4)
+			argout += "SRQ : Data Store 1/2 full\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 8)
+			argout += "SRQ : Reading Done\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 16)
+			argout += "SRQ : Ready\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 32)
+			argout += "SRQ : Error\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 128)
+			argout += "SRQ : Voltage Source Error\n";
+		//- Data Store Size ('N')
+		tmp = _kstatus.substr(_kstatus.find('N')+1,3);
+		if(!XString<short>::convertFromString(tmp))
+			argout += "Data Store Size : Wrap Around\n";
+		else
+			argout += "Data Store Size : " + tmp + "\n";
+		//- Filters ('P')
+		tmp = _kstatus.substr(_kstatus.find('P')+1,1);
+		if(!XString<short>::convertFromString(tmp))
+			argout += "Filters : Both Filters Disabled\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 1)
+			argout += "Filters : Digital Filter Enabled, Analog Filter Disabled\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 2)
+			argout += "Filters : Digital Filter Disabled, Analog Filter Enabled\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 3)
+			argout += "Filters : Both Filters Enabled\n";
+		//- Range ('Rmn')
+		//- check AutoRange
+		tmp = _kstatus.substr(_kstatus.find('R')+1,2);
+		if(tmp[0] == '0')
+			argout += "Range : AutoRange Disabled\n";
+		else
+			argout += "Range : AutoRange Enabled\n";
+		//- range value
+		_range = atoi(&tmp[1]);
+		_rangeStr = K487_rangeValue[_range];
+		argout   += _rangeStr + "\n";
+		//- Integration Period ('S')
+		tmp = _kstatus.substr(_kstatus.find('S')+1,1);
+		if(!XString<short>::convertFromString(tmp))
+			argout += "Integration Period : Fast (4-1/2d)\n";
+		else
+			argout += "Integration Period : Line Cycle (5-1/2d)\n";
+		//- Trigger ('T')
+		tmp = _kstatus.substr(_kstatus.find('T')+1,1);
+		if(!XString<short>::convertFromString(tmp))
+			argout += "Trigger : Multiple On Talk\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 1)
+			argout += "Trigger : One-shot On Talk\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 2)
+			argout += "Trigger : Multiple On Get\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 3)
+			argout += "Trigger : One-shot On Get)\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 4)
+			argout += "Trigger : Multiple On X\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 5)
+			argout += "Trigger : One-shot On X\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 6)
+			argout += "Trigger : Multiple On External Trigger\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 7)
+			argout += "Trigger : One-shot On External Trigger\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 8)
+			argout += "Trigger : Multiple On Operate\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 9)
+			argout += "Trigger : One-shot On Operate\n";
+		//- Relative ('Z') (baseline suppress)
+		tmp = _kstatus.substr(_kstatus.find('Z')+1,1);
+		if(!XString<short>::convertFromString(tmp))
+			argout += "Relative : Current Rel Disabled\n";
+		else
+			argout += "Relative : Current Rel Enabled\n";
+	}
+	catch(std::out_of_range)
+	{
+		set_electroState(ALARM);
+
+		throw electrometer::ElectrometerException("OUT_OF_RANGE", 
+												"Cannot extract device status [find or substr failed !].",
+												"Keithley_487::electrometer_status( ).");
+	}
+
+	set_electroState(ON);
+	return argout;
+}
diff --git a/src/Keithley_617.cpp b/src/Keithley_617.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..cc9d724306338ca437e25c956dbe2a5b2dd18452
--- /dev/null
+++ b/src/Keithley_617.cpp
@@ -0,0 +1,396 @@
+// ============================================================================
+//
+// = CONTEXT
+//    TANGO Project - DDC KeithleyElectrometer Support Library
+//
+// = FILENAME
+//    Keithley_617.cpp
+//
+// = AUTHOR
+//    X. Elattaoui
+//
+// ============================================================================
+static long KEITHLEY_MODEL = 617;
+
+// ============================================================================
+// DEPENDENCIES
+// ============================================================================
+#include <iostream>
+#include <stdexcept>
+#include <sstream>
+#include <string>
+#include <Xstring.h>
+#include "Keithley_617.h"
+#include "KeithleyDDCProtocol.h"
+/*
+* Valid Range values for a K_617
+*/
+static const std::string K617_AmpRangeValue[] = {"AUTO ON","2E-12","2E-11","2E-10","2E-9","2E-8","2E-7","2E-6","2E-5","2E-4","2E-3","2E-2", "AUTO OFF"};
+static const std::string K617_VoltRangeValue[]= {"AUTO ON","2E-1","2","20","200","200","200","200","200","200","200","200", "AUTO OFF"};
+static const std::string K617_OhmRangeValue[] = {"AUTO ON","2E3","2E4","2E5","2E6","2E7","2E8","2E9","2E10","2E11","2E11","2E11", "AUTO OFF"};
+static const std::string K617_CouRangeValue[] = {"AUTO ON","2E-10","2E-9","2E-10","2E-10","2E-10","2E-10","2E-10","2E-10","2E-10","2E-10","2E-10", "AUTO OFF"};
+static const std::string K617_XfdbRangeValue[]= {"AUTO ON","2E-1","2","20","20","20","20","20","20","20","20","20", "AUTO OFF"};
+static const std::string K617_VonIRangeValue[]= {"AUTO ON","200E12","20E12","2E12","200E9","20E9","2E9","200E6","20E6","2E6","200E3","200E3", "AUTO OFF"};
+/*
+* Range limit
+*/
+static short K617_rangeLimit = 12;
+
+// ============================================================================
+// Keithley_617::Keithley_617
+// ============================================================================
+Keithley_617::Keithley_617 (std::string& comLink_device_name):AbstractElectrometerClass(comLink_device_name) 
+{
+	std::cout << "Keithley_617::Keithley_617 <-" << std::endl;
+
+	//- build the keithley Electrometer obj
+	_electrometerProtocol = new KeithleyDDCProtocol (_device_proxy_name);
+
+	std::cout << "Keithley_617::Keithley_617 ->" << std::endl;
+}
+
+// ============================================================================
+// Keithley_617::~Keithley_617
+// ============================================================================
+Keithley_617::~Keithley_617 (void)
+{
+	std::cout << "Keithley_617::~Keithley_617 <-" << std::endl;
+
+	std::cout << "Keithley_617::~Keithley_617 ->" << std::endl;
+}
+
+// ============================================================================
+// Keithley_617::autoRange_off
+// ============================================================================
+void Keithley_617::autoRange_off (void) 
+{
+
+	//- send the appropriate command
+	KeithleyDDCProtocol* _kddc = dynamic_cast<KeithleyDDCProtocol*>(_electrometerProtocol);
+	if(_kddc)
+		_kddc->autoRange_OFF_forK617_6512();
+}
+
+// ============================================================================
+// Keithley_617::range_up
+// ============================================================================
+void Keithley_617::range_up (void) 
+{
+
+std::stringstream cmd_to_send;
+
+	// force read of range on instrument to update _range variable 
+	electrometer_status();
+
+	_range += 1;
+
+	if(_range > K617_rangeLimit)
+	{
+		_range = K617_rangeLimit;
+		throw electrometer::ElectrometerException("OUT_OF_RANGE", 
+												"Range up limit reached.",
+												"Keithley_617::range_up( ).");
+	}
+
+	//- build and send the command
+	cmd_to_send << _range << std::endl;
+	_electrometerProtocol->set_range(cmd_to_send.str());
+}
+
+// ============================================================================
+// Keithley_617::range_down
+// ============================================================================
+void Keithley_617::range_down (void) 
+{
+
+std::stringstream cmd_to_send;
+
+	// force read of range on instrument to update _range variable 
+	electrometer_status();
+
+	_range -= 1;
+
+	if(_range < 0)
+	{
+		_range = 0;
+		throw electrometer::ElectrometerException("OUT_OF_RANGE", 
+												"Range down limit reached.",
+												"Keithley_617::range_down( ).");
+	}
+
+	//- build and send the command
+	cmd_to_send << _range << std::endl;
+	_electrometerProtocol->set_range(cmd_to_send.str());
+}
+
+// ============================================================================
+// Keithley_617::get_ElectroMeterRange
+// ============================================================================
+std::string Keithley_617::get_ElectroMeterRange (void) 
+{
+	// force read of range on instrument to update _range variable
+	electrometer_status();
+
+	return _rangeStr;
+}
+
+// ============================================================================
+// Keithley_617::get_ElectroMeterMode
+// ============================================================================
+std::string Keithley_617::get_ElectroMeterMode (void) 
+{
+	// force read of mode on instrument to update _mode variable
+	electrometer_status();
+
+	return _mode;
+}
+
+// ============================================================================
+// Keithley_617::setAmperMeterMode (617 & 6512 Keithley DDC models
+// ============================================================================
+void Keithley_617::setAmperMeterMode (void) 
+{
+	_electrometerProtocol->setAmperMeterMode( );
+}
+
+// ============================================================================
+// Keithley_617::setAmperMeterMode (617 & 6512 Keithley DDC models
+// ============================================================================
+void Keithley_617::setVoltMeterMode (void) 
+{
+	_electrometerProtocol->setVoltMeterMode( );
+}
+
+// ============================================================================
+// Keithley_617::setAmperMeterMode (617 & 6512 Keithley DDC models
+// ============================================================================
+void Keithley_617::setOhmMeterMode (void) 
+{
+	_electrometerProtocol->setOhmMeterMode( );
+}
+
+// ============================================================================
+// Keithley_617::setAmperMeterMode (617 & 6512 Keithley DDC models
+// ============================================================================
+void Keithley_617::setCoulombMeterMode (void) 
+{
+	_electrometerProtocol->setCoulombMeterMode( );
+}
+
+// ============================================================================
+// Keithley_617::electrometer_status
+// ============================================================================
+std::string Keithley_617::electrometer_status (void)
+{ 
+	std::string _kstatus("undefined status");
+	std::string argout("undefined status");
+	std::string tmp("");
+
+	//- read keithley status from HW	
+	_kstatus = _electrometerProtocol->get_raw_status();
+
+	//- build status
+	try
+	{
+		//- model number :
+		std::string modelNum = _kstatus.substr(0,3);
+    std::cout<< "\n617 status = " << modelNum << std::endl;
+    //- if not expected data (here model number)
+		if(modelNum.find("617") == std::string::npos)
+		{
+			set_electroState(ALARM);
+			argout = "Invalid status string received";
+			return argout;
+		}
+		argout = "Keithley Type : " + modelNum + "\n";
+		//- Functions and associate range :
+		tmp = _kstatus.substr(3,1);
+		short func = XString<short>::convertFromString(tmp);
+		//- Range :
+		tmp = _kstatus.substr(4,2);
+		 _range = XString<short>::convertFromString(tmp);
+		if(!func)
+		{
+			_mode = "Function : VOLTS";
+			argout += _mode + "\n";
+			_rangeStr = K617_VoltRangeValue[_range];
+		}
+		else
+			if(func == 1)
+			{
+				_mode = "Function : AMPS";
+			    argout += _mode + "\n";
+				_rangeStr = K617_AmpRangeValue[_range];
+				argout	 += _rangeStr + "\n";
+			}
+		else
+			if(func == 2)
+			{
+				_mode = "Function : OHMS";
+			    argout += _mode + "\n";
+				_rangeStr = K617_OhmRangeValue[_range];
+			}
+		else
+			if(func == 3)
+			{
+				_mode = "Function : COULOMBS";
+			    argout += _mode + "\n";
+				_rangeStr = K617_CouRangeValue[_range];
+			}
+		else
+			if(func == 4)
+			{
+				_mode = "Function : XFDBK";
+			    argout += _mode + "\n";
+				_rangeStr = K617_XfdbRangeValue[_range];
+			}
+		else
+			if(func == 5)
+			{
+				_mode = "Function : V/I";
+			    argout += _mode + "\n";
+				_rangeStr = K617_XfdbRangeValue[_range];
+			}
+		//- Range :
+		argout += "RANGE : " + _rangeStr + "\n";
+		//- Zero check state
+		tmp = _kstatus.substr(6,1);
+		if(XString<short>::convertFromString(tmp))
+			argout += "Zero Check : ON\n";
+		else
+			argout += "Zero Check : OFF\n";
+		//- Zero correct state
+		tmp = _kstatus.substr(7,1);
+		if(XString<short>::convertFromString(tmp))
+			argout += "Zero Correct : ON\n";
+		else
+			argout += "Zero Correct : OFF\n";
+		//- Suppress
+		tmp = _kstatus.substr(8,1);
+		if(XString<short>::convertFromString(tmp))
+			argout += "Suppress : ON\n";
+		else
+			argout += "Suppress : OFF\n";
+		//- Trigger
+		tmp = _kstatus.substr(9,1);
+		if(!XString<short>::convertFromString(tmp))
+			argout += "Trigger : Continuous on Talk\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 1)
+				argout += "Trigger :One-Shot on Talk\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 2)
+				argout += "Trigger :Continuous on Get\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 3)
+				argout += "Trigger :One-Shot on Get\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 4)
+				argout += "Trigger :Continuous on \"X\"\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 5)
+				argout += "Trigger :One-Shot on \"X\"\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 6)
+				argout += "Trigger :Continuous on External\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 7)
+				argout += "Trigger :One-Shot on External\n";
+		//- Voltage Source
+		tmp = _kstatus.substr(10,1);
+		if(XString<short>::convertFromString(tmp))
+			argout += "Voltage Source Operate : ON\n";
+		else
+			argout += "Voltage Source Operate : OFF\n";
+		//- Read Mode
+		tmp = _kstatus.substr(11,1);
+		if(!XString<short>::convertFromString(tmp))
+			argout += "Read Mode : Electrometer\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 1)
+				argout += "Read Mode : Data Store\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 2)
+				argout += "Read Mode : Maximum\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 3)
+				argout += "Read Mode : Minimum\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 4)
+				argout += "Read Mode :Voltage Source\n";
+		//- Display :
+		tmp = _kstatus.substr(13,1);
+		if(!XString<short>::convertFromString(tmp))
+			argout += "Display : Electrometer\n";
+		else
+			argout += "Display : Voltage Source\n";
+		//- Data Store
+		tmp = _kstatus.substr(14,1);
+		if(!XString<short>::convertFromString(tmp))
+			argout += "Data Store : Conversion Rate\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 1)
+				argout += "Data Store : 1 RDG/Sec\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 2)
+				argout += "Data Store : 1 RDG/10Sec\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 3)
+				argout += "Data Store : 1 RDG/Min\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 4)
+				argout += "Data Store : 1 RDG/10Min\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 5)
+				argout += "Data Store : 1 RDG/1Hr\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 6)
+				argout += "Data Store : Trig Button\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 7)
+				argout += "Data Store : Disabled\n";
+		//- SRQ Mask
+		tmp = _kstatus.substr(15,2);
+		if(!XString<short>::convertFromString(tmp))
+			argout += "SRQ Data Mask : SRQ Disabled\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 1)
+				argout += "SRQ Data Mask : Reading Overflow\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 2)
+				argout += "SRQ Data Mask : Data Store Full\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 8)
+				argout += "SRQ Data Mask : Reading Done\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 16)
+				argout += "SRQ Data Mask : Ready\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 32)
+				argout += "SRQ Data Mask : Error\n";
+		//- EOI & Bus Hold Off
+		tmp = _kstatus.substr(17,1);
+		if(!XString<short>::convertFromString(tmp))
+			argout += "EOI & Bus Hold Off : EOI and Hold-Off\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 1)
+			argout += "EOI & Bus Hold Off : No EOI and Hold-Off\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 2)
+			argout += "EOI & Bus Hold Off : EOI and no Hold-Off\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 3)
+			argout += "EOI & Bus Hold Off : No EOI and no Hold-Off\n";
+	}
+	catch(std::out_of_range)
+	{
+		set_electroState(ALARM);
+	
+		throw electrometer::ElectrometerException("OUT_OF_RANGE", 
+												"Cannot extract device status [find or substr failed !].",
+												"Keithley_617::electrometer_status( ).");
+	}
+
+	set_electroState(ON);
+	return argout;
+}
diff --git a/src/Keithley_6485.cpp b/src/Keithley_6485.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..6b46658d389f4836700288b02feeb2fb63940d03
--- /dev/null
+++ b/src/Keithley_6485.cpp
@@ -0,0 +1,180 @@
+// ============================================================================
+//
+// = CONTEXT
+//    TANGO Project - SCPI KeithleyElectrometer Support Library
+//
+// = FILENAME
+//    Keithley_6485.cpp
+//
+// = AUTHOR
+//    X. Elattaoui
+//
+// ============================================================================
+static long KEITHLEY_MODEL = 6485;
+
+// ============================================================================
+// DEPENDENCIES
+// ============================================================================
+#include <iostream>
+#include <sstream>
+#include <string>
+#include <Xstring.h>
+#include "Keithley_6485.h"
+#include "KeithleySCPIProtocol.h"
+/*
+* Valid Range values for a K_6485
+*/
+static const std::string K6485_rangeValue[] = {"2E-9","2E-8","2E-7","2E-6","2E-5","2E-4","2E-3","2E-2"};
+/*
+* Max Index Range value for a K_6485
+*/
+static const short K6485_rangeLimit = 7;
+
+// ============================================================================
+// Keithley_6485::Keithley_6485
+// ============================================================================
+Keithley_6485::Keithley_6485 (std::string& comLink_device_name):AbstractElectrometerClass(comLink_device_name) 
+{
+	std::cout << "Keithley_6485::Keithley_6485 <-" << std::endl;
+	
+	//- build the keithley Electrometer obj
+	_electrometerProtocol = new KeithleySCPIProtocol (_device_proxy_name);
+	
+	//- this model does not support different mode (OhmMeter, VoltMeter and so on )
+	KeithleySCPIProtocol* _kscpi = dynamic_cast<KeithleySCPIProtocol*>(_electrometerProtocol);
+	if(_kscpi)
+		_kscpi->set_isDiffSuportedMode(false);
+	
+	std::cout << "Keithley_6485::Keithley_6485 ->" << std::endl;
+}
+
+// ============================================================================
+// Keithley_6485::~Keithley_6485
+// ============================================================================
+Keithley_6485::~Keithley_6485 (void)
+{
+	std::cout << "Keithley_6485::~Keithley_6485 <-" << std::endl;
+	
+	std::cout << "Keithley_6485::~Keithley_6485 ->" << std::endl;
+}
+
+// ============================================================================
+// Keithley_6485::range_up
+// ============================================================================
+void Keithley_6485::range_up (void) 
+{
+std::stringstream cmd_to_send;
+	
+	//- update range index from hardware
+	update_range( );
+
+	_range += 1;
+	
+	if(_range > K6485_rangeLimit)
+	{
+		_range = K6485_rangeLimit;
+		throw electrometer::ElectrometerException("OUT_OF_RANGE", 
+												"Range up limit reached.",
+												"Keithley_6485::range_up( ).");
+	}
+	
+	//- build and send the command
+	_rangeStr = K6485_rangeValue[_range];
+	cmd_to_send << _rangeStr << std::endl;
+	_electrometerProtocol->set_range(cmd_to_send.str());
+}
+
+// ============================================================================
+// Keithley_6485::range_down
+// ============================================================================
+void Keithley_6485::range_down (void) 
+{
+std::stringstream cmd_to_send;
+	
+	//- update range index from hardware
+	update_range( );
+
+	_range -= 1;
+	
+	if(_range < 0)
+	{
+		_range=0;
+		throw electrometer::ElectrometerException("OUT_OF_RANGE", 
+												"Range down limit reached.",
+												"Keithley_6485::range_down( ).");
+	}
+	//- build and send the command
+	_rangeStr = K6485_rangeValue[_range];
+	cmd_to_send << _rangeStr << std::endl;
+
+  _electrometerProtocol->set_range(cmd_to_send.str());
+}
+
+// ============================================================================
+// Keithley_6485::update_range
+// ============================================================================
+void Keithley_6485::update_range (void) 
+{
+std::string range_str("");
+double rangeValueReturned	= 0;
+double rangeValueCalculated	= 0;
+double delta = 0;
+	
+	/**
+	*	NOTE : SCPI models return a range value +/- 5%
+	*/
+
+	//- get range from hardware
+	range_str = _electrometerProtocol->get_range( );
+	//- convert range in decimal value
+	rangeValueReturned = XString<double>::convertFromString(range_str);
+	
+	//- find and return the index
+	short idx = 0;
+	for(idx=0; idx<K6485_rangeLimit ; idx++)
+	{
+		rangeValueCalculated = XString<double>::convertFromString(K6485_rangeValue[idx]);
+		delta = rangeValueCalculated * 5 / 100;
+		if( (rangeValueCalculated + delta) >= rangeValueReturned && (rangeValueCalculated - delta) <= rangeValueReturned)
+			break;
+	}
+
+	//- throw if index not found
+	if(idx == K6485_rangeLimit)
+		throw electrometer::ElectrometerException("INTERNAL_ERROR", 
+			"Failed to get range index.",
+			"Keithley_6485::update_range( ).");
+
+	//- update range with index found
+	this->_range = idx;
+		
+}
+
+// ============================================================================
+// Keithley_6485::get_integratedValue
+// ============================================================================
+std::vector<double> Keithley_6485::get_integratedValue (void) 
+{
+ 	KeithleySCPIProtocol* _kscpi = dynamic_cast<KeithleySCPIProtocol*>(_electrometerProtocol);
+	if(!_kscpi)
+		throw electrometer::ElectrometerException("INTERNAL_ERROR", 
+												"Dynamic cast failed !.",
+												"Keithley_6485::get_integratedValue( ).");
+
+  return 	_electrometerProtocol->get_integratedValue( );
+}  
+
+// ============================================================================
+// Keithley_6485::get_fetchValue
+// ============================================================================
+std::vector<double> Keithley_6485::get_fetchValue (void) 
+{
+ 	KeithleySCPIProtocol* _kscpi = dynamic_cast<KeithleySCPIProtocol*>(_electrometerProtocol);
+	if(!_kscpi)
+		throw electrometer::ElectrometerException("INTERNAL_ERROR", 
+												"Dynamic cast failed !.",
+												"Keithley_6485::get_fetchValue( ).");
+
+  return 	_kscpi->get_fetchValue( );
+}  
+
diff --git a/src/Keithley_6487.cpp b/src/Keithley_6487.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..dace9e33520f30049e3ada77185e5b9382428e4f
--- /dev/null
+++ b/src/Keithley_6487.cpp
@@ -0,0 +1,186 @@
+// ============================================================================
+//
+// = CONTEXT
+//    TANGO Project - SCPI KeithleyElectrometer Support Library
+//
+// = FILENAME
+//    Keithley_6487.cpp
+//
+// = AUTHOR
+//    X. Elattaoui
+//
+// ============================================================================
+static long KEITHLEY_MODEL = 6487;
+
+// ============================================================================
+// DEPENDENCIES
+// ============================================================================
+#include <iostream>
+#include <sstream>
+#include <string>
+#include <Xstring.h>
+#include "Keithley_6487.h"
+#include "KeithleySCPIProtocol.h"
+/*
+* Valid Range values for a K_6487
+*/
+static const std::string K6487_rangeValue[8] = {"2E-2","2E-3","2E-4","2E-5","2E-6","2E-7","2E-8","2E-9"};
+/*
+* Max Index Range value for a K_6487
+*/
+static const short K6487_rangeLimit = 7;
+
+// ============================================================================
+// Keithley_6487::Keithley_6487
+// ============================================================================
+Keithley_6487::Keithley_6487 (std::string& comLink_device_name):AbstractElectrometerClass(comLink_device_name) 
+{
+	std::cout << "Keithley_6487::Keithley_6487 <-" << std::endl;
+
+	//- build the keithley Electrometer obj
+	_electrometerProtocol = new KeithleySCPIProtocol (_device_proxy_name);
+
+	//- this model does not support different mode (OhmMeter, VoltMeter and so on )
+	KeithleySCPIProtocol* _kscpi = dynamic_cast<KeithleySCPIProtocol*>(_electrometerProtocol);
+	if(_kscpi)
+		_kscpi->set_isDiffSuportedMode(false);
+
+	std::cout << "Keithley_6487::Keithley_6487 ->" << std::endl;
+}
+
+// ============================================================================
+// Keithley_6487::~Keithley_6487
+// ============================================================================
+Keithley_6487::~Keithley_6487 (void)
+{
+	std::cout << "Keithley_6487::~Keithley_6487 <-" << std::endl;
+
+	std::cout << "Keithley_6487::~Keithley_6487 ->" << std::endl;
+}
+
+// ============================================================================
+// Keithley_6487::range_up
+// ============================================================================
+void Keithley_6487::range_up (void) 
+{
+std::stringstream cmd_to_send;
+	
+	//- update range index from hardware
+	update_range( );
+
+	_range += 1;
+
+	if(_range > K6487_rangeLimit)
+	{
+		_range = K6487_rangeLimit;
+		throw electrometer::ElectrometerException("OUT_OF_RANGE", 
+												"Range up limit reached.",
+												"Keithley_6487::range_up( ).");
+	}
+
+	//- build and send the command
+	_rangeStr = K6487_rangeValue[_range];
+	cmd_to_send << _range << std::endl;
+	_electrometerProtocol->set_range(cmd_to_send.str());
+}
+
+// ============================================================================
+// Keithley_6487::range_down
+// ============================================================================
+void Keithley_6487::range_down (void) 
+{
+
+std::stringstream cmd_to_send;
+
+	//- update range index from hardware
+	update_range( );
+
+	_range -= 1;
+
+	if(_range < 0)
+	{
+		_range = 0;
+		throw electrometer::ElectrometerException("OUT_OF_RANGE", 
+												"Range down limit reached.",
+												"Keithley_6487::range_down( ).");
+	}
+	_rangeStr = K6487_rangeValue[_range];
+	cmd_to_send << _range << std::endl;
+	_electrometerProtocol->set_range(cmd_to_send.str());
+}
+
+// ============================================================================
+// Keithley_6487::setAmperMeterMode
+// ============================================================================
+void Keithley_6487::setAmperMeterMode (void) 
+{
+	_electrometerProtocol->setAmperMeterMode( );
+}
+
+// ============================================================================
+// Keithley_6487::get_integratedValue
+// ============================================================================
+std::vector<double> Keithley_6487::get_integratedValue (void) 
+{
+ 	KeithleySCPIProtocol* _kscpi = dynamic_cast<KeithleySCPIProtocol*>(_electrometerProtocol);
+	if(!_kscpi)
+		throw electrometer::ElectrometerException("INTERNAL_ERROR", 
+												"Dynamic cast failed !.",
+												"Keithley_6487::get_integratedValue( ).");
+
+  return 	_kscpi->get_integratedValue( );
+}  
+
+// ============================================================================
+// Keithley_6487::get_fetchValue
+// ============================================================================
+std::vector<double> Keithley_6487::get_fetchValue (void) 
+{
+ 	KeithleySCPIProtocol* _kscpi = dynamic_cast<KeithleySCPIProtocol*>(_electrometerProtocol);
+	if(!_kscpi)
+		throw electrometer::ElectrometerException("INTERNAL_ERROR", 
+												"Dynamic cast failed !.",
+												"Keithley_6487::get_fetchValue( ).");
+
+  return 	_kscpi->get_fetchValue( );
+}  
+
+// ============================================================================
+// Keithley_6487::update_range
+// ============================================================================
+void Keithley_6487::update_range (void) 
+{
+std::string range_str("");
+double rangeValueReturned	= 0;
+double rangeValueCalculated	= 0;
+double delta = 0;
+	
+	/**
+	*	NOTE : SCPI models return a range value +/- 5%
+	*/
+
+	//- get range from hardware
+	range_str = _electrometerProtocol->get_range( );
+	//- convert range in decimal value
+	rangeValueReturned = XString<double>::convertFromString(range_str);
+	
+	//- find and return the index
+	short idx = 0;
+	for(idx=0; idx<K6487_rangeLimit ; idx++)
+	{
+		rangeValueCalculated = XString<double>::convertFromString(K6487_rangeValue[idx]);
+		delta = rangeValueCalculated * 5 / 100;
+		if( (rangeValueCalculated + delta) >= rangeValueReturned && (rangeValueCalculated - delta) <= rangeValueReturned)
+			break;
+	}
+
+	//- throw if index not found
+	if(idx == K6487_rangeLimit)
+		throw electrometer::ElectrometerException("INTERNAL_ERROR", 
+										"Failed to get range index.",
+										"Keithley_6487::update_range( ).");
+	
+	//- update range with the index found
+	this->_range = idx;
+		
+}
diff --git a/src/Keithley_6512.cpp b/src/Keithley_6512.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..72584a64588e2a8b1573ec80681da5b6753994ae
--- /dev/null
+++ b/src/Keithley_6512.cpp
@@ -0,0 +1,374 @@
+// ============================================================================
+//
+// = CONTEXT
+//    TANGO Project - KeithleyElectrometer Support Library
+//
+// = FILENAME
+//    Keithley_6512.cpp
+//
+// = AUTHOR
+//    X. Elattaoui
+//
+// ============================================================================
+static long KEITHLEY_MODEL = 6512;
+
+// ============================================================================
+// DEPENDENCIES
+// ============================================================================
+#include <iostream>
+#include <stdexcept>
+#include <sstream>
+#include <string>
+#include <Xstring.h>
+#include "Keithley_6512.h"
+#include "KeithleyDDCProtocol.h"
+/*
+* Valid Range values for a K_6512
+*/
+static const std::string K6512_AmpRangeValue[] = {"AUTO ON","2E-12","2E-11","2E-10","2E-9","2E-8","2E-7","2E-6","2E-5","2E-4","2E-3","2E-2", "AUTO OFF"};
+static const std::string K6512_VoltRangeValue[]= {"AUTO ON","2E-1","2","20","200","200","200","200","200","200","200","200", "AUTO OFF"};
+static const std::string K6512_OhmRangeValue[] = {"AUTO ON","2E3","2E4","2E5","2E6","2E7","2E8","2E9","2E10","2E11","2E11","2E11", "AUTO OFF"};
+static const std::string K6512_CouRangeValue[] = {"AUTO ON","2E-10","2E-9","2E-10","2E-10","2E-10","2E-10","2E-10","2E-10","2E-10","2E-10","2E-10", "AUTO OFF"};
+static const std::string K6512_XfdbRangeValue[]= {"AUTO ON","2E-1","2","20","20","20","20","20","20","20","20","20", "AUTO OFF"};
+/*
+* Range limit
+*/
+static short K6512_rangeLimit = 12;
+
+// ============================================================================
+// Keithley_6512::Keithley_6512
+// ============================================================================
+Keithley_6512::Keithley_6512 (std::string& comLink_device_name):AbstractElectrometerClass(comLink_device_name) 
+{
+	std::cout << "Keithley_6512::Keithley_6512 <-" << std::endl;
+
+	//- build the keithley Electrometer obj
+	_electrometerProtocol = new KeithleyDDCProtocol (_device_proxy_name);
+
+	std::cout << "Keithley_6512::Keithley_6512 ->" << std::endl;
+}
+
+// ============================================================================
+// Keithley_6512::~Keithley_6512
+// ============================================================================
+Keithley_6512::~Keithley_6512 (void)
+{
+	std::cout << "Keithley_6512::~Keithley_6512 <-" << std::endl;
+
+	std::cout << "Keithley_6512::~Keithley_6512 ->" << std::endl;
+}
+
+// ============================================================================
+// Keithley_6512::autoRange_off
+// ============================================================================
+void Keithley_6512::autoRange_off (void) 
+{
+
+	KeithleyDDCProtocol* _kddc = dynamic_cast<KeithleyDDCProtocol*>(_electrometerProtocol);
+	if(_kddc)
+		_kddc->autoRange_OFF_forK617_6512();
+}
+
+// ============================================================================
+// Keithley_6512::range_up
+// ============================================================================
+void Keithley_6512::range_up (void) 
+{
+std::stringstream cmd_to_send;
+
+	// force read of range on instrument to update _range variable 
+	electrometer_status();
+
+	_range += 1;
+
+	if(_range > K6512_rangeLimit)
+	{
+		_range = K6512_rangeLimit;
+		throw electrometer::ElectrometerException("OUT_OF_RANGE", 
+												"Range up limit reached.",
+												"Keithley_6512::range_up( ).");
+	}
+
+	//- build and send the command
+	cmd_to_send << _range << std::endl;
+	_electrometerProtocol->set_range(cmd_to_send.str());
+}
+
+// ============================================================================
+// Keithley_6512::range_down
+// ============================================================================
+void Keithley_6512::range_down (void) 
+{
+
+std::stringstream cmd_to_send;
+
+	// force read of range on instrument to update _range variable 
+	electrometer_status();
+
+	_range -= 1;
+
+	if(_range < 0)
+	{
+		_range =0;
+		throw electrometer::ElectrometerException("OUT_OF_RANGE", 
+												"Range down limit reached.",
+												"Keithley_6512::range_down( ).");
+	}
+	
+	//- build and send the command
+	cmd_to_send << _range << std::endl;
+	_electrometerProtocol->set_range(cmd_to_send.str());
+}
+
+// ============================================================================
+// Keithley_6512::get_ElectroMeterRange
+// ============================================================================
+std::string Keithley_6512::get_ElectroMeterRange (void) 
+{
+	// force read of range on instrument to update _range variable
+	electrometer_status();
+
+	return _rangeStr;
+}
+
+// ============================================================================
+// Keithley_6512::get_ElectroMeterMode
+// ============================================================================
+std::string Keithley_6512::get_ElectroMeterMode (void) 
+{
+	// force read of mode on instrument to update _mode variable
+	electrometer_status();
+
+	return _mode;
+}
+
+// ============================================================================
+// Keithley_6512::setAmperMeterMode (617 & 6512 Keithley DDC models
+// ============================================================================
+void Keithley_6512::setAmperMeterMode (void) 
+{
+	_electrometerProtocol->setAmperMeterMode( );
+}
+
+// ============================================================================
+// Keithley_6512::setVoltMeterMode (617 & 6512 Keithley DDC models
+// ============================================================================
+void Keithley_6512::setVoltMeterMode (void) 
+{
+	_electrometerProtocol->setVoltMeterMode( );
+}
+
+// ============================================================================
+// Keithley_6512::setOhmMeterMode (617 & 6512 Keithley DDC models
+// ============================================================================
+void Keithley_6512::setOhmMeterMode (void) 
+{
+	_electrometerProtocol->setOhmMeterMode( );
+}
+
+// ============================================================================
+// Keithley_6512::setCoulombMeterMode (617 & 6512 Keithley DDC models
+// ============================================================================
+void Keithley_6512::setCoulombMeterMode (void) 
+{
+	_electrometerProtocol->setCoulombMeterMode( );
+}
+
+// ============================================================================
+// Keithley_6512::electrometer_status
+// ============================================================================
+std::string Keithley_6512::electrometer_status (void)
+{ 
+	std::string _kstatus("undefined status");
+	std::string argout("undefined status");
+	std::string tmp("");
+
+	//- read keithley status from HW	
+	_kstatus = _electrometerProtocol->get_raw_status();
+
+	//- build status
+	try
+	{
+		//- model number :
+		std::string modelNum = _kstatus.substr(0,4);
+		//- if not expected data (here model number)
+		if(modelNum.find("6512") == std::string::npos)
+		{
+			set_electroState(ALARM);
+			argout = "Invalid status string received";
+			return argout;
+		}
+		argout = "Keithley Type : " + modelNum + "\n";
+		//- Functions and associate range :
+		tmp = _kstatus.substr(4,1);
+		short func = XString<short>::convertFromString(tmp);
+		//- Range :
+		tmp = _kstatus.substr(5,2);
+		 _range = XString<short>::convertFromString(tmp);
+		if(!func)
+		{
+			_mode = "Function : VOLTS";
+			argout += _mode + "\n";
+			_rangeStr = K6512_VoltRangeValue[_range];
+		}
+		else
+			if(func == 1)
+			{
+				_mode = "Function : AMPS";
+			    argout += _mode + "\n";
+				_rangeStr = K6512_AmpRangeValue[_range];
+				argout	 += _rangeStr + "\n";
+			}
+		else
+			if(func == 2)
+			{
+				_mode = "Function : OHMS";
+			    argout += _mode + "\n";
+				_rangeStr = K6512_OhmRangeValue[_range];
+			}
+		else
+			if(func == 3)
+			{
+				_mode = "Function : COULOMBS";
+			    argout += _mode + "\n";
+				_rangeStr = K6512_CouRangeValue[_range];
+			}
+		else
+			if(func == 4)
+			{
+				_mode = "Function : XFDBK";
+			    argout += _mode + "\n";
+				_rangeStr = K6512_XfdbRangeValue[_range];
+			}
+		//- Range :
+		argout += "RANGE : " + _rangeStr + "\n";
+		//- Zero check state
+		tmp = _kstatus.substr(7,1);
+		if(XString<short>::convertFromString(tmp))
+			argout += "Zero Check : ON\n";
+		else
+			argout += "Zero Check : OFF\n";
+		//- Zero correct state
+		tmp = _kstatus.substr(8,1);
+		if(XString<short>::convertFromString(tmp))
+			argout += "Zero Correct : ON\n";
+		else
+			argout += "Zero Correct : OFF\n";
+		//- Suppress
+		tmp = _kstatus.substr(9,1);
+		if(XString<short>::convertFromString(tmp))
+			argout += "Suppress : ON\n";
+		else
+			argout += "Suppress : OFF\n";
+		//- Trigger
+		tmp = _kstatus.substr(10,1);
+		if(!XString<short>::convertFromString(tmp))
+			argout += "Trigger : Continuous on Talk\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 1)
+				argout += "Trigger :One-Shot on Talk\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 2)
+				argout += "Trigger :Continuous on Get\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 3)
+				argout += "Trigger :One-Shot on Get\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 4)
+				argout += "Trigger :Continuous on \"X\"\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 5)
+				argout += "Trigger :One-Shot on \"X\"\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 6)
+				argout += "Trigger :Continuous on External\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 7)
+				argout += "Trigger :One-Shot on External\n";
+		//- Read Mode
+		tmp = _kstatus.substr(12,1);
+		if(!XString<short>::convertFromString(tmp))
+			argout += "Read Mode : Electrometer\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 1)
+				argout += "Read Mode : Data Store\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 2)
+				argout += "Read Mode : Maximum\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 3)
+				argout += "Read Mode : Minimum\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 4)
+				argout += "Read Mode :Voltage Source\n";
+		//- Data Store
+		tmp = _kstatus.substr(15,1);
+		if(!XString<short>::convertFromString(tmp))
+			argout += "Data Store : Conversion Rate\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 1)
+				argout += "Data Store : 1 RDG/Sec\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 2)
+				argout += "Data Store : 1 RDG/10Sec\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 3)
+				argout += "Data Store : 1 RDG/Min\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 4)
+				argout += "Data Store : 1 RDG/10Min\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 5)
+				argout += "Data Store : 1 RDG/1Hr\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 6)
+				argout += "Data Store : Trig Button\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 7)
+				argout += "Data Store : Disabled\n";
+		//- SRQ Mask
+		tmp = _kstatus.substr(16,2);
+		if(!XString<short>::convertFromString(tmp))
+			argout += "SRQ Data Mask : SRQ Disabled\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 1)
+				argout += "SRQ Data Mask : Reading Overflow\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 2)
+				argout += "SRQ Data Mask : Data Store Full\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 8)
+				argout += "SRQ Data Mask : Reading Done\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 16)
+				argout += "SRQ Data Mask : Ready\n";
+		else
+			if(XString<short>::convertFromString(tmp) == 32)
+				argout += "SRQ Data Mask : Error\n";
+		//- EOI & Bus Hold Off
+		tmp = _kstatus.substr(18,1);
+		if(!XString<short>::convertFromString(tmp))
+			argout += "EOI & Bus Hold Off : EOI and Hold-Off\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 1)
+			argout += "EOI & Bus Hold Off : No EOI and Hold-Off\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 2)
+			argout += "EOI & Bus Hold Off : EOI and no Hold-Off\n";
+		else
+		if(XString<short>::convertFromString(tmp) == 3)
+			argout += "EOI & Bus Hold Off : No EOI and no Hold-Off\n";
+	}
+	catch(std::out_of_range)
+	{
+		set_electroState(ALARM);
+
+		throw electrometer::ElectrometerException("OUT_OF_RANGE", 
+												"Cannot extract device status [find or substr failed !].",
+												"Keithley_6512::electrometer_status( ).");
+	}
+
+
+	set_electroState(ON);
+	return argout;
+}
diff --git a/src/Keithley_6514.cpp b/src/Keithley_6514.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..54ed37206d73eb59478ea91eef348a61bea1352b
--- /dev/null
+++ b/src/Keithley_6514.cpp
@@ -0,0 +1,319 @@
+// ============================================================================
+//
+// = CONTEXT
+//    TANGO Project - SCPI KeithleyElectrometer Support Library
+//
+// = FILENAME
+//    Keithley_6514.cpp
+//
+// = AUTHOR
+//    X. Elattaoui
+//
+// ============================================================================
+static long KEITHLEY_MODEL = 6514;
+
+// ============================================================================
+// DEPENDENCIES
+// ============================================================================
+#include <iostream>
+#include <sstream>
+#include <string>
+#include <Xstring.h>
+#include "Keithley_6514.h"
+#include "KeithleySCPIProtocol.h"
+/*
+* Valid Range values for a K_6514
+*/
+static const std::string K6514_AMP_rangeStr[] = {"2E-11","2E-10","2E-9","2E-8","2E-7","2E-6","2E-5","2E-4","2E-3","2E-2"};
+static const std::string K6514_VOLT_rangeStr[]= {"2","20","200"};
+static const std::string K6514_OHM_rangeStr[] = {"2E3","2E4","2E5","2E6","2E7","2E8","2E9","2E10","2E11"};
+static const std::string K6514_COU_rangeStr[] = {"2E-7","2E-6","2E-5","2E-4"};
+/*
+* Max Index Range value for a K_6514
+*/
+static const short K6514_AMP_rangeLimit = 9;
+static const short K6514_VOLT_rangeLimit= 2;
+static const short K6514_OHM_rangeLimit = 8;
+static const short K6514_COU_rangeLimit = 3;
+
+// ============================================================================
+// Keithley_6514::Keithley_6514
+// ============================================================================
+Keithley_6514::Keithley_6514 (std::string& comLink_device_name):
+AbstractElectrometerClass(comLink_device_name),
+_kmode("")
+{
+	std::cout << "Keithley_6514::Keithley_6514 <-" << std::endl;
+
+	//- build the keithley Electrometer obj
+	_electrometerProtocol = new KeithleySCPIProtocol(_device_proxy_name);
+
+	//- this model supports different mode (OhmMeter, VoltMeter and so on )
+	KeithleySCPIProtocol* _kscpi = dynamic_cast<KeithleySCPIProtocol*>(_electrometerProtocol);
+	if(_kscpi)
+		_kscpi->set_isDiffSuportedMode(true);
+
+	std::cout << "Keithley_6514::Keithley_6514 ->" << std::endl;
+}
+
+// ============================================================================
+// Keithley_6514::~Keithley_6514
+// ============================================================================
+Keithley_6514::~Keithley_6514 (void)
+{
+	std::cout << "Keithley_6514::~Keithley_6514 <-" << std::endl;
+
+	std::cout << "Keithley_6514::~Keithley_6514 ->" << std::endl;
+}
+
+
+// ============================================================================
+// Keithley_6514::range_up
+// ============================================================================
+void Keithley_6514::range_up (void) 
+{
+
+std::stringstream cmd_to_send;
+
+	//- update range value from hardware
+	update_range( );
+
+	_range += 1;
+
+	//- check range validity
+	if(_kmode.find("CURR") != std::string::npos)
+	{
+		if(_range > K6514_AMP_rangeLimit)
+		{
+			_range = K6514_AMP_rangeLimit;
+			throw electrometer::ElectrometerException("OUT_OF_RANGE", 
+													"Range up limit reached.",
+													"Keithley_6514::range_up( ).");
+		}
+		_rangeStr = K6514_AMP_rangeStr[_range];
+	}
+	else
+	if (_kmode.find("VOLT") != std::string::npos)
+	{
+		if(_range > K6514_VOLT_rangeLimit)
+		{
+			_range = K6514_VOLT_rangeLimit;
+			throw electrometer::ElectrometerException("OUT_OF_RANGE", 
+													"Range up limit reached.",
+													"Keithley_6514::range_up( ).");
+		}
+		_rangeStr = K6514_VOLT_rangeStr[_range];
+	}
+	else 
+	if (_kmode.find("RES") != std::string::npos)
+	{
+		if(_range > K6514_OHM_rangeLimit)
+		{
+			_range = K6514_OHM_rangeLimit;
+			throw electrometer::ElectrometerException("OUT_OF_RANGE", 
+													"Range up limit reached.",
+													"Keithley_6514::range_up( ).");
+		}
+		_rangeStr = K6514_OHM_rangeStr[_range];
+	}
+	else if (_kmode.find("CHAR") != std::string::npos)
+	{
+		if(_range > K6514_COU_rangeLimit)
+		{
+			_range = K6514_COU_rangeLimit;
+			throw electrometer::ElectrometerException("OUT_OF_RANGE", 
+													"Range up limit reached.",
+													"Keithley_6514::range_up( ).");
+		}
+		_rangeStr = K6514_COU_rangeStr[_range];
+	}
+	else
+		throw electrometer::ElectrometerException("UNKNOWN_MODE", 
+												"Unable to find the electrometer mode used.",
+												"Keithley_6514::range_up( ).");
+
+	//- build and send the command
+	cmd_to_send << _rangeStr << std::endl;
+	_electrometerProtocol->set_range(cmd_to_send.str());
+}
+
+// ============================================================================
+// Keithley_6514::range_down
+// ============================================================================
+void Keithley_6514::range_down (void) 
+{
+
+std::stringstream cmd_to_send;
+
+	//- update range value from hardware
+	update_range( );
+
+	_range -= 1;
+
+	if(_range < 0)
+	{
+		_range = 0;
+
+		throw electrometer::ElectrometerException("OUT_OF_RANGE", 
+												"Range down limit reached.",
+												"Keithley_6514::range_down( ).");
+	}
+
+	//- check range validity
+	if(_kmode.find("CURR") != std::string::npos)
+		cmd_to_send << K6514_AMP_rangeStr[_range] << std::endl;
+	else if (_kmode.find("VOLT") != std::string::npos)
+		cmd_to_send << K6514_VOLT_rangeStr[_range] << std::endl;
+	else if (_kmode.find("RES") != std::string::npos)
+		cmd_to_send << K6514_OHM_rangeStr[_range] << std::endl;
+	else if (_kmode.find("CHAR") != std::string::npos)
+			cmd_to_send << K6514_COU_rangeStr[_range] << std::endl;
+	else
+		throw electrometer::ElectrometerException("UNKNOWN_MODE", 
+												"Unable to find the electrometer mode used.",
+												"Keithley_6514::range_down( ).");
+
+
+	//- build and send the command
+	_electrometerProtocol->set_range(cmd_to_send.str());
+}
+
+// ============================================================================
+// Keithley_6514::get_integratedValue
+// ============================================================================
+std::vector<double> Keithley_6514::get_integratedValue (void) 
+{
+  return 	_electrometerProtocol->get_integratedValue( );
+}  
+
+// ============================================================================
+// Keithley_6514::get_fetchValue
+// ============================================================================
+std::vector<double> Keithley_6514::get_fetchValue (void) 
+{
+  return 	_electrometerProtocol->get_fetchValue( );
+}  
+
+// ============================================================================
+// Keithley_6514::setAmperMeterMode 
+// ============================================================================
+void Keithley_6514::setAmperMeterMode (void) 
+{
+
+	_electrometerProtocol->setAmperMeterMode( );
+
+
+}
+
+// ============================================================================
+// Keithley_6514::setVoltMeterMode
+// ============================================================================
+void Keithley_6514::setVoltMeterMode (void) 
+{
+
+	_electrometerProtocol->setVoltMeterMode( );
+
+}
+
+// ============================================================================
+// Keithley_6514::setOhmMeterMode
+// ============================================================================
+void Keithley_6514::setOhmMeterMode (void) 
+{
+
+	_electrometerProtocol->setOhmMeterMode( );
+
+}
+
+// ============================================================================
+// Keithley_6514::setCoulombMeterMode
+// ============================================================================
+void Keithley_6514::setCoulombMeterMode (void) 
+{
+
+	_electrometerProtocol->setCoulombMeterMode( );
+
+}
+
+// ============================================================================
+// Keithley_6487::update_range
+// ============================================================================
+void Keithley_6514::update_range (void) 
+{
+std::string range_str("");
+double rangeValueReturned	= 0;
+double rangeValueCalculated	= 0;
+double delta = 0;
+
+	/**
+	*	NOTE : SCPI models return a range value +/- 5%
+	*/
+
+	//- get device mode 
+	_kmode = get_ElectroMeterMode();
+	
+	//- get range from hardware
+	range_str = _electrometerProtocol->get_range( );
+	//- convert range in decimal value
+	rangeValueReturned = XString<double>::convertFromString(range_str);
+
+	//- find and return the index
+	short idx = 0;
+	short idx_limit = 0;
+
+	if(_kmode.find("CURR") != std::string::npos)
+		idx_limit = K6514_AMP_rangeLimit;
+	else if (_kmode.find("VOLT") != std::string::npos)
+		idx_limit = K6514_VOLT_rangeLimit;
+	else if (_kmode.find("RES") != std::string::npos)
+		idx_limit = K6514_OHM_rangeLimit;
+	else if (_kmode.find("CHAR") != std::string::npos)
+		idx_limit = K6514_COU_rangeLimit;
+	else
+		throw electrometer::ElectrometerException("UNKNOWN_MODE", 
+												"Unable to find the electrometer mode used.",
+												"Keithley_6514::update_range( ).");
+
+	
+//- find the range index
+	for(idx=0; idx<idx_limit ; idx++)
+	{
+		if(_kmode.find("CURR") != std::string::npos)
+		{
+			rangeValueCalculated = XString<double>::convertFromString(K6514_AMP_rangeStr[idx]);
+			delta = rangeValueCalculated * 5 / 100;
+			if( (rangeValueCalculated + delta) >= rangeValueReturned && (rangeValueCalculated - delta) <= rangeValueReturned)
+				break;
+		}
+		else if (_kmode.find("VOLT") != std::string::npos)
+		{
+			rangeValueCalculated = XString<double>::convertFromString(K6514_VOLT_rangeStr[idx]);
+			delta = rangeValueCalculated * 5 / 100;
+			if( (rangeValueCalculated + delta) >= rangeValueReturned && (rangeValueCalculated - delta) <= rangeValueReturned)
+				break;
+		}
+		else if (_kmode.find("RES") != std::string::npos)
+		{
+			rangeValueCalculated = XString<double>::convertFromString(K6514_OHM_rangeStr[idx]);
+			delta = rangeValueCalculated * 5 / 100;
+			if( (rangeValueCalculated + delta) >= rangeValueReturned && (rangeValueCalculated - delta) <= rangeValueReturned)
+				break;
+		}
+		else if (_kmode.find("CHAR") != std::string::npos)
+		{
+			rangeValueCalculated = XString<double>::convertFromString(K6514_COU_rangeStr[idx]);
+			delta = rangeValueCalculated * 5 / 100;
+			if( (rangeValueCalculated + delta) >= rangeValueReturned && (rangeValueCalculated - delta) <= rangeValueReturned)
+				break;
+		}
+	}
+
+	//- throw if index not found
+	if(idx == idx_limit)
+		throw electrometer::ElectrometerException("INTERNAL_ERROR", 
+										"Failed to get range index.",
+										"Keithley_6514::update_range( ).");
+
+	//- update the range with the index found
+	this->_range = idx;
+}
diff --git a/src/Makefile.linux b/src/Makefile.linux
new file mode 100644
index 0000000000000000000000000000000000000000..e526e8d9327e88accb8ee9d3d6c9c3621e39a7f9
--- /dev/null
+++ b/src/Makefile.linux
@@ -0,0 +1,165 @@
+#=============================================================================
+#
+# file :        Makefile.h
+#
+# description : Makefile for DeviceServer
+#
+# $Author: stephle $
+#
+# $Revision: 1.1 $
+#
+# $Log: not supported by cvs2svn $
+# Revision 1.3  2006/03/21 16:59:13  hardion
+# * Add Software Support to Makefile process
+#
+# Revision 1.2  2006/03/21 15:25:20  hardion
+# * Update Pogo
+# * fix bug in Makefile process
+#
+# Revision 1.3  2006/03/14 14:57:34  hardion
+# * Update Makefile process to allow compilation of library
+#
+# Revision 1.2  2006/01/05 16:51:30  hardion
+# * Update Makefile.linux and tango.opt for library use
+#
+#
+#=============================================================================
+
+
+
+#=============================================================================
+# OUTPUT_TYPE can be one of the following :
+#   - 'STATIC_LIB' for a static library (.a)
+#   - 'DYNAMIC_LIB' for a dynamic library (.so)
+#   - 'DEVICE' for a device server (will automatically include and link
+#            with Tango dependencies)
+#   - 'SIMPLE_EXE' for an executable with no dependency (for exemple the test tool
+#                of a library with no Tango dependencies)
+#
+OUTPUT_TYPE = STATIC_LIB
+
+#=============================================================================
+# OUTPUT_DIR  is the directory which contains the build result.
+# if not set, the standard location is :
+#	- $HOME/DeviceServers if OUTPUT_TYPE is DEVICE
+#	- ../bin for others
+#
+OUTPUT_DIR = ../lib
+
+
+#=============================================================================
+# PACKAGE_NAME is the name of the library/device/exe you want to build
+#   - for a device server, PACKAGE_NAME will be prefixed by 'ds_'
+#   - for a library (static or dynamic), PACKAGE_NAME will be prefixed by 'lib'
+#   - for a simple executable, PACKAGE_NAME will be the name of the executable
+#
+PACKAGE_NAME = Electrometers
+
+
+
+
+
+#=============================================================================
+# INC_DIR_USER is the list of all include path needed by your sources
+#   - for a device server, tango dependencies are automatically appended
+#   - '-I ../include' and '-I .' are automatically appended in all cases
+#
+# -I$(SOLEIL_ROOT)/hw-support/ace/include for ACE library
+# -I$(SOLEIL_ROOT)/hw-support/asl/include for ASL library
+# -I$(SOLEIL_ROOT)/sw-support/hkl/include for HKL library
+# ...etc
+#
+# la partie communication d�pend de tango 
+INC_DIR_USER=-I$(TANGO_HOME)/include   -I$(OMNI_HOME)/include -I$(SOLEIL_ROOT)/dev/include
+
+
+
+
+
+#=============================================================================
+# LIB_DIR_USER is the list of user library directories
+#   - for a device server, tango libraries directories are automatically appended
+#   - '-L ../lib' is automatically appended in all cases
+# -L $(SOLEIL_ROOT)/hw-support/ace/lib for ACE library
+# -L $(SOLEIL_ROOT)/hw-support/asl/lib for ASL library
+# -L $(SOLEIL_ROOT)/sw-support/hkl/lib for HKL library
+# ...etc
+#
+LIB_DIR_USER=
+
+
+
+#=============================================================================
+# LFLAGS_USR is the list of user link flags
+#   - for a device server, tango libraries directories are automatically appended
+#   - '-ldl -lpthread' is automatically appended in all cases
+#
+# !!! ATTENTION !!!
+# Be aware that the order matters. 
+# For example if you must link with libA, and if libA depends itself on libB
+# you must use '-lA -lB' in this order as link flags, otherwise you will get
+# 'undefined reference' errors
+#
+# -lACE for ACE
+# -lASL for ASL
+# -lHKL for HKL
+#
+LFLAGS_USR=
+
+
+
+
+
+#=============================================================================
+# CXXFLAGS_USR lists the compilation flags specific for your library/device/exe
+# This is the place where to put your compile-time macros using '-Dmy_macro'
+#
+# -DACE_HAS_EXCEPTIONS -D__ACE_INLINE__ for ACE
+#
+#CXXFLAGS_USR=-DSIMULATED_AXIS
+
+
+#
+#	include Standard TANGO compilation options
+#
+include $(SOLEIL_ROOT)/env/tango.opt
+
+
+
+#=============================================================================
+# SVC_OBJS is the list of all objects needed to make the output
+#
+SVC_OBJS =    $(OBJDIR)/CommunicationLink.o      \
+   $(OBJDIR)/TangoGpibLink.o          \
+   $(OBJDIR)/TangoSerialLink.o        \
+    $(OBJDIR)/ElectrometerProtocol.o  \
+   $(OBJDIR)/KeithleyDDCProtocol.o    \
+   $(OBJDIR)/KeithleySCPIProtocol.o   \
+   $(OBJDIR)/NovelecProtocol.o        \
+   $(OBJDIR)/AbstractElectrometerClass.o   \
+   $(OBJDIR)/Novelec_MCCE2.o           \
+   $(OBJDIR)/N_PhotoVoltaique.o           \
+   $(OBJDIR)/N_PhotoConducteur.o           \
+   $(OBJDIR)/Keithley_485.o		\
+   $(OBJDIR)/Keithley_486.o		\
+   $(OBJDIR)/Keithley_487.o		\
+   $(OBJDIR)/Keithley_617.o		\
+   $(OBJDIR)/Keithley_6512.o		 \
+   $(OBJDIR)/Keithley_6485.o		 \
+   $(OBJDIR)/Keithley_6487.o		 \
+   $(OBJDIR)/Keithley_6514.o		 \
+   $(OBJDIR)/ElectrometerException.o
+
+#
+# Verbose mode
+#
+#.SILENT:
+
+#
+#	include common targets
+#
+include $(SOLEIL_ROOT)/env/common_target.opt
+ 
+
+
+
diff --git a/src/Makefile.vc b/src/Makefile.vc
new file mode 100644
index 0000000000000000000000000000000000000000..bc34104a742392f9b81873663c5327307e4ec65d
--- /dev/null
+++ b/src/Makefile.vc
@@ -0,0 +1,58 @@
+#
+device_server= Lib_Electrometer_OBJ
+#
+#  LEs PATHS des includes propres � ce DServer
+#  Mettre /Ic:\monchemininclude /ID:\monautrechemininclude
+INCUSER= 
+#
+#  Le chemin complet de vos Librairies
+#
+# LIBUSER = "x:\moncheminlibrairie\malibrairie.lib"
+LIBUSER=
+#	 Si vous souhaitez g�n�rer une librairie et pas un executable
+#	 decommentez la ligne suivante
+LIBRARY_NAME= ..\lib\Electrometers.lib
+#
+# Le chemin ou j'ai d'autres fichiers sources que ceux du DeviceServer � compiler
+CPPDIRUSER=
+
+#
+# ------------------Fin des modifications pour le end user -------------------------------------
+#
+make_dir=$(SOLEIL_ROOT)\env
+
+#  Les d�finitions communes � tous les DeviceServeurs
+!include $(make_dir)\tango.opt
+
+exe_device_server= $(EXEDIR)\ds_$(device_server).exe
+
+# --------------------------------------
+#   Partie sp�cifique Device Server
+# --------------------------------------
+
+LISTEOBJ = \
+   $(OBJDIR)\CommunicationLink.OBJ	\
+   $(OBJDIR)\TangoGpibLink.OBJ		\
+   $(OBJDIR)\TangoSerialLink.OBJ	\
+    $(OBJDIR)\ElectrometerProtocol.OBJ	\
+   $(OBJDIR)\KeithleyDDCProtocol.OBJ	\
+   $(OBJDIR)\KeithleySCPIProtocol.OBJ	\
+   $(OBJDIR)\NovelecProtocol.OBJ	\
+   $(OBJDIR)\AbstractElectrometerClass.OBJ   \
+   $(OBJDIR)\Novelec_MCCE2.OBJ		 \
+   $(OBJDIR)\N_PhotoVoltaique.OBJ	    \
+   $(OBJDIR)\N_PhotoConducteur.OBJ	     \
+   $(OBJDIR)\Keithley_485.OBJ		\
+   $(OBJDIR)\Keithley_486.OBJ		\
+   $(OBJDIR)\Keithley_487.OBJ		\
+   $(OBJDIR)\Keithley_617.OBJ		\
+   $(OBJDIR)\Keithley_6512.OBJ		\
+   $(OBJDIR)\Keithley_6485.OBJ		\
+   $(OBJDIR)\Keithley_6487.OBJ		\
+   $(OBJDIR)\Keithley_6514.OBJ		\
+   $(OBJDIR)\ElectrometerException.OBJ
+
+
+# --------------------------------------
+!include $(make_dir)\common_target.opt
+
diff --git a/src/N_PhotoConducteur.cpp b/src/N_PhotoConducteur.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..a7c77795a2c9f66c5c20fe3198e6745afbcd9e2d
--- /dev/null
+++ b/src/N_PhotoConducteur.cpp
@@ -0,0 +1,125 @@
+// ============================================================================
+//
+// = CONTEXT
+//    TANGO Project - NovelecElectrometer Support Library
+//			PhotoConducteur Types are Type 4 & 5 only
+//
+// = FILENAME
+//    N_PhotoConducteur.cpp
+//
+// = AUTHOR
+//    X. Elattaoui
+//
+// ============================================================================
+
+// ============================================================================
+// DEPENDENCIES
+// ============================================================================
+#include <iostream>
+#include <sstream>
+#include <string>
+#include <Xstring.h>
+#include "N_PhotoConducteur.h"
+#include "NovelecProtocol.h"
+/*
+* Valid Range values for a N_PhotoConducteur
+*/
+static const std::string NType_4_rangeValue[] = {"100 MOhms","30 MOhms","10 MOhms","3 MOhms"};
+static const std::string NType_5_rangeValue[] = {"1000 KOhms","300 KOhms","100 KOhms","30 KOhms"};
+
+
+// ============================================================================
+// N_PhotoConducteur::N_PhotoConducteur
+// ============================================================================
+N_PhotoConducteur::N_PhotoConducteur (std::string& comLink_device_name, short address, short novTypeNumber)
+:	Novelec_MCCE2(comLink_device_name, address, novTypeNumber)
+{
+	std::cout << "N_PhotoConducteur::N_PhotoConducteur <-" << std::endl;
+
+	_rangeLimit = 3;
+	
+	std::cout << "N_PhotoConducteur::N_PhotoConducteur ->" << std::endl;
+}
+
+// ============================================================================
+// N_PhotoConducteur::~N_PhotoConducteur
+// ============================================================================
+N_PhotoConducteur::~N_PhotoConducteur (void)
+{
+	std::cout << "N_PhotoConducteur::~N_PhotoConducteur <-" << std::endl;
+
+	std::cout << "N_PhotoConducteur::~N_PhotoConducteur ->" << std::endl;
+}
+
+// ============================================================================
+// N_PhotoConducteur::range_up
+// ============================================================================
+void N_PhotoConducteur::range_up (void) 
+{
+
+std::stringstream cmd_to_send;
+
+	_range += 1;
+
+	if(_range > _rangeLimit)
+	{
+		_range = _rangeLimit;
+		throw electrometer::ElectrometerException("OUT_OF_RANGE", 
+												"Range up limit reached.",
+												"N_PhotoConducteur::range_up( ).");
+	}
+
+	//- build and send the command
+	cmd_to_send << _range << std::endl;
+	_electrometerProtocol->set_range(cmd_to_send.str());
+}
+
+// ============================================================================
+// N_PhotoConducteur::range_down
+// ============================================================================
+void N_PhotoConducteur::range_down (void) 
+{
+
+std::stringstream cmd_to_send;
+
+	_range -= 1;
+
+	if(_range < 0)
+	{
+		_range = 0;
+		throw electrometer::ElectrometerException("OUT_OF_RANGE", 
+												"Range down limit reached.",
+												"N_PhotoConducteur::range_down( ).");
+	}
+
+	//- build and send the command
+//	_rangeStr = NType1_rangeValue[_range];
+	cmd_to_send << _range << std::endl;
+	_electrometerProtocol->set_range(cmd_to_send.str());
+}
+
+// ============================================================================
+// N_PhotoConducteur::get_ElectroMeterGain
+// ============================================================================
+std::string N_PhotoConducteur::get_ElectroMeterGain (void)
+{ 
+	NovelecProtocol* _nproto = dynamic_cast<NovelecProtocol*>(_electrometerProtocol);
+	if(!_nproto)
+		throw electrometer::ElectrometerException("BAD_CAST", 
+												"Unable to query the electrmometer gain.",
+												"N_PhotoConducteur::get_ElectroMeterGain( ).");
+	return _nproto->get_gain();	
+}
+
+// ============================================================================
+// N_PhotoConducteur::set_ElectroMeterGain
+// ============================================================================
+void N_PhotoConducteur::set_ElectroMeterGain (std::string gain)
+{ 
+	NovelecProtocol* _nproto = dynamic_cast<NovelecProtocol*>(_electrometerProtocol);
+	if(!_nproto)
+		throw electrometer::ElectrometerException("BAD_CAST", 
+												"INTERNAL ERROR : Unable to change the electrmometer function.",
+												"N_PhotoConducteur::set_ElectroMeterGain( ).");
+	_nproto->set_gain(gain);	
+}
diff --git a/src/N_PhotoVoltaique.cpp b/src/N_PhotoVoltaique.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..2d369948e783ced963a28e5ed10316784c94d144
--- /dev/null
+++ b/src/N_PhotoVoltaique.cpp
@@ -0,0 +1,135 @@
+// ============================================================================
+//
+// = CONTEXT
+//    TANGO Project - NovelecElectrometer Support Library
+//			PhotoVoltaique Types are Type 1, 2 & 3
+//
+// = FILENAME
+//    N_PhotoVoltaique.cpp
+//
+// = AUTHOR
+//    X. Elattaoui
+//
+// ============================================================================
+
+// ============================================================================
+// DEPENDENCIES
+// ============================================================================
+#include <iostream>
+#include <sstream>
+#include <string>
+#include <Xstring.h>
+#include "N_PhotoVoltaique.h"
+#include "NovelecProtocol.h"
+/*
+* Valid Range values for a N_PhotoVoltaique
+*/
+static const std::string NType1_rangeValue[] = {"1e-11 A","3e-11 A","1e-10 A","3e-10 A"};
+static const std::string NType2_rangeValue[] = {"1e-10 A","3e-10 A","1e-9 A","3e-9 A","1e-8 A","3e-8 A","1e-7 A","3e-7 A"};
+static const std::string NType3_rangeValue[] = {"1e-8 A","3e-8 A","1e-7 A","3e-7 A","1e-6 A","3e-6 A","1e-5 A","3e-5 A"};
+
+
+// ============================================================================
+// N_PhotoVoltaique::N_PhotoVoltaique
+// ============================================================================
+N_PhotoVoltaique::N_PhotoVoltaique (std::string comLink_device_name, short address, short novTypeNumber)
+:	Novelec_MCCE2(comLink_device_name, address, novTypeNumber)
+{
+	std::cout << "N_PhotoVoltaique::N_PhotoVoltaique <-" << std::endl;
+
+	//- init range limit
+	switch(novTypeNumber)
+	{
+	case 1 :	_rangeLimit = 3;
+		break;
+	case 2 :
+	case 3 :	_rangeLimit = 7;
+		break;
+	}
+	
+	std::cout << "N_PhotoVoltaique::N_PhotoVoltaique ->" << std::endl;
+}
+
+// ============================================================================
+// N_PhotoVoltaique::~N_PhotoVoltaique
+// ============================================================================
+N_PhotoVoltaique::~N_PhotoVoltaique (void)
+{
+	std::cout << "N_PhotoVoltaique::~N_PhotoVoltaique <-" << std::endl;
+
+	std::cout << "N_PhotoVoltaique::~N_PhotoVoltaique ->" << std::endl;
+}
+
+// ============================================================================
+// N_PhotoVoltaique::range_up
+// ============================================================================
+void N_PhotoVoltaique::range_up (void) 
+{
+
+std::stringstream cmd_to_send;
+
+	_range += 1;
+
+	if(_range > _rangeLimit)
+	{
+		_range = _rangeLimit;
+		throw electrometer::ElectrometerException("OUT_OF_RANGE", 
+												"Range up limit reached.",
+												"N_PhotoVoltaique::range_up( ).");
+	}
+
+	//- build and send the command
+	cmd_to_send << _range << std::endl;
+	_electrometerProtocol->set_range(cmd_to_send.str());
+}
+
+// ============================================================================
+// N_PhotoVoltaique::range_down
+// ============================================================================
+void N_PhotoVoltaique::range_down (void) 
+{
+
+std::stringstream cmd_to_send;
+
+	_range -= 1;
+
+	if(_range < 0)
+	{
+		_range = 0;
+		throw electrometer::ElectrometerException("OUT_OF_RANGE", 
+												"Range down limit reached.",
+												"N_PhotoVoltaique::range_down( ).");
+	}
+
+	//- build and send the command
+//	_rangeStr = NType1_rangeValue[_range];
+	cmd_to_send << _range << std::endl;
+	_electrometerProtocol->set_range(cmd_to_send.str());
+}
+
+// ============================================================================
+// N_PhotoVoltaique::get_ElectroMeterFrequency Filter
+// ============================================================================
+std::string N_PhotoVoltaique::get_ElectroMeterFrequency (void)
+{ 
+	NovelecProtocol* _nproto = dynamic_cast<NovelecProtocol*>(_electrometerProtocol);
+	if(!_nproto)
+		throw electrometer::ElectrometerException("BAD_CAST", 
+												"Unable to query the electrmometer frequency.",
+												"N_PhotoVoltaique::get_ElectroMeterFrequency( ).");
+	return _nproto->get_frequency();	
+}
+
+// ============================================================================
+// N_PhotoVoltaique::set_ElectroMeterFrequency Filter
+// ============================================================================
+void N_PhotoVoltaique::set_ElectroMeterFrequency (std::string freqFilter)
+{ 
+	NovelecProtocol* _nproto = dynamic_cast<NovelecProtocol*>(_electrometerProtocol);
+	if(!_nproto)
+		throw electrometer::ElectrometerException("BAD_CAST", 
+												"Unable to query the electrmometer frequency.",
+												"N_PhotoVoltaique::set_ElectroMeterFrequency( ).");
+	_nproto->set_frequency(freqFilter);	
+}
+
diff --git a/src/NovelecProtocol.cpp b/src/NovelecProtocol.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..72513f98c0ae1c079d867008dfe4444ec3c4f5d8
--- /dev/null
+++ b/src/NovelecProtocol.cpp
@@ -0,0 +1,683 @@
+// ============================================================================
+//
+// = CONTEXT
+//    TANGO Project - NovelecProtocol Support Library
+//
+// = FILENAME
+//    NovelecProtocol.cpp
+//
+// = AUTHOR
+//    X. Elattaoui
+//
+// ============================================================================
+
+// ============================================================================
+// DEPENDENCIES
+// ============================================================================
+#include <iostream>
+#include <sstream>
+#include <string>
+#include <Xstring.h>
+#include "NovelecProtocol.h"
+#include "TangoSerialLink.h"
+
+//- commands numbers
+static const short	STATUS_CMD_NUM	= 1;
+static const short	ERRORS_CMD_NUM	= 2;
+static const short	MODE_CMD_NUM	= 3;
+static const short	ELECTROTYPE_CMD_NUM	= 4;
+static const short	POLARITY_CMD_NUM	= 5;
+static const short	FREQUENCY_CMD_NUM	= 6;
+static const short	GAIN_CMD_NUM		= 7;
+static const short	RANGE_CMD_NUM		= 8;
+static const short	RESPONSE_LGTH_CMD_NUM = 17;
+static const short	CLEAR_ERRORS_CMD_NUM  = 18;
+//- the specific new line character
+static const char	END_OF_LINE[] = {'\r','\n'};
+//- modes allowed
+static const std::string mode_str[]		= {"ERR : UNKNOWN MODE","ZERO V/F","OFFSET","LEAKAGE","TEST","MEASURE"};
+static const std::string range_str[5][8]= {	{"1e-11AcC","3e-11AcC","1e-10AcC","3e-10AcC", "OUT OF RANGE","OUT OF RANGE","OUT OF RANGE","OUT OF RANGE"},
+											{"1e-10AcC","3e-10AcC","1e-9AcC","3e-9AcC","1e-8AcC","3e-8AcC","1e-7AcC","3e-7AcC"},
+											{"1e-8AcC","3e-8AcC","1e-7AcC","3e-7AcC","1e-6AcC","3e-6AcC","1e-5AcC","3e-5AcC"},
+											{"1000MOhm","300MOhm","100MOhm","30MOhm","OUT OF RANGE","OUT OF RANGE","OUT OF RANGE","OUT OF RANGE"},
+											{"1000KOhm","300KOhm","100KOhm","30KOhm","OUT OF RANGE","OUT OF RANGE","OUT OF RANGE","OUT OF RANGE",}
+											};
+static const std::string frequency_str[]= {"3 Hz","10 Hz","100 Hz","1000 Hz"};
+static const std::string gain_str[]		= {"1","10","100"};
+
+
+// ============================================================================
+// NovelecProtocol::NovelecProtocol
+// ============================================================================
+NovelecProtocol::NovelecProtocol (std::string& serial_device_name, short devAddress, short novelecType)
+:	ElectrometerProtocol(),
+	_devAdd(devAddress),
+	_novType(novelecType),
+	_is_measure_mode_on(false)
+{
+std::stringstream explicite_resp;
+std::string tmp("no data");
+
+	std::cout << "NovelecProtocol::NovelecProtocol <-" << std::endl;
+
+	_communication_link = new TangoSerialLink (serial_device_name);
+	_rangeParameterNum	= _novType + 2;
+
+	//- CMD to enable PROG cmds
+	this->switch_MCCE2_OFF();
+
+	//- 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
+// ============================================================================
+NovelecProtocol::~NovelecProtocol (void)
+{
+	std::cout << "NovelecProtocol::~NovelecProtocol <-" << std::endl;
+
+	std::cout << "NovelecProtocol::~NovelecProtocol ->" << std::endl;
+}
+
+// ============================================================================
+// NovelecProtocol::switch_MCCE2_ON
+// ============================================================================
+void NovelecProtocol::switch_MCCE2_ON (void) 
+{
+std::stringstream cmd_to_send;
+std::string tmp("no data");
+
+	//- send cmd to have a explicite response :
+	cmd_to_send << _devAdd << " MEASURE 1" << END_OF_LINE << std::endl;
+	tmp = _communication_link->write_read(cmd_to_send.str());
+	//- check only the command response
+	check_command(tmp);
+
+	_is_measure_mode_on = true;
+}
+
+// ============================================================================
+// NovelecProtocol::switch_MCCE2_OFF
+// ============================================================================
+void NovelecProtocol::switch_MCCE2_OFF (void) 
+{
+std::stringstream cmd_to_send;
+std::string tmp("no data");
+
+	//- send cmd to have a explicite response :
+	cmd_to_send << _devAdd << " MEASURE 0" << END_OF_LINE << std::endl;
+	tmp = _communication_link->write_read(cmd_to_send.str());
+	//- check only the command response
+	check_command(tmp);
+
+	_is_measure_mode_on = false;
+}
+
+// ============================================================================
+// NovelecProtocol::get_mode
+// ============================================================================
+std::string NovelecProtocol::get_mode (void) 
+{
+std::stringstream cmd_to_send;
+std::string argout("no data");
+std::string tmp("no data");
+
+//std::cout << "\n\n***INFO : NovelecProtocol::get_mode () ->" << std::endl; 
+
+	//- send command to Novelec device
+	cmd_to_send << _devAdd << " READ " << MODE_CMD_NUM << END_OF_LINE << std::endl;
+	tmp = _communication_link->write_read(cmd_to_send.str());
+	//- check and extract the response
+	argout = check_and_extract_data(tmp, MODE_CMD_NUM);
+
+	//- check what is the response mode type
+	if(	_is_explicite_resp_enabled == false )
+	{
+		short idx	= XString<short>::convertFromString(argout);
+		_function	= mode_str[idx];
+	}
+	else
+		_function	= argout;
+
+//std::cout << "***INFO : NovelecProtocol::get_mode () <- $" << _function << "$\n\n" << std::endl; 
+
+	return _function;
+}
+
+// ============================================================================
+// NovelecProtocol::get_value
+// ============================================================================
+std::string NovelecProtocol::get_value (void) 
+{
+std::stringstream cmd_to_send;
+std::string tmp("no data");
+std::string value("no data");
+short cmd_num = 13;				//- default value for DEBUG !!!
+
+//std::cout << "\n\n***INFO : NovelecProtocol::get_value () ->" << std::endl; 
+
+	//- first get mode
+	get_mode(); 
+	if( (_function.find("OFFSET") != std::string::npos) || (_function.find("V1") != std::string::npos) )
+	{
+		cmd_num = 12;
+	}
+	else
+		if( (_function.find("LEAKAGE") != std::string::npos) || (_function.find("V2") != std::string::npos) )
+			cmd_num = 11;
+		else
+			std::cout << "\t\t***WARN : Current mode : \"" << get_mode() << "\" has no value available." << std::endl;
+
+	cmd_to_send << _devAdd << " READ " << cmd_num << END_OF_LINE << std::endl;
+	tmp = _communication_link->write_read(cmd_to_send.str());
+	//- check only the command response
+	value = check_and_extract_data(tmp, cmd_num);
+
+//std::cout << "***INFO : NovelecProtocol::get_value () <- $" << value << "$\n\n" << std::endl; 
+
+	return value;
+}
+
+// ============================================================================
+// NovelecProtocol::unable_zeroVF_func
+// ============================================================================
+void NovelecProtocol::unable_zeroVF_func (void) 
+{
+std::stringstream cmd_to_send;
+std::string cmdNumber(" 1");			//- PROG 1 -> = PROG FUNCTION
+std::string tmp("no data");
+
+	//- send cmd to have a explicite response :
+	cmd_to_send << _devAdd << " PROG 1 " << cmdNumber << END_OF_LINE << std::endl;
+	tmp = _communication_link->write_read(cmd_to_send.str());
+	//- check only the command response
+	check_command(tmp);
+}
+
+// ============================================================================
+// NovelecProtocol::unable_offset_zeroV1_func
+// ============================================================================
+void NovelecProtocol::unable_offset_zeroV1_func (void) 
+{
+std::stringstream cmd_to_send;
+std::string cmdNumber(" 2");			//- PROG 1 -> = PROG FUNCTION
+std::string tmp("no data");
+
+	//- send cmd to have a explicite response :
+	cmd_to_send << _devAdd << " PROG 1 " << cmdNumber << END_OF_LINE << std::endl;
+	tmp = _communication_link->write_read(cmd_to_send.str());
+	//- check only the command response
+	check_command(tmp);
+}
+
+// ============================================================================
+// NovelecProtocol::unable_leakage_zeroV2_func
+// ============================================================================
+void NovelecProtocol::unable_leakage_zeroV2_func (void) 
+{
+std::stringstream cmd_to_send;
+std::string cmdNumber(" 3");			//- PROG 1 -> = PROG FUNCTION
+std::string tmp("no data");
+
+	//- send cmd to have a explicite response :
+	cmd_to_send << _devAdd << " PROG 1 " << cmdNumber << END_OF_LINE << std::endl;
+	tmp = _communication_link->write_read(cmd_to_send.str());
+	//- check only the command response
+	check_command(tmp);
+}
+
+// ============================================================================
+// NovelecProtocol::unable_test_func
+// ============================================================================
+void NovelecProtocol::unable_test_func (void) 
+{
+std::stringstream cmd_to_send;
+std::string cmdNumber(" 4");			//- PROG 1 -> = PROG FUNCTION
+std::string tmp("no data");
+
+	//- send cmd to have a explicite response :
+	cmd_to_send << _devAdd << " PROG 1 " << cmdNumber << END_OF_LINE << std::endl;
+	tmp = _communication_link->write_read(cmd_to_send.str());
+	//- check only the command response
+	check_command(tmp);
+}
+
+// ============================================================================
+// NovelecProtocol::unable_measure_func
+// ============================================================================
+void NovelecProtocol::unable_measure_func (void) 
+{
+std::stringstream cmd_to_send;
+std::string cmdNumber(" 5");			//- PROG 1 -> = PROG FUNCTION
+std::string tmp("no data");
+
+	//- send cmd to have a explicite response :
+	cmd_to_send << _devAdd << " PROG 1 " << cmdNumber << END_OF_LINE << std::endl;
+	tmp = _communication_link->write_read(cmd_to_send.str());
+	//- check only the command response
+	check_command(tmp);
+}
+
+// ============================================================================
+// NovelecProtocol::get_range
+// ============================================================================
+std::string NovelecProtocol::get_range (void) 
+{
+std::stringstream cmd_to_send;
+std::string argout("no data");
+std::string tmp("no data");
+
+//std::cout << "\n\n***INFO : NovelecProtocol::get_range () ->" << std::endl; 
+
+	//- send command to Novelec device
+	cmd_to_send << _devAdd << " READ " << RANGE_CMD_NUM << END_OF_LINE << std::endl;
+	tmp = _communication_link->write_read(cmd_to_send.str());
+	//- check and extract the response
+	argout = check_and_extract_data(tmp, RANGE_CMD_NUM);
+
+	//- check what is the response mode type
+	short idx = -1;
+	if(	_is_explicite_resp_enabled == false )
+	{
+		idx	= XString<short>::convertFromString(argout);
+		argout		= range_str[_novType-1][idx];
+	}
+
+//std::cout << "***INFO : NovelecProtocol::get_range () =$" << argout << "$" << std::endl; 
+
+	return argout;
+}
+
+// ============================================================================
+// NovelecProtocol::set_range
+// ============================================================================
+void NovelecProtocol::set_range (std::string value) 
+{
+std::stringstream cmd_to_send;
+std::string tmp("no data");
+
+	//- send command to Novelec device
+	cmd_to_send << _devAdd << " PROG " << _rangeParameterNum << " " << value << END_OF_LINE << std::endl;
+	tmp = _communication_link->write_read(cmd_to_send.str());
+	//- the novelec device send ACK/NAK response after a received command
+	check_command(tmp);
+
+}
+
+// ============================================================================
+// NovelecProtocol::get_polarity
+// ============================================================================
+std::string NovelecProtocol::get_polarity (void) 
+{
+std::stringstream cmd_to_send;
+std::string argout("no data");
+std::string tmp("no data");
+
+//std::cout << "\n\n***INFO : NovelecProtocol::get_polarity () ->" << std::endl; 
+
+	//- send command to Novelec device
+	cmd_to_send << _devAdd << " READ " << POLARITY_CMD_NUM << END_OF_LINE << std::endl;
+	tmp = _communication_link->write_read(cmd_to_send.str());
+	//- check and extract the response
+	argout = check_and_extract_data(tmp, POLARITY_CMD_NUM);
+
+	//- check what is the response mode type
+	if(	_is_explicite_resp_enabled == false )
+	{
+		short idx	= XString<short>::convertFromString(argout);
+		if(idx < 0)
+			argout = "negative";
+		else
+			argout = "positive";
+	}
+
+//std::cout << "***INFO : NovelecProtocol::get_polarity () -> $" << argout << "$" << std::endl; 
+	return argout;
+}
+
+// ============================================================================
+// NovelecProtocol::set_polarity
+// ============================================================================
+void NovelecProtocol::set_polarity (std::string newPolarity) 
+{
+std::stringstream cmd_to_send;
+std::string tmp("no data");
+
+	//- send command to Novelec device
+	cmd_to_send << _devAdd << " PROG 2" << " " << newPolarity << END_OF_LINE << std::endl;
+	tmp = _communication_link->write_read(cmd_to_send.str());
+	//- the novelec device send ACK/NAK response after a received command
+	check_command(tmp);
+}
+
+// ============================================================================
+// NovelecProtocol::get_frequency
+// ============================================================================
+std::string NovelecProtocol::get_frequency (void) 
+{
+std::stringstream cmd_to_send;
+std::string argout("no data");
+std::string tmp("no data");
+
+//std::cout << "\n\n***INFO : NovelecProtocol::get_frequency () ->" << std::endl; 
+
+	//- send command to Novelec device
+	cmd_to_send << _devAdd << " READ " << FREQUENCY_CMD_NUM << END_OF_LINE << std::endl;
+	tmp = _communication_link->write_read(cmd_to_send.str());
+	//- check and extract the response
+	argout = check_and_extract_data(tmp, FREQUENCY_CMD_NUM);
+
+	//- check what is the response mode type
+	if(	_is_explicite_resp_enabled == false )
+	{
+		short idx	= XString<short>::convertFromString(argout);
+		argout		= frequency_str[idx];
+	}
+
+
+//std::cout << "***INFO : NovelecProtocol::get_frequency () -> $" << argout << "$" << std::endl; 
+	return argout;
+}
+
+// ============================================================================
+// NovelecProtocol::set_frequency
+// ============================================================================
+void NovelecProtocol::set_frequency (std::string newFrequency) 
+{
+std::stringstream cmd_to_send;
+std::string tmp("no data");
+
+	//- send command to Novelec device
+	cmd_to_send << _devAdd << " PROG 9" << " " << newFrequency << END_OF_LINE << std::endl;
+	tmp = _communication_link->write_read(cmd_to_send.str());
+	//- the novelec device send ACK/NAK response after a received command
+	check_command(tmp);
+}
+
+// ============================================================================
+// NovelecProtocol::get_gain
+// ============================================================================
+std::string NovelecProtocol::get_gain (void) 
+{
+std::stringstream cmd_to_send;
+std::string argout("no data");
+std::string tmp("no data");
+
+//std::cout << "\n\n***INFO : NovelecProtocol::get_gain () ->" << std::endl; 
+
+	//- send command to Novelec device
+	cmd_to_send << _devAdd << " READ " << GAIN_CMD_NUM << END_OF_LINE << std::endl;
+	tmp = _communication_link->write_read(cmd_to_send.str());
+	//- check and extract the response
+	argout = check_and_extract_data(tmp, GAIN_CMD_NUM);
+
+	//- check what is the response mode type
+	if(	_is_explicite_resp_enabled == false )
+	{
+		short idx	= XString<short>::convertFromString(argout);
+		argout		= gain_str[idx];
+	}
+	else
+		//- erase wildcard char : response received is as this "*10xx"	
+		argout		= argout.erase(argout.find('*'),1);
+
+//std::cout << "***INFO : NovelecProtocol::get_gain () -> $" << argout << "$" << std::endl; 
+	return argout;
+}
+
+// ============================================================================
+// NovelecProtocol::set_gain
+// ============================================================================
+void NovelecProtocol::set_gain (std::string newGain) 
+{
+std::stringstream cmd_to_send;
+std::string tmp("no data");
+
+	//- send command to Novelec device
+	cmd_to_send << _devAdd << " PROG 8" << " " << newGain << END_OF_LINE << std::endl;
+	tmp = _communication_link->write_read(cmd_to_send.str());
+
+	//- the novelec device send ACK/NAK response after a received command
+	check_command(tmp);
+}
+
+// ============================================================================
+// NovelecProtocol::get_errors
+// ============================================================================
+std::string NovelecProtocol::get_errors (void) 
+{
+std::stringstream cmd_to_send;
+std::string argout("no data");
+std::string tmp("no data");
+
+//std::cout << "\n\n***INFO : NovelecProtocol::get_errors () ->" << std::endl; 
+
+	//- send command to Novelec device
+	cmd_to_send << _devAdd << " READ " << ERRORS_CMD_NUM << END_OF_LINE << std::endl;
+	tmp = _communication_link->write_read(cmd_to_send.str());
+	//- check and extract the response
+	argout = check_and_extract_data(tmp, ERRORS_CMD_NUM);
+
+	return argout;
+}
+
+// ============================================================================
+// NovelecProtocol::get_electrotype
+// ============================================================================
+std::string NovelecProtocol::get_electrotype (void) 
+{
+std::stringstream cmd_to_send;
+std::string argout("no data");
+std::string tmp("no data");
+
+//std::cout << "\n\n***INFO : NovelecProtocol::get_electrotype () -> " << std::endl; 
+
+	//- send command to Novelec device
+	cmd_to_send << _devAdd << " READ " << ELECTROTYPE_CMD_NUM << END_OF_LINE << std::endl;
+	tmp = _communication_link->write_read(cmd_to_send.str());
+	//- check and extract the response
+	argout = check_and_extract_data(tmp, ELECTROTYPE_CMD_NUM);
+
+	//- check what is the response mode type
+	if(	_is_explicite_resp_enabled == true )
+		argout = argout.substr(argout.find(".")+1);
+
+//std::cout << "***INFO : NovelecProtocol::get_electrotype () -> $" << argout << "$" << std::endl; 
+	return argout;
+}
+
+// ============================================================================
+// NovelecProtocol::reset
+// ============================================================================
+void NovelecProtocol::reset (void) 
+{
+std::stringstream cmd_to_send;
+	
+	//- send command
+	cmd_to_send << _devAdd << " RESET" << END_OF_LINE << std::endl;
+	_communication_link->write(cmd_to_send.str());
+	//- there is no response from the device !!!
+}
+
+// ============================================================================
+// NovelecProtocol::local
+// ============================================================================
+void NovelecProtocol::local (void) 
+{
+std::stringstream cmd_to_send;
+std::string tmp("no data");
+	
+	//- send command
+	cmd_to_send << _devAdd << " LOCAL" << END_OF_LINE << std::endl;
+	tmp = _communication_link->write_read(cmd_to_send.str());
+	
+	//- check the response
+	check_command(tmp);
+}
+
+// ============================================================================
+// NovelecProtocol::remote
+// ============================================================================
+void NovelecProtocol::remote (void) 
+{
+std::stringstream cmd_to_send;
+std::string tmp("no data");
+	
+	//- send command
+	cmd_to_send << _devAdd << " REMOTE" << END_OF_LINE << std::endl;
+	tmp = _communication_link->write_read(cmd_to_send.str());
+	
+	//- check the response
+	check_command(tmp);
+}
+
+// ============================================================================
+// NovelecProtocol::get_raw_status
+// ============================================================================
+std::string NovelecProtocol::get_raw_status (void) 
+{
+std::stringstream cmd_to_send;
+std::string argout("no data");
+std::string tmp("no data");
+
+	//- send command to Novelec device
+	cmd_to_send << _devAdd << " READ " << STATUS_CMD_NUM << END_OF_LINE << std::endl;
+	tmp = _communication_link->write_read(cmd_to_send.str());
+	//- check and extract the response
+	argout = check_and_extract_data(tmp, STATUS_CMD_NUM);
+
+	return argout;
+}
+
+// ============================================================================
+// NovelecProtocol::clear_registers
+// ============================================================================
+void NovelecProtocol::clear_registers (void) 
+{
+std::stringstream cmd_to_send;
+std::string tmp("no data");
+	
+	//- send command
+	cmd_to_send << _devAdd << " PROG " << CLEAR_ERRORS_CMD_NUM << " 1 " << END_OF_LINE << std::endl;
+	tmp = _communication_link->write_read(cmd_to_send.str());
+	
+	//- check the response
+	check_command(tmp);
+}
+
+// ============================================================================
+// NovelecProtocol::check_command
+//	This method read the device response and check and throw an 
+//	Electrometer Exception if the device response is a NAK.
+//	Else, it returns the extracted response
+// ============================================================================
+void NovelecProtocol::check_command (std::string response) 
+{
+std::string data;
+
+	//- A correct response is :
+	//			-> "address ACK " : if command well understood
+	//- An invalid response is: "address NAK ..."
+
+	if(response.find("NAK") != std::string::npos)
+	{
+		if(_is_measure_mode_on)
+			throw electrometer::ElectrometerException("COMMAND_NOT_ALLOWED", 
+												"Cannot change parameter(s) when MEASURE mode enabled.",
+												"NovelecProtocol::check_command( ).");
+
+		else
+			throw electrometer::ElectrometerException("COMMAND_NOT_UNDERSTOOD", 
+												"Bad formatted string command sent -> NAK received !",
+												"NovelecProtocol::check_command( ).");
+	}
+	else
+		if(response.find("ACK") != std::string::npos)
+			data = response;
+		else //- must not exist !!!
+			throw electrometer::ElectrometerException("INVALID_DATA", 
+													"Invalid string received from Novelec device.",
+													"NovelecProtocol::check_command( ).");
+	
+}
+
+// ============================================================================
+// NovelecProtocol::check_and_extract_data
+//	This method read the device response and check and throw an 
+//	Electrometer Exception if the device response is a NAK.
+//	Else, it returns the extracted response
+// ============================================================================
+std::string NovelecProtocol::check_and_extract_data (std::string response, short cmd_sent) 
+{
+std::string data;
+std::string cmd_sentStr;
+
+	cmd_sentStr = XString<short>::convertToString(cmd_sent);
+
+	//- A correct response is :
+	//			-> "address AWR ReadNum = data " : if there is a returned value
+	//- An invalid response is: "address NAK ..."
+
+	if(response.find("NAK") != std::string::npos)
+	{
+		throw electrometer::ElectrometerException("COMMAND_NOT_UNDERSTOOD", 
+											"Bad formatted string command sent -> NAK received !",
+											"NovelecProtocol::check_and_extract_data( ).");
+	}
+	else
+		if(response.find("AWR") != std::string::npos)
+		{
+			//- check if it is the received answer of the command sent
+			if(response.find(cmd_sentStr) != std::string::npos)
+			{
+				//- extract data in the device response
+				data = response.substr(response.find("=")+1);
+
+				/*
+				*	check if the response is a short or explicite response
+				*
+				*	To do so, check if char at idx 18 is a space or a letter :
+				*		if it is a space -> this is a short response
+				*			and must be converted to return the explicite response
+				*		else it is an explicite response and can be returned as this
+				*/
+				//- extract char
+				response = response.substr(18,1);
+				//- check what is this char a 'space' or 'letter'
+				if(response.find(" ") != std::string::npos)
+					_is_explicite_resp_enabled = false;
+				else
+					_is_explicite_resp_enabled = true;
+
+				//- erase first and last space char
+				data.erase(data.find_first_of(" "),1);
+				data.erase(data.find_last_of(" "));
+			}
+			else
+				throw electrometer::ElectrometerException("SYNCHRONISATION_LOST", 
+														"The received response is not for the command previously sent.",
+														"NovelecProtocol::check_and_extract_data( ).");
+		}
+		else //- must not exist !!!
+			throw electrometer::ElectrometerException("INVALID_DATA", 
+													"Invalid string received from Novelec device.",
+													"NovelecProtocol::check_and_extract_data( ).");
+
+
+	//- DEBUG
+//std::cout << "NovelecProtocol::check_and_extract_data ANSWER =*" << data << "*" << std::endl;
+
+	
+	return data;
+}
diff --git a/src/Novelec_MCCE2.cpp b/src/Novelec_MCCE2.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..c390630e2605cf799be22316e437f80c3a8a8896
--- /dev/null
+++ b/src/Novelec_MCCE2.cpp
@@ -0,0 +1,273 @@
+// ============================================================================
+//
+// = CONTEXT
+//    TANGO Project - NovelecElectrometer Support Library
+//
+// = FILENAME
+//    Novelec_MCCE2.cpp
+//
+// = AUTHOR
+//    X. Elattaoui
+//
+// ============================================================================
+
+// ============================================================================
+// DEPENDENCIES
+// ============================================================================
+#include <iostream>
+#include <sstream>
+#include <string>
+#include <Xstring.h>
+#include "NovelecProtocol.h"
+#include "Novelec_MCCE2.h"
+
+
+// ============================================================================
+// Novelec_MCCE2::Novelec_MCCE2
+// ============================================================================
+Novelec_MCCE2::Novelec_MCCE2 (std::string& comLink_device_name, short address, short novTypeNumber)
+:	AbstractElectrometerClass(comLink_device_name),
+	_rangeLimit(0)
+{
+	std::cout << "Novelec_MCCE2::Novelec_MCCE2 <-" << std::endl;
+
+	//- build the Novelec Electrometer obj
+	_electrometerProtocol = new NovelecProtocol(_device_proxy_name, address, novTypeNumber);
+
+	std::cout << "Novelec_MCCE2::Novelec_MCCE2 ->" << std::endl;
+}
+
+// ============================================================================
+// Novelec_MCCE2::~Novelec_MCCE2
+// ============================================================================
+Novelec_MCCE2::~Novelec_MCCE2 (void)
+{
+	std::cout << "Novelec_MCCE2::~Novelec_MCCE2 <-" << std::endl;
+
+	std::cout << "Novelec_MCCE2::~Novelec_MCCE2 ->" << std::endl;
+}
+
+// ============================================================================
+// Novelec_MCCE2::get_ElectroMeterPolarity
+// ============================================================================
+std::string Novelec_MCCE2::get_ElectroMeterPolarity (void)
+{ 
+	return _electrometerProtocol->get_polarity();	
+}
+
+// ============================================================================
+// Novelec_MCCE2::set_ElectroMeterPolarity
+// ============================================================================
+void Novelec_MCCE2::set_ElectroMeterPolarity (std::string polarity)
+{ 
+	_electrometerProtocol->set_polarity(polarity);	
+}
+
+// ============================================================================
+// Novelec_MCCE2::set_Zero_VonF_function
+// ============================================================================
+void Novelec_MCCE2::set_Zero_VonF_function (void)
+{ 
+	_electrometerProtocol->unable_zeroVF_func();	
+}
+
+// ============================================================================
+// Novelec_MCCE2::set_Offset_function
+// ============================================================================
+void Novelec_MCCE2::set_Offset_ZeroV1_function (void)
+{ 
+	_electrometerProtocol->unable_offset_zeroV1_func();	
+}
+
+// ============================================================================
+// Novelec_MCCE2::set_Leakage_ZeroV2_function
+// ============================================================================
+void Novelec_MCCE2::set_Leakage_ZeroV2_function (void)
+{ 
+	_electrometerProtocol->unable_leakage_zeroV2_func();	
+}
+
+// ============================================================================
+// Novelec_MCCE2::set_Test_function
+// ============================================================================
+void Novelec_MCCE2::set_Test_function (void)
+{ 
+	_electrometerProtocol->unable_test_func();	
+}
+
+// ============================================================================
+// Novelec_MCCE2::set_Measure_function
+// ============================================================================
+void Novelec_MCCE2::set_Measure_function (void)
+{ 
+	_electrometerProtocol->unable_measure_func();	
+}
+
+// ============================================================================
+// Novelec_MCCE2::mcce_on
+// ============================================================================
+void Novelec_MCCE2::mcce_on (void)
+{ 
+	_electrometerProtocol->switch_MCCE2_ON();	
+}
+
+// ============================================================================
+// Novelec_MCCE2::mcce_off
+// ============================================================================
+void Novelec_MCCE2::mcce_off (void)
+{ 
+	_electrometerProtocol->switch_MCCE2_OFF();	
+}
+
+// ============================================================================
+// Novelec_MCCE2::electrometer_status
+// ============================================================================
+std::string Novelec_MCCE2::electrometer_status (void)
+{ 
+	std::string argout("undefined status");
+	std::string typeStr(" ");
+	std::string tmp(" ");
+	short _status	= 0;
+	short _errors	= 0;
+	short _type		= 0;
+
+	NovelecProtocol* _nproto = dynamic_cast<NovelecProtocol*>(_electrometerProtocol);
+	if(!_nproto)
+		throw electrometer::ElectrometerException("BAD_CAST", 
+												"Unable to query the electrmometer status.",
+												"Novelec_MCCE2::electrometer_status( ).");
+	
+	//- get Electrometer type :
+	try
+	{
+		tmp		= _nproto->get_electrotype();
+		_type	= XString<short>::convertFromString(tmp);
+//std::cout << "\t Novelec_MCCE2::Novelec_MCCE2 -> TYPE : *" << _type << "*" << std::endl;
+	}
+	catch(...)
+	{
+		set_electroState(FAULT);
+		throw electrometer::ElectrometerException("INTERNAL_ERROR", 
+												"Unable to query the electrmometer type.",
+												"Novelec_MCCE2::electrometer_status( ).");
+	}
+
+	argout = "\n\nINFOS :\n";
+	argout += "----------\n";
+
+	switch(_type)
+	{
+	case 1 :	typeStr = "Photovolta�que UHS";
+		break;
+	case 2 :	typeStr = "Photovolta�que HS";
+		break;
+	case 3 :	typeStr = "Photovolta�que MS";
+		break;
+	case 4 :	typeStr = "Photoconducteur HS";
+		break;
+	case 5 :	typeStr = "Photoconducteur MS";
+		break;
+	default :	set_electroState(FAULT);
+				argout = "Invalid status string returned !";
+				return argout;
+	}
+	argout += "Novelec type : " + typeStr + "\n";
+
+	//- get Electrometer mode :
+	argout += "Novelec mode : " + _electrometerProtocol->get_mode() + "\n";
+//std::cout << "\t Novelec_MCCE2::Novelec_MCCE2 -> MODE : *" << _electrometerProtocol->get_mode() << "*" << std::endl;
+	
+	try
+	{
+		//- read novelec status from HW	
+		tmp		= _electrometerProtocol->get_raw_status();
+		_status	= XString<short>::convertFromString(tmp);
+//std::cout << "\t Novelec_MCCE2::Novelec_MCCE2 -> STATUS : *" << _status << "*" << std::endl;
+	}
+	catch(...)
+	{
+		set_electroState(FAULT);
+		throw electrometer::ElectrometerException("INTERNAL_ERROR", 
+												"Unable to query the electrmometer status.",
+												"Novelec_MCCE2::electrometer_status( ).");
+	}
+
+	argout += "Status detail :\n";
+	argout += "------------------------\n";
+
+	//- build novelec status
+	if(_status & 0x10)
+		argout += "En mesure\n";
+	else
+		argout += "Hors mesure\n";
+	if(_status & 0x20)
+		argout += "Param�tres par defaut\n";
+	else
+		argout += "Ram OK\n";
+	if(_status & 0x40)
+		argout += "Param�tre invalide\n";
+	else
+		argout += "Param�tre OK\n";
+	if(_status & 0x80)
+	{
+		argout += "ERREUR\n";
+		set_electroState(ALARM);
+	}
+	else
+	{
+		argout += "Pas d'erreur\n";
+		set_electroState(ON);
+	}
+
+	//- error(s) detail(s)
+	if(_status & 0x80)
+	{
+		try
+		{
+			//- read novelec error(s) from HW
+			tmp		= _nproto->get_errors();
+			_errors	= XString<short>::convertFromString(tmp);
+//std::cout << "\t Novelec_MCCE2::Novelec_MCCE2 -> ERROR : *" << _errors << "*" << std::endl;
+		}
+		catch(...)
+		{
+			set_electroState(FAULT);
+			throw electrometer::ElectrometerException("INTERNAL_ERROR", 
+													"Unable to query the electrmometer errors.",
+													"Novelec_MCCE2::electrometer_status( ).");
+		}
+
+		argout += "\nError(s) detail(s) :\n";
+		argout += "------------------------\n";
+
+		if(_errors & 0x01)
+			argout += "Param�tre par d�faut\n";
+		if(_errors & 0x02)
+			argout += "Erreur s�rie\n";
+		if(_errors & 0x04)
+			argout += "Param�tre invalide\n";
+		if(_errors & 0x08)
+			argout += "Electrom�tre satur�\n";
+		if(_errors & 0x10)
+			argout += "Electrom�tre bloqu�\n";
+		if(_errors & 0x20)
+			argout += "HT < limite basse\n";
+		if(_errors & 0x40)
+			argout += "HT > limite haute\n";
+		if(_errors & 0x80)
+			argout += "Initialisation\n";
+		if(_errors & 0x100)
+			argout += "D�faut batterie\n";
+		if(_errors & 0x200)
+			argout += "D�faut d'alimentation\n";
+		if(_errors & 0x400)
+			argout += "Type d'�lectrom�tre inconnu\n";
+		if(_errors & 0x800)
+			argout += "Electrom�tre d�connect�\n";
+
+		set_electroState(ALARM);
+	}
+//std::cout << "\t Novelec_MCCE2::Novelec_MCCE2 -> electro_status() : *" << argout << "*" << std::endl;
+
+	return argout;
+}
diff --git a/src/TangoGpibLink.cpp b/src/TangoGpibLink.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..92ee23a3745f0216c9caf01d041505188632f609
--- /dev/null
+++ b/src/TangoGpibLink.cpp
@@ -0,0 +1,165 @@
+// ============================================================================
+//
+// = CONTEXT
+//    TANGO Project - Keithley Electrometer Support Library
+//
+// = FILENAME
+//    TangoGpibLink.cpp
+//
+// = AUTHOR
+//    X. Elattaoui
+//
+// ============================================================================
+
+// ============================================================================
+// DEPENDENCIES
+// ============================================================================
+#include <string>
+#include <iostream>
+#include "TangoGpibLink.h"
+
+
+// ============================================================================
+// TangoGpibLink::TangoGpibLink
+// ============================================================================
+TangoGpibLink::TangoGpibLink (std::string& gpib_device_name) 
+:	CommunicationLink(gpib_device_name),
+_gpib_proxy (0),
+_is_gpib_proxy_created (false)
+{
+	std::cout << "TangoGpibLink::TangoGpibLink <-" << std::endl;
+	
+	response.erase();
+	
+	std::cout << "TangoGpibLink::TangoGpibLink ->" << std::endl;
+}
+
+// ============================================================================
+// TangoGpibLink::~TangoGpibLink
+// ============================================================================
+TangoGpibLink::~TangoGpibLink (void)
+{
+	std::cout << "TangoGpibLink::~TangoGpibLink <-" << std::endl;
+	
+	if(_is_gpib_proxy_created)
+	{
+		delete _gpib_proxy;
+		_gpib_proxy = 0;
+		_is_gpib_proxy_created = false;
+	}
+	
+	std::cout << "TangoGpibLink::~TangoGpibLink ->" << std::endl;
+}
+
+
+// ============================================================================
+// TangoGpibLink::create_gpib_proxy
+// ============================================================================
+void TangoGpibLink::create_gpib_proxy (void)  throw (Tango::DevFailed)
+{
+	TangoSys_OMemStream description;
+	
+	try
+	{
+		//- try
+		this->_gpib_proxy = new Tango::DeviceProxyHelper(_communication_Device_name);
+		_is_gpib_proxy_created = true;
+	}
+	catch(Tango::DevFailed& df )
+	{
+		description << "Unable to create proxy on : " << _communication_Device_name << ends;
+		_is_gpib_proxy_created = false;
+		
+		Tango::Except::re_throw_exception (df,
+			(const char*)"COMMUNICATION_ERROR",
+			description.str(),
+			(const char*)"TangoGpibLink::create_gpib_proxy");
+	}
+	
+}
+
+
+// ============================================================================
+// TangoGpibLink::write
+// ============================================================================
+void TangoGpibLink::write (std::string command_to_send)  throw (Tango::DevFailed)
+{
+	TangoSys_OMemStream description;
+	
+	if(!_is_gpib_proxy_created)
+		create_gpib_proxy();
+	
+	try
+	{
+		//- try
+		this->_gpib_proxy->command_in("Write",  command_to_send);
+	}
+	catch(Tango::DevFailed& df )
+	{
+		description << "Unable to write command : " << command_to_send << ends;
+		
+		Tango::Except::re_throw_exception (df,
+			(const char*)"COMMUNICATION_ERROR",
+			description.str(),
+			(const char*)"TangoGpibLink::write");
+		
+	}
+}
+
+
+// ============================================================================
+// TangoGpibLink::read
+// ============================================================================
+std::string TangoGpibLink::read (void) throw (Tango::DevFailed)
+{
+	
+	if(!_is_gpib_proxy_created)
+		create_gpib_proxy();
+	
+	try
+	{
+		//- try
+		this->_gpib_proxy->command_out("Read",  this->response);
+	}
+	catch(Tango::DevFailed& df )
+	{
+		Tango::Except::re_throw_exception (df,
+			(const char*)"COMMUNICATION_ERROR",
+			(const char*)"Unable to perform a read operation",
+			(const char*)"TangoGpibLink::read");
+	}
+	
+	return this->response ;
+
+}
+
+// ============================================================================
+// TangoGpibLink::write_read
+// ============================================================================
+std::string TangoGpibLink::write_read (std::string command_to_send) throw (Tango::DevFailed)
+{
+	TangoSys_OMemStream description;
+	
+	if(!_is_gpib_proxy_created)
+		create_gpib_proxy();
+	
+	try
+	{
+		//- try
+		this->_gpib_proxy->command_inout("WriteRead",  command_to_send, response);
+		return this->response;
+		
+	}
+	catch(Tango::DevFailed& df )
+	{
+		description << "Unable to write command : " << command_to_send << " and read device response." << ends;
+		
+		Tango::Except::re_throw_exception (df,
+			(const char*)"COMMUNICATION_ERROR",
+			description.str(),
+			(const char*)"TangoGpibLink::write_read");
+		
+	}
+	
+}
+
diff --git a/src/TangoSerialLink.cpp b/src/TangoSerialLink.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..07565398946025d371a2791f29210f5873976966
--- /dev/null
+++ b/src/TangoSerialLink.cpp
@@ -0,0 +1,156 @@
+// ============================================================================
+//
+// = CONTEXT
+//    TANGO Project - Keithley Electrometer Support Library
+//
+// = FILENAME
+//    TangoSerialLink.cpp
+//
+// = AUTHOR
+//    X. Elattaoui
+//
+// ============================================================================
+
+// ============================================================================
+// DEPENDENCIES
+// ============================================================================
+#include <string>
+#include <iostream>
+#include "TangoSerialLink.h"
+
+//- Read serial data in mode LINE (i.e SerialLine device wait until EOF is received from instrument
+
+static const long MODE_LINE = 2;
+
+// ============================================================================
+// TangoSerialLink::TangoSerialLink
+// ============================================================================
+TangoSerialLink::TangoSerialLink (std::string& serial_device_name) 
+:	CommunicationLink(serial_device_name),
+	_serial_proxy (0),
+	_is_serial_proxy_created (false)
+{
+	std::cout << "TangoSerialLink::TangoSerialLink <-" << std::endl;
+
+	response.erase();
+
+	std::cout << "TangoSerialLink::TangoSerialLink ->" << std::endl;
+}
+
+// ============================================================================
+// TangoSerialLink::~TangoSerialLink
+// ============================================================================
+TangoSerialLink::~TangoSerialLink (void)
+{
+	std::cout << "TangoSerialLink::~TangoSerialLink <-" << std::endl;
+
+	if(_is_serial_proxy_created)
+	{
+		delete _serial_proxy;
+		_serial_proxy = 0;
+		_is_serial_proxy_created = false;
+	}
+
+	std::cout << "TangoSerialLink::~TangoSerialLink ->" << std::endl;
+}
+
+
+// ============================================================================
+// TangoSerialLink::create_serial_proxy
+// ============================================================================
+void TangoSerialLink::create_serial_proxy (void)  throw (Tango::DevFailed)
+{
+	TangoSys_OMemStream description;
+
+	try
+	{
+		//- try
+		this->_serial_proxy = new Tango::DeviceProxyHelper(_communication_Device_name);
+		_is_serial_proxy_created = true;
+	}
+	catch(Tango::DevFailed& df )
+	{
+		description << "Unable to create proxy on : " << _communication_Device_name << ends;
+		_is_serial_proxy_created = false;
+
+		Tango::Except::re_throw_exception (df,
+										(const char*)"COMMUNICATION_ERROR",
+										description.str(),
+										(const char*)"TangoSerialLink::create_serial_proxy");
+
+	}
+}
+
+// ============================================================================
+// TangoSerialLink::write
+// ============================================================================
+void TangoSerialLink::write (std::string command_to_send)  throw (Tango::DevFailed)
+{
+	TangoSys_OMemStream description;
+
+	if(!_is_serial_proxy_created)
+		create_serial_proxy();
+
+	try
+	{
+		//- try
+		this->_serial_proxy->command_in("DevSerWriteString", command_to_send.c_str());
+	}
+	catch(Tango::DevFailed& df )
+	{
+		description << "Unable to write command : " << command_to_send << ends;
+
+		Tango::Except::re_throw_exception (df,
+										(const char*)"COMMUNICATION_ERROR",
+										description.str(),
+										(const char*)"TangoSerialLink::write");
+
+	}
+}
+
+
+// ============================================================================
+// TangoSerialLink::read
+// ============================================================================
+std::string TangoSerialLink::read (void) throw (Tango::DevFailed)
+{
+
+	if(!_is_serial_proxy_created)
+		create_serial_proxy();
+
+	try
+	{
+		//- try in mode LINE
+		this->_serial_proxy->command_inout("DevSerReadString", MODE_LINE ,this->response);
+	}
+	catch(Tango::DevFailed& df )
+	{
+		Tango::Except::re_throw_exception (df,
+										(const char*)"COMMUNICATION_ERROR",
+										(const char*)"Unable to perform a read operation",
+										(const char*)"TangoSerialLink::read");
+	}
+
+	return this->response ;
+}
+
+// ============================================================================
+// TangoSerialLink::write_read
+// ============================================================================
+std::string TangoSerialLink::write_read (std::string command_to_send) throw (Tango::DevFailed)
+{
+	TangoSys_OMemStream description;
+	std::string respTmp("");
+	
+//	long nb_char_written = 0;
+
+	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 
+	respTmp = this->read();
+
+	return respTmp;
+}
+