Доброе время суток, господа.
Вопрос вот в чём: судя по всему, многие из нас пытались использовать / использовали средства bluetooth для связи различных устройств в своих проектах (в наладонниках, больших ПК, всяких там своих поделках). В свете этого, если не сложно, поделитесь, средствами чего вы этого добивались, в каких средах, да и вообще расскажите о своих мыслях по поводу применимости современных технологий беспроводных соединений.
Наболело, а ресурсов на тему "беспроводного прграммирования" практически нет.
К примеру с Palm всё понятно — там для этого есть свой API, но только, наверное, во всём остальном Pocket у Palm выигрывают, а потому (по крайней мере в нашей конторе) используются Pocket'ы.
C Linux тоже всё более-менее понятно — для него есть бесплатный стэк BT. Но в силу текущей ситуации на рынке гораздо чаще используются системы на базе Win.
Итого: у нас используется WinCE (4.0) + Win(2K+). Но проблема в том, что чей-либо платный стек мы пока-что купить не можем (WIDCOMM etc.): на данный момент это экономически неэффективно. Так что мы используем RFCOMM соединение — проблем это создаёт уйму, начиная с того, что максимальная скорость искусственно ограничивается 115200 бод и заканчивая тем, что "программно" этот способ не позволяет производить поиск устройств / поиск их сервисов — короче всего того, что позволяют делать платные стеки. Нас это пока устраивает, т.к. нет необхдимости связывать более двух устройст и устройства известны на стадии поставки. Но это далеко не правильный путь — и это более чем понятно.
Так вот, кто как решал эти проблемы?
Хотелось бы этой дискуссией хоть немного возместить недостаток информации по рассматриваемому вопросу.
Здравствуйте, tacit_one, Вы писали:
_>Наболело, а ресурсов на тему "беспроводного прграммирования" практически нет.
Тема эта необычайно интересная в свете того, что передо мной через месяц-два будет поставлена задача обеспечить одновременное соединение по BT с несколькими устройствами.
На данный момент даже копать еще не начал. Сейчас у нас все просто — соединяемся по эмулированному компорту.
Учитывая, что у нас 4 проддерживаемые платформы — PocketPC 2003 и еще 3 очень разных промышленных контроллера, из которых BT бывает на 3-х, то развлечение предстоит соответствующее.
Как минимум уже непонятно, может ли принципиально тот же PocketPC поддерживать одновременные соединения по BT, или можно уже сейчас всех обломать.
Добрый день всем!
Давно поднималась эта тема, но как-то заглохла. А у меня сейчас возникает тот же вопрос — что делать, если дорогущий стек от WIDCOMM не подходит. Какие есть бесплатные стеки и насколько с ними проблемно работать? От вас, tacit_one, в первый раз услышала про RFCOMM соединение — а можете ли вы подсказать, где найти побольше инфы по этому вопросу? Вопрос для меня новый — так что проблем много. Поделитесь пожалуйста опытом!
WBR
Здравствуйте, Akatik_jr, Вы писали:
A_>Только что наткнулась на сайте Microsoft на такую тему:
A_>здесь
A_>Это о чем вообще? Может это то, что надо для программирования под Bluetooth — некий Platform SDK?
Если необходимо работать со списком устройств, то да, можно использовать это API (появилось в WinXP SP1). Если в такмо списке необходимости нет, то достаточно сокетов.
Здравствуйте, Andrusha, Вы писали:
A>Если необходимо работать со списком устройств, то да, можно использовать это API (появилось в WinXP SP1). Если в такмо списке необходимости нет, то достаточно сокетов.
Я извиняюсь, а с каких пор WinXP SP1 стали устанавливать на устройства Pocket PC?
Здравствуйте, Michael Chelnokov, Вы писали:
MC>Здравствуйте, Andrusha, Вы писали:
A>>Если необходимо работать со списком устройств, то да, можно использовать это API (появилось в WinXP SP1). Если в такмо списке необходимости нет, то достаточно сокетов.
MC>Я извиняюсь, а с каких пор WinXP SP1 стали устанавливать на устройства Pocket PC?
Ни с каких. Но вот работать через BT с устройствами PocketPC из под WinXP SP1 тоже приходится. И ссылка была именно про это. А так только сокеты и остаются...
A>Ни с каких. Но вот работать через BT с устройствами PocketPC из под WinXP SP1 тоже приходится. И ссылка была именно про это. А так только сокеты и остаются...
То есть для того, чтобы работать с Bluetooth надо использовать Windows Sockets? А может посоветуете какую ссылочку, чтобы просветиться этим?
А зачем тогда покупать всякие там WIDCOMM? И что же такое RFCOMM?
Здравствуйте, Akatik_jr, Вы писали:
A>>Ни с каких. Но вот работать через BT с устройствами PocketPC из под WinXP SP1 тоже приходится. И ссылка была именно про это. А так только сокеты и остаются...
A_>То есть для того, чтобы работать с Bluetooth надо использовать Windows Sockets? А может посоветуете какую ссылочку, чтобы просветиться этим? http://msdn.microsoft.com/library/en-us/bluetooth/bluetooth/bluetooth_programming_with_windows_sockets.asp — начать можно отсюда.
A_>А зачем тогда покупать всякие там WIDCOMM? И что же такое RFCOMM?
Работать с BT через сокеты можно начиная только с определённых версий Windows. Для поддержки BT в других версиях как раз подобное ПО и используется. Плюс ещё данное ПО, предоставляет некоторые дополнительные возможности, как то поиск устройств и тому подобные вещи.
Здравствуйте, Xentrax, Вы писали:
X>Здравствуйте, tacit_one, Вы писали:
_>>Наболело, а ресурсов на тему "беспроводного прграммирования" практически нет.
X>Тема эта необычайно интересная в свете того, что передо мной через месяц-два будет поставлена задача обеспечить одновременное соединение по BT с несколькими устройствами.
X>На данный момент даже копать еще не начал. Сейчас у нас все просто — соединяемся по эмулированному компорту.
X>Учитывая, что у нас 4 проддерживаемые платформы — PocketPC 2003 и еще 3 очень разных промышленных контроллера, из которых BT бывает на 3-х, то развлечение предстоит соответствующее.
X>Как минимум уже непонятно, может ли принципиально тот же PocketPC поддерживать одновременные соединения по BT, или можно уже сейчас всех обломать.
Не сможет, ИМХО, как хирург заявляю — то, что ставится в Pocket PC(цена <$400) в качестве контроллеров BT есть откровенное говно и китайские поделки, тут у них ножка болит, там они не умеют ...
X>Пока еще даже копать не начал.
Здравствуйте, Andrusha, Вы писали:
A>Здравствуйте, Akatik_jr, Вы писали:
A>>>Ни с каких. Но вот работать через BT с устройствами PocketPC из под WinXP SP1 тоже приходится. И ссылка была именно про это. А так только сокеты и остаются...
A_>>То есть для того, чтобы работать с Bluetooth надо использовать Windows Sockets? А может посоветуете какую ссылочку, чтобы просветиться этим? A>http://msdn.microsoft.com/library/en-us/bluetooth/bluetooth/bluetooth_programming_with_windows_sockets.asp — начать можно отсюда.
A_>>А зачем тогда покупать всякие там WIDCOMM? И что же такое RFCOMM? A>Работать с BT через сокеты можно начиная только с определённых версий Windows. Для поддержки BT в других версиях как раз подобное ПО и используется. Плюс ещё данное ПО, предоставляет некоторые дополнительные возможности, как то поиск устройств и тому подобные вещи.
Эхм, (крутя пальцами), как бы это обьяснить ....
Ну короче, BT есть асинхронное устроиство типа USB, т.е. при подключении оно выдаёт про себя кучу инфы про свою конфигурацию и т.д и т.п.
Вот, хитрые дядьки из M$ по привычке вкрутили это в Sockets, хотя должен заметить, что любая стандартизация неизбежно обрубает кучу возможностей, соответсвенно, для обнаружения устройств, проверки профилей и пр. необходимы отдельные функции, прием данных опять же ... Это и есть собственно стэк. Ага, а но в HP и Mitac — ещё более хитрые дядьки, они в полуфабрикат WinCE от M$ вкручивают свои стэки, перетачивают/пишут свои приложения/мэнеджеры под них и продают. Фишка в том, что для написания под это устройство приходится покупать за килобаксы SDK ...
P.S. Это к тому, что купите BT стэк, а на HP всё резко обломится, неприятно будет
Эта статья в MSDN относится к разделу Platform SDK — эту штуку надо отдельно инсталлировать? И что это такое вообще?
А работать с сокетами из-под VS .NET можно? А то у нас часть проекта уже на нем — хотелось бы не отходить от этой темы.
Еще вопросик знающим людям:
Насколько я поняла с BT устройством можно работать открыв файл на соответствующем COM порту. При этом никаких SDK не нужно — проблема только в том, что соединение предварительно придется устанавливать руками. А как этот COM-порт определить — к какому обращаться, чтобы BT-данные считывать?
A>Работать с BT через сокеты можно начиная только с определённых версий Windows.
Здравствуйте, Akatik_jr, Вы писали:
A_>>>То есть для того, чтобы работать с Bluetooth надо использовать Windows Sockets? А может посоветуете какую ссылочку, чтобы просветиться этим? A>>http://msdn.microsoft.com/library/en-us/bluetooth/bluetooth/bluetooth_programming_with_windows_sockets.asp — начать можно отсюда.
A_>Эта статья в MSDN относится к разделу Platform SDK — эту штуку надо отдельно инсталлировать? И что это такое вообще?
Platform SDK нужна для WinXP SP1, если я ничего не путаю, то с VS.NET ставится более старая версия. Так что придётся качать или достававать откуда-нибудь ещё. Есть на одном из дисков RSDN.
SDK — это набор заголовочных файлов и библиотек необходимых для написания программ. Например, все константы необходимые для работы с BT валяются именно в этих заголовочных файлах.
Кстати, у меня Platfrom SDK живёт тут: "C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\". Можно сделать поиск по файлм в этом каталоге на предмет наличия в них AF_BTH . Если данная константа присутсвует, то более новый SDK не требуется.
A_>А работать с сокетами из-под VS .NET можно? А то у нас часть проекта уже на нем — хотелось бы не отходить от этой темы.
Можно.
A_>Еще вопросик знающим людям: A_>Насколько я поняла с BT устройством можно работать открыв файл на соответствующем COM порту. При этом никаких SDK не нужно — проблема только в том, что соединение предварительно придется устанавливать руками. А как этот COM-порт определить — к какому обращаться, чтобы BT-данные считывать?
Для начала его надо создать. Смотри PORTEMUPortParams
A>>Работать с BT через сокеты можно начиная только с определённых версий Windows. A_>Гм, а поконкретнее? С каких версий?
Начиная с WinXP SP1 и WinCE .NET 4.0
A>>>Работать с BT через сокеты можно начиная только с определённых версий Windows. A_>>Гм, а поконкретнее? С каких версий? A>Начиная с WinXP SP1 и WinCE .NET 4.0
А куда податься в такой связке: Win2000 + PocketPC 2002?
Здравствуйте, Akatik_jr, Вы писали:
A>>>>Работать с BT через сокеты можно начиная только с определённых версий Windows. A_>>>Гм, а поконкретнее? С каких версий? A>>Начиная с WinXP SP1 и WinCE .NET 4.0
A_> А куда податься в такой связке: Win2000 + PocketPC 2002?
Боюсь, что кроме WIDCOMM, RFCOMM etc ничего продложить не могу.
A_>> А куда податься в такой связке: Win2000 + PocketPC 2002? A>Боюсь, что кроме WIDCOMM, RFCOMM etc ничего продложить не могу.
Но судя по информации в нете, в PocketPC 2003 только стал использоваться WIDCOMM стек, а до того был некий Microsoft API. Что это за он?
И еще — а если просто как с ком-порта считывать, предварительно открыв BT-соединение? Есть ли где-нибудь формат сообщений, приходящих от BT, или это зависит от устройства-передатчика?
Здравствуйте, Andrusha, Вы писали:
A>Боюсь, что кроме WIDCOMM, RFCOMM etc ничего продложить не могу.
А каким образом работать с RFCOMM когда стек от widcomm?
В примере от Микрософт в RegisterDevice(, , L"btd.dll", ); передается путь к библиотеке которой на hp2210 нет! перепробовав (на всякий случай) все dll'ки, которые перечислены в инфе о bluetooth ничего хорошего не получил..
Здравствуйте, DenisII, Вы писали:
DII>Здравствуйте, Andrusha, Вы писали:
A>>Боюсь, что кроме WIDCOMM, RFCOMM etc ничего продложить не могу.
DII>А каким образом работать с RFCOMM когда стек от widcomm? DII>В примере от Микрософт в RegisterDevice(, , L"btd.dll", ); передается путь к библиотеке которой на hp2210 нет! перепробовав (на всякий случай) все dll'ки, которые перечислены в инфе о bluetooth ничего хорошего не получил..
DII>Или я чего-то не так понял?
HP и Mitac — хитрые дядьки, они в полуфабрикат WinCE от M$ вкручивают свои стэки, перетачивают/пишут свои приложения/мэнеджеры под них и продают. Фишка в том, что для написания под это устройство приходится покупать за килобаксы SDK ... Widcomm BT SDK` 1500-2500$, altavista спасёт отца русской демократии