Szenzorhálózatok - HF: Szomszédok felderítése
Feladat: (1) szomszédok felderítése
Részletes kiírás
Készítsen olyan minta alkalmazást, ahol a szenzorhálózati csomópontok (mótok) képesek önállóan felderíteni a kommunikációs sugarukon belül elérhető szomszédaikat. A feladat minden mót számára egy táblázat létrehozása és folyamatos karbantartása a szomszédairól, figyelembe véve, hogy a szomszédos csomópontok eltűnhetnek ill. új csomópontok is megjelenhetnek a hálózatban.
Adjon megoldást arra is, hogy a csomópontok eljuttassák a szomszédossági információkat egy PC-hez kötött nyelő állomásnak, többugrásos (multi-hop) hálózatot feltételezve (azaz amikor nem minden állomás képes közvetlenül a nyelővel kommunikálni). A PC képernyőjén jelenjen meg a hálózat logikai gráfja, azaz a gráf csomópontjai a mótok, az élek pedig egymással közvetlenül kommunikálni képes mótokat kötnek össze.
Segítség
A feladat megoldásához a GenericComm komponensre lesz szükség, amivel üzeneteket lehet küldeni és fogadni. Létre kell hozni valamilyen saját üzenetformátumot, amibe bele lehet tenni a küldő címét. Minden mote periodikusan elküld egy ilyen csomagot a saját címével mindenkinek, azaz a broadcast címre (TOS_BCAST_ADDR). Ha valaki vesz egy ilyen csomagot, akkor bejegyzi a táblázatába, hogy az a mote a közelben van. Azokat a mote-okat, amiktől érkezett valamikor üzenet, de azóta már sok idő eltelt, törölni kell a táblázatból. (Lehet úgy is, hogy időnként törli az egészet, és egy bizonyos ideig vár újabb csomagokat, és akiktől érkezett, azokat tekinti szomszédainak. Arra azért ügyelni kell, hogy a felhasználó ne lásson olyat, hogy nincsenek szomszédok, vagy kevés szomszéd van, miközben biztos szomszédai vannak, csak épp törölte a listát, azaz amíg össze nem gyűlt teljesen az új szomszédlista, addig a régit meg kell őrizni.)
A feladatból első körben el lehet hagyni a multihop kommunikációt, és a mitmóton megjeleníteni azt, hogy milyen szomszédai vannak. Erre lehet használni a LED-eket, pl. úgy, hogy ha max. 4 mote van, akkor 1-1 LED tartozhat a mote-okhoz, de jobb megoldás, ha sorban végigmegy a szomszédainak listáján, és binárisan megjeleníti a címüket, mindegyiket 0,5-1 másodpercig.
Szükséges komponensek:
- Kell egy komponens, ami az üzeneteket küldözgeti
- A GenericComm-hoz kapcsolódik, SendMsg interfésszel
- Ez egy Timer-t használhat arra, hogy periodikusan küldje az üzeneteket
- Kell egy komponens, ami fogadja az üzeneteket
- A GenericComm-hoz kapcsolódik, ReceiveMsg interfésszel
- A fogadott csomagokból kideríti, hogy ki küldte, és ezt továbbadja a következő komponensnek
- Kell egy komponens, ami a táblázatot nyilvántartja
- Az interfészén keresztül lehessen jelezni, hogy valakitől érkezett csomag
- Kell egy komponens, ami az eredményt megjeleníti.
- Ez kiolvassa a szomszédsági táblázatot
- és periodikusan megjeleníti a címeiket a LED-eken
- Egy Timer-t és a Leds4C komponens Leds4 interfészét használja a periodikus megjelenítésre.
-- Laci - 2007.04.19.