4 from libCatKernel
import *
8 element.__init__(self,cat,obj,panel,path)
12 self.
modeCh=self.getControl(
"modeCh")
14 self.
ph0_0=self.getControl(
"phaser0_0")
15 self.
ph0_1=self.getControl(
"phaser0_1")
16 self.
ph0_2=self.getControl(
"phaser0_2")
17 self.
ph0_3=self.getControl(
"phaser0_3")
18 self.
ph1_0=self.getControl(
"phaser1_0")
19 self.
ph1_1=self.getControl(
"phaser1_1")
20 self.
ph1_2=self.getControl(
"phaser1_2")
21 self.
ph1_3=self.getControl(
"phaser1_3")
22 self.
ph2_0=self.getControl(
"phaser2_0")
23 self.
ph2_1=self.getControl(
"phaser2_1")
24 self.
ph2_2=self.getControl(
"phaser2_2")
25 self.
ph2_3=self.getControl(
"phaser2_3")
27 self.panel.Bind(wx.EVT_BUTTON,self.
onAcquisition,id=xrc.XRCID(
"acquisition"))
28 self.panel.Bind(wx.EVT_BUTTON,self.
isReady,id=xrc.XRCID(
"isReady"))
29 self.panel.Bind(wx.EVT_BUTTON,self.
onTrigger,id=xrc.XRCID(
"trigger"))
30 self.panel.Bind(wx.EVT_BUTTON,self.
onEnableStorage,id=xrc.XRCID(
"enableStorage"))
31 self.panel.Bind(wx.EVT_TOGGLEBUTTON,self.
onSoftTrig,id=xrc.XRCID(
"softtrig"))
32 self.panel.Bind(wx.EVT_TOGGLEBUTTON,self.
onModeAX,id=xrc.XRCID(
"modeAX"))
34 self.panel.Bind(wx.EVT_CHOICE,self.
onModeCh,id=xrc.XRCID(
"modeCh"))
36 self.panel.Bind(wx.EVT_CHOICE,self.
onPipeline,id=xrc.XRCID(
"pipeline"))
38 self.panel.Bind(wx.EVT_BUTTON,self.
onGlobalReset,id=xrc.XRCID(
"global_reset"))
39 self.panel.Bind(wx.EVT_BUTTON,self.
onUsbPhasersReset,id=xrc.XRCID(
"usb_phasers_reset"))
40 self.panel.Bind(wx.EVT_BUTTON,self.
onResetFE,id=xrc.XRCID(
"reset_fe"))
41 self.panel.Bind(wx.EVT_BUTTON,self.
onResetSPI,id=xrc.XRCID(
"reset_spi"))
42 self.panel.Bind(wx.EVT_BUTTON,self.
onFifoReset,id=xrc.XRCID(
"fifo_reset"))
44 self.panel.Bind(wx.EVT_BUTTON,self.
onFifoRAZ,id=xrc.XRCID(
"fifo_raz"))
45 self.panel.Bind(wx.EVT_BUTTON,self.
onPatternRAZ,id=xrc.XRCID(
"pattern_raz"))
46 self.panel.Bind(wx.EVT_BUTTON,self.
onTriggerRAZ,id=xrc.XRCID(
"trigger_raz"))
47 self.panel.Bind(wx.EVT_BUTTON,self.
onToAXRAZ,id=xrc.XRCID(
"toax_raz"))
48 self.panel.Bind(wx.EVT_BUTTON,self.
onFromAXRAZ,id=xrc.XRCID(
"from_raz"))
50 self.panel.Bind(wx.EVT_BUTTON,self.
onFifoWrite,id=xrc.XRCID(
"fifo_write"))
51 self.panel.Bind(wx.EVT_BUTTON,self.
onPatternWrite,id=xrc.XRCID(
"pattern_write"))
52 self.panel.Bind(wx.EVT_BUTTON,self.
onTriggerWrite,id=xrc.XRCID(
"trigger_write"))
53 self.panel.Bind(wx.EVT_BUTTON,self.
onToAXWrite,id=xrc.XRCID(
"toax_write"))
54 self.panel.Bind(wx.EVT_BUTTON,self.
onFromAXWrite,id=xrc.XRCID(
"fromax_write"))
55 self.panel.Bind(wx.EVT_BUTTON,self.
onReadFifo,id=xrc.XRCID(
"fifo_read"))
56 self.panel.Bind(wx.EVT_BUTTON,self.
onReadPattern,id=xrc.XRCID(
"pattern_read"))
57 self.panel.Bind(wx.EVT_BUTTON,self.
onReadTrigger,id=xrc.XRCID(
"trigger_read"))
58 self.panel.Bind(wx.EVT_BUTTON,self.
onReadToAX,id=xrc.XRCID(
"toax_read"))
59 self.panel.Bind(wx.EVT_BUTTON,self.
onReadFromAX,id=xrc.XRCID(
"fromax_read"))
61 self.panel.Bind(wx.EVT_BUTTON,self.
onFromAXPtrRaz,id=xrc.XRCID(
"fromax_ptr_raz"))
62 self.panel.Bind(wx.EVT_BUTTON,self.
onToAXPtrRaz,id=xrc.XRCID(
"toax_ptr_raz"))
63 self.panel.Bind(wx.EVT_BUTTON,self.
onStartSequenceAX,id=xrc.XRCID(
"startAXSequence"))
65 self.panel.Bind(wx.EVT_BUTTON,self.
onLatencyReset,id=xrc.XRCID(
"latency_reset"))
66 self.panel.Bind(wx.EVT_BUTTON,self.
onAcquisitionReset,id=xrc.XRCID(
"acquisition_reset"))
68 self.panel.Bind(wx.EVT_BUTTON,self.
onPhaser0,id=xrc.XRCID(
"apply_ph0"))
69 self.panel.Bind(wx.EVT_BUTTON,self.
onPhaser1,id=xrc.XRCID(
"apply_ph1"))
70 self.panel.Bind(wx.EVT_BUTTON,self.
onPhaser2,id=xrc.XRCID(
"apply_ph2"))
73 self.panel.Bind(wx.EVT_BUTTON,self.
onapplyCh,id=xrc.XRCID(
"applyCh"))
74 self.panel.Bind(wx.EVT_BUTTON,self.
onenableAll,id=xrc.XRCID(
"enableAll"))
75 self.panel.Bind(wx.EVT_BUTTON,self.
onunableAll,id=xrc.XRCID(
"unableAll"))
77 self.panel.Bind(wx.EVT_BUTTON,self.
onapplyfifodepth,id=xrc.XRCID(
"applyfifodepth"))
79 self.panel.Bind(wx.EVT_BUTTON,self.
onapplyclockdiv,id=xrc.XRCID(
"applyclockdiv"))
81 self.panel.Bind(wx.EVT_BUTTON,self.
onapplynumber,id=xrc.XRCID(
"applynumber"))
82 self.panel.Bind(wx.EVT_BUTTON,self.
onapplydelay,id=xrc.XRCID(
"applydelay"))
85 self.panel.Bind(wx.EVT_BUTTON,self.
onapplyfreq,id=xrc.XRCID(
"applyfreq"))
86 self.panel.Bind(wx.EVT_BUTTON,self.
onapplytrig,id=xrc.XRCID(
"applytrig"))
88 self.panel.Bind(wx.EVT_BUTTON,self.
onapplyaxlatency,id=xrc.XRCID(
"apply_ax_latency"))
89 self.panel.Bind(wx.EVT_BUTTON,self.
onapplyaxlength,id=xrc.XRCID(
"apply_ax_length"))
93 if self.obj.
a3pe().softwareTrigger():
94 self.getControl(
"softtrig").SetValue(1)
95 self.getControl(
"softtrig").SetLabel(
"Soft. Trig.")
97 self.getControl(
"softtrig").SetValue(0)
98 self.getControl(
"softtrig").SetLabel(
"Ext. Trig.")
107 self.getControl(
"isReady").SetBackgroundColour(
'BLUE')
109 if self.obj.
a3pe().writeStorageFifoUsb() :
110 self.getControl(
"modeCh").SetSelection(1)
112 self.getControl(
"modeCh").SetSelection(0)
115 if pipeline==0: self.getControl(
"pipeline").SetSelection(0)
116 elif pipeline==1: self.getControl(
"pipeline").SetSelection(1)
117 else: self.getControl(
"pipeline").SetSelection(2)
119 self.getControl(
"ch0").SetValue(self.obj.
a3pe().enableADC(0))
120 self.getControl(
"ch1").SetValue(self.obj.
a3pe().enableADC(1))
121 self.getControl(
"ch2").SetValue(self.obj.
a3pe().enableADC(2))
122 self.getControl(
"ch3").SetValue(self.obj.
a3pe().enableADC(3))
123 self.getControl(
"ch4").SetValue(self.obj.
a3pe().enableADC(4))
124 self.getControl(
"ch5").SetValue(self.obj.
a3pe().enableADC(5))
125 self.getControl(
"ch6").SetValue(self.obj.
a3pe().enableADC(6))
126 self.getControl(
"ch7").SetValue(self.obj.
a3pe().enableADC(7))
127 self.getControl(
"clockdiv").SetValue(self.obj.
a3pe().clockDivision())
128 self.getControl(
"fifodepth").SetValue(self.obj.
a3pe().fifoDepth())
129 self.getControl(
"fifolatency").SetValue(self.obj.
a3pe().fifoLatency())
130 self.getControl(
"trignumber").SetValue(self.obj.
a3pe().nTrigger())
133 self.getControl(
"trigfreq").SetValue(self.obj.
a3pe().triggerRate())
134 self.getControl(
"trigdelay").SetValue(self.obj.
a3pe().triggerDelay())
151 self.obj.
a3pe().enableStorage()
152 self.obj.
a3pe().trigger()
153 self.obj.
a3pe().dumpStorage()
156 val=self.obj.
a3pe().dataReady
157 if val: self.getControl(
"isReady").SetBackgroundColour(
'GREEN')
158 else : self.getControl(
"isReady").SetBackgroundColour(
'RED')
162 self.obj.
a3pe().trigger()
165 self.obj.
a3pe().enableStorage()
168 self.obj.
a3pe().dumpStorage()
171 self.obj.
a3pe().dumpPattern()
174 self.obj.
a3pe().dumpTrigger()
177 self.obj.
a3pe().dumpToAX()
180 self.obj.
a3pe().dumpFromAX()
183 self.obj.
a3pe().setSoftwareTrigger(self.
softTrig.GetValue())
185 self.getControl(
"softtrig").SetLabel(
"Soft. Trig.")
187 self.getControl(
"softtrig").SetLabel(
"Ext. Trig.")
190 if self.getControl(
"modeAX").GetValue():
191 self.getControl(
"modeAX").SetLabel(
"Internal")
193 self.getControl(
"modeAX").SetLabel(
"AX loop")
194 self.obj.
a3pe().setInternalAXSequence(self.getControl(
"modeAX").GetValue())
197 pipeline=self.getControl(
"pipeline").GetSelection()
198 self.obj.
a3pe().setPipeline(pipeline)
204 self.obj.
a3pe().resetUsbPhasers()
207 self.obj.
a3pe().resetStorageFifo()
210 self.obj.
a3pe().resetFE()
213 self.obj.
a3pe().resetSPI()
216 self.obj.
a3pe().setWriteStorageFifoUsb(
True)
217 self.obj.
a3pe().storageRam().raz()
218 self.obj.
a3pe().setWriteStorageFifoUsb(
False)
221 self.obj.
a3pe().patternRam().raz()
224 self.obj.
a3pe().triggerRam().raz()
227 self.obj.
a3pe().toAXRam().raz()
230 self.obj.
a3pe().fromAXRam().raz()
235 self.obj.
a3pe().loadStorage(filename)
240 self.obj.
a3pe().loadPattern(filename)
245 self.obj.
a3pe().loadTrigger(filename)
250 self.obj.
a3pe().loadToAX(filename)
255 self.obj.
a3pe().loadFromAX(filename)
258 self.obj.
a3pe().resetLatencyCounter()
261 self.obj.
a3pe().resetAcquisitionWriteCounter()
265 self.obj.
a3pe().setAddToAXRam(0)
269 self.obj.
a3pe().setAddFromAXRam(0)
272 print "StartSequence" 273 self.obj.
a3pe().startSequenceAX()
277 phaser.setPhase(0,self.
ph0_0.GetValue())
278 phaser.setPhase(1,self.
ph0_1.GetValue())
279 phaser.setPhase(2,self.
ph0_2.GetValue())
280 phaser.setPhase(3,self.
ph0_3.GetValue())
284 phaser.setPhase(0,self.
ph1_0.GetValue())
285 phaser.setPhase(1,self.
ph1_1.GetValue())
286 phaser.setPhase(2,self.
ph1_2.GetValue())
287 phaser.setPhase(3,self.
ph1_3.GetValue())
291 phaser.setPhase(0,self.
ph2_0.GetValue())
292 phaser.setPhase(1,self.
ph2_1.GetValue())
293 phaser.setPhase(2,self.
ph2_2.GetValue())
294 phaser.setPhase(3,self.
ph2_3.GetValue())
298 self.obj.
a3pe().setEnableADC(0,self.getControl(
"ch0").GetValue())
299 self.obj.
a3pe().setEnableADC(1,self.getControl(
"ch1").GetValue())
300 self.obj.
a3pe().setEnableADC(2,self.getControl(
"ch2").GetValue())
301 self.obj.
a3pe().setEnableADC(3,self.getControl(
"ch3").GetValue())
302 self.obj.
a3pe().setEnableADC(4,self.getControl(
"ch4").GetValue())
303 self.obj.
a3pe().setEnableADC(5,self.getControl(
"ch5").GetValue())
304 self.obj.
a3pe().setEnableADC(6,self.getControl(
"ch6").GetValue())
305 self.obj.
a3pe().setEnableADC(7,self.getControl(
"ch7").GetValue())
308 mode=self.getControl(
"modeCh").GetSelection()
309 if (mode==0) : self.obj.
a3pe().setWriteStorageFifoUsb(
False)
310 if (mode==1) : self.obj.
a3pe().setWriteStorageFifoUsb(
True)
313 self.getControl(
"ch0").SetValue(
True)
314 self.getControl(
"ch1").SetValue(
True)
315 self.getControl(
"ch2").SetValue(
True)
316 self.getControl(
"ch3").SetValue(
True)
317 self.getControl(
"ch4").SetValue(
True)
318 self.getControl(
"ch5").SetValue(
True)
319 self.getControl(
"ch6").SetValue(
True)
320 self.getControl(
"ch7").SetValue(
True)
323 self.getControl(
"ch0").SetValue(
False)
324 self.getControl(
"ch1").SetValue(
False)
325 self.getControl(
"ch2").SetValue(
False)
326 self.getControl(
"ch3").SetValue(
False)
327 self.getControl(
"ch4").SetValue(
False)
328 self.getControl(
"ch5").SetValue(
False)
329 self.getControl(
"ch6").SetValue(
False)
330 self.getControl(
"ch7").SetValue(
False)
333 self.obj.
a3pe().setFifoDepth(self.getControl(
"fifodepth").GetValue())
334 self.obj.
a3pe().setFifoLatency(self.getControl(
"fifolatency").GetValue())
337 self.obj.
a3pe().setClockDivision(self.getControl(
"clockdiv").GetValue())
340 self.obj.
a3pe().setNTrigger(self.getControl(
"trignumber").GetValue())
343 self.obj.
a3pe().setTriggerDelay(self.getControl(
"trigdelay").GetValue())
349 self.obj.
a3pe().setTriggerRate(self.getControl(
"trigfreq").GetValue())
352 self.obj.
a3pe().setNTrigger(self.getControl(
"trignumber").GetValue())
353 self.obj.
a3pe().setTriggerDelay(self.getControl(
"trigdelay").GetValue())
354 self.obj.
a3pe().setTriggerRate(self.getControl(
"trigfreq").GetValue())
357 self.obj.
a3pe().setLengthAX(self.getControl(
"ax_length").GetValue())
360 self.obj.
a3pe().setLatencyAX(self.getControl(
"ax_latency").GetValue())
366 self.panel, message=
"Choose a file",
367 defaultDir=os.getcwd(),
369 wildcard=
"data file (*.dat)|*.dat|" "text files (*.txt)|*.txt" "All files (*.*)|*.*",
370 style=wx.OPEN | wx.CHANGE_DIR
372 if dlg.ShowModal() == wx.ID_OK:
373 path = dlg.GetPaths()
376 filename=str(path[0])
385 def Edit (cat, obj, panel, path):
def onPhaser2(self, event)
def onapplyaxlength(self, event)
def onapplyfreq(self, event)
def onToAXPtrRaz(self, event)
def onResetSPI(self, event)
def onPatternWrite(self, event)
def onSoftTrig(self, event)
def onapplyaxlatency(self, event)
def onToAXRAZ(self, event)
def onPhaser0(self, event)
def onTriggerWrite(self, event)
def onFromAXPtrRaz(self, event)
def onFifoRAZ(self, event)
def Edit(cat, obj, panel, path)
def onapplynumber(self, event)
def onPhaser1(self, event)
def onapplyclockdiv(self, event)
def onFifoReset(self, event)
def onFifoWrite(self, event)
def onEnableStorage(self, event)
def onunableAll(self, event)
def onModeCh(self, event)
def onReadTrigger(self, event)
def onTriggerRAZ(self, event)
def onapplytrig(self, event)
def onFromAXRAZ(self, event)
def onLatencyReset(self, event)
def onReadToAX(self, event)
def onFromAXWrite(self, event)
def onModeAX(self, event)
def onPipeline(self, event)
def onapplydelay(self, event)
def onenableAll(self, event)
def onResetFE(self, event)
def onUsbPhasersReset(self, event)
def onToAXWrite(self, event)
def onReadFromAX(self, event)
def onReadPattern(self, event)
def onStartSequenceAX(self, event)
def __init__(self, cat, obj, panel, path)
def onGlobalReset(self, event)
def onAcquisitionReset(self, event)
def onapplyfifodepth(self, event)
def onapplyCh(self, event)
def onAcquisition(self, event)
def onReadFifo(self, event)
def onTrigger(self, event)
def onPatternRAZ(self, event)