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 calL1A(short unsigned int delay);
00026 void pulseL1A(short unsigned int delay);
00027 void softL1A(short unsigned int delay);
00028 void softCalL1A(short unsigned int delay, short unsigned int delay2);
00029 void softPulseL1A(short unsigned int delay, short unsigned int delay2);
00030 void bcL1A(short unsigned int delay);
00031 void bcCalL1A(short unsigned int delay, short unsigned int delay2);
00032 void bcPulseL1A(short unsigned int delay, short unsigned int delay2);
00033
00034 void setCommIncr(unsigned short command, unsigned short incr);
00035 void getCommIncr(unsigned short &command, unsigned short &incr) const;
00036
00037 const RODTriggers getRODTriggers() const;
00038
00039 void copy(const ::SctApi::Trigger &trig);
00040
00041 void print() const;
00042 private:
00043
00044
00045
00046
00047
00048
00049 RODTriggers trigSequence;
00050
00052 int incCmd;
00053
00055 int incData;
00056 };
00057
00063 class ScanDefImpl : public ::SctApi::Scan {
00064 ScanDefImpl &operator=(const ScanDefImpl &);
00065
00066 public:
00068 ScanDefImpl();
00069
00070 ScanDefImpl(const ScanDefImpl &);
00071
00073 virtual ~ScanDefImpl();
00074
00075
00076
00077
00079 void configure(UINT16 type, FLOAT32 start, FLOAT32 stop, FLOAT32 step);
00080
00082 void configure2(UINT16 type, FLOAT32 start, FLOAT32 stop, FLOAT32 step);
00083
00084 const ::SctApi::Trigger *getTrigger1() const;
00085 const ::SctApi::Trigger *getTrigger2() const;
00086
00087 ::SctApi::Trigger *getTrigger1();
00088 ::SctApi::Trigger *getTrigger2();
00089
00090 void setTrigger1(::SctApi::Trigger *trigger);
00091 void setTrigger2(::SctApi::Trigger *trigger);
00092
00093 void setScanVariable1(unsigned short var);
00094 void setScanVariable2(unsigned short var);
00095
00096 unsigned short getScanVariable1() const;
00097 unsigned short getScanVariable2() const;
00098
00099 void setNTrigs(unsigned long nTrigs);
00100 unsigned short getNTrigs() const;
00101
00102 const ScanPoints getScanPoints1() const;
00103 const ScanPoints getScanPoints2() const;
00104 void setScanPoints1(const ScanPoints &scans);
00105 void setScanPoints2(const ScanPoints &scans);
00106
00107 int getOption(enum ScanOptions) const;
00108 void setOption(enum ScanOptions, int option);
00109
00110 void copy(const ::SctApi::Scan &scan);
00111
00112 void print() const;
00113
00114 void setScanNumber(unsigned int scan);
00115 unsigned int getScanNumber() const;
00116 void setRunNumber(unsigned int scan);
00117 unsigned int getRunNumber() const;
00118
00119 std::list<std::string> getModuleList(unsigned int group) const;
00120 void setModuleList(unsigned int group, std::list<std::string> newList);
00121 unsigned int getNGroups() const;
00122 void setNGroups(unsigned int val);
00123 private:
00125 long trigsPerBurst;
00126
00128 ScanPoints scanPoints;
00129
00131 ScanPoints scanPoints2;
00132
00134 int scanVariable;
00135
00137 int scanVariable2;
00138
00140 TriggerImpl *trigSequence;
00141
00143 TriggerImpl *trigSequence2;
00144
00146 int format;
00147
00149 int full;
00150
00152 int bits32;
00153
00155 int loopCalLine;
00156
00158 int distSlave;
00159
00161 int debug;
00162
00163 unsigned int scanNumber;
00164 unsigned int runNumber;
00165
00166 std::vector<std::list<std::string> > groupLists;
00167 unsigned int m_maxGroup;
00168 };
00169 }
00170
00171 #endif