Me gustaría escribir una aplicación para iPhone/iPad que pueda comunicarse a través de una conexión USB con un programa para Mac o PC (que yo también escribiría). ¿Alguien sabe cómo podría hacer esto? (Me doy cuenta de que puedo tener que hacer jailbreak en mi iPad)Comunicación USB entre iPad y Mac o PC
Respuesta
¿Tiene que ser una conexión USB?
Si no es así, el GCDAsyncSocket de Robbie Hanson es ideal para conectar todo tipo de dispositivos Apple. Lo usé el año pasado para conectar un montón de iPads a una sola aplicación que se ejecuta en un Mac mini.
La comunicación de socket a través de USB (USBMux) puede satisfacer sus necesidades. Cuando un iPad o iPhone se conecta a una Mac, habrá una descripción del dispositivo/var/run/usbmuxd. Puede crear un socket y conectarlo a/var/run/usbmuxd y enviar/recibir datos empaquetados a/o desde el dispositivo iOS. Los datos deben ser envueltos.
Aquí hay una breve referencia de theiphonewiki http://theiphonewiki.com/wiki/index.php?title=Usbmux. Lo que puedo proporcionar es el código de muestra para conectarse a usbmuxd.
struct sockaddr_un endpoint;
size_t size;
_usbMuxSocket = socket(PF_LOCAL, SOCK_STREAM, 0);
endpoint.sun_family = AF_LOCAL;
strncpy(endpoint.sun_path, "/var/run/usbmuxd", 17);
size = (offsetof (struct sockaddr_un, sun_path)
+ strlen (endpoint.sun_path) + 1);
connect(_usbMuxSocket, (struct sockaddr *) &endpoint, size);
Después de eso tienes que "conectar" al puerto que tu aplicación escucha en el iPad. El proceso de "conexión" discutido en la lista de la página wiki arriba en la sección Secuencia de eventos. Después del trabajo de preparación realizado, puede usar el socket para enviar y leer datos.
¿Hay alguna razón por la que no puedas simplemente llamar a 'abrir' y usar ese fd resultante? – Dustin
- 1. PC a PC Comunicación USB
- 2. Comunicación entre Android y PC
- 3. Windows Mobile (C#) - Comunicación entre teléfono y PC
- 4. comunicación USB Android
- 5. Comunicación USB API
- 6. WiFi-Comunicación directa entre Mac/Windows y Android
- 7. Sinergia entre las teclas de acceso directo de mac y pc mac
- 8. Interacción del iPhone entre la aplicación para PC y iPhone usando USB
- 9. Comunicación USB con Android/Arduino
- 10. Encienda la PC con dispositivo USB
- 11. Comunicación serial entre Java RXTX y Arduino
- 12. Comunicación serial con Arduino UNO y Mac usando bluetooth mate
- 13. Comunicación entre SAP y C#
- 14. Comunicación de accesorios para iPad a través de UART
- 15. Comunicación entre C++ y actionscript 3
- 16. Android: Comunicación USB Android <-> dispositivo externo
- 17. MVP y comunicación entre widgets GWT
- 18. C# comunicación entre hilos
- 19. MVVM: comunicación entre el modelo y ViewModels
- 20. Comunicación SSL entre aplicaciones Java y C#
- 21. Comunicación entre Android Java y Phonegap Javascript?
- 22. Comunicación segura entre iPhone y servidor?
- 23. Comunicación entre Rails y Ruby EventMachine Process
- 24. PC con Windows como un esclavo USB para emular una memoria USB
- 25. comunicación entre servlets remotos
- 26. Backbone.js: comunicación entre vistas
- 27. Desarrollo de iPad sin mac
- 28. Comunicación entre aplicaciones Rails
- 29. Comunicación iframe entre dominios
- 30. Comunicación entre dos hilos
Si es posible, definitivamente tendrá que hacer jailbreak: sé que no puede hacer esto con el SDK normal. –
Una idea sería intentar usar el puerto serie (UART o /dev/tty.iap). No estoy seguro si puede hacerlo sin ningún hardware adicional, pero aquí hay algunos enlaces sobre el tema: http://devdot.wikispaces.com/Iphone+Serial+Port+Tutorial http://hcgilje.wordpress.com/2010/02/15/iphone-serial-communication/ – adig