Estoy trabajando con Sockets IPv6 y UDP utilizando python-2.7 . Me estoy enfocando particularmente en Multidifusión IPv6 ff02::1
donde cada dispositivo de dirección de enlace local (con fe80::
) responde a las consultas de una entidad del servidor central.
Tengo microcontroladores conectados a estos dispositivos que necesitan un programa en forma de .ihex
( Intel Hex ). Un fragmento del archivo es el siguiente:
:103100005542200135D0085A8245381131400031EE
:103110003F4002000F9308249242381120012F8370
:103120009F4F1E390011F8233F4036000F930724AC
Creo que la forma de hacerlo es usando struct
y usando funciones como pack
y unpack
pero no estoy seguro de si enviar tal ihex archivo que está en el tamaño de unos pocos Kbs Resolvería el propósito.
¿Puedo hacer algo como:
#!/usr/bin/env python
from struct import pack, unpack
import socket
. # Create a UDP socket and Bind it..
.
myHexCode = open("Filename.ihex")
dataToSend = struct.pack('Paramaters for packing', myHexCode)
.
. Send data to socket..
¿Cuáles serán los parámetros de embalaje? (deberia hacer !
o Endian grande o pequeño >
o <
para el archivo hexadecimal?)
Nota
No puedo usar scp
ni sftp
ya que ambos protocolos funcionan en TCP y no soy compatible con Multidifusión y estoy trabajando en un entorno donde las pérdidas en la red pueden ser más altas ( Medio inalámbrico )
fuente