Beispiel #1
0
    def run(self):
  #  def __iffnit__(self,pipe,event_set,events_wait,event_hisparc,filename,id,hw):
        self.hw = [self.useConfig,self.bpc,self.dacs,self.hwdacs]
        signal.signal(signal.SIGINT, signal.SIG_IGN)
#        self.event_set = event_set
#        self.events_wait = events_wait
#        self.event_hisparc = event_hisparc
        self.counter = 0
        logger.addHandler(pipeHandler(self.pipe))
        logger.setLevel(logging.INFO)

        self.mpx=sd.setdet(self.id,self.hw)
        if not self.mpx:
            return
        self.data = numpy.empty([512,256], dtype=numpy.int16)
        sd.exttrigger(self.mpx)
        self.dw = dataWriter(self.filename,self.id,self.display)
        logger.info("Initialized")
        self.mainLoop()
Beispiel #2
0
    def mainLoop(self):
#        self.event_set.set()
#        for event in self.events_wait:
#            event.wait()
        lastframe = int(round(time.time() * 1000))
        self.starttime = (int)(round(time.time()*1000))
        if self.mpx.newFrame(True,True):
            self.mpx.readMatrix(self.data) #clear first event
        while True:
            if (self.pipe.poll()):
                d = self.pipe.recv()
                if (d=="stop"):
                    logger.info("Got stop signal")
                    self.mpx.closeShutter()
                    self.dw.stop()
                    break
            if self.mpx.newFrame(True,True):
                lastframe = int(round(time.time() * 1000))
#                self.event_hisparc.wait()
                self.mpx.readMatrix(self.data)
                #if (self.counter<10):
                #    logger.info(str(self.counter) + " " +  str((int)(round(time.time()*1000)-self.starttime)) )
                self.dw.addWrite((int)(round(time.time()*1000)-self.starttime),self.data)
                self.counter = self.counter + 1

            else:
                #logger.info(int(round(time.time()*1000))-lastframe)
                if int(round(time.time()*1000))-lastframe>1000*60:
                    logger.info("setting exttrigger again")
                    lastframe = int(round(time.time() * 1000))
                    sd.exttrigger(self.mpx)
                time.sleep(0.01)
        #done
        sd.originaltrigger(self.mpx)
#        self.mpx.closeShutter()
        logger.info("done, counted: " + str(self.counter) + " events")