Время, чтобы точно объяснить, что мы в итоге сделали ...
2 ключа почему?
- Если ключ выполняет сканирование, скорость передачи значительно замедляется
- Ключ может поддерживать только 7 одновременных передач, если вы выполняете сканирование, оно падает до 6. Если вы хотите отправлять, получать и сканировать все одновременно, все сильно замедляется, и вы очень ограничены в каналах.
Итак, идея состоит в том, чтобы запускать один ключ непрерывного сканирования (чтобы устройства появлялись как можно быстрее), а другой ключ был зарезервирован для передачи, и, поскольку он не сканирует, передачи выполняются быстро и красиво.
Библиотека, которую мы использовали
После долгих испытаний и размышлений мы выбрали WirelessCommunicationLibrary из инфраструктуры BT .
Он поддерживает Widcomm, Windows, BlueSoleil и стек Toshiba. Он поддерживает все необходимое на стороне сервера, является хорошо поддерживаемым коммерческим продуктом, который прекрасно работает без ошибок.
Какой стек?
Ну, это сложный вопрос. Ни один из стеков не поддерживает 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. Если у вас есть лучшее предложение, пожалуйста, отправьте его!