00001 #ifndef SCT_SCTAPI_SCAMDEFIMPL_H
00002 #define SCT_SCTAPI_SCANDEFIMPL_H
00003
00010
00011 namespace SctApi {
00012 class ScanDefImpl;
00013 };
00014
00015
00016 #include <boost/shared_ptr.hpp>
00017 #include "Scan.h"
00018
00019
00020 namespace SctApi {
00021
00022 class ScanDefImpl : public ::SctApi::Scan {
00023 ScanDefImpl &operator=(const ScanDefImpl &);
00024
00025 public:
00027 ScanDefImpl();
00028
00029 ScanDefImpl(const ScanDefImpl &);
00030
00031 static boost::shared_ptr<ScanDefImpl> clone(const boost::shared_ptr< ::SctApi::Scan> other);
00032
00034 virtual ~ScanDefImpl();
00035
00036
00037
00038
00040 void configure(UINT16 type, FLOAT32 start, FLOAT32 stop, FLOAT32 step);
00041
00043 void configure2(UINT16 type, FLOAT32 start, FLOAT32 stop, FLOAT32 step);
00044
00045 const boost::shared_ptr< ::SctApi::Trigger> getTrigger1() const;
00046 const boost::shared_ptr< ::SctApi::Trigger> getTrigger2() const;
00047
00048 boost::shared_ptr< ::SctApi::Trigger> getTrigger1();
00049 boost::shared_ptr< ::SctApi::Trigger> getTrigger2();
00050
00051 void setTrigger1(boost::shared_ptr< ::SctApi::Trigger> trigger);
00052 void setTrigger2(boost::shared_ptr< ::SctApi::Trigger> trigger);
00053
00054 void setScanVariable1(unsigned short var);
00055 void setScanVariable2(unsigned short var);
00056
00057 unsigned short getScanVariable1() const;
00058 unsigned short getScanVariable2() const;
00059
00060 void setNTrigs(unsigned long nTrigs);
00061 unsigned long getNTrigs() const;
00062
00063 const TrigPoints getVariableTrigs() const;
00064 void setVariableTrigs(const TrigPoints &scans);
00065 void setVariableTrigRange(unsigned short start, unsigned short end, unsigned long value);
00066
00067 const ScanPoints getScanPoints1() const;
00068 const ScanPoints getScanPoints2() const;
00069 void setScanPoints1(const ScanPoints &scans);
00070 void setScanPoints2(const ScanPoints &scans);
00071
00072 int getOption(enum ScanOptions) const;
00073 void setOption(enum ScanOptions, int option);
00074
00075
00076
00077 void print() const;
00078
00079 void setScanNumber(unsigned int scan);
00080 unsigned int getScanNumber() const;
00081 void setRunNumber(unsigned int scan);
00082 unsigned int getRunNumber() const;
00083
00084 ::SctApi::ModuleList getModuleList(unsigned int group) const;
00085 void setModuleList(unsigned int group, const ::SctApi::ModuleList & newList);
00086 unsigned int getNGroups() const;
00087 void setNGroups(unsigned int val);
00088
00089 virtual boost::posix_time::ptime getStartTime() const;
00090 virtual void setStartTime(boost::posix_time::ptime t);
00091
00092 virtual boost::posix_time::ptime getEndTime() const;
00093 virtual void setEndTime(boost::posix_time::ptime t);
00094
00096 ScanPoints scanPoints;
00097
00099 ScanPoints scanPoints2;
00100
00102 TrigPoints trigPoints;
00103
00105 bool allTrigsSame;
00106
00107 private:
00108
00110 int scanVariable;
00111
00113 int scanVariable2;
00114
00116 boost::shared_ptr<Trigger> trigSequence;
00117
00119 boost::shared_ptr<Trigger> trigSequence2;
00120
00122 int full;
00123
00125 int bits32;
00126
00128 int loopCalLine;
00129
00131 int distSlave;
00132
00134 int debug;
00135
00137 int tim;
00138
00140 int nth;
00141
00143 int nth_rem;
00144
00146 int enableDataMode;
00147
00148 unsigned int scanNumber;
00149 unsigned int runNumber;
00150
00151 std::vector<std::list<std::string> > groupLists;
00152 unsigned int m_maxGroup;
00153
00154 boost::posix_time::ptime startTime;
00155 boost::posix_time::ptime endTime;
00156 };
00157 };
00158
00159 #endif