Autore Topic: Problemi RFCOM Bluetooth  (Letto 1085 volte)

Offline riccardo.matta68

  • Nuovo arrivato
  • *
  • Post: 8
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung G. Ace
  • Sistema operativo:
    windows 7
Problemi RFCOM Bluetooth
« il: 05 Febbraio 2013, 22:05:48 CET »
0
Ho costruito una scheda che attraverso un microcontrollore e un modulo Bluetooth BEE(Seed studio) comunica con un applicazione Android.
Per l'applicazione mi sono basato sulla app Bluetooth chat.
Per fare i primi test (questa scheda quando sara ultimato il suo firmware servirà come strumento di misura) mi sono limitato a inviare una serie di 255 numeri progressivi intervallati da una pausa di 1 secondo. Una volta fatto l'accoppiamento tra lo Smartphone(Samsung ACE) e la scheda e la successiva connessione (che va a buon fine) attraverso il controllo di un button dell'applicazione inizia la trasmissione dei numeri che sembra avvenire regolarmente(ho usato un TextView e il metodo SetText)ma se guardo attentamente mi accorgo che ogni tanto alcuni numeri non vengono visualizzati(es. 1 2 4 6 7 8 9 10 1 12 13 4 15) infatti di alcuni numeri mancano una o due cifre.
Ho allora collegato la stessa scheda ad un Pc che riceve Bluetooth attraverso un adattatore USB-Bluetooth e usando il USART TERMINAL ho visualizzato la stessa sucessione di numeri e con sorpresa mi sono accorto che i numeri sono ricevuti perfettamente.
Qualcuno mi può aiutare?

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Problemi RFCOM Bluetooth
« Risposta #1 il: 06 Febbraio 2013, 09:20:12 CET »
0
Qualcuno mi può aiutare?

C'è sicuramente qualche problema nel codice.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Problemi RFCOM Bluetooth
« Risposta #2 il: 06 Febbraio 2013, 10:12:35 CET »
0
io ti sconsiglio di usare le pause come terminazione di invio, piuttosto usa caratteri di carriage return (come il classico \r\n ), lato java tu "bufferizzi" l'input fino a che non vedi quel carattere.
cosi sei piu sicuro che non vengano fuori problemi dovuti a lentezza di comunicazione/considerazione del tempo di pausa.
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline riccardo.matta68

  • Nuovo arrivato
  • *
  • Post: 8
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung G. Ace
  • Sistema operativo:
    windows 7
Re:Problemi RFCOM Bluetooth
« Risposta #3 il: 08 Febbraio 2013, 17:30:39 CET »
0
Grazie Nicola della tua risposta credo anche, da prove fatte successivamente che il problema sia proprio quello che hai individuato.
Le mie osservazioni sono queste:
1) il problema si presenta solamente quando la trasmissione supera 1 carattere(1,2,3.......10,11.....100,101....)
2) il problema si presenta sempre nel primo o secondo carattere trasmesso
3) se anche imposto la pausa 3 secondi lato Mikrobasic il problema si presenta magari con meno frequenza.

Essendo io molto più esperto nella scrittura di firmware avrei bisogno di qualche delucidazione. Per esempio cosa intendi quando dici "bufferizzi". Io mi sono limitato ad usare un setText in un TextView.
Mi chiedo se l'uso continuativo di questo metodo possa in qualche modo "Stressare" l'App.

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Problemi RFCOM Bluetooth
« Risposta #4 il: 08 Febbraio 2013, 17:52:45 CET »
0
Grazie Nicola della tua risposta credo anche, da prove fatte successivamente che il problema sia proprio quello che hai individuato.
Le mie osservazioni sono queste:
1) il problema si presenta solamente quando la trasmissione supera 1 carattere(1,2,3.......10,11.....100,101....)
2) il problema si presenta sempre nel primo o secondo carattere trasmesso
3) se anche imposto la pausa 3 secondi lato Mikrobasic il problema si presenta magari con meno frequenza.

Essendo io molto più esperto nella scrittura di firmware avrei bisogno di qualche delucidazione. Per esempio cosa intendi quando dici "bufferizzi". Io mi sono limitato ad usare un setText in un TextView.
Mi chiedo se l'uso continuativo di questo metodo possa in qualche modo "Stressare" l'App.
al momento non ti so dare un link al volo,ma mi pare che la bluetooth chat si scarichi i dati bufferizzando (cioè non scrivendo direttamente in una textVIew ma passando per un byte buffer).
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline riccardo.matta68

  • Nuovo arrivato
  • *
  • Post: 8
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung G. Ace
  • Sistema operativo:
    windows 7
Re:Problemi RFCOM Bluetooth
« Risposta #5 il: 24 Febbraio 2013, 08:57:17 CET »
0
Finalmente ci sono arrivato.
Ero convito fermamente che fosse la scheda a spedire troppo velocemente i dati ma usando il debug mi sono accorto che lo smart accumulava tutti i dati in modo corretto ma era più veloce della mia scheda a cercare il dato successivo facendo dei casini con i dati.
E' bastato un .sleep(1000) posto sul thread che si occupa della lettura e tutto è andato in ordine.
Grazie comunque per l'interessamento e grazie per questo forum molto interessante per chi come me cerca di cimentarsi avendo fatto una vita solamente firmware per micro.