Lendo dados brutos via Bluetooth
Eu tenho um dispositivo de interface humana digital que estou tentando conectar usando 32feet.net para que eu possa ler dados de entrada e processar uma saída em meu aplicativo. Eu nunca programei com o bluetooth antes e estou aprendendo enquanto vou.
Eu posso conectar meu dispositivo ao Windows 7 usando a pilha microsoft / broadcom sem problemas. Eu também posso descobrir o dispositivo usando 32feet.net, mas quando tento conectá-lo, recebo um erro. Certifiquei-me de que minha pilha fosse suportada usando o BluetoothRadio.IsSupported Aqui está um trecho 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));
A última linha causa o seguinte erro: Ocorreu uma exceção de primeira chance do tipo 'System.Net.Sockets.SocketException' no System.dll
Eu tentei alguns outros métodos também com client.Connect. Eu tentei usar DiscoverDevices para obter uma matriz DeviceInfo e escolhendo manualmente o dispositivo fora dessa matriz e conectando-se a ele. Eu tentei definir o serviceClass como vazio porque é isso que aparece quando eu uso DeviceInfo.ClassOfDevice.Service. Consegui conectar o dispositivo às janelas usando o DeviceInfo.SetServiceState (BluetoothService.HumanInterfaceDevice, true), mas não consigo obter um fluxo a partir dele.
Mesmo se eu puder obter um fluxo de dados do dispositivo depois de ter sido conectado no Windows, tudo bem. Meu objetivo aqui é simples de ser capaz de ler a entrada do dispositivo como um botão pressionado.