コード例 #1
0
ファイル: emu_co.py プロジェクト: SergioLaime/txscada
    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())
コード例 #2
0
ファイル: emu_co.py プロジェクト: D3f0/txscada
 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())
コード例 #3
0
    def di_data_slot(self, n_uc, dis):
        #from twisted.python import log
        if n_uc == self.n_uc:
            #self.bit_update()
            port = bitfield(dis[self.n_port])

            bits = port[self.n_bit:self.n_bit + 2]
            self.bit_update(bits)
コード例 #4
0
ファイル: sem_query.py プロジェクト: D3f0/txscada
    def di_data_slot(self, n_uc, dis):
        # from twisted.python import log
        if n_uc == self.n_uc:
            # self.bit_update()
            port = bitfield(dis[self.n_port])

            bits = port[self.n_bit : self.n_bit + 2]
            self.bit_update(bits)
コード例 #5
0
 def actualizar(self, co, uc, svs, dis, ais, evs):
     ''' Actualizar '''
     if self.co == co and self.uc == uc:
         #1°b : 33 22 11 00
         #2°b : XX 66 55 44
         #3°b : XX 77 88 99
         #cga = bit 3 port 4
         print "entro a actualizar"
         movs = qApp.instance().cfg.movimientos
         if not bitfield(dis[movs.cga.port])[movs.cga.bit]:
             self.bit_update(4)
         else:
             log.msg(' '.join(map(lambda x: ('%x' % x).upper(), dis)))
             a, b = movs.pos[self.n_movi]
             l = copy(dis[0:3])
             l.reverse()
             bf = bitfield(l)
             self.bit_update(bf[a:b])
     pass
コード例 #6
0
ファイル: esquina.py プロジェクト: D3f0/txscada
 def actualizar(self,co,uc,svs,dis,ais,evs):
     ''' Actualizar '''
     if self.co == co and self.uc == uc:
         #1°b : 33 22 11 00
         #2°b : XX 66 55 44
         #3°b : XX 77 88 99
         #cga = bit 3 port 4
         print "entro a actualizar"
         movs = qApp.instance().cfg.movimientos
         if not bitfield(dis[movs.cga.port])[movs.cga.bit]:
             self.bit_update(4)
         else:
             log.msg(' '.join(map(lambda x: ('%x' % x).upper(), dis)))
             a,b = movs.pos[self.n_movi]
             l = copy(dis[0:3])
             l.reverse()
             bf = bitfield(l)
             self.bit_update(bf[a:b])
     pass