Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Related Pages

PrimBuilder.h

00001 #include <boost/shared_ptr.hpp>
00002 
00003 #include "primListWrapper.h"
00004 
00005 // This defines ABCDModule (a typedef)
00006 #include <CommonWithDsp/sctStructure.h>
00007 
00008 namespace SctApi {
00009 namespace Utility {
00010   class MemoryBlock;
00011 }
00012 
00013 class PrimBuilder {
00014  private:
00015   // These are really not allowed!
00016   PrimBuilder(const PrimBuilder&);
00017   PrimBuilder& operator=(const PrimBuilder&);
00018 
00019  protected:
00020   // But this one is internally (helps with gcc warning for factories)
00021   PrimBuilder();
00022 
00023  public:
00025 
00029   void slavePrimList(boost::shared_ptr<PrimListWrapper> primList, boost::shared_ptr<PrimListWrapper> prim, 
00030                           unsigned int slaveNumber, bool await, bool response);
00031 
00032   void startSlaveList(boost::shared_ptr<PrimListWrapper> primList, unsigned int slaveNumber, bool await, bool response);
00033 
00034   void echo(boost::shared_ptr<PrimListWrapper> prim, Utility::MemoryBlock block);
00035 
00036   void flashLed(boost::shared_ptr<PrimListWrapper> prim, int period, int flashes);
00037 
00038   void startSlave(boost::shared_ptr<PrimListWrapper> prim, int s);
00039 
00040   void readFifo(boost::shared_ptr<PrimListWrapper> prim, int id, int bank, int elems);
00041 
00042   void pollRegister(boost::shared_ptr<PrimListWrapper> prim, int r, int off, int width, int val, int timeout);
00043 
00044   void taskOp(boost::shared_ptr<PrimListWrapper> prim, int typ, int op, int data);
00045 
00046   void readRegister(boost::shared_ptr<PrimListWrapper> prim, int r);
00047 
00048   void writeRegister(boost::shared_ptr<PrimListWrapper> prim, int r, int off, int wid, int value);
00049 
00050   void buildStream(boost::shared_ptr<PrimListWrapper> primList, int port);
00051 
00052   void sendStream(boost::shared_ptr<PrimListWrapper> primList, int cmdBuff, bool capture = 0);
00053 
00054   void startEvTrap(boost::shared_ptr<PrimListWrapper> primList);
00055 
00056   void stopEvTrap(boost::shared_ptr<PrimListWrapper> primList);
00057 
00058   void setMemory(boost::shared_ptr<PrimListWrapper> primList, unsigned long address, unsigned long words, long value);
00059 
00060   void readSlaveMemory(boost::shared_ptr<PrimListWrapper> primList, unsigned long slave, unsigned long address, unsigned long words);
00061 
00062   void writeSlaveMemory(boost::shared_ptr<PrimListWrapper> primList, unsigned long slave, unsigned long address, unsigned long words, unsigned long *data);
00063 
00064   void readModuleData(boost::shared_ptr<PrimListWrapper> primList, int bank, int channel);
00065 
00066   void writeModuleData(boost::shared_ptr<PrimListWrapper> primList, const ABCDModule* module, int bank, int channel);
00067 
00068   void sendConfig(boost::shared_ptr<PrimListWrapper>, 
00069                   int port, int capture, int module0, int module1, int chip, int setLinks, int restore, 
00070                   int bank, int group, int data, int active, int enableData);
00071 
00072   void writeModuleVariable(boost::shared_ptr<PrimListWrapper>, int bank, int group, int module, int chip, int type, float val);
00073 
00074   void rodMode(boost::shared_ptr<PrimListWrapper> rodModeList, 
00075                int mode, int flag, int fifoSetup, int nBits, int delay, int message);
00076 
00077   void moduleMask(boost::shared_ptr<PrimListWrapper> maskList, 
00078                   int module, int port, int useStructSet, int passOn, int slvs,
00079                   int cmdLine, int dataLine0, int dataLine1, // 2 and 3 only for pixels
00080                   int cfg, int modMask0, int modMask1, int maskType, int storage, int maskSet);
00081 
00082   void masksFromConfig(boost::shared_ptr<PrimListWrapper> maskList, int port);
00083 
00084   void masksToSlaves(boost::shared_ptr<PrimListWrapper> maskList, int slvBits);
00085 
00086   void bocHistogram(boost::shared_ptr<PrimListWrapper> primList, int samples, int numLoops);
00087 
00088   void setTrigger(boost::shared_ptr<PrimListWrapper> primList, int currentBin, int histogramSet);
00089 
00090   static PrimBuilder& instance();
00091   static PrimBuilder *singleton;
00092 };
00093 }

Generated on Thu Jul 15 09:50:49 2004 for SCT DAQ/DCS Software - C++ by doxygen 1.3.5