Foros del Web » Programando para Internet » Python »

Como saber que esta llegando por el puerto usb

Estas en el tema de Como saber que esta llegando por el puerto usb en el foro de Python en Foros del Web. hola amigos espero me puedan ayudar, tengo la siguiente situacion, tengo conectado por usb un equipo y quiseria saber que se esta transmitiendo ? aclaro ...
  #1 (permalink)  
Antiguo 26/12/2013, 08:30
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Como saber que esta llegando por el puerto usb

hola amigos espero me puedan ayudar, tengo la siguiente situacion, tengo conectado por usb un equipo y quiseria saber que se esta transmitiendo ?

aclaro no pretendo que me hagan el trabajo solo pretendo que me den indicaciones para saber si es viable realizar una apliacion con python para este fin
  #2 (permalink)  
Antiguo 26/12/2013, 09:45
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 1 mes
Puntos: 1329
Respuesta: Como saber que esta llegando por el puerto usb

Es viable, yo hice algo hace tiempo con la librería PyUSB: https://github.com/walac/pyusb especificamente fue esto: http://www.forosdelweb.com/f130/mult...id-usb-976759/

Saludos
__________________
Grupo Telegram Docker en Español
  #3 (permalink)  
Antiguo 26/12/2013, 19:31
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: Como saber que esta llegando por el puerto usb

Carlangueitor gracias por responder, el dispositivo que tengo conectado por usb es http://www.datatranslation.com/produ...e-and-voltage/ por cada canal se transmiten 100 muestras por segundo entonces la idea es enviar todos estos datos a una base de datos

si es viable hacer esto con python?
  #4 (permalink)  
Antiguo 26/12/2013, 19:49
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Como saber que esta llegando por el puerto usb

Si, obviamente no guardas las 100 muestras cada segundo.

Haces un análisis estadístico cada n segundos sobre esas n*100 muestras. Ese calculo puede ser algo tan sencillo como un promedio. O algo tan complejo como una función personalizada para la tarea que necesitas hacer.

Fíjate que definir n es importante aquí, porque generarías 1 registro cada n segundos. O si, es bastante constante y hay pocos cambios entonces solo guardarías los cambios. Pero eso dependerá de ti.

Mas o menos, así calculan la resistencia de un potenciomentro en determinado momento.
  #5 (permalink)  
Antiguo 26/12/2013, 20:54
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: Como saber que esta llegando por el puerto usb

la librería PyUSB es posible instalar en centos?

obtengo este error
Cita:
import usb.core
ImportError: No module named core

Última edición por Montes28; 26/12/2013 a las 21:05
  #6 (permalink)  
Antiguo 26/12/2013, 22:54
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Como saber que esta llegando por el puerto usb

Si, si es posible.

Usa pip para instalar la librería. Porque PyUSB tiene 2 versiones 0.x y 1.x. La 1.x es la tiene core.

Código:
sudo pip install -U pyusb
Si no tienes pip (en distros debian)
Código:
sudo apt-get install python-pip
O en distros basados en fedora
Código:
sudo yum install python-pip
  #7 (permalink)  
Antiguo 27/12/2013, 07:25
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: Como saber que esta llegando por el puerto usb

razpeitia gracias por responder hice lo que me indicas

primero instale el pip
Código BASH:
Ver original
  1. yum install python-pip

despues
Código BASH:
Ver original
  1. # pip install -U pyusb
  2. Requirement already up-to-date: pyusb in /usr/lib/python2.6/site-packages
  3. Cleaning up...

Cuando ejecuto el script obtengo este error
Código BASH:
Ver original
  1. # python usb.py
  2. Traceback (most recent call last):
  3.   File "usb.py", line 1, in <module>
  4.     import usb.core
  5.   File "/root/Escritorio/programas_python/usb.py", line 1, in <module>
  6.     import usb.core
  7. ImportError: No module named core
  #8 (permalink)  
Antiguo 27/12/2013, 10:58
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 1 mes
Puntos: 1329
Respuesta: Como saber que esta llegando por el puerto usb

Desinstala la versión anterior.


Saludos
__________________
Grupo Telegram Docker en Español
  #9 (permalink)  
Antiguo 27/12/2013, 11:59
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Como saber que esta llegando por el puerto usb

No ese no es el problema.

El problema es que tu modulo se llama usb.py y esto choca al hacer la resolución del modulo. Ponle otro nombre a tu modulo.
  #10 (permalink)  
Antiguo 28/12/2013, 12:24
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: Como saber que esta llegando por el puerto usb

hola amigos hice lo que me indicaron

Primero hice lo que me indico razpeitia
cambien el nombre de usb.py a prueba3.py
1.
Código BASH:
Ver original
  1. # python prueba3.py
  2. Traceback (most recent call last):
  3.   File "/root/Escritorio/programas_python/usb.py", line 1, in <module>
  4.     import usb.core
  5.   File "/root/Escritorio/programas_python/usb.py", line 1, in <module>
  6.     import usb.core
  7. ImportError: No module named core

2. lo ejecute con python2.7
Código BASH:
Ver original
  1. # python2.7 prueba3.py
  2.   File "prueba3.py", line 1
  3. SyntaxError: Non-ASCII character '\xd1' in file prueba3.py on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

y segun lo que me indica Carlangueitor seria desistalar el python 2.6?

Código BASH:
Ver original
  1. # python --version
  2. Python 2.6.6
  3.  
  4. # python
  5. python            python2.6         python2.7-config  
  6. python2           python2.7         python-pip

No logro solucionar mi problema
  #11 (permalink)  
Antiguo 28/12/2013, 13:20
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Como saber que esta llegando por el puerto usb

El primer error todavía lo tienes nombrado como usb.py (también borra el .pyc).

/root/Escritorio/programas_python/usb.py (Por favor borra eso).

El segundo error es porque no le especificaste el encoding a tu archivo.

#coding: utf-8
  #12 (permalink)  
Antiguo 28/12/2013, 18:13
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: Como saber que esta llegando por el puerto usb

razpeitia gracias por responder, hice lo que me indicas pero ya obtengo este error

Código BASH:
Ver original
  1. # python prueba3.py
  2. Traceback (most recent call last):
  3.   File "prueba3.py", line 10, in <module>
  4.     raise ValueError('Device not found')
  5. ValueError: Device not found


El codigo que quiero probar es el de la pagina http://pyusb.sourceforge.net/docs/1.0/tutorial.html
Código Python:
Ver original
  1. #coding: utf-8
  2. import usb.core
  3. import usb.util
  4.  
  5. # find our device
  6. dev = usb.core.find(idVendor=0xfffe, idProduct=0x0001)
  7.  
  8. # was it found?
  9. if dev is None:
  10.     raise ValueError('Device not found')
  11.  
  12. # set the active configuration. With no arguments, the first
  13. # configuration will be the active one
  14. dev.set_configuration()
  15.  
  16. # get an endpoint instance
  17. cfg = dev.get_active_configuration()
  18. interface_number = cfg[(0,0)].bInterfaceNumber
  19. alternate_settting = usb.control.get_interface(interface_number)
  20. intf = usb.util.find_descriptor(
  21.     cfg, bInterfaceNumber = interface_number,
  22.     bAlternateSetting = alternate_setting
  23. )
  24.  
  25. ep = usb.util.find_descriptor(
  26.     intf,
  27.     # match the first OUT endpoint
  28.     custom_match = \
  29.     lambda e: \
  30.         usb.util.endpoint_direction(e.bEndpointAddress) == \
  31.         usb.util.ENDPOINT_OUT
  32. )
  33.  
  34. assert ep is not None
  35.  
  36. # write the data
  37. ep.write('test')
  #13 (permalink)  
Antiguo 28/12/2013, 19:18
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Como saber que esta llegando por el puerto usb

Es porque no encuentra tu dispositivo y eso es porque tal como dice en la pagina te dicen que supongas que idVendor=0xfffe idProduct=0x0001, pero tienes que cambiar eso dependiendo de tu dispositivo.

Otra cosa, usualmente si conectas algo a USB es porque ya tienes definido un protocolo de como se comunican 2 dispositivos si no conoces te recomiendas que leas al respecto (y eso ya es especifico de tu dispositivo).
  #14 (permalink)  
Antiguo 28/12/2013, 19:28
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: Como saber que esta llegando por el puerto usb

razpeitia gracias por responder, osea que puedo ensayar el script con una memoria usb?
  #15 (permalink)  
Antiguo 28/12/2013, 19:45
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Como saber que esta llegando por el puerto usb

Si, si puedes. Pero tendrás que seguir el protocolo de memoria usb y no de lo que sea que estés tratando de comunicar. En otras palabras si puedes probar PyUSB y una memoria USB.

De hecho las memorias USB regularmente implementan el protocolo USB MSC o a veces MTP (en caso que también sea un dispositivo multimedia).

Claro que si lo que estas tratando de comunicar no tienes el protocolo, entonces no vas a poder implementarlo.

Etiquetas: ip, puerto, usb
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:45.