El 18 de mayo de 2015, 16:29, Rolando Paz <flx...@gmail.com> escribió:
> Hola Chema > > Los datos que yo recibo de la IBOB son datos signed de 32 bit, creo que lo > correcto seria "<l"? > > De acuerdo a tus observaciones, entonces el código debería ser así: > > #!/usr/bin/python > """ > Primera prueba que busca graficar los datos binarios enviados por UDP > desde la IBOB. > Rolando Paz > """ > import numpy as np > import math, struct, socket > import matplotlib.pyplot as plt > > HOST = '169.254.128.32' > PORT = 6969 > > #estableciendo el socket UDP > cs = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) > cs.connect((HOST, PORT)) > > #desempaquetando datos binarios enviados por el enlace UDP > pkglen = struct.calcsize('<l') > dataUDP = (struct.unpack('<f', s[i:i+pkglen]) for i in > range(0,len(resp),pkglen)) > Si recibes "unsigned 32bits", no lo desempaquetes entonces como floats. > > data = np.array(dataUDP,dtype=float) > Lo mismo, si son enteros, ¿necesitas que sean floats para algo? > plt.plot(data) > plt.show() > > Es correcto el código? > Lo más divertido del python es probar a ver si funciona. > > Saludos > > Rolando Paz > > > El 18 de mayo de 2015, 3:33, Chema Cortes <pych...@gmail.com> escribió: > >> >> >> El 17 de mayo de 2015, 1:02, Rolando Paz <flx...@gmail.com> escribió: >> >>> Hola nuevamente ! >>> >>> Este script lo que debe hacer es obtener los datos desde una tarjeta >>> llamada IBOB (que en algún momento comenté por acá), enviados por UDP, y >>> luego graficarlos. >>> >>> Los datos son FFTs (Fast Fourier Transform) que procesa la IBOB. >>> >>> Pueden darme su opinión? >>> >> >> Parece un código bastante directo. Si funciona, no hay más que decir. >> >> Tal como está, a la dirección de HOST le faltan las comillas y la >> variable cs de pronto se expande como controlsocket. Por lo demás, ¿es >> necesario desempaquetar los datos recibidos como "unsigned long" (>L)? Si >> los datos se envían como floats, igual sería mejor desempaquetarlos >> directamente como float (>f). Ten en cuenta que np.array no te hace una >> conversión binaria de un "long" en "float". >> >> Por otro lado, del socket puedes recibir cualquier cantidad de datos, >> pero en cambio sólo estás desempaquetando un único dato, algo ilógico >> porque debes esperar más si quieres hacer una gráfica con ello, y además da >> error. Supongo que lo que buscas es desempaquetar una secuencia de datos: >> >> pkglen = struct.calcsize(fmt) >> dataUDP = (struct.unpack('>f', s[i:i+pkglen]) for i in >> range(0,len(resp),pkglen)) >> >> >> >>> >>> #!/usr/bin/python >>> """ >>> Primera prueba que busca graficar los datos binarios enviados por UDP, >>> Rolando Paz >>> """ >>> import numpy as np >>> import math, struct, socket, pyfits >>> import matplotlib.pyplot as plt >>> >>> HOST = 169.254.128.32 >>> PORT = 6969 >>> print '\nConectando la iBOB...', >>> >>> #estableciendo el socket UDP >>> cs = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) >>> cs.connect((HOST, PORT)) >>> >>> resp = controlsocket.recv(4096) >>> print resp >>> >>> #desempaquetando datos binarios enviados por el enlace UDP >>> dataUDP = struct.unpack('>L',resp) >>> data = np.array(dataUDP,dtype=float) >>> plt.plot(data) >>> plt.show() >>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es@python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> FAQ: http://python-es-faq.wikidot.com/ >>> >>> >> >> >> -- >> Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": >> http://ch3m4.org/blog >> Buscador Python Hispano: http://ch3m4.org/python-es >> >> _______________________________________________ >> Python-es mailing list >> Python-es@python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > _______________________________________________ > Python-es mailing list > Python-es@python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": http://ch3m4.org/blog Buscador Python Hispano: http://ch3m4.org/python-es
_______________________________________________ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/