„Szenzorhálózatok - HF: Szomszédok felderítése” változatai közötti eltérés

A VIK Wikiből
Ugrás a navigációhoz Ugrás a kereséshez
a (David14 átnevezte a(z) SzenzorHalozatokHFSzomszedok lapot a következő névre: Szenzorhálózatok - HF: Szomszédok felderítése)
a
 
1. sor: 1. sor:
{{GlobalTemplate|Valaszthato|SzenzorHalozatokHFSzomszedok}}
+
==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 [[GenericComm]] komponensre lesz szükség, amivel üzeneteket lehet küldeni és fogadni.
+
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, [[SendMsg]] interfésszel
+
** 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, [[ReceiveMsg]] interfésszel
+
** 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., 17: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.