예제 #1
0
def start(g, gl):
    global geiger, geigerlog, clients_handler
    geiger = g
    geigerlog = gl
    clients_handler = geigerclient.ClientsHandler(geiger, geigerlog)

    ip = cfg.get('server', 'ip')
    port = cfg.getint('server', 'port')
    log.info("listening on %s:%d" % (ip, port))

    server = WSGIServer((ip, port), app, handler_class=WebSocketHandler)
    server.serve_forever()
예제 #2
0
def start(g,gl):
    global geiger, geigerlog, clients_handler
    geiger = g
    geigerlog = gl
    clients_handler = geigerclient.ClientsHandler(geiger,geigerlog)

    ip = cfg.get('server','ip')
    port = cfg.getint('server','port')
    log.info("listening on %s:%d" % (ip, port))

    server = WSGIServer((ip, port), app,
                        handler_class=WebSocketHandler)
    server.serve_forever()
    def run(self):
        if gpio_available:
            GPIO.setmode(GPIO.BCM)
            gpio_port = cfg.getint('geigercounter','gpio_port')
            GPIO.setup(gpio_port,GPIO.IN)
            GPIO.add_event_detect(gpio_port,GPIO.FALLING)
            GPIO.add_event_callback(gpio_port,self.tick)

            # I2C config for HV output
            i2c_addr = 0x19
            bus = smbus.SMBus(1) # I2C1 port
            bus.write_byte(i2c_addr, 0x71)
        else:
            TickSimulator(self).start()

        cpm_fifo = deque([],60)
        cpm_dtc_fifo = deque([],60)
        while True:
            time.sleep(1)

            # Statistical correction of tube dead-time
            if gpio_available:
                deadtime = cfg.getfloat('geigercounter','tube_dead_time')
                count_dtc = int(self.count/(1-(self.count*deadtime)))
            else:
                count_dtc = self.count
                
            cpm_fifo.appendleft(self.count)
            cpm_dtc_fifo.appendleft(count_dtc)

            self.cpm = int(sum(cpm_fifo)*60.0/len(cpm_fifo))
            self.cpm_dtc = int(sum(cpm_dtc_fifo)*60.0/len(cpm_dtc_fifo))
            self.cps = self.count
            self.cps_dtc = count_dtc
            
            ratefactor = cfg.getfloat('geigercounter','tube_rate_factor')
            self.edr = round(self.cpm_dtc * ratefactor,2)
            
            self.totalcount_dtc += (count_dtc - self.count)
            
            self.count = 0
            
            log.debug(self.get_state())
예제 #4
0
    def run(self):
        if gpio_available:
            GPIO.setmode(GPIO.BCM)
            gpio_port = cfg.getint('geigercounter','gpio_port')
            GPIO.setup(gpio_port,GPIO.IN)
            GPIO.add_event_detect(gpio_port,GPIO.FALLING)
            GPIO.add_event_callback(gpio_port,self.tick)
        else:
            TickSimulator(self).start()

        cpm_fifo = deque([],60)
        cpm_dtc_fifo = deque([],60)
        while True:
            time.sleep(1)

            # Statistical correction of tube dead-time
            if gpio_available:
                deadtime = cfg.getfloat('geigercounter','tube_dead_time')
                count_dtc = int(self.count/(1-(self.count*deadtime)))
            else:
                count_dtc = self.count
                
            cpm_fifo.appendleft(self.count)
            cpm_dtc_fifo.appendleft(count_dtc)

            self.cpm = int(sum(cpm_fifo)*60.0/len(cpm_fifo))
            self.cpm_dtc = int(sum(cpm_dtc_fifo)*60.0/len(cpm_dtc_fifo))
            self.cps = self.count
            self.cps_dtc = count_dtc
            
            ratefactor = cfg.getfloat('geigercounter','tube_rate_factor')
            self.edr = round(self.cpm_dtc * ratefactor,2)
            
            self.totalcount_dtc += (count_dtc - self.count)
            
            self.count = 0
            
            log.debug(self.get_state())