00001
00002
00003 #ifndef SCTAPI_SCTAPIIMPL_H
00004 #define SCTAPI_SCTAPIIMPL_H
00005
00006
00007 #include "SctApi.h"
00008
00009 namespace SctApi {
00013 class TriggerImpl : public ::SctApi::Trigger {
00014 TriggerImpl &operator=(const TriggerImpl &);
00015 public:
00017 TriggerImpl();
00018
00019 TriggerImpl(const TriggerImpl &);
00020
00022 virtual ~TriggerImpl();
00023
00024 void singleL1A();
00025 void doubleL1A(short unsigned int delay);
00026 void calL1A(short unsigned int delay);
00027 void pulseL1A(short unsigned int delay);
00028 void softL1A(short unsigned int delay);
00029 void softCalL1A(short unsigned int delay, short unsigned int delay2);
00030 void softPulseL1A(short unsigned int delay, short unsigned int delay2);
00031 void bcL1A(short unsigned int delay);
00032 void bcCalL1A(short unsigned int delay, short unsigned int delay2);
00033 void bcPulseL1A(short unsigned int delay, short unsigned int delay2);
00034
00035 void setCommIncr(unsigned short command, unsigned short incr);
00036 void getCommIncr(unsigned short &command, unsigned short &incr) const;
00037
00038 const RODTriggers getRODTriggers() const;
00039
00040 void copy(const ::SctApi::Trigger &trig);
00041
00042 void print() const;
00043 private:
00044
00045
00046
00047
00048
00049
00050 RODTriggers trigSequence;
00051
00053 int incCmd;
00054
00056 int incData;
00057 };
00058
00064 class ScanDefImpl : public ::SctApi::Scan {
00065 ScanDefImpl &operator=(const ScanDefImpl &);
00066
00067 public:
00069 ScanDefImpl();
00070
00071 ScanDefImpl(const ScanDefImpl &);
00072
00074 virtual ~ScanDefImpl();
00075
00076
00077
00078
00080 void configure(UINT16 type, FLOAT32 start, FLOAT32 stop, FLOAT32 step);
00081
00083 void configure2(UINT16 type, FLOAT32 start, FLOAT32 stop, FLOAT32 step);
00084
00085 const ::SctApi::Trigger *getTrigger1() const;
00086 const ::SctApi::Trigger *getTrigger2() const;
00087
00088 ::SctApi::Trigger *getTrigger1();
00089 ::SctApi::Trigger *getTrigger2();
00090
00091 void setTrigger1(::SctApi::Trigger *trigger);
00092 void setTrigger2(::SctApi::Trigger *trigger);
00093
00094 void setScanVariable1(unsigned short var);
00095 void setScanVariable2(unsigned short var);
00096
00097 unsigned short getScanVariable1() const;
00098 unsigned short getScanVariable2() const;
00099
00100 void setNTrigs(unsigned long nTrigs);
00101 unsigned short getNTrigs() const;
00102
00103 const ScanPoints getScanPoints1() const;
00104 const ScanPoints getScanPoints2() const;
00105 void setScanPoints1(const ScanPoints &scans);
00106 void setScanPoints2(const ScanPoints &scans);
00107
00108 int getOption(enum ScanOptions) const;
00109 void setOption(enum ScanOptions, int option);
00110
00111 void copy(const ::SctApi::Scan &scan);
00112
00113 void print() const;
00114
00115 void setScanNumber(unsigned int scan);
00116 unsigned int getScanNumber() const;
00117 void setRunNumber(unsigned int scan);
00118 unsigned int getRunNumber() const;
00119
00120 std::list<std::string> getModuleList(unsigned int group) const;
00121 void setModuleList(unsigned int group, std::list<std::string> newList);
00122 unsigned int getNGroups() const;
00123 void setNGroups(unsigned int val);
00124 private:
00126 long trigsPerBurst;
00127
00129 ScanPoints scanPoints;
00130
00132 ScanPoints scanPoints2;
00133
00135 int scanVariable;
00136
00138 int scanVariable2;
00139
00141 TriggerImpl *trigSequence;
00142
00144 TriggerImpl *trigSequence2;
00145
00147 int format;
00148
00150 int full;
00151
00153 int bits32;
00154
00156 int loopCalLine;
00157
00159 int distSlave;
00160
00162 int debug;
00163
00164 unsigned int scanNumber;
00165 unsigned int runNumber;
00166
00167 std::vector<std::list<std::string> > groupLists;
00168 unsigned int m_maxGroup;
00169 };
00170 }
00171
00172 #endif