Lectura de datos en bruto a través de Bluetooth

Tengo un dispositivo de interfaz humana digital al que estoy tratando de conectarme usando 32feet.net para poder leer los datos de entrada y procesar una salida en mi aplicación. Nunca he programado con bluetooth antes y estoy aprendiendo sobre la marcha.

Puedo conectar mi dispositivo a Windows 7 utilizando la pila microsoft / broadcom sin ningún problema. También puedo descubrir el dispositivo usando 32feet.net pero cuando intento conectarlo obtengo un error. Me aseguré de que mi pila fuera compatible con BluetoothRadio.IsSupported Aquí hay un fragmento de código:

 var client = new BluetoothClient();
 var dlg = new SelectBluetoothDeviceDialog();
 DialogResult result = dlg.ShowDialog(this);
 if (result != DialogResult.OK)
 {
     return;
 }
 BluetoothDeviceInfo device = dlg.SelectedDevice;
 BluetoothAddress addr = device.DeviceAddress;
 Console.WriteLine(device.DeviceName);
 Guid serviceClass = BluetoothService.HumanInterfaceDevice;
 client.Connect(new BluetoothEndPoint(addr, serviceClass));

La última línea provoca el siguiente error: una excepción de primera oportunidad del tipo 'System.Net.Sockets.SocketException' ocurrió en System.dll

He intentado algunos otros métodos también con client.Connect. He intentado usar DiscoverDevices para obtener una matriz de DeviceInfo y seleccionar manualmente el dispositivo de esa matriz y conectarme a ella. He intentado establecer la clase de servicio como Vacío porque eso es lo que aparece cuando uso DeviceInfo.ClassOfDevice.Service. He podido conectar el dispositivo a Windows usando DeviceInfo.SetServiceState (BluetoothService.HumanInterfaceDevice, true) pero no puedo obtener una transmisión de él.

Incluso si puedo obtener una transmisión de datos desde el dispositivo después de que se haya conectado a Windows, estaría bien. Mi objetivo aquí es simple para poder leer la entrada del dispositivo como si se presionara un botón.

Respuestas a la pregunta(2)

Su respuesta a la pregunta