Cat
Python.cpp
Go to the documentation of this file.
1 #include <vector>
2 #include <list>
3 
4 #include "Processus.h"
5 
6 #include "Element.h"
7 #include "A3PE.h"
8 #include "Proto40MHz_v1.h"
9 
10 #include "Acquisition.h"
11 #include "A3PE_BitFlip.h"
12 #include "UsbFTInterface.h"
13 
14 #include "RegisterTest.h"
15 #include "UsbFTInterfaceTest.h"
16 
17 #include <boost/python.hpp>
18 #include <boost/python/suite/indexing/vector_indexing_suite.hpp>
19 
20 using namespace boost::python;
21 
22 BOOST_PYTHON_MODULE(libCatCaloProto40MHz)
23 {
24  class_<A3PE, bases <Element> >("A3PE")
25  .def("ctrlReg" ,&A3PE::ctrlReg,return_value_policy<reference_existing_object>())
26  .def("resetReg" ,&A3PE::resetReg,return_value_policy<reference_existing_object>())
27  .def("setupReg" ,&A3PE::setupReg,return_value_policy<reference_existing_object>())
28  .def("statusReg" ,&A3PE::statusReg,return_value_policy<reference_existing_object>())
29  .def("acqReg" ,&A3PE::acqReg,return_value_policy<reference_existing_object>())
30  .def("latencyReg" ,&A3PE::acqReg,return_value_policy<reference_existing_object>())
31  .def("writeLengthFifoReg" ,&A3PE::writeLengthFifoReg,return_value_policy<reference_existing_object>())
32  .def("ctrlAnaMezzReg" ,&A3PE::ctrlAnaMezzReg,return_value_policy<reference_existing_object>())
33  .def("clockDivisionReg" ,&A3PE::clockDivisionReg,return_value_policy<reference_existing_object>())
34  .def("triggerReg" ,&A3PE::triggerReg,return_value_policy<reference_existing_object>())
35  .def("toAXReg" ,&A3PE::toAXReg,return_value_policy<reference_existing_object>())
36  .def("fromAXReg" ,&A3PE::fromAXReg,return_value_policy<reference_existing_object>())
37  .def("spare3Reg" ,&A3PE::spare3Reg,return_value_policy<reference_existing_object>())
38  .def("storageRam" ,&A3PE::storageRam,return_value_policy<reference_existing_object>())
39  .def("patternRam" ,&A3PE::patternRam,return_value_policy<reference_existing_object>())
40  .def("triggerRam" ,&A3PE::triggerRam,return_value_policy<reference_existing_object>())
41  .def("toAXRam" ,&A3PE::toAXRam,return_value_policy<reference_existing_object>())
42  .def("fromAXRam" ,&A3PE::fromAXRam,return_value_policy<reference_existing_object>())
43  .def("testRam" ,&A3PE::testRam,return_value_policy<reference_existing_object>())
44  .def("reset" ,&A3PE::reset)
45  .def("resetStorageFifo" ,&A3PE::resetStorageFifo)
46  .def("resetTriggerFifo" ,&A3PE::resetTriggerFifo)
47  .def("resetPatternFifo" ,&A3PE::resetPatternFifo)
48  .def("resetFromAXRam" ,&A3PE::resetFromAXRam)
49  .def("resetToAXRam" ,&A3PE::resetToAXRam)
50  .def("resetSequenceFromToAX" ,&A3PE::resetSequenceFromToAX)
51  .def("resetUsbPhasers" ,&A3PE::resetUsbPhasers)
52  .def("resetLatencyCounter" ,&A3PE::resetLatencyCounter)
53  .def("resetFE" ,&A3PE::resetFE)
54  .def("resetSPI" ,&A3PE::resetSPI)
55  .def("setEnableADC" ,&A3PE::setEnableADC)
56  .def("enableADC" ,&A3PE::enableADC)
57  .def("setWriteStorageFifoUsb" ,&A3PE::setWriteStorageFifoUsb)
58  .def("writeStorageFifoUsb" ,&A3PE::writeStorageFifoUsb)
59  .def("setReadPatternFifoUsb" ,&A3PE::setReadPatternFifoUsb)
60  .def("readPatternFifoUsb" ,&A3PE::readPatternFifoUsb)
61  .def("setReadTriggerFifoUsb" ,&A3PE::setReadTriggerFifoUsb)
62  .def("readTriggerFifoUsb" ,&A3PE::readTriggerFifoUsb)
63  .def("setReadToAXRamUsb" ,&A3PE::setReadToAXRamUsb)
64  .def("readToAXRamUsb" ,&A3PE::readToAXRamUsb)
65  .def("setWriteFromAXRamUsb" ,&A3PE::setWriteFromAXRamUsb)
66  .def("writeFromAXRamUsb" ,&A3PE::writeFromAXRamUsb)
67  .def("setSoftwareTrigger" ,&A3PE::setSoftwareTrigger)
68  .def("softwareTrigger" ,&A3PE::softwareTrigger)
69  .def("setClockDivision" ,&A3PE::setClockDivision)
70  .def("clockDivision" ,&A3PE::clockDivision)
71  .def("setTriggerDelay" ,&A3PE::setTriggerDelay)
72  // .def("setSeqPulseDelay" ,&A3PE::setSeqPulseDelay)
73  .def("triggerDelay" ,&A3PE::triggerDelay)
74  // .def("seqPulseDelay" ,&A3PE::seqPulseDelay)
75  .def("setTriggerRate" ,&A3PE::setTriggerRate)
76  .def("triggerRate" ,&A3PE::triggerRate)
77  .def("setNTrigger" ,&A3PE::setNTrigger)
78  .def("nTrigger" ,&A3PE::nTrigger)
79  .def("setFifoLatency" ,&A3PE::setFifoLatency)
80  .def("fifoLatency" ,&A3PE::fifoLatency)
81  .def("setFifoDepth", &A3PE::setFifoDepth)
82  .def("fifoDepth", &A3PE::fifoDepth)
83  .def("acquisition", &A3PE::acquisition)
84  .def("trigger", &A3PE::trigger)
85  .def("enableStorage", &A3PE::enableStorage)
86  .def("dataReady", &A3PE::dataReady)
87  .def("dumpStorage", &A3PE::dumpStorage)
88  .def("dumpPattern", &A3PE::dumpPattern)
89  .def("dumpTrigger", &A3PE::dumpTrigger)
90  .def("dumpToAX", &A3PE::dumpToAX)
91  .def("dumpFromAX", &A3PE::dumpFromAX)
92  .def("loadStorage", &A3PE::loadStorage)
93  .def("loadPattern", &A3PE::loadPattern)
94  .def("loadTrigger", &A3PE::loadTrigger)
95  .def("loadToAX", &A3PE::loadToAX)
96  .def("loadFromAX", &A3PE::loadFromAX)
97  .def("setInternalAXSequence", &A3PE::setInternalAXSequence)
98  .def("internalAXSequence", &A3PE::internalAXSequence)
99  .def("setLengthAX", &A3PE::setLengthAX)
100  .def("lengthAX", &A3PE::lengthAX)
101  .def("setLatencyAX", &A3PE::setLatencyAX)
102  .def("latencyAX", &A3PE::latencyAX)
103  .def("setAddFromAXRam", &A3PE::setAddFromAXRam)
104  .def("setAddToAXRam", &A3PE::setAddToAXRam)
105  .def("startSequenceAX", &A3PE::startSequenceAX)
106  .def("setPipeline", &A3PE::setPipeline)
107  .def("pipeline", &A3PE::pipeline)
108  ;
109 
110  class_<Proto40MHz_v1, bases <Element> >("Proto40MHz_v1")
111  .def("usb",&Proto40MHz_v1::usb,return_value_policy<reference_existing_object>())
112  .def("phaser0",&Proto40MHz_v1::phaser0,return_value_policy<reference_existing_object>())
113  .def("phaser1",&Proto40MHz_v1::phaser1,return_value_policy<reference_existing_object>())
114  .def("phaser2",&Proto40MHz_v1::phaser2,return_value_policy<reference_existing_object>())
115  .def("a3pe", &Proto40MHz_v1::a3pe,return_value_policy<reference_existing_object>())
116  ;
117 
118  class_<Acquisition,bases <Processus> >("Acquisition")
119  .def("initialize",&Acquisition::initialize)
120  .def("execute",&Acquisition::execute)
121  .def("finalize",&Acquisition::finalize)
122  .def("setDepth",&Acquisition::setDepth)
123  .def("depth",&Acquisition::depth)
124  .def("setChannels",&Acquisition::setChannels)
125  .def("channels",&Acquisition::channels)
126  .def("setTrigger",&Acquisition::setTrigger)
127  .def("trigger",&Acquisition::trigger)
128  .def("setStoreTree",&Acquisition::setStoreTree)
129  .def("setStoreTrend",&Acquisition::setStoreTrend)
130  .def("setStoreSample",&Acquisition::setStoreSample)
131  .def("storeTree",&Acquisition::storeTree)
132  .def("storeTrend",&Acquisition::storeTrend)
133  .def("storeSample",&Acquisition::storeSample)
134  .def("setDeadTime",&Acquisition::setDeadTime)
135  .def("deadTime",&Acquisition::deadTime)
136  .def("setSample",&Acquisition::setSample)
137  .def("sample",&Acquisition::sample)
138  .def("setNBins",&Acquisition::setNBins)
139  .def("nBins",&Acquisition::nBins)
140  .def("setMinRange",&Acquisition::setMinRange)
141  .def("minRange",&Acquisition::minRange)
142  .def("setMaxRange",&Acquisition::setMaxRange)
143  .def("maxRange",&Acquisition::maxRange)
144  ;
145 
146  class_<A3PE_BitFlip,bases <Processus> >("A3PE_BitFlip")
147  .def("initialize",&A3PE_BitFlip::initialize)
148  .def("execute",&A3PE_BitFlip::execute)
149  .def("finalize",&A3PE_BitFlip::finalize)
150  .def("setFile",&A3PE_BitFlip::setFile)
151  .def("file",&A3PE_BitFlip::file)
152  ;
153 
154  enum_<UsbFTInterface::WordSize>("WordSize")
155  .value("U8", UsbFTInterface::WS_Byte)
156  .value("U16", UsbFTInterface::WS_Word)
157  .value("U32", UsbFTInterface::WS_DWord)
158  ;
159 
160  StatusCode (UsbFTInterface::*write_1)(unsigned long int, boost::python::list) = (&UsbFTInterface::write);
162  StatusCode (UsbFTInterface::*read_1)(unsigned long int,unsigned long int, boost::python::list&) = (&UsbFTInterface::read);
164 
165  class_<UsbFTInterface, bases <Element> > ("UsbFTInterface")
166  .def("init" ,&UsbFTInterface::init)
167  .def("setSerialNum" ,&UsbFTInterface::setSerialNum)
168  .def("setDeviceDesc" ,&UsbFTInterface::setDeviceDesc)
169  .def("serialNum" ,&UsbFTInterface::serialNum)
170  .def("deviceDesc" ,&UsbFTInterface::deviceDesc)
171  .def("setWordSize" ,&UsbFTInterface::setWordSize)
172  .def("wordSize" ,&UsbFTInterface::wordSize)
173  .def("close" ,&UsbFTInterface::close)
174  .def("setLatencyTimer",&UsbFTInterface::setLatencyTimer)
175  .def("latencyTimer" ,&UsbFTInterface::latencyTimer)
176  .def("setTimeOut" ,&UsbFTInterface::setTimeOut)
177  .def("txTimeOut" ,&UsbFTInterface::txTimeOut)
178  .def("rxTimeOut" ,&UsbFTInterface::rxTimeOut)
179  .def("setBuffer" ,&UsbFTInterface::setBuffer)
180  .def("txBuffer" ,&UsbFTInterface::txBuffer)
181  .def("rxBuffer" ,&UsbFTInterface::rxBuffer)
182  .def("write" ,write_1)
183  .def("write" ,write_2)
184  .def("read" ,read_1)
185  .def("read" ,read_2)
186  ;
187 
188  class_<UsbFTInterfaceTest, bases<Processus> > ("UsbFTInterfaceTest")
189  .def("setAddress", &UsbFTInterfaceTest::setAddress)
190  .def("setParam", &UsbFTInterfaceTest::setParam)
191  .def("mean", &UsbFTInterfaceTest::mean)
192  .def("sigma", &UsbFTInterfaceTest::sigma)
193  ;
194 
195  class_<RegisterTest, bases<Processus> > ("RegisterTest")
196  .def("setAddress", &UsbFTInterfaceTest::setAddress)
197  .def("setParam", &UsbFTInterfaceTest::setParam)
198  .def("mean", &UsbFTInterfaceTest::mean)
199  .def("sigma", &UsbFTInterfaceTest::sigma)
200  ;
201 
202 }
Register * setupReg()
Definition: A3PE.h:488
StatusCode setParam(int size, double mean, double sigma)
StatusCode setChannels(unsigned int)
void dumpFromAX()
Definition: A3PE.cpp:896
unsigned int latencyAX()
Definition: A3PE.cpp:348
virtual StatusCode finalize()
Register * ctrlAnaMezzReg()
Definition: A3PE.h:512
StatusCode setNTrigger(unsigned int)
Definition: A3PE.cpp:549
bool readTriggerFifoUsb()
Definition: A3PE.cpp:258
std::string file()
Definition: A3PE_BitFlip.h:35
bool storeTree()
Definition: Acquisition.h:49
StatusCode setTriggerRate(unsigned int)
Definition: A3PE.cpp:520
int deadTime()
Definition: Acquisition.h:67
void setTimeOut(int txTimeOut, int rxTimeOut)
bool readPatternFifoUsb()
Definition: A3PE.cpp:253
StatusCode setReadToAXRamUsb(bool)
Definition: A3PE.cpp:201
RAM * fromAXRam()
Definition: A3PE.h:552
bool readToAXRamUsb()
Definition: A3PE.cpp:272
unsigned int triggerRate()
Definition: A3PE.cpp:539
StatusCode setSoftwareTrigger(bool)
Definition: A3PE.cpp:368
StatusCode setReadPatternFifoUsb(bool)
Definition: A3PE.cpp:124
unsigned int clockDivision()
Definition: A3PE.cpp:448
Register * toAXReg()
Definition: A3PE.h:524
StatusCode setAddToAXRam(int)
Definition: A3PE.cpp:179
void setBuffer(int txBuffer, int rxBuffer)
StatusCode resetLatencyCounter()
Definition: A3PE.cpp:37
int nBins()
Definition: Acquisition.h:79
Phaser * phaser0()
Definition: Proto40MHz_v1.h:62
StatusCode resetUsbPhasers()
Definition: A3PE.cpp:32
StatusCode setFifoDepth(unsigned int)
Definition: A3PE.cpp:612
StatusCode resetSequenceFromToAX()
Definition: A3PE.cpp:67
void loadToAX(std::string)
Definition: A3PE.cpp:858
RAM * patternRam()
Definition: A3PE.h:540
void setMaxRange(float maxrange)
Definition: Acquisition.h:87
void loadTrigger(std::string)
Definition: A3PE.cpp:809
std::string serialNum()
unsigned long wordSize()
StatusCode setTrigger(bool trig)
Definition: Acquisition.h:36
A3PE * a3pe()
Definition: Proto40MHz_v1.h:74
RAM * storageRam()
Definition: A3PE.h:536
bool writeStorageFifoUsb()
Definition: A3PE.cpp:248
bool softwareTrigger()
Definition: A3PE.cpp:379
virtual StatusCode execute()
void dumpStorage()
Definition: A3PE.cpp:641
StatusCode resetSPI()
Definition: A3PE.cpp:77
void dumpPattern()
Definition: A3PE.cpp:716
StatusCode startSequenceAX()
Definition: A3PE.cpp:949
void reset()
Definition: A3PE.h:225
bool trigger()
Definition: Acquisition.h:41
void setMinRange(float minrange)
Definition: Acquisition.h:81
Phaser * phaser1()
Definition: Proto40MHz_v1.h:66
RAM * triggerRam()
Definition: A3PE.h:544
bool storeSample()
Definition: Acquisition.h:61
Register * acqReg()
Definition: A3PE.h:500
StatusCode read(IOdata *)
bool dataReady()
Definition: A3PE.cpp:406
virtual StatusCode execute()
void setSerialNum(std::string serialNum)
BOOST_PYTHON_MODULE(libCatBcn)
Definition: Python.cpp:24
UsbFTInterface * usb()
Definition: Proto40MHz_v1.h:58
bool storeTrend()
Definition: Acquisition.h:55
void setNBins(int nbins)
Definition: Acquisition.h:75
std::string deviceDesc()
unsigned int triggerDelay()
Definition: A3PE.cpp:480
float minRange()
Definition: Acquisition.h:85
StatusCode setLatencyAX(unsigned int)
Definition: A3PE.cpp:327
int sample()
Definition: Acquisition.h:73
Register * fromAXReg()
Definition: A3PE.h:528
StatusCode trigger()
Definition: A3PE.cpp:363
StatusCode setTriggerDelay(unsigned int)
Definition: A3PE.cpp:461
float maxRange()
Definition: Acquisition.h:91
StatusCode setPipeline(unsigned int)
Definition: A3PE.cpp:290
Register * spare3Reg()
Definition: A3PE.h:532
StatusCode resetStorageFifo()
Definition: A3PE.cpp:27
Phaser * phaser2()
Definition: Proto40MHz_v1.h:70
Definition: IOdata.h:17
Register * statusReg()
Definition: A3PE.h:496
StatusCode resetPatternFifo()
Definition: A3PE.cpp:47
StatusCode setFifoLatency(unsigned short)
Definition: A3PE.cpp:581
unsigned int nTrigger()
Definition: A3PE.cpp:568
Register * triggerReg()
Definition: A3PE.h:520
void loadStorage(std::string)
Definition: A3PE.cpp:670
virtual StatusCode initialize()
unsigned int channels()
Definition: Acquisition.h:34
StatusCode setAddFromAXRam(int)
Definition: A3PE.cpp:190
StatusCode setReadTriggerFifoUsb(bool)
Definition: A3PE.cpp:152
void loadFromAX(std::string)
Definition: A3PE.cpp:911
unsigned int lengthAX()
Definition: A3PE.cpp:338
StatusCode enableStorage()
Definition: A3PE.cpp:383
void setLatencyTimer(unsigned char latencyTimer)
void setSample(int nsample)
Definition: Acquisition.h:69
RAM * toAXRam()
Definition: A3PE.h:548
bool writeFromAXRamUsb()
Definition: A3PE.cpp:276
Register * ctrlReg()
Definition: A3PE.h:484
StatusCode write(IOdata *)
unsigned int depth()
Definition: Acquisition.h:31
void setDeviceDesc(std::string deviceDesc)
void setStoreTree(bool store_tree)
Definition: Acquisition.h:45
StatusCode setWriteStorageFifoUsb(bool)
Definition: A3PE.cpp:99
RAM * testRam()
Definition: A3PE.h:556
StatusCode acquisition()
Definition: A3PE.cpp:417
void setWordSize(unsigned long wordSize)
virtual StatusCode finalize()
StatusCode resetTriggerFifo()
Definition: A3PE.cpp:52
unsigned int fifoDepth()
Definition: A3PE.cpp:631
StatusCode resetToAXRam()
Definition: A3PE.cpp:57
unsigned int pipeline()
Definition: A3PE.cpp:307
StatusCode resetFromAXRam()
Definition: A3PE.cpp:62
StatusCode setInternalAXSequence(bool)
Definition: A3PE.cpp:280
StatusCode setClockDivision(unsigned int)
Definition: A3PE.cpp:429
StatusCode setEnableADC(unsigned int, bool)
Definition: A3PE.cpp:87
unsigned char latencyTimer()
virtual StatusCode init()
bool internalAXSequence()
Definition: A3PE.cpp:285
StatusCode setDepth(unsigned int)
unsigned int fifoLatency()
Definition: A3PE.cpp:599
void setStoreSample(bool store_sample)
Definition: Acquisition.h:57
Register * writeLengthFifoReg()
Definition: A3PE.h:508
void setDeadTime(int deadtime)
Definition: Acquisition.h:63
void dumpToAX()
Definition: A3PE.cpp:844
StatusCode setFile(std::string filename)
Definition: A3PE_BitFlip.h:30
StatusCode resetFE()
Definition: A3PE.cpp:72
void dumpTrigger()
Definition: A3PE.cpp:791
void setStoreTrend(bool store_hist)
Definition: Acquisition.h:51
StatusCode setLengthAX(unsigned int)
Definition: A3PE.cpp:316
virtual StatusCode initialize()
Definition: Acquisition.cpp:49
Register * resetReg()
Definition: A3PE.h:492
StatusCode setWriteFromAXRamUsb(bool)
Definition: A3PE.cpp:213
void loadPattern(std::string)
Definition: A3PE.cpp:747
Register * clockDivisionReg()
Definition: A3PE.h:516
bool enableADC(unsigned int)
Definition: A3PE.cpp:265
StatusCode setAddress(long int address)