00001 #ifndef MOSConnection_h
00002 #define MOSConnection_h
00003
00004 #include <Connection.h>
00005 #include "LibGPIB.h"
00006
00007 extern "C++" {
00008 namespace LibGPIB {
00009 class MOSConnection : public Connection {
00010 public:
00011 const static int TERMINALS = 4 ;
00012
00013 enum MOSTerminal {
00014 GATE=0,
00015 DRAIN=1,
00016 SOURCE=2,
00017 SUBSTRATE=3
00018 } ;
00019
00022 MOSConnection() ;
00023
00024 virtual void Connect(int terminal, int smu) ;
00025 virtual int SMU(int terminal) ;
00026 protected:
00027 private:
00031 int mSMU[TERMINALS] ;
00032
00033 } ;
00034
00035 inline
00036 MOSConnection::MOSConnection() {
00037 for(int i=0; i<TERMINALS; i++) {
00038 mSMU[i] = (i+1) ;
00039 }
00040 }
00041
00042 inline
00043 void
00044 MOSConnection::Connect(int terminal, int smu) {
00045 00046 00047 00048 00049
00050 if( (terminal >= 0) && (terminal < TERMINALS) && (smu > 0) ) {
00051 mSMU[terminal] = smu ;
00052 }
00053 return ;
00054 }
00055
00056 inline
00057 int MOSConnection::SMU(int terminal) {
00058 00059 00060 00061 00062
00063 if( (terminal >= 0) && (terminal < TERMINALS) ) {
00064 return mSMU[terminal] ;
00065 }
00066 }
00067
00068 }
00069 }
00070 #endif