Одна проблема заключается в том, что он не является стандартным, хотя и широко поддерживается. При прочих равных условиях я бы всегда использовал стандартную функцию, а не обычное расширение компилятора.
Во-первых, отказ от ответственности, I ' m сопровождающий библиотеки 32feet.NET. : -)
Я только что проверил, и на XP со стеком Microsoft (используя один ключ) я могу одновременно получать два OBEX PUT, а также обнаруживать устройства. Это использует класс 32feet.NET ObexListener и метод BluetoothClient.DiscoverDevices. Для отправки OBEX PUT можно использовать его класс ObexWebRequest. Чтобы выполнить несколько параллельных соединений с ObexListener, у меня было несколько потоков, вызывающих его метод GetContext ().
Так что, может быть, это проще, чем мы думали ...
Я также тестировал его с OBEX Server Энди Хьюма, используя его Brecham. Библиотека Obex и одновременный прием тоже работают нормально. Его можно найти по адресу http://32feet.net/files/folders/objectexchange/entry6511.aspx .
В нашей службе поддержки Widcomm. Надеюсь, на стороне клиента он не кажется слишком "неполным" ... Запрос (обнаружение устройств) и соединения работают. Однако серверная часть все еще требует небольшой работы, и есть некоторые вещи, которые Widcomm API просто не поддерживает, например. (программная обработка аутентификации.)
В чем заключалась проблема с образцами? Во время компиляции или во время выполнения? В стеке MSFT или Widcomm? Дополнительная информация на http:
Попробуйте следующее: 32feet.NET . Начиная с версии 2.4, они поддерживают стек Widcomm в дополнение к стеку Windows.
Кстати: Почему вам нужно работать с двумя ключами одновременно? Обычно один ключ поддерживает до 7 устройств, подключенных одновременно.
try
{
}
catch (Exception err)
{
if (err is Web2PDFException)
DoWhatever();
}
но, вероятно, есть лучший способ делать то, что вы хотите.
Он поддерживает все необходимое на стороне сервера, это коммерческий продукт с хорошей поддержкой, который отлично работает без ошибок.Какой стек?
Ну, это сложный. НИ ОДИН из стеков не поддерживает 2 ключа одновременно. Таким образом, единственный вариант - запустить один ключ на одном стеке, а другой - на другом. Вот где пригодится библиотека WCL!
Microsoft - Если во время сканирования возникает ошибка, обычно происходит сбой всего стека. Это не идеально! Вы должны закрыть и перезапустить радиоустройство, это требует времени и может привести к сбоям. Но ... стек Microsoft очень хорошо обрабатывает передачу файлов.
Widcomm - Стек Widcomm не очень хорош для передачи файлов. Есть надоедливые маленькие приложения, которые устанавливаются вместе с Widcomm, которые пытаются взять под контроль ваше приложение. Вы можете убить bttray.exe, который помогает, но вы по-прежнему получаете странное поведение стека во время передачи. Я уверен, что это можно решить, но, поскольку Windows не подходит для сканирования, имеет смысл использовать Widcomm для сканирования.
Итак ... у нас есть один ключ, настроенный на Widcomm, чтобы сканировать снова и снова, и один ключ установлен на Microsoft, установленный для обработки только передачи файлов (вход и выход).
Заставить 2 ключа работать
Мы использовали 2 одинаковых ключа, мы можем заказать их оптом и хранить все одинаково, уменьшая путаницу . Для каждого поставляемого устройства требуется всего 2 ключа Bluetooth, просто.
Единственная проблема в том, что это ключи widcomm, и нам нужен один ключ в стеке Windows. Windows не распознает их как ключи Windows, поэтому не регистрирует их для стека Windows. Итак ... это хак, который вы можете сделать с файлом bt.inf, чтобы он распознал ключ для Windows. Затем вам нужно переключить драйверы для одного из ключей, чтобы он работал с драйверами Windows, и все готово.
Резюме
Итак ... у нас все время сканируется один ключ, один обрабатывает передачи , каждый в отдельном стеке, и все это прекрасно работает. Это единственный способ заставить 2 ключа работать без сбоев в Windows. Если у вас есть предложение получше, опубликуйте его!