LEGO Logo Moje strony o LEGO LEGO Logo
Protokoły komunikacyjne w LeJOS i klasy portów, które je implementują.

Aktualnie 3 rodzaje portów. Wszystkie dziedziczą z abstrakcyjnej klasy RCXAbstractPort. RCXAbstractPort wymaga w konstruktorze podania obiektu odziedziczonego z klasy PacketHandler. Klasa ta implementuje właściwy protokół komunikacyjny. Analogicznie są trzy rodzaje protokołów komunikacyjnych używanych przez dostępne porty. Wszystkie protokoły dziedziczą z abstrakcyjnej klasy PacketHandler. Nowy protokół dziedzicząc z PAcketHandler musi implementować conajmniej trzy metody: sendPacket, receivePacket i isPacketAvailable(), nadpisywanie pozostałych jest opcjonalne. Protokół dziedziczący z PacketHandler może być skonstruowany na bazie innego protokołu także dziedziczącego z PacketHandler - w ten sposób można tworzyć stosy protokołów.

1. RCXF7Port

Port komunikacyjny wykorzystujący protokół F7, wykorzystuje komunikację szeregową a nie niskopoziomową. Oznacza to, że używane są procedury ROM RCX-a, które pozwalają przesyłać tylko kody sterujące firmware'u LEGO (protokół LEGO). Użyty został kod F7 (wiadomość "set"), jako że umożliwia komunikację w obu kierunkach.

Informacje:
- Kompatybilność z LeJOS 1.0.5 (Protokół jest prawie ten sam jaki był używany przez RCXPort w LeJOS 1.0.5)
- Powinien potrafić skomunikować się z programami uruchomionymi w oryginalnym firmware LEGO (np. programy w NQC)
- Nie nadaję się do przesyłania strumieniowego (bajty mogą zaginąć lub być dostarczone kilkukrotnie)

Stos protokołu: 2 poziomowy składający się z F7DeliveryHandler i F7Handler:
Gwarancja dostarczenia: PRAWIE (F7DeliveryHandler - wykonuje ACK-i i ponowienia co może powodować duplikaty)
Gwarancja spójności: NIE (brak pewności, że pakiety dojdą w tej samoej kolejności w której zostały wysłane)
Integralność pakietów: PRAWIE (sprawdza (jakoś) poprawność)
Adresowanie odbiorców: NIE (dostarcza do wszystkich)


2.1. RCXLNPPort

Port komunikacyjny wykorzystujący LNP - Legos Network Protocol.

Informacje:
- Pozwala na komunikację z programami napisanymi w LegOS i aplikacjami LegOS na PC

Stos protokołu: 2 poziomowy składający się z LNPIntegrityHandler i LNPHandler:
Gwarancja dostarczenia: NIE (mogą zaginąć)
Gwarancja spójności: NIE (brak pewności, że pakiety dojdą w tej samoej kolejności w której zostały wysłane)
Integralność pakietów: TAK (LNPIntegrityHandler - sumy kontrolne)
Adresowanie odbiorców: NIE (dostarcza do wszystkich)


2.2. RCXLNPAddressingPort

Port komunikacyjny wykorzystujący LNP - Legos Network Protocol, wraz z warstwą adresacji.

Informacje:
- Pozwala na komunikację z programami napisanymi w LegOS i aplikacjami LegOS na PC

Stos protokołu: 3 poziomowy składający się z LNPAdressingHandler, NPIntegrityHandler i LNPHandler:
Gwarancja dostarczenia: NIE (mogą zaginąć)
Gwarancja spójności: NIE (brak pewności, że pakiety dojdą w tej samej kolejności w której zostały wysłane)
Integralność pakietów: TAK (LNPIntegrityHandler - sumy kontrolne) Adresowanie odbiorców: TAK (LNPAdressingHandler - wysyła do konkretnego odbiorcy, inne aktywne porty tego protokołu zignorują wiadomość nie do nich skierowaną)


3.1. RCXPort

Port komunikacyjny wykorzystujący LLC - Low Level Communication.

Informacje: - Gwarantuje dostarczenie pakietu. Wstrzymuje komunikację kiedy utraci łączność z odbiornikiem i wznawia przy odnowieniu widoczności

Stos protokołu: 2 poziomowy składający się z LLCReliableHandler i LLCHandler:
Gwarancja dostarczenia: TAK (LLCReliableHandler - ACK-i)
Gwarancja spójności: TAK (LLCReliableHandler - jednobitowy? numer sekwencyjny)
Integralność pakietów: TAK (LLCReliableHandler - sumy kontrolne)
Adresowanie odbiorców: NIE (dostarcza do wszystkich)


3.2. RCXInputStream i RCXOutputStream

Obciachane wersje RCXPort pozwalające tylko czytać dane i tylko wysyłać dane.


4. Serial

Klasa do niskopoziomowej komunikacji przez IR.
Zawiera m.in. metody do ustawiania mocy nadajnika w RCX-ie: setRangeLong() i setRangeShort()
Domyślnie ustawiany jest krótki zasięg, z powodu mniejszego poboru mocy.


Designed by Szymon. Szymon & this template are registered® trademark™ of Madej Inc. Copyright to HomeSweet.HomeDNS.org 2005.
Stronę odwiedzono 37303 razy od 12:15:48, Mon June, 19/06/2006 CEST (+0200)