2011-09-02 16 views
12

Mi piacerebbe scrivere un'app per iPhone/iPad in grado di comunicare tramite una connessione USB con un programma Mac o PC (che vorrei anche scrivere). Qualcuno sa come potrei fare questo? (Mi rendo conto che potrebbe essere necessario effettuare il jailbreak del mio iPad)Comunicazione USB tra iPad e Mac o PC

+1

Se è possibile, è necessario eseguire il jailbreak: so che non è possibile farlo con il normale SDK. –

+0

Un'idea sarebbe provare a utilizzare la porta seriale (UART o /dev/tty.iap). Non sono sicuro che tu possa farlo senza hardware aggiuntivo, ma qui ci sono alcuni link sull'argomento: http://devdot.wikispaces.com/Iphone+Serial+Port+Tutorial http://hcgilje.wordpress.com/2010/02/15/iphone-serial-communication/ – adig

risposta

-1

Deve essere una connessione USB?

In caso contrario, GCDAsyncSocket di Robbie Hanson è ottimo per il collegamento di tutti i tipi di dispositivi Apple. L'ho usato l'anno scorso per collegare un gruppo di iPad a una singola app in esecuzione su un Mac mini.

5

La comunicazione socket tramite USB (USBMux) potrebbe soddisfare le vostre esigenze. Quando un iPad o un iPhone si collegano a un Mac, ci sarà una descrizione del dispositivo/var/run/usbmuxd. È possibile creare un socket e collegarlo a/var/run/usbmuxd e inviare/ricevere dati pacchettizzati a/o dal dispositivo iOS. I dati dovrebbero essere avvolti.

Ecco un breve riferimento da theiphonewiki http://theiphonewiki.com/wiki/index.php?title=Usbmux. Quello che posso fornire è il codice di esempio per la connessione 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); 

Dopodiché è necessario "connettersi" alla porta che l'App ascolta su iPad. Il processo di "connessione" discusso nella lista della pagina wiki sopra nella sezione Sequenza di eventi. Dopo aver completato il lavoro di preparazione, è possibile utilizzare il socket per inviare e leggere i dati.

+0

C'è una ragione per cui non puoi semplicemente chiamare "open" e usare quel file risultante? – Dustin

Problemi correlati