Visual C# – na niebiesko … część 2

Visual C# – na niebiesko … część 2
Razem głosów: 35 co stanowi: 96.57% całości.

Bluetooth

W poprzedniej części nauczyliśmy się wykrywać urządzenia Bluetooth , teraz pójdziemy dalej gdyż wykonamy połączenie z wybranym urządzeniem. Zadanie nie jest trudne przy tak świetnej bibliotece, ale zawieje grozą i zgrozą ….  he he he

Przechwytywanie3Do naszej poprzednio stworzonej aplikacji dodamy nieco nowych funkcjonalności które nam będą potrzebne w pracy z bluetooth. W sumie nie będziemy mieli wiele pracy, a nasz program będzie spełniał pożyteczne funkcje dla nas wszystkich i zarządzał połączeniem. Pamiętacie ??

Przechwytywanie

Właśnie do tego dążymy….  i na koniec arta taka aplikacja będzie gotowa :)

 

ZACZYNAMY:


 

Na początek zajmiemy się wybieraniem urządzeń  – to prosta sprawa wystarczy zawartość textboxa przepisać do comboboxa, gdzie dokonamy wyboru urządzenia z którym chcemy się połączyć. Oczywiście przy okazji nauczymy się definiować urządzenia do połączenia w samym programie , bez wykrywania. Jest to użyteczne gdy chcemy się łączyć z naszymi urządzeniami nie jawnie .

Zatem powiększamy okienko naszego programu i dodajemy combobox … i w zdarzeniu SelectedItem wpisujemy:

I w sumie mamy z głowy …  Wyjaśnię jeszcze, że w tym miejscu pojawi nam się nazwa którą zdefiniowałem na wstępie poprzedniego programu pamiętacie ??

Tak jak widzicie tu właśnie ukryłem dane naszego urządzenia :)

Dodatkowo żeby wszystko ładnie działało w funkcji initBluetooth  dodamy na końcu linijkę:

dokładnie w tym miejscu:

Uff jakoś poszło …. teraz będzie zabawniej gdyż jesteśmy gotowi do połączenia. I za chwilę się to stanie ….  Dodajemy wiec 2 przyciski  Połącz i Rozłącz:)

W zdarzeniu kliknięcia przycisku Połącz wpisujemy:

Dodajemy backgroundworkera, nazywamy go bW_BTKonekt i w zdarzeniu wpisujemy …

Dzięki takiej konstrukcji będziemy mogli łatwo zdefiniować dodatkowe argumenty konieczne do połączenia  jeśli takowe będą konieczne i podstawić je do  stringu dodatkoweArgumenty.  Jak też widzicie pojawiła się tu też zmienna PinUBT w argumentach połączenia ….  jest to celowe gdyż wiele urządzeń ma zdefiniowany PIN  np urządzenia z BTM222 domyślnie mają pin 0000 .. ale Pin omówimy za chwilę. Tymczasem  tworzymy Funkcję Połączenie ….

Funkcja zwraca 3  wyniki :

  1. wartość standardowa
  2. anulowano przed połączeniem
  3. anulowano podczas parowania

Funkcji nie będę omawiał gdyż wszytko widać ładnie co i z czym, chyba, że będą pytania … to odpowiem,

Następną sprawą jest nasz Status, zatem możemy sobie dodać stausStrip:

Przechwytywanie

A tak będą przebiegać informacje z backgroundWorkera:

Najprostszy jest przycisk Rozłączania :) I w zasadzie najmniej kodu pochłania. W jego zdarzeniu wpisujemy:

I tym sposobem ukrywamy dodatki o których nie pisze jak ProgressBAR, gdyż możecie z takich wizualizacji pracy zrezygnować ….

Timerki są nam potrzebne zarówno do kasowania jaki wyświetlania informacji dlatego kilka z nich opisujemy:

W przypadku gdybyśmy chcieli powołać automatyczne połączenie z jakimś urządzeniem gdy się pojawi w zasięgu to również musimy powołać do  życia Timer np tak:

Jak widać jest to banalnie proste …. I to by było na tyle co jest konieczne do wykonania połączenia z naszym urządzeniem BT i pozostaje mi życzyć wam dobrej zabawy z bt ….

A nie ….. nie koniec przecież musimy omówić PIN :)

PIN 


 

No tak wiele urządzeń ma zdefiniowany pin jak np BTM222  gdzie mój ma 0000 ale fasbrycznie jest 1234 i jest konieczne podanie PINU  jako warunek połączenia wymagany do sparowania urządzenia , zaś w innych PIN należy wpisać wtedy na urządzeniu np na telefonie :)

Zatem do naszego programu dodajemy 2 textBoxy :

Przechwytywanie

Wygląda to tak :)  Prawda że proste i banalne ??

Działanie jest banalne Wpisujemy Pin do pierwszego textBoxa  i funkcja reaguje na wciśnięcie klawisza ENTER przepisując PIN do dolnego i wstawiając go do Funkcji Połącz. CODE == 13 to właśnie Enter:)

Oczywiście do programu można dodać jeszcze wiele rzeczy i wiele funkcji , my poprzestaniemy na tym że dodamy sobie TEXTBoxa gdzie przechwycimy informacje z urządzenia jeśli takowe po nawiązaniu połączenia wysyła :

Przechwytywanie

Ale złośliwie to zostawię dla was gdyż tutaj ma to tylko charakter poglądowo-demonstracyjny :) Na koniec zabezpieczymy się przed niechcącym zamknięciem programu :)

Dlatego w zdarzeniu CloseForm  wpisujemy:

I tym sposobem nasza aplikacja jest gotowa :)

Przechwytywanie

Ale do działania potrzebny jest nam jeszcze managerBT, który tworzymy osobno. W tym celu dodajemy do naszej solucji nowy plik źródłowy o nazwie managerBT.cs

Przechwytywanie

A w nim wpisujemy nasze funkcje związane z zarządzaniem danymi i radiem  BT, całośc wygląda następująco:

i teraz już możemy skompilować naszą aplikację i cieszyć się działaniem BT w naszej aplikacji.  Specjalnie managera dałem do odrębnego pliku dzięki temu macie gotową funkcję do użycia w każdej aplikacji.  Jak widzicie wyżej jest ona banalnie prosta i korzysta z klas dostępnych w referencjach biblioteki InTheHand.NET.Personal.dll

Czas zobaczyć co nasza aplikacja potrafi:)

Jak widać niżej Aplikacja wykrywa i łączy się w trybie RFCOMM z urządzeniami , np z testowym Samsungiem C3530  co widać poniżej , jak też i odpowiedź na połączenie:

Przechwytywanie

Dodatkowo jak sprawdzicie sobie w systemie urządzenia BT w systemie :

Przechwytywanie

zobaczycie że telefon został automatycznie sparowany z systemem, Takim wiec to prostym sposobem jesteśmy uwolnieni od korzystania z zewnętrznych programów do parowania urządzeń BT oraz tworzenia virtualnych portów COM. W ten sposób uzyskujemy połączenie niejako bezpośrednio w trybie RFCOMM  z naszym urządzenie, Bluetooth i możemy bez obaw korzystać z dobrodziejstwa radiowej transmisji danych.

Reszta zostaje dla was jak wykorzystacie tą wiedzę :) Możliwości są zasadniczo nieograniczone  i zależne od waszej wyobraźni :)

Tymczasem tak to działa …. możecie sami sprawdzić :

 

SunBTDEMO FULL
SunBTDEMO FULL
SunBTDEMO_FULL.7z
399.7 KiB
41 Downloads
Szczegóły

Miłej zabawy z Bluetooth.

 

Podziel się na:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Blogplay

Jedna myśl nt. „Visual C# – na niebiesko … część 2

  1. Genialne … i takie proste , a ja się zawszę męczyłem w COMY. Masz łeb na karku Sun. Dzięki

Możliwość komentowania jest wyłączona.