00001 #ifndef SCT_SCTAPI_TRIGGERIMPL_H
00002 #define SCT_SCTAPI_TRIGGERIMPL_H
00003
00008
00009 namespace SctApi {
00010 class TriggerImpl;
00011 };
00012
00013
00014 #include <boost/shared_ptr.hpp>
00015 #include "Trigger.h"
00016
00017
00018 namespace SctApi {
00019
00020 class TriggerImpl : public ::SctApi::Trigger {
00021 TriggerImpl &operator=(const TriggerImpl &);
00022 public:
00024 TriggerImpl();
00025
00026 TriggerImpl(const TriggerImpl &);
00027
00028 static boost::shared_ptr<TriggerImpl> clone(const boost::shared_ptr< ::SctApi::Trigger> other);
00029
00031 virtual ~TriggerImpl();
00032
00033 void singleL1A();
00034 void doubleL1A(short unsigned int delay);
00035 void delayedL1A(short unsigned int delay);
00036 void calL1A(short unsigned int delay);
00037 void pulseL1A(short unsigned int delay);
00038 void softL1A(short unsigned int delay);
00039 void softCalL1A(short unsigned int delay, short unsigned int delay2);
00040 void softPulseL1A(short unsigned int delay, short unsigned int delay2);
00041 void softBc(short unsigned int delay);
00042 void soft();
00043 void bc();
00044 void bcL1A(short unsigned int delay);
00045 void bcCalL1A(short unsigned int delay, short unsigned int delay2);
00046 void bcPulseL1A(short unsigned int delay, short unsigned int delay2);
00047
00048 void setCommIncr(unsigned short command, unsigned short incr);
00049 void getCommIncr(unsigned short &command, unsigned short &incr) const;
00050
00051 const RODTriggers getRODTriggers() const;
00052
00053
00054
00055 void print() const;
00056 private:
00057
00058
00059
00060
00061
00062
00063 RODTriggers trigSequence;
00064
00066 int incCmd;
00067
00069 int incData;
00070 };
00071
00072
00073 };
00074
00075 #endif