„Szenzorhálózatok - HF: Szomszédok felderítése” változatai közötti eltérés
Új oldal, tartalma: „{{GlobalTemplate|Valaszthato|SzenzorHalozatokHFSzomszedok}} ==Feladat: (1) szomszédok felderítése== ===Részletes kiírás=== Készítsen olyan minta alkalmazást…” |
aNincs szerkesztési összefoglaló |
||
(Egy közbenső módosítás, amit egy másik szerkesztő végzett, nincs mutatva) | |||
1. sor: | 1. sor: | ||
==Feladat: (1) szomszédok felderítése== | |||
==Feladat: (1) szomszédok felderítése== | |||
===Részletes kiírás=== | ===Részletes kiírás=== | ||
11. sor: | 9. sor: | ||
===Segítség=== | ===Segítség=== | ||
A feladat megoldásához a | 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.) | 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.) | ||
18. sor: | 16. sor: | ||
Szükséges komponensek: | Szükséges komponensek: | ||
* Kell egy komponens, ami az üzeneteket küldözgeti | * Kell egy komponens, ami az üzeneteket küldözgeti | ||
** A GenericComm-hoz kapcsolódik, | ** A GenericComm-hoz kapcsolódik, SendMsg interfésszel | ||
** Ez egy Timer-t használhat arra, hogy periodikusan küldje az üzeneteket | ** Ez egy Timer-t használhat arra, hogy periodikusan küldje az üzeneteket | ||
* Kell egy komponens, ami fogadja az üzeneteket | * Kell egy komponens, ami fogadja az üzeneteket | ||
** A GenericComm-hoz kapcsolódik, | ** 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 | ** 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 | * Kell egy komponens, ami a táblázatot nyilvántartja |
A lap jelenlegi, 2014. augusztus 24., 18:09-kori változata
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.