Example #1
0
 def get_map(self):
     """Devuelve el mapa completo del tag."""
     response = self.parent.rfid.get_tags()[0]
     dmp = []
     if response is not None and response['number'] == 1:
         serial = response['serial_number'][0]
         retries = 5
         bloques = []
         while retries > 0:
             rfid_data = self.parent.rfid.read_blocks(
                 serial, 0, BLOQUES_TAG - 1)
             if rfid_data is None or rfid_data[3] == MSG_ERROR:
                 retries -= 1
                 continue
             retries = 0
             for block in rfid_data[0]:
                 bloques.extend(block['bytes'])
             for i in range(0, BLOQUES_TAG):
                 offset = i * 4
                 bloque = bloques[offset:offset + 4]
                 hexa = array_to_printable_string(bloque, ' ')
                 hexa2 = hexa3 = ''
                 for c in bloque:
                     # Me fijo si es imprimible
                     if c >= 32 and c <= 126:
                         hexa2 += chr(c)
                     else:
                         hexa2 += '.'
                     hexa3 += str(c).zfill(3) + ' '
                 dmp.append('Block %02d: %s | %s | %s' %
                            (i, hexa, hexa2, hexa3))
     return dumps(dmp)
Example #2
0
 def get_map(self):
     response = self.parent.rfid.get_tags()[0]
     dmp = []
     if response is not None and response['number'] == 1:
         serial = array_to_string(response['serial_number'][0])
         retries = 5
         bloques = []
         while retries > 0:
             rfid_data = self.parent.rfid.read_blocks(serial, 0, 27)
             if rfid_data is None or rfid_data[3] == MSG_ERROR:
                 retries -= 1
                 continue
             retries = 0
             for block in rfid_data[0]:
                 bloques.extend(block['bytes'])
             for i in range(0, 28):
                 offset = i * 4
                 bloque = bloques[offset:offset + 4]
                 hexa = array_to_printable_string(bloque, ' ')
                 hexa2 = hexa3 = ''
                 for c in bloque:
                     # Me fijo si es imprimible
                     if c >= 32 and c <= 126:
                         hexa2 += chr(c)
                     else:
                         hexa2 += '.'
                     hexa3 += str(c).zfill(3) + ' '
                 dmp.append('Block %02d: %s | %s | %s' % (i, hexa, hexa2,
                                                          hexa3))
     return dumps(dmp, encoding='latin-1')
Example #3
0
 def _get_normalized_serial(self, serial):
     """ Dado un numero de serie de chip en un lista de decimales,
     devuelve el mismo en string formateado.
         In:  [224, 4, 1, 0, 126, 33, 8, 141]
         Out: "E00401007E21088D"
     """
     #return "".join([hex(x)[2:].zfill(2).upper() for x in serial])
     return array_to_printable_string(serial)
Example #4
0
 def _get_normalized_serial(self, serial):
     """ Dado un numero de serie de chip en un lista de decimales,
     devuelve el mismo en string formateado.
         In:  [224, 4, 1, 0, 126, 33, 8, 141]
         Out: "E00401007E21088D"
     """
     #return "".join([hex(x)[2:].zfill(2).upper() for x in serial])
     return array_to_printable_string(serial)
Example #5
0
 def a_qr_str(self, cod_categoria=None, con_dnis=True):
     """Devuelve la informacion del recuento para almacenar en qr."""
     # tipo de qr
     # cod_mesa
     encoded_data = string_to_array(self.a_tag(cod_categoria, con_dnis))
     datos = [int(TOKEN, 16), len(encoded_data) * 2]
     datos.extend(encoded_data)
     todo = "R" + array_to_printable_string(datos)
     return todo
Example #6
0
 def a_qr_str(self, cod_categoria=None, con_dnis=True):
     """Devuelve la informacion del recuento para almacenar en qr."""
     # tipo de qr
     # cod_mesa
     encoded_data = string_to_array(self.a_tag(cod_categoria, con_dnis))
     datos = [int(TOKEN, 16), len(encoded_data) * 2]
     datos.extend(encoded_data)
     todo = "R" + array_to_printable_string(datos)
     return todo