Ejemplo n.º 1
0
    def do_reply(self, pkg, t_inicio):
        log.msg('Respuesta a Peticion de estados y eventos luego de %.5f' %
                (time.time() - t_inicio))
        bf1 = bitfield(0)
        bf1[0:2] = self.mov0()
        bf1[2:4] = self.mov1()
        #bf1[4:6] = self.mov2()
        #bf1[6:8] = self.mov3()

        bf2 = bitfield(0)
        #bf2[0:2] = self.mov4()
        #bf2[2:4] = self.mov5()
        #bf2[4:6] = self.mov6()

        bf3 = bitfield(0)
        #bf3[4:6] = self.mov7()
        #bf3[2:4] = self.mov8()
        #bf3[0:2] = self.mov9()

        # Generamos el payload
        payload = [
            0x03,  # 2 de Variables de estado 
            0xf3,
            0x3a,
            0x05,  # 4 de DI
            int(bf1),
            int(bf2),
            int(bf3),
            255,
            0x05,  # 2 analogicas de 2 bytes
            randint(0, 3),
            randint(0, 255),
            randint(0, 3),
            randint(0, 255),
        ]

        cnt_events = randint(0, 4)

        for _ in range(cnt_events):
            ints = EventoCodigo.create_ints(
                tipo=randint(0, 2),
                prio=randint(0, 2),
                codigo=randint(0, 16),
                port=randint(0, 63),
                bit=randint(0, 8),
                status=randint(0, 1),
                date_time=datetime.now(),
                cseg=randint(0, 99),
                dmseg=randint(0, 99),
            )
            payload += ints
        resp = pkg.response(payload)
        print "Size final: %d, cantidad de eventos %d" % (len(payload),
                                                          cnt_events)
        print "Enviando payload", resp.get_payload()
        print "Paquete a enviar:", ' '.join(
            (("%.2x" % ord(c)).upper() for c in resp.octet_str()))
        self.transport.write(resp.octet_str())
Ejemplo n.º 2
0
 def save_events(self, session, id_uc, ev_data):
     # Eventos
     len_evs = len(ev_data)
     log.msg('Salvando %d eventos' % (len_evs / 8))
     # TODO: Ver si no me estoy comiendo un evento
     for _, start, stop in izip(count(0), xrange(0, len_evs, 8), xrange(8, len_evs + 1, 8)):
         data = ev_data[start:stop]
         #log.msg('Data: %s' % data)
         ev = Evento(data)
         
         session.add(EV(id_uc, ev.port, ev.bit, ev.event, ev.tipo, ev.codigo, ev.prio, ev.datetime(),
                        ))
Ejemplo n.º 3
0
 def do_reply(self, pkg, t_inicio):
     log.msg('Respuesta a Peticion de estados y eventos luego de %.5f' % (time.time() - t_inicio))
     bf1 = bitfield(0)
     bf1[0:2] = self.mov0()
     bf1[2:4] = self.mov1()
     #bf1[4:6] = self.mov2()
     #bf1[6:8] = self.mov3()
     
     bf2 = bitfield(0)
     #bf2[0:2] = self.mov4()
     #bf2[2:4] = self.mov5()
     #bf2[4:6] = self.mov6()
     
     bf3 = bitfield(0)
     #bf3[4:6] = self.mov7()
     #bf3[2:4] = self.mov8()
     #bf3[0:2] = self.mov9()
     
     
     # Generamos el payload
     payload = [0x03, # 2 de Variables de estado 
                  0xf3, 0x3a,
                  
                  0x05,  # 4 de DI
                  int(bf1),
                  int(bf2),
                  int(bf3),
                  255,
                  
                  0x05,  # 2 analogicas de 2 bytes
                  randint(0,3), randint(0,255),
                  randint(0,3), randint(0,255),
                 ]
     
     cnt_events = randint(0, 4)
     
     for _ in range(cnt_events):
         ints = EventoCodigo.create_ints(tipo = randint(0,2),
                                         prio = randint(0,2),
                                         codigo = randint(0,16),
                                         port = randint(0,63),
                                         bit = randint(0,8),
                                         status = randint(0,1),
                                         date_time=datetime.now(),
                                         cseg = randint(0,99),
                                         dmseg = randint(0,99),
                                         )
         payload += ints
     resp = pkg.response(payload)
     print "Size final: %d, cantidad de eventos %d" % (len(payload), cnt_events)
     print "Enviando payload", resp.get_payload()
     print "Paquete a enviar:", ' '.join(( ("%.2x" % ord(c)).upper() for c in resp.octet_str()))
     self.transport.write(resp.octet_str())
Ejemplo n.º 4
0
    def save_events(self, session, id_uc, ev_data):
        # Eventos
        len_evs = len(ev_data)
        log.msg('Salvando %d eventos' % (len_evs / 8))
        # TODO: Ver si no me estoy comiendo un evento
        for _, start, stop in izip(count(0), xrange(0, len_evs, 8),
                                   xrange(8, len_evs + 1, 8)):
            data = ev_data[start:stop]
            #log.msg('Data: %s' % data)
            ev = Evento(data)

            session.add(
                EV(
                    id_uc,
                    ev.port,
                    ev.bit,
                    ev.event,
                    ev.tipo,
                    ev.codigo,
                    ev.prio,
                    ev.datetime(),
                ))