2013-01-24 13 views
5

Sto pianificando un protocollo di comunicazione da utilizzare tra un dispositivo Android e un sensore personalizzato che utilizzerebbe un modulo Bluetooth commerciale. Vorrei utilizzare il profilo SPP che si dice "fornisca all'utente un flusso di dati semplice e affidabile, simile al TCP".Suggerimenti per la gestione degli errori Bluetooth Android RFCOMM/SPP

Non ho molta familiarità con la tecnologia Bluetooth e ho alcune domande sulla progettazione di tale protocollo.

Prima di tutto non mi è chiaro se devo preoccuparmi che i dati corrotti vengano trasferiti o meno. Lo stack di protocoll sottostante garantirà che i byte che ho letto da Android InputStream corrispondano a quelli ricevuti dal lato sensore? Devo definire i miei pacchetti di dati protetti con CRC o roba o sarebbe eccessivo?

Non mi è chiaro dalla documentazione Bluetooth di Android cosa succede nella mia applicazione se il segnale è debole e viene perso per un po '. Ricevo subito lo standard IOException o la piattaforma mi fornisce alcuni meccanismi di gestione e ripristino degli errori nascosti che renderebbero invisibili tali brevi interruzioni?

Grazie per qualsiasi consiglio.

risposta

10

Non è necessario preoccuparsi del danneggiamento dei dati su SPP, Bluetooth fornisce 2 livelli di CRC, uno alla base e poi uno a livello L2CAP, Entrambi hanno un meccanismo di ritrasmissione per eventuali corruzioni rilevate - quindi le applicazioni riceveranno solo buoni pacchetti .

Informazioni sulla seconda domanda - Sì sui flussi Socket a cui si è connessi riceverai IOExceptions se le connessioni Bluetooth sottostanti vengono disconnesse, Android non può gestire il ripristino automatico - in genere le applicazioni devono rilevare il motivo della disconnessione e provare a connetti come applicabile. Quindi, se si desidera continuare lo scambio di dati dal punto in cui l'ultimo è stato ricevuto/inviato correttamente, la propria applicazione deve mantenere una sorta di numero di sequenza e protocollo di illuminazione per ottenere un curriculum. L'altra opzione è quella di iniziare semplicemente dallo svezzamento dello scambio dati dopo una ricollegamento (Quindi dipende dal tuo caso)

+0

Grazie mille, questa risposta è molto chiara e copre tutto quello che volevo sapere. – jabal

+0

Prego –

Problemi correlati