00001 // ============================================================================ 00002 // 00003 // = CONTEXT 00004 // TANGO Project - Electrometer Support Library 00005 // 00006 // = FILENAME 00007 // ElectrometerProtocol.h 00008 // 00009 // = AUTHOR 00010 // X. Elattaoui 00011 // 00012 // 00013 // $Author: xavela $ 00014 // 00015 // $Revision: 1.2 $ 00016 // 00017 // $Log: not supported by cvs2svn $ 00017 // Revision 1.1 2007/07/09 13:20:10 stephle 00017 // initial import 00017 // 00017 // Revision 1.1 2006/12/01 14:56:41 elattaoui 00017 // xavier : 00017 // Doxygen doc added 00017 // 00018 // 00019 // ============================================================================ 00020 00021 #ifndef _ELECTROMETER_PROTOCOL_H_ 00022 #define _ELECTROMETER_PROTOCOL_H_ 00023 00024 #include "CommunicationLink.h" 00025 00038 class ElectrometerProtocol 00039 { 00040 public: 00041 00045 ElectrometerProtocol (); 00046 00050 virtual ~ElectrometerProtocol (); 00051 00055 virtual void set_range (std::string val)= 0; 00056 virtual void reset (void) = 0; 00057 virtual void local (void); 00058 virtual void remote (void); 00059 00063 virtual std::string get_value(void) = 0; 00064 virtual std::string get_mode (void) = 0; 00065 virtual std::string get_range(void) = 0; 00066 00070 virtual std::string get_raw_status (void) = 0; 00071 00075 virtual void init_keithley (void); 00076 virtual void set_knplc(std::string nPLC); 00077 virtual void set_triggercount(std::string trigcounts); 00078 virtual void set_averagecount(std::string avercounts); 00079 virtual void set_averagecontrol(std::string averctrl); 00080 virtual std::string get_knplc (void); 00081 virtual std::string get_triggercount (void); 00082 virtual std::string get_averagecount (void); 00083 virtual std::string get_averagecontrol (void); 00084 virtual void clear_registers (void); 00085 virtual void averageStateON (void); 00086 virtual void averageStateOFF (void); 00087 virtual void setAmperMeterMode (void); 00088 virtual void setVoltMeterMode (void); 00089 virtual void setOhmMeterMode (void); 00090 virtual void setCoulombMeterMode(void); 00091 virtual void autoRange_on (void); 00092 virtual void autoRange_off (void); 00093 00094 virtual void zero_check_on (void); 00095 virtual void zero_check_off (void); 00096 virtual void zero_correct_on(void); 00097 virtual void zero_correct_off(void); 00098 virtual void auto_zero_on (void); 00099 virtual void auto_zero_off (void); 00100 00101 00105 virtual void switch_MCCE2_ON (void); 00106 virtual void switch_MCCE2_OFF (void); 00107 virtual void unable_zeroVF_func (void); 00108 virtual void unable_offset_zeroV1_func (void); 00109 virtual void unable_leakage_zeroV2_func (void); 00110 virtual void unable_test_func (void); 00111 virtual std::string get_polarity (void); 00112 virtual std::string get_frequency (void); 00113 virtual std::string get_gain (void); 00114 virtual void set_polarity (std::string pola); 00115 virtual void set_frequency (std::string freq); 00116 virtual void set_gain (std::string gain); 00117 00118 00119 00120 protected : 00121 short _range; 00122 std::string _mode; 00123 CommunicationLink* _communication_link; 00124 00125 private : 00126 00127 00128 }; 00129 //- end addtogroup 00131 00132 #endif // _ELECTROMETER_PROTOCOL_H_