Ejemplo n.º 1
0
 def __init__(self,num):
     self.obj=spidev.SpiDev()
     self.obj.open(num,0)
     if num==0:
         self.GDO0Pin=self.spi0_gdo0
     if num==1:
         self.GDO0Pin=self.spi1_gdo0
     fagpio.unexport(self.GDO0Pin)
     self.GDO0State=False
     self.Reset()
Ejemplo n.º 2
0
 def run(self):
     gpio=fagpio.gpio(self.gpio)
     gpio.edge=self.edge
     gpio.direction=self.dir
     gpio.active=self.act
     s_id=str(self.id)
     s_gpio=str(self.gpio)
     logging.critical('gpio communication: start sensor '+s_id+' on gpio '+s_gpio+' with edge '+ self.edge)
     while self.running:
         events=gpio.epoll_obj.poll(1)
         logging.debug('gpio communication: sensor id ' + s_id + ': no event')
         for fileno,event in events:
             logging.debug('gpio communication: event file:'+str(fileno)+' event:'+str(event)+' file:'+str(gpio.fvalue.fileno()))
             if fileno==gpio.fvalue.fileno():
                 data=s_id+':'+str(gpio.value)
                 logging.info('gpio communication: sensor id ' + s_id + ' gpio ' + s_gpio + ': ' + data)
                 daemon.queue.add(data)
     fagpio.unexport(self.gpio)
     logging.critical('gpio communication: unexport '+str(self.gpio)+' gpio')
     logging.critical('gpio communication: stop sensor '+s_id+' on gpio '+s_gpio+' with edge '+ self.edge)
Ejemplo n.º 3
0
                for fileno,event in events:
                    if fileno==gpio.fvalue.fileno():
                        now=time.time()
                        diff=round(now-t,2)
                        t=now
                        if i>1:
                            ec.inc()
                            ec.period(diff)
                            logging.info('elec communication: '+str(ec.value)+' '+str(diff)+' '+ str(ec.act_pow))
                        else:
                            i+=1
                            logging.info('elec communication: init..')
        except Exception,e:
            logging.error('elec communication: '+str(e))
        finally:
            fagpio.unexport(elec_gpio)
            logging.critical('elec communication: stop')


class daqd(Daemon):

    def run(self):
        try:
            self.queue = queue_thread()
            self.queue.start()
            self.cc1101_control=cc1101_control_thread()
            self.cc1101_control.start()
            self.cc1101_com=cc1101_com_thread()
            self.cc1101_com.start()
            self.elec_control=elec_control_thread()
            self.elec_control.start()
Ejemplo n.º 4
0
                                logging.info('gpio communication: sensor ' + s_id + ' counter init..')
            else:
                while self.running:
                    events = gpio.epoll_obj.poll(1)
                    # logging.debug('gpio communication: sensor id ' + s_id + ': no event')
                    for fileno, event in events:
                        # logging.debug('gpio communication: event file:'+str(fileno)+' event:'+str(event)+' \
                        # file:'+str(gpio.fvalue.fileno()))
                        if fileno == gpio.fvalue.fileno():
                            # data=s_id+':'+str(gpio.value)
                            logging.debug('gpio communication: sensor ' + s_id + ' signal')
                            daemon.queue_out.add({'sensor_id':s_id,'value':1,'action_id':sensors[self.id].action_id})
        except Exception, e:
            logging.error('gpio communication: ', exc_info=True)
        finally:
            fagpio.unexport(self.gpio)
            sensors[self.id].starting = False
            #logging.critical('gpio communication: unexport ' + str(self.gpio) + ' gpio')
            logging.critical('gpio communication: stop sensor:' + s_id + ' gpio:' + s_gpio + ' \
edge:' + self.edge + ' counter:' + str(self.counter))


class Daqd(Daemon):
    @error_logger
    def run(self):
        self.queue_out = QueueThread('out')
        self.queue_out.start()
        self.queue_in = QueueThread('in')
        self.queue_in.start()
        self.daqd_control = DaqdControlThread()
        self.daqd_control.start()
Ejemplo n.º 5
0
 def GDO0Close(self):
     self.epoll_obj.close()
     fagpio.unexport(self.GDO0Pin)
     self.GDO0State=False
Ejemplo n.º 6
0
                events=gpio.epoll_obj.poll(1)
                for fileno,event in events:
                    if fileno==gpio.fvalue.fileno():
                        now=time.time()
                        diff=round(now-t,2)
                        t=now
                        if i>1:
                            ec.inc()
                            ec.period(diff)
                            print(str(ec.value)+' '+str(diff)+' '+ str(ec.act_pow))
                        else:
                            i+=1
                            print('.')
        except Exception,e:
            print('elec communication error: '+str(e))
        finally:
            fagpio.unexport(num)
            print('elec communication thread stop')
main=elec_com_thread()
main.start()
elec=elec_control_thread()
elec.start()
while True:
    try:
        time.sleep(1)
    except:
        print('stop')
        elec.stop()
        main.stop()
        sys.exit(0)