Hola!
Hace poco escribí en un post, las 4 líneas que podíamos usar para listar los devices bluetooth que tenemos registrados en local en nuestro ordenador. Para dejar el ejemplo completo lo que me falta son los siguientes pasos
1. Conexión al device bluetooth
2. Recepción de información desde el device bluetooth
3. Envío de información desde el device bluetooth
Hoy empiezo por la primera con esta simple app de consola. El código es bastante simple, lo único que debería remarcar es
– Utilizo 32Feet para simplificar el acceso a BT (https://32feet.codeplex.com)
– Utilizo LinQ para acceder al device a través del nombre del mismo
– Una vez identificado el device, registro el address del mismo
– En la líneas 13 y 21, realizo el pareo con el PIN.
– Una vez conectado, ya puedo comenzar a leer información del device, línea 40.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| private static void Main() | |
| { | |
| BluetoothAddress arduinoAdress = null; | |
| _blueToothClient = new BluetoothClient(); | |
| var devices = _blueToothClient.DiscoverDevices(); | |
| foreach (var device in devices.Where(device => device.DeviceName == "IoT Arduino – Mainframe Bridge")) | |
| { | |
| arduinoAdress = device.DeviceAddress; | |
| Console.WriteLine("Device found, Address:" + arduinoAdress.ToString()); | |
| } | |
| _bluetoothDevice = new BluetoothDeviceInfo(arduinoAdress); | |
| if (BluetoothSecurity.PairRequest(_bluetoothDevice.DeviceAddress, "<YOUR PIN GOES HERE>")) | |
| { | |
| Console.WriteLine("Pair request result: :D"); | |
| if (_bluetoothDevice.Authenticated) | |
| { | |
| Console.WriteLine("Authenticated result: Cool :D"); | |
| _blueToothClient.SetPin("<YOUR PIN GOES HERE>"); | |
| _blueToothClient.BeginConnect(_bluetoothDevice.DeviceAddress, BluetoothService.SerialPort, Connect, _bluetoothDevice); | |
| _beginConnect = true; | |
| } | |
| else | |
| { | |
| Console.WriteLine("Authenticated: So sad :("); | |
| } | |
| } | |
| else | |
| { | |
| Console.WriteLine("PairRequest: Sad :("); | |
| } | |
| if (_beginConnect) | |
| { | |
| do | |
| { | |
| ReadFromBtDevice(); | |
| Thread.Sleep(1000); | |
| } while (true); | |
| } | |
| Console.ReadLine(); | |
| } |
Mañana más … ahh y por cierto, esto mismo con Windows Phone es casi imposible ![]()
Saludos @ Home
El Bruno
Leave a comment