Я пытаюсь создать приложение Windows с C#/Visual Studio 2010, которое будет выполнять следующие функции (последовательно): Для работы с bluetooth я использую 32-битную .Net библиотечные функции.32feet.net: Как подключиться к определенному COM-порту через BluetoothClient
Найти устройства Bluetooth и перечислить их в списке/поле со списком для выбора пользователем. (Я хочу разрешить пользователю выбирать несколько устройств и, следовательно, НЕ использовать для опции
SelectBluetoothDeviceDialog
.). Я могу получить список устройств черезBluetoothClient.DiscoverDevices()
, однако это не операция async. Если возможно, я хотел бы перейти на асинхронную операцию. Я читал о классеBluetoothComponent
с событиямиDiscoverDevicesProgress
иDiscoverDevicesComplete
и методомDiscoverDevicesAsync
, но не смог заставить его работать. Если возможно, поделитесь с этим примером кода.Пользователь выбирает устройства из списка и нажимает кнопку «Пара». Пока я могу успешно спрятать устройства через
BluetoothSecurity.PairRequest
. Здесь нет проблем.Пользователь теперь выбирает одно или несколько устройств из списка «парных» и нажимает «подключиться». Здесь я попытался подключиться к устройству с помощью
BeginConnect
(для работы async) иConnected
методов классаBluetoothClient
, но получил следующее исключение.
System.Net.Sockets.SocketsException: { "неверный аргумент поставляется 000319002CC6: 0000110100001000800000805f9b34fb"}.
Число в приведенном выше исключением является GUID, номер, который требуется для метода Connected
, который я прошел с помощью BluetoothService.SerialPort
. Это не удастся, так как мое устройство будет подключаться к порту COM7. Я не уверен, как я могу подключить/подключить устройство к конкретному COM-порту? Возможно ли даже библиотечные функции 32feet.Net? Если да, попросите образец кода.
Рекомендации Примечание. Я уже прочитал и попытался реализовать код, описанный в следующей статье в StackOverflow. Однако из-за моих требований (позволяющих пользователю подключаться и подключаться к нескольким устройствам на COM-портах) я не могу запустить тот же код. Однако это помогло понять концепцию. 32feet.net howto discover nearby bluetooth devices async in c#
Просьба сообщить вам, как лучше всего справиться с этой ситуацией. В случае, если я попытаюсь использовать любую другую библиотеку/функции, отличную от 32feet.Net, дайте мне знать.
Моя конечная цель - ОБЕЕ читать и записывать данные с и на подключенные устройства (устройства). Итак, на данный момент я просто пытаюсь подключиться к определенному порту COM через bluetooth.
С уважением, Rumit
=========================== EDIT: обновленная информация для ответа 1:
Я получил устройство bluetooh (патч), которое должно быть подключено к порту VOTTUAL BT COM TOSHIBA. Приносим извинения, если информация TOSHIBA необходима для лучшего ответа на вопрос. Я новичок в связи с портами. До сих пор я знаю, что мне нужно использовать COM7. У меня есть приложение, встроенное в C++, которое подключается к одному и тому же патчу на COM7 через bluetooh. Однако у меня нет исходного кода, и меня попросили реализовать ту же самую утилиту на C#.Из вашего ответа могу ли я предположить, что приложение C++ может использовать Windows Sockets 2 случайно?
Кроме того, я мог видеть параметр, указывающий значение порта (целочисленное значение) в BluetoothEndClient
, но это также не сработало. Итак, я предполагаю, что порт не был COM и был другим портом.
С уважением, Rumit
Я обновил свой оригинальный пост для получения дополнительной информации. Дайте мне знать, если это поможет. Кроме того, в отношении кода ошибки, я получил две ошибки случайным образом: 10058: Socket была ошибка завершения (может быть из-за недействительного порта) и 10022 в целом. –
Я узнал, что могу использовать библиотеку WCL. Однако в этом случае я не вижу возможности указать COM-порт. Дайте мне знать, если вы можете предложить любую помощь с помощью WCL? –