def __init__( self, inputRootFile="/tmp/histograms.root", outputFile="scurveHistogram.png" ) : self.inputRootFile=inputRootFile self.outputFile=outputFile self.rpcService = GlibRPCService.instance() self.view = DisplayHistogramsView() # Query the RPC service to see which CBCs are connected self.connectedCBCs=[] self.rpcService.connectedCBCNames( None, self ) # Bind the update button so that I can initiate the RPC call self.view.getUpdateButton().addClickListener( self ) # Ask to receive notifications when data is being taken so that I can disable the button DataRunManager.instance().registerEventHandler( self )
def __init__( self ) : # This is the service that will be used to communicate with the DAQ software self.rpcService = GlibRPCService.instance() self.dataRunManager = DataRunManager.instance() self.view = OccupancyCheckView() # Ask the server what's connected self.rpcService.connectedCBCNames( None, self ) # Tell the DataRunManager that I want to be told when anything starts or stops # taking data. When anything happens the onDataTakingEvent method will be called. self.dataRunManager.registerEventHandler( self ) # Bind the Update button self.view.getUpdateButton().addClickListener(self) self.view.setEchoMessage("No data.")
def __init__(self) : # Since this is a singleton, throw an exception if the constructor is called # explicitly. if DataRunManager._onlyInstance!=None : raise Exception( "DataRunManager is a singleton class. Call 'DataRunManager.instance()' to get the only running instance" ) self.rpcService=GlibRPCService.instance() self.pollingTimer=Timer( notify=self.pollRPCService ) self.eventHandlers = [] self.fractionComplete = 1 self.statusString = "Not taking data" self.firstRun = True # I'll poll once immediately on startup just in case the user is connecting to an # already running service. The code that handles the response to this starts the # timer running. self.pollRPCService()
def __init__( self ) : # This is the service that will be used to communicate with the DAQ software self.rpcService = GlibRPCService.instance() # The main panel that everythings will be insided self.mainPanel = HorizontalPanel() self.mainPanel.setSpacing(10) self.i2cValueEntries = {} # The input boxes for all the registers self.statusValueEntries = {} # Displays the status of the i2cValueEntries self.stateValueEntries = {} # For load/save state self.fileName = {} # File name of the i2c registers # This is the list of available CBC chips. It will be populated by a call to the # server later. self.cbcList=ListBox(MultipleSelect=True, VisibleItemCount=10) self.cbcList.addItem( "waiting..." ) # Default text until I hear from the server what's connected self.cbcList.setEnabled( False ) self.cbcList.addChangeListener(self) self.rpcService.connectedCBCNames( None, I2CPanel.ConnectedCBCListener(self.cbcList) ) # Ask the server what's connected # This is the panel that will have the list of I2C registers. I'll split up the # registers into subjects to make them more manageable. self.mainSettings = DisclosurePanel("Main Control Registers") self.channelMasks = DisclosurePanel("Channel Masks") self.channelTrims = DisclosurePanel("Channel Trims") self.callSettings = VerticalPanel("Load/Save States") self.callSettings.setBorderWidth(1) self.callSettings.add(HTML("<center>Load/Save State</center>")) cbcListAndCallSettings=VerticalPanel() cbcListAndCallSettings.add(self.cbcList) cbcListAndCallSettings.add(self.callSettings) self.mainPanel.add(cbcListAndCallSettings) self.mainPanel.add(self.mainSettings) self.mainPanel.add(self.channelMasks) self.mainPanel.add(self.channelTrims) self.callSettings.add( self.createStatesPanel()) self.mainSettings.add( self.createRegisterPanel(["FrontEndControl","TriggerLatency","HitDetectSLVS","Ipre1","Ipre2","Ipsf","Ipa","Ipaos","Vpafb","Icomp","Vpc","Vplus","VCth","TestPulsePot","SelTestPulseDel&ChanGroup","MiscTestPulseCtrl&AnalogMux","TestPulseChargePumpCurrent","TestPulseChargeMirrCascodeVolt","CwdWindow&Coincid","MiscStubLogic"]) ) self.channelMasks.add( self.createRegisterPanel(["MaskChannelFrom008downto001","MaskChannelFrom016downto009","MaskChannelFrom024downto017","MaskChannelFrom032downto025","MaskChannelFrom040downto033","MaskChannelFrom048downto041","MaskChannelFrom056downto049","MaskChannelFrom064downto057","MaskChannelFrom072downto065","MaskChannelFrom080downto073","MaskChannelFrom088downto081","MaskChannelFrom096downto089","MaskChannelFrom104downto097","MaskChannelFrom112downto105","MaskChannelFrom120downto113","MaskChannelFrom128downto121","MaskChannelFrom136downto129","MaskChannelFrom144downto137","MaskChannelFrom152downto145","MaskChannelFrom160downto153","MaskChannelFrom168downto161","MaskChannelFrom176downto169","MaskChannelFrom184downto177","MaskChannelFrom192downto185","MaskChannelFrom200downto193","MaskChannelFrom208downto201","MaskChannelFrom216downto209","MaskChannelFrom224downto217","MaskChannelFrom232downto225","MaskChannelFrom240downto233","MaskChannelFrom248downto241","MaskChannelFrom254downto249"]) ) self.channelTrims.add( self.createRegisterPanel(["Channel001","Channel002","Channel003","Channel004","Channel005","Channel006","Channel007","Channel008","Channel009","Channel010","Channel011","Channel012","Channel013","Channel014","Channel015","Channel016","Channel017","Channel018","Channel019","Channel020","Channel021","Channel022","Channel023","Channel024","Channel025","Channel026","Channel027","Channel028","Channel029","Channel030","Channel031","Channel032","Channel033","Channel034","Channel035","Channel036","Channel037","Channel038","Channel039","Channel040","Channel041","Channel042","Channel043","Channel044","Channel045","Channel046","Channel047","Channel048","Channel049","Channel050","Channel051","Channel052","Channel053","Channel054","Channel055","Channel056","Channel057","Channel058","Channel059","Channel060","Channel061","Channel062","Channel063","Channel064","Channel065","Channel066","Channel067","Channel068","Channel069","Channel070","Channel071","Channel072","Channel073","Channel074","Channel075","Channel076","Channel077","Channel078","Channel079","Channel080","Channel081","Channel082","Channel083","Channel084","Channel085","Channel086","Channel087","Channel088","Channel089","Channel090","Channel091","Channel092","Channel093","Channel094","Channel095","Channel096","Channel097","Channel098","Channel099","Channel100","Channel101","Channel102","Channel103","Channel104","Channel105","Channel106","Channel107","Channel108","Channel109","Channel110","Channel111","Channel112","Channel113","Channel114","Channel115","Channel116","Channel117","Channel118","Channel119","Channel120","Channel121","Channel122","Channel123","Channel124","Channel125","Channel126","Channel127","Channel128","Channel129","Channel130","Channel131","Channel132","Channel133","Channel134","Channel135","Channel136","Channel137","Channel138","Channel139","Channel140","Channel141","Channel142","Channel143","Channel144","Channel145","Channel146","Channel147","Channel148","Channel149","Channel150","Channel151","Channel152","Channel153","Channel154","Channel155","Channel156","Channel157","Channel158","Channel159","Channel160","Channel161","Channel162","Channel163","Channel164","Channel165","Channel166","Channel167","Channel168","Channel169","Channel170","Channel171","Channel172","Channel173","Channel174","Channel175","Channel176","Channel177","Channel178","Channel179","Channel180","Channel181","Channel182","Channel183","Channel184","Channel185","Channel186","Channel187","Channel188","Channel189","Channel190","Channel191","Channel192","Channel193","Channel194","Channel195","Channel196","Channel197","Channel198","Channel199","Channel200","Channel201","Channel202","Channel203","Channel204","Channel205","Channel206","Channel207","Channel208","Channel209","Channel210","Channel211","Channel212","Channel213","Channel214","Channel215","Channel216","Channel217","Channel218","Channel219","Channel220","Channel221","Channel222","Channel223","Channel224","Channel225","Channel226","Channel227","Channel228","Channel229","Channel230","Channel231","Channel232","Channel233","Channel234","Channel235","Channel236","Channel237","Channel238","Channel239","Channel240","Channel241","Channel242","Channel243","Channel244","Channel245","Channel246","Channel247","Channel248","Channel249","Channel250","Channel251","Channel252","Channel253","Channel254","ChannelDummy"]) ) self.mainSettings.add() self.echo=Label() self.mainPanel.add(self.echo)
def __init__( self ) : # This is the service that will be used to communicate with the DAQ software self.rpcService = GlibRPCService.instance() self.dataRunManager = DataRunManager.instance() self.mainPanel = VerticalPanel() self.mainPanel.setSpacing(15) self.controlValueEntries={} #controls the parameters of the s-curve #self.graphCanvas=GraphCanvas(self) #self.rpcService.getSCurveValues( ) self.mainSettings=VerticalPanel("Control Settings") self.startButton=VerticalPanel("Run Button") self.canvasPanel=VerticalPanel("Canvas") self.mainSettings.add(self.createControlPanel(["RangeLo","RangeHi","Steps"])) self.echo=Label() # A good print screen method self.launchButton=Button("Launch Now") self.launchButton.addClickListener(self) self.launchButton.setEnabled(True) saveHistogramsPanel=HorizontalPanel() self.saveHistogramsButton=Button("Save histograms") self.saveHistogramsButton.setEnabled(False) # Disable this button until data has been taken self.saveHistogramsButton.addClickListener(self) self.saveHistogramsFilename=TextBox("Filename") self.saveHistogramsFilename.setText("/tmp/scurveHistograms.root") self.saveHistogramsFilename.setVisibleLength(50) saveHistogramsPanel.add( self.saveHistogramsButton ) saveHistogramsPanel.add( self.saveHistogramsFilename ) self.mainPanel.add(self.mainSettings) self.mainPanel.add(self.startButton) self.mainPanel.add(self.launchButton) self.mainPanel.add(self.echo) self.mainPanel.add(saveHistogramsPanel) histogramDisplay=DisplayHistogramsPanel() self.mainPanel.add( HTML( '<br><b>Results:</b> (note that selecting a lot of channels can take a very long time)') ) self.mainPanel.add( histogramDisplay.getPanel() ) self.dataRunManager.registerEventHandler( self )