2009-06-29 15 views
17

Mamy aplikację, która wymaga, aby móc korzystać z bluetooth do następujących wymagań:Bluetooth w języku C#, który stos, który zestaw SDK?

  1. odbieranie plików z urządzeń Bluetooth (do 2 urządzeń równocześnie)
  2. Pokaż wszystkie urządzenia Bluetooth w Zakres
  3. Wysyłanie plików do urządzenia bluetooth
  4. skanowania dla urządzeń bluetooth i transferu plików w tym samym czasie

Jesteśmy w systemie Windows XP.

Zrobiłem kilka rozglądać się i nie wydaje się być 3 główne stosy:

BlueSoleil

Na stronie BlueSoleil, w ich części SDK, wydaje się, by wymienić tylko 1 połączenie jest obsługiwane , co oczywiście nie jest dobre.

Okna

wydaje się wyłącznie do wsparcia 1 bluetooth dongle, który prawdopodobnie będzie oznaczać, że nie możemy spełnić wszystkie nasze wymagania.

Widcomm

Drogie i potencjalnie przesada? Bardziej złożone API? Myśli?

Pod względem SDK dla C#, patrzył na Franson Bluetools, ktoś użył tego API?

Dzięki

Odpowiedz

18

Po pierwsze, zrzeczenie się, jestem opiekunem biblioteki 32feet.NET. :-)

Właśnie sprawdziłem, a na XP ze stosem Microsoftu (za pomocą jednego klucza sprzętowego) mogę jednocześnie otrzymywać dwa PUT OBEX, a także odkrywać urządzenia. Używa to klasy ObexListener 32feet.NET i metody BluetoothClient.DiscoverDevices. Aby wysłać OBUT PEX można użyć jego klasy ObexWebRequest. Aby wykonać wiele równoległych połączeń z ObexListener, miałem tylko kilka wątków wywołujących jego metodę GetContext().

Więc to może być prostsze niż myśleliśmy ...

Ja również testowałem to z Andy Hume'a OBEX Server przy użyciu jego bibliotekę Brecham.Obex i jednoczesne odbieranie działa dobrze tam. Jest dostępny od http://32feet.net/files/folders/objectexchange/entry6511.aspx.

Nasza pomoc techniczna dla Widcomm. Mam nadzieję, że nie wydaje się to zbyt "niekompletne" po stronie klienta ... Zapytanie (wyszukiwanie urządzeń) i połączenia działają. Strona serwerowa wciąż wymaga trochę pracy i jest kilka rzeczy, które API Widcomm po prostu nie obsługuje np.. (programowa obsługa uwierzytelniania).

Na czym polegał problem z próbkami? Czas kompilacji lub czas pracy? Na stosie MSFT lub Widcomm? Kontynuacja pod numerem http://32feet.net/forums/37.aspx, jeśli wolisz.

+0

Dzięki alanjmcf :-) Potrzebujemy rzeczy po stronie serwera. Produkujemy urządzenie, które pozwala ludziom przesyłać rzeczy z telefonu komórkowego i wysyłać je z powrotem na telefon komórkowy. Musimy więc opublikować usługi, z których klienci mogą korzystać. Nie jestem pewny, że 2 strumienie wystarczą, dlatego nie jestem zwolennikiem stosu Windows. Możesz zmieścić 8 osób wokół jednego z naszych urządzeń. Opublikuję przykładowe problemy w Twojej witrynie. – badbod99

+0

Za każdym razem, gdy autor biblioteki publikuje odpowiedź, którą otrzymuje, otrzymuje +1 imho. –

+0

Dzięki Jordan. W poprzednich komentarzach. Zastanawiam się, jakie postępy poczyniono. W każdym razie na "dwóch OBEX PUTów i odkrywaniu urządzeń" Właśnie testowałem dwa, być może pełnych (?) Siedmiu rówieśników w sieci piconet może być obsługiwanych? Wciąż nie jest to osiem ... – alanjmcf

4

Spróbuj tego: 32feet.NET. Począwszy od wersji 2.4 obsługują stos Widcomm oprócz stosu Windows.

BTW: Dlaczego musisz pracować z dwoma kluczami jednocześnie? Zwykle pojedynczy klucz może obsłużyć jednocześnie do 7 urządzeń.

+0

Rozumiem, że chociaż obsługuje wiele urządzeń jednocześnie, może wykonać transfer plików Obex tylko do jednego z tych plików naraz. Popraw mnie, jeśli się mylę! – badbod99

+0

Rzuciłem okiem na 32 stopy. Ich implementacja widcomm jest dość niekompletna i nie mogłem uzyskać żadnej z ich próbek działających natychmiast po uruchomieniu. Cieszę się, że mogę wydać na komponent, ale po prostu nie mogę znaleźć dobrego! Przykłady Blue Tools również nie działają po wyjęciu z pudełka. – badbod99

+0

Jeszcze nie próbowałem wdrożenia widcomm przez siebie. Jeśli chodzi o wiele urządzeń, nie mogę powiedzieć na pewno, bo nie próbowałem, ale o ile wiem, nie ma ograniczeń co do typu połączenia, więc powinieneś mieć kilka jednoczesnych transferów obexowych bez problemu. – arbiter

5

Time to dokładnie to, co skończyło się robi wyjaśnić ...

2 klucze dlaczego?

  1. Jeśli klucz robi skanowanie szybkość transferu jest znacznie spowalniany
  2. Klucz sprzętowy może obsługiwać tylko 7 jednoczesnych transferów, jeśli robisz skan, to spada do 6. Jeśli chcesz wysłać , odbieraj i skanuj wszystko w tym samym czasie, wszystko spowalnia, źle, a Ty masz bardzo ograniczone kanały.

Chodzi o to, aby jeden klucz sprzętowy był ciągle skanowany (aby urządzenia wyświetlały się tak szybko, jak to możliwe), a drugi klucz zarezerwowany dla transferów, a ponieważ nie jest skanowany, transfery są dobre i szybkie.

Biblioteka użyliśmy

Po wielu testach i myśli, że skończyło się decydując się na WirelessCommunicationLibrary from BT framework.

Obsługuje Widcomm, Windows, BlueSoleil i stos Toshiba. Obsługuje wszystkie potrzebne nam elementy po stronie serwera, jest dobrze obsługiwanym produktem komercyjnym, który działa doskonale bez błędów.

Który stos?

Cóż, to jest skomplikowane. ŻADNY ze stosów obsługuje 2 klucze w tym samym czasie. Tak więc jedyną opcją jest uruchomienie jednego klucza sprzętowego na jednym stosie, a drugiego na innym. W tym miejscu biblioteka WCL jest przydatna!

Microsoft - Jeśli podczas skanowania wystąpi błąd, zdarza się, że cały stos ulega awarii. To nie jest idealne! Musisz zamknąć i ponownie uruchomić urządzenie radiowe, potrzebuje czasu i jest podatny na błędy. Ale ... stos Microsoft radzi sobie bardzo dobrze z transferem plików.

Widcomm - Widcomm stos nie nadaje się do transferu plików. Nie ma brzydkie małe aplikacje, które instalują z Widcomm, które próbują przejąć kontrolę nad swoją aplikacją. Możesz zabić bttray.exe, co pomaga, ale wciąż masz dziwne zachowanie ze stosu podczas transferów. Jestem pewien, że można to rozwiązać, ale skoro system Windows nie nadaje się do skanowania, sensowne jest używanie Widcomm do skanowania.

Więc ... mamy klucz sprzętowy do Widcomm do skanowania w kółko i jeden klucz sprzętowy ustawiony na Microsoft ustawiony do obsługi tylko transferów plików (do i na zewnątrz).

Pierwsze 2 klucze do pracy

poszliśmy na użyciu 2 te same klucze, możemy zamówić je zbiorczo i zaopatrzyć je podobnie zamieszanie redukujący. Każde urządzenie wysyłane po prostu potrzebuje 2 kluczyków bluetooth, proste.

Jedynym problemem jest to, że są to klucze widcomm i potrzebujemy jednego klucza sprzętowego na stosie Windows. Windows nie rozpoznaje ich jako klucza sprzętowego Windows, więc nie zarejestruje ich dla stosu Windows. Więc ... jest hackem, który możesz zrobić na bt.inf plik, aby rozpoznać klucz sprzętowy dla systemu Windows. Następnie musisz zmienić sterowniki dla jednego z kluczy sprzętowych, aby działały na sterownikach Windows i gotowe.

Podsumowanie

... Więc mamy jeden klucz skanowanie wszystkich czasie, jeden transfer obsługi, każdy na oddzielnych stosach i wszystko ładnie działa. Jest to jedyny sposób, w jaki udało mi się uzyskać sprawne działanie 2 dongli w systemie Windows. Jeśli masz lepszą propozycję, opublikuj ją!

+1

Zauważ, że moja biblioteka 32feet.NET obsługuje dwa klucze dongle od 2.5 (właściwie 2.4.1). Jedna z MSFT i jedna z Widcomm podobna do używanej w tym przypadku. :-) – alanjmcf

+0

Jedynym problemem jest to, że 32feet nie obsługuje funkcji serwera Widcomm. – badbod99

Powiązane problemy