Domanda

Ho bisogno di collegarsi ad un dispositivo Bluetooth tramite porta COM virtuale creata in Windows. E 'facile quando la porta è già stato creato durante procedura di accoppiamento manuale. Ma vorrei la mia domanda per alleviare un utente dalla abbinamento manuale di un dispositivo. Vorrei presentare tutti i dispositivi della gamma, permettono all'utente di scegliere uno, e quindi creare porta COM virtuale collegata con il dispositivo selezionato. Non sto cercando di evitare la procedura di accoppiamento in sé, ma piuttosto vorrei eseguire con la mia applicazione.

ho cominciato a ricevere familiarità con Microsoft Bluetooth API . E poi alcuni dubbi sorti. Mi sono chiesto che cosa succederebbe se qualche utente potrebbe utilizzare diversi (quello di Microsoft) stack Bluetooth? E 'API di Microsoft è la vera API Bluetooth, che devono essere attuate da qualsiasi altro fornitore di stack Bluetooth? O meglio ogni fornitore ha la propria API, e la Microsoft è solo uno dei molti altri?

È stato utile?

Soluzione

Grazie a tutti per un contributo prezioso. Mi piacerebbe riassumere quello che ho trovato finora. L'API di Microsoft Bluetooth non è in funzione il sistema API. Domanda scritta contro di esso non collaborerà correttamente con qualsiasi altro stack Bluetooth . Sembra che le applicazioni che sono destinati a cooperare con pile multiple devono fornire un certo livello di astrazione pila, e impilare codice specifico per tutti loro congeniali altra soluzione è quella di consentire all'utente di accoppiamento manuale del dispositivo Bluetooth, che alla fine creare un certo dispositivo virtuale nel sistema operativo (ad esempio, porta COM). L'applicazione può usare l'interfaccia standard di un tale dispositivo.

Altri suggerimenti

Non posso parlare per l'API Microsoft Bluetooth, ma ci sono multipla stack Bluetooth disponibile per la piattaforma PC (ancora di più per i dispositivi mobili).

L'API sottostante è definita dalla Bluetooth core Spec così tutte le pile dovrebbero essere in grado di interagire, in realtà è obbligatorio che essi interoperabilità o non possono utilizzare il nome ed il logo Bluetooth.

Per quanto riguarda l'accoppiamento, la vostra intenzione di avere un momento difficile ottenere dispositivi da accoppiare se hanno la sicurezza di default, che richiede un codice pin.

Le cose potrebbero essere più semplici nel futuro (prossimo), come lo standard Bluetooth ha introdotto un nuovo modello di sicurezza, sicuro abbinamento semplice , che ha una modalità 'solo funziona' che non richiede alcun codice PIN. Questo è ancora più forte, allora la protezione corrente, tranne che contro Man in the middle. Tuttavia, potrebbe essere un po 'prima di vedere i chip con questa caratteristica nei PC.

Se è possibile modificare a utilizzare NET: - / posso consigliare il nostro 32feet.NET . Per l'associazione esplicita c'è BluetoothSecurity.PairDevice. Possiamo anche creare la porta virtuale per voi, per esempio:

   BluetoothClient cli = new BluetoothClient();
   BluetoothDeviceInfo[] list = cli.DiscoverDevices();
   BluetoothDeviceInfo selected = GetUserToSelectOne(list);
   BluetoothSecurity.PairDevice(selected, pin);
   // Ask Win32 to create a virtual serial port
   selected.SetServiceState(BluetoothService.SerialPort);

Comunque io davvero non mi piace porte seriali virtuali in modo da suggerisco sempre che la gente usa una normale connessione socket utilizzando la nostra classe BluetoothClient, esso gestirà automaticamente una richiesta di associazione, se necessario.

In Win32 sosteniamo le pile da Microsoft, Widcomm / Broadcom, e BlueSoleil. Su Widcomm non c'è alcun supporto per SetServiceState c'è ancora, e la loro API non ha il supporto per rispondere alle accoppiamento richieste . BlueSoleil dovrebbe supportare sia.

Una breve guida per l'utente è al 32feet.NET - Manuale dell'utente , e tutta la documentazione di classe è disponibile presso il sito principale http://32feet.net , la documentazione Widcomm è solo nelle nostre repository di codice al momento.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top