Descripción del campo binario es:Python, cómo decodificar decimal codificado en binario (BCD)
número de llamadas, expresada con código BCD comprimido, y los bits sobrantes se rellenan con “0xF”
He intentado imprimir con el formato struct '16c'
y obtengo: ('3', '\x00', '\x02', '\x05', '\x15', '\x13', 'G', 'O', '\xff', '\xff', '\xff', '\xff', '\xff', '\xff', '\xff', '\xff')
y si uso '16b'
obtengo (51, 0, 2, 5, 21, 19, 71, 79, -1, -1, -1, -1, -1, -1, -1, -1)
. Y no es correcto, debería obtener el número de teléfono, y los números anteriores no son válidos.
print struct.unpack_from('>16b', str(data.read()),offset=46)
Arriba está el código que no funciona y obtengo números inválidos. ¿Con qué formato debería desempaquetar ese campo de 16 bytes y cómo convertir el código BCD?
Muchas gracias. – Whit3H0rse
+1 ¡Muy elegante y pitónico! – Kos