Autore Topic: Bluetooth Server  (Letto 3355 volte)

Offline Claudio24

  • Nuovo arrivato
  • *
  • Post: 18
    • Mostra profilo
Bluetooth Server
« il: 16 Ottobre 2011, 13:26:47 CEST »
Buongiorno a tutti. Ho realizzato un'applicazione molto banale di realtà aumentata che riceve delle stringhe via bluetooth e visualizza tali stringhe sulla mia fotocamera. Per fare ciò ho utilizzato l'esempio bluetooth chat, presente nella cartella dei samples delle API Android. Aggiungo che la versione utilizzata è quella presente per la versione 9.
Dunque per fare dei test ho installato su un altro dispositivo Android installando bluetooth chat su tale dispositivo ed inviando le stringhe da esso.
Tutto funziona benissimo, però il mio problema è che avrei necessità di realizzare un server bluetooth (magari basato sempre sulle API Android) che giri sul PC e invii le stringhe al mio dispositivo, in modo di essere indipendente dall'altro dispositivo Android (che essendo di mio fratello e facendo vite diverse non sempre l'ho a disposizione  :-P).

Ho trovato diversi post aperti in merito però non mi hanno aiutato molto e alcuni cose ho avuto difficoltà a farle funzionare. Quindi scrivo qui per avere dei consigli e dritte da chi è più scafato di me.

Grazie a chiunque risponda per la disponibilità e la cortesia e l'idee che portate.
« Ultima modifica: 24 Ottobre 2011, 12:38:18 CEST da Claudio24 »

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Bluetooth Server
« Risposta #1 il: 16 Ottobre 2011, 15:50:00 CEST »
Un modo estremamente semplice (che ho provato personalmente) è utilizzare la connessione Bluetooth del PC (io ho usato una chiavetta USB BlueTooth) vista come porta seriale COM virtuale. A quel punto un qualsiasi HyperTerminal (e ce ne sono tantissimi) va bene per spedire stringhe alla COM virtuale.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Claudio24

  • Nuovo arrivato
  • *
  • Post: 18
    • Mostra profilo
Re:Bluetooth Server
« Risposta #2 il: 16 Ottobre 2011, 22:12:29 CEST »
Grazie Bradipao. Per riassumere dovrei fare così

1) Attivare il bluetooth (collegando la penna usb o semplicemente accendendolo per chi lo avesse integrato).
2) Tra le impostazioni del bluetooth trovare COM e creare una porta virtuale.
---- Qui sono dubbioso ----
3) Lancio il programma mediante emulatore e usarlo come server
----------------------------------
---- Altra Opzione -----------
3) Inviare queste stringhe proprio mediante Hyperterminal
---------------------------------

Puoi chiarirmi questo dubbio? Grazie sei stato molto gentile.

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Bluetooth Server
« Risposta #3 il: 20 Ottobre 2011, 13:40:58 CEST »
Si, tu mandi e ricevi stringhe direttamente da hyperterminal.

Io a suo tempo avevo trovatoun hyperterminal "furbo", che mi permetteva di creare sequenze di dati in esadecimale e potevo mandarli/riceverli in blocco. La chiave di tutto sta nel fatto che l'interfaccia BlueTooth viene vista come una COM virtuale (cosa abbastanza comune nei notebook o nelle chiavette) e il terminale ci si collega proprio come ad una COM reale.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Claudio24

  • Nuovo arrivato
  • *
  • Post: 18
    • Mostra profilo
Re:Bluetooth Server
« Risposta #4 il: 23 Ottobre 2011, 17:54:40 CEST »
Ciao, alla fine non sono riuscito a capire come usare HyperTerminal, più che altro ho problemi nel creare la porta COM virtuale con bluetooth.
Però dopo tanto penare sono riuscito a realizzare un programmino Java che invia una stringa al mio dispositivo android. Lo allego a questo post e lo lascio ai posteri. 8-)
E' molto banale l'importante è allegare la libreria Bluecove (che allego ma è scaricabile dal sito ufficiale del prodotto) e modificare l'UUID con quello dell'applicazione Android per farli comunicare.

Grazie comunque per l'aiuto.  :-)

Offline Essio

  • Nuovo arrivato
  • *
  • Post: 49
    • alessiomorotti
    • Mostra profilo
  • Dispositivo Android:
    vodafone 848-SAMSUNG GALAXY Tab
  • Sistema operativo:
    Window Vista
Re:Bluetooth Server
« Risposta #5 il: 07 Gennaio 2012, 16:11:03 CET »
Ciao a tutti,

ho letto questo topic in quanto molto interessante e mi serviva qualche spunto proprio per creare un'applicazione che consenta di gestire una connessione Bluetooth tra PC e terminale/i Android.
Ho scaricato il tuo codice ed ho provato a testarlo; il programma vedo che riconosce subito i dispositivi Bluetooth vicini, ma al momento non riesco a connettermi.
A tal proposito volevo porti delle domande:
Tu lo  hai testato facendo girare sui dispositivi Android la BluetoothChat?
Hai detto che bisogna inserire l'UUID dell'applicazione con cui si desidera lavorare, quindi Bluetoothchat e BluetoothAdapter devono avere lo stesso   UUID?
Scusa se le domande possono sembrare(anzi lo saranno sicuramente) banali, ma sono alle prime armi riguardo BlueTooth.
Grazie anticipato!
Morotti Alessio

Offline Claudio24

  • Nuovo arrivato
  • *
  • Post: 18
    • Mostra profilo
Re:Bluetooth Server
« Risposta #6 il: 07 Gennaio 2012, 17:52:51 CET »
Ciao! Si l'ho testato ma voglio innanzitutto evidenziare il fatto che su un pc con windows XP non mi ha dato problemi, mentre su un pc che ha installato Windows 7 (ahimè quello che uso qui a casa), mi ha dato diversi problemi, addirittura non rilevava il mio dispositivo android, oppure non si connetteva, quindi ho fatto diversi tentativi e sudato diverse camicie  ???
Penso che sia un problema legato alla gestione dell'adapter bluetooth di windows 7.
Per quanto riguarda l'UUID, è un identificativo legato al servizio che fornisce l'applicazione, quindi deve essere identico sia per client (dispositivo android) che per server (quindi il programma che gira su PC).
Per quanto riguarda il test, io ho provato con la mia applicazione per la tesi, la quale si appoggia alle classi di Bluetooth Chat (versione 9 mi sembra, comunque quella dove c'è sia connessione sicura che connessione non sicura, perciò ha 2 UUID al suo interno poni attenzione). Si connetteva e inviava messaggi. Sottolineo che i messaggi li inviavo in maniera unidirezionale, cioè da PC a device android e non il contrario.
Non ti preoccupare per le domande stupide, nessuno nasce imparato ed io non ne so molto di più di te  :D sto imparando anch'io adesso.
Mi pare di averti detto tutto, se hai altre domande chiedi pure sto qui.

Offline Essio

  • Nuovo arrivato
  • *
  • Post: 49
    • alessiomorotti
    • Mostra profilo
  • Dispositivo Android:
    vodafone 848-SAMSUNG GALAXY Tab
  • Sistema operativo:
    Window Vista
Re:Bluetooth Server
« Risposta #7 il: 08 Gennaio 2012, 16:40:42 CET »
Bene , ti ringrazio moltissimo, è proprio come sospettavo il solito Windows....
Al momento io sto testando il tutto con  Windows Vista , per il momento non sono ancora riuscito a creare una connessione tra pc e dispositivo, mentre la BluetoothChat tra dispositivi Android , ho visto che funziona correttamente.
Vedremo.....
Morotti Alessio

Offline Claudio24

  • Nuovo arrivato
  • *
  • Post: 18
    • Mostra profilo
Re:Bluetooth Server
« Risposta #8 il: 08 Gennaio 2012, 17:38:36 CET »
Beh se non è problema dell'utente è sempre colpa del sistema sottostante  ;-).
Dunque quando fai connessione mediante bluetooth chat sicuramente funziona, perchè il protocollo di comunicazione (RFComm) e UUID sono identici, quindi non c'è problema nel connettere i due dispositivi.
Da PC a device, la cosa cambia perchè devi usare l'identico UUID, poichè l'RFComm è già implementanto nel codice.
Poi come ti ho detto il problema è sempre Windows, poichè non gestisce bene il bluetooth. Se ti capita sottomano un pc con vista, puoi fare le prove altrimenti devi andare per tentativi.
Buona programmazione!   :-)

Offline Essio

  • Nuovo arrivato
  • *
  • Post: 49
    • alessiomorotti
    • Mostra profilo
  • Dispositivo Android:
    vodafone 848-SAMSUNG GALAXY Tab
  • Sistema operativo:
    Window Vista
Re:Bluetooth Server
« Risposta #9 il: 10 Gennaio 2012, 11:28:27 CET »
Sto veramente impazzendo , sembra veramente impossibile collegare il mio pc ad un terminale android , i dispositivi li trova sempre senza problemi , ma al momento della selezione mi restituisce sempre una java.lang.IllegalArgumentException, ti chiedevo appunto se anche a te testando il programma hai riscontrato questo tipo di problematica.
Puo' essere l'UUID passato come argomento secondo te?
Morotti Alessio

Offline Claudio24

  • Nuovo arrivato
  • *
  • Post: 18
    • Mostra profilo
Re:Bluetooth Server
« Risposta #10 il: 10 Gennaio 2012, 21:39:01 CET »
Guarda, mi pare che mi dava quell'eccezzione, solo che devo discutere la tesi fra una settimana e tra lavoro e tesi appunto non ho molto tempo da dedicare a cose extra.
Ti ripeto che io ho fatto le prove con PC con diversi sistemi operativi e con windows XP dava meno noie e riuscivo a sviluppare meglio il codice. Con Windows 7 perdevo le ore per farlo andare normalmente, nonostante il giorno prima in ufficio mi funzionava.
Ti posso solo consigliare di andare in debug mentre lanci il server.
Per l'UUID io non ricordo su quale l'ho settato, perchè a seconda delle versioni di Bluetooth Chat c'erano UUID differenti mi sembra. Dalla 8 in giù ce n'è uno solo, dalla 9 in poi ce ne sono due di UUID uno per la connessione non sicura, ed uno per la connessione sicura. Verifica gli UUID e ricordati che devono essere uguali ma sul server non devono avere i trattini ma scritta tutta di seguito.

Ciaooo

Offline Essio

  • Nuovo arrivato
  • *
  • Post: 49
    • alessiomorotti
    • Mostra profilo
  • Dispositivo Android:
    vodafone 848-SAMSUNG GALAXY Tab
  • Sistema operativo:
    Window Vista
Re:Bluetooth Server
« Risposta #11 il: 10 Gennaio 2012, 22:05:10 CET »
Grazie, sempre molto molto puntuale e gentile.
IN BOCCA AL LUPO PER LA TESI!!!!!!!!!!!!
Morotti Alessio

Offline Theater

  • Nuovo arrivato
  • *
  • Post: 1
    • Mostra profilo
Re:Bluetooth Server
« Risposta #12 il: 11 Aprile 2012, 09:41:06 CEST »
ciao ragazzi
sto cercando di settare una connessione android client / server java (con bluecove),
ma mi si blocca nel socket.connect() del client... cosa potrebbe essere?

rimane lì bloccato, non va in eccezione... il server è lì che aspetta con acceptAndOpen() del bluecove..

se volete posso condividere il codice..
grazie tanto