Up: Aplikacje

Zdalny kontroler X10

Zdalny kontroler X10 (ang. Remote Control X10) jest aplikacją do zdalnego zarządzania urządzeniami. Użytkownik może sterować urządzeniami za pomocą protokołu X10 [42], który umożliwia komunikację z urządzeniem za pomocą komunikatów przesyłanych przewodami elektrycznymi. Schemat elementów aplikacji można zobaczyć na rys. 6.7. Aplikacja składa się z:

Rysunek 6.7: Schemat modułów aplikacji CoSMoL@X10
\includegraphics[scale=0.4]{rys_B51.eps}

Użytkownik loguje się do systemu podając nazwę i hasło, które w postaci krotki zostają przesłane do przestrzeni krotek. Serwis X10 pobiera krotkę i weryfikuje użytkownika. Jeśli użytkownik może się zalogować, serwis przesyła opis formularza do przestrzeni krotek. Klient pobiera opis formularza przez serwer proxy z przestrzeni krotek i interpretuje go, w wyniku czego otrzymuje formularz. Na rysunku 6.8 przedstawiam formularz główny, który się pojawia po zalogowaniu do systemu. Użytkownik może zdefiniować kod sieci domowej (ang. HouseCode) np. N, a następnie wybrać operację jaką chce wykonać: wyłączyć wszystkie urządzenia -- All Units Off, włączyć wszystkie lampy -- All Light On, wyłączyć wszystkie lampy -- All Light Off, sprawdzić status pojedynczego urządzenia -- Status Device lub dodać nowe urządzenie do systemu -- Create New Device. Po wybraniu przycisku All Units Off klient wysyła krotkę:

[X10CMD, ALL, UNITS , housecode, OFF].
Po wybraniu przycisku All Light On klient wysyła krotkę:
[X10CMD, ALL, LIGHTS , housecode, ON].
Po wybraniu przycisku All Light Off klient wysyła krotkę:
[X10CMD, ALL, LIGHTS , housecode, OFF].

Rysunek 6.8: Klient aplikacji CoSMoL@X10 -- formularz główny
\includegraphics[scale=0.9]{x10_01.eps}

Po wybraniu przycisku Create New Device można zdefiniować nowe urządzenie. Na rysunku 6.9 przedstawiam formularz do zdefiniowania nowego urządzenia w systemie. Użytkownik może określić kod domu (ang. housecode) w zakresie od A do P i adres w sieci (ang. address) od 1 do 16. Adresowanie urządzeń jest związane z właściwościami protokołu X10 i modułami, które są wpięte razem z urządzeniem do gniazdka. Każdy moduł ma na stałe przyporządkowany adres, np. N9. Następnie użytkownik określa typ urządzenia spośród obsługiwanych w systemie. Rozszerzanie aplikacji o nowe typy urządzeń odbywa się przez konfigurację serwisu odpowiedzialnego za tę usługę. Domyślnie dostępne są dwa typy: urządzenie -- device i lampa -- lamp. Różnica między nimi polega na rozszerzeniu lampy o możliwości przyciemniania i rozjaśniania. Po zatwierdzeniu wyboru zostaje wysłana krotka
[X10CMD, DEVICE, N, 9, DEVICE],
na podstawie której serwis stworzy opis urządzenia, który zostaje umieszczony w przestrzeni krotek i na podstawie, którego serwis będzie generował dalsze formularze dla użytkownika.

Rysunek 6.9: Klient aplikacji CoSMoL@X10 -- stworzenie nowego urządzenia w systemie
\includegraphics[scale=0.9]{x10_03.eps}

Przycisk Status Device z rys. 6.8 powoduje pobranie opisu formularza z listą urządzeń dostępnych w domu o podanym kodzie. Przykładowy efekt jest pokazany na rys. 6.10. Użytkownik ma możliwość zarządzania konkretnym urządzeniem. Po naciśnięciu przycisku Check, użytkownik przejdzie do formularza pokazanego na rys. 6.11.

Rysunek 6.10: Klient aplikacji CoSMoL@X10 -- lista urządzeń
\includegraphics[scale=0.9]{x10_06.eps}

Na rysunku 6.11 pokazano dwa różne widoki dla urządzenia, w zależności od znalezionej informacji w systemie. W tym przypadku jest to lampa i urządzenie. Dostępne operacje to włączenie i wyłączenie. Po naciśnięciu przycisku OFF lub ON zostaje wysłana krotka:

[X10CMD, STATE, housecode, address, OFF],
lub
[X10CMD, STATE, housecode, address, ON],
np.
[X10CMD, STATE, N, 9, OFF],
wyłącza urządzenie o adresie N9.

Rysunek 6.11: Klient aplikacji CoSMoL@X10 -- sterowanie urządzeniem
\includegraphics[scale=0.9]{x10_04.eps} \includegraphics[scale=0.9]{x10_02.eps}

Ustawienie nowej wartości dla jasności i naciśnięcie przycisku BRIGHT powoduje wysłanie krotki:

[X10CMD, BRIGHT, housecode, address, wartość],
np.
[X10CMD, BRIGHT, N, 11, 50],
ustawia jasność lampy na 50%.

Wszystkie krotki postaci [X10CMD,....] są obsługiwane przez serwis X10. W momencie pojawienia się krotki w tej postaci w przestrzeni, zostaje uruchomiony wątek przez serwis, który będzie odpowiedzialny za wykonanie danej operacji. Wątki są kolejkowane przez serwis, w ten sposób zachowana jest kolejność wykonywanych operacji na urządzeniu.

Podsumowując, aplikacja zapewnia oprogramowanie dla urządzeń domowych do komunikacji z PalmPilotem za pomocą protokołu X10. Interfejs użytkownika zmienia się, w zależności od dostępnych urządzeń i akcji jakie wykonują inni użytkownicy.


sierpień 2001