Szenzorhálózatok - HF: Óraszinkronizáció, alvás-ébrenlét

A VIK Wikiből
A lap korábbi változatát látod, amilyen David14 (vitalap | szerkesztései) 2013. február 5., 21:00-kor történt szerkesztése után volt. (David14 átnevezte a(z) SzenzorHalozatokHFOraszinkronizacioAlvas lapot a következő névre: Szenzorhálózatok - HF: Óraszinkronizáció, alvás-ébrenlét)
Ugrás a navigációhoz Ugrás a kereséshez

Ez az oldal a korábbi SCH wiki-ről lett áthozva. Az eredeti változata itt érhető el.

Ha úgy érzed, hogy bármilyen formázási vagy tartalmi probléma van vele, akkor kérlek javíts rajta egy rövid szerkesztéssel.

Ha nem tudod, hogyan indulj el, olvasd el a migrálási útmutatót


Feladat: (2) szinkronizálás, alvás-ébrenlét

Részletes kiírás

Készítsen olyan alkalmazást, amelyben a hálózatban szereplő eszközök periodikusan alszanak és kis kitöltési tényezővel ébren vannak. Az ébrenléti szakaszokat a mótok egymáshoz szinkronizálják és ezen időtartamok alatt egymással kommunikálnak. Az eszköz által biztosított szinkronizációs primitívek segítségével alkosson olyan biztonságos alvás-ébrenlét mechanizmust, hogy a kommunikáció idején a szinkronizációs hibák ellenére biztosan minden állomás ébren legyen, de mégis minden mót a lehető legtöbbet aludjon az energiatakarékosság jegyében.

Minden mót a kommunikációs időszelet (általa ismert) kezdetekor és végén autonóm módon küldjön egy üzenetet, amely egy bázisállomáson keresztül egy PC képernyőjén időbélyeggel együtt jelenjen meg. A LED-ekről leolvasható legyen a mót állapota (alvás/ébrenlét/kommunikáció).

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 az órák szinkronizációjához szükséges adatokat. Választani kell valamilyen órszinkronizációs algoritmust, amit meg fogtok valósítani. Ajánlom még figyelmetekbe a LogicalTime nevű komponenst, ami egy logikai óra megvalósítása, lehet lekérdezni és beállítani is az aktuális időt, és lehet relatív módon is változtatni az értékét.

A TinyOS ütemezője automatikusan eleltatja a processzort, ha nincsen futó task. A rádió ki- és bekapcsolása azonban a felhasználói program feladata. Alvás alatt tehát azt értjük, hogy olyankot ki is kell kapcsolni a rádiót. Ezt az IA4420RadioC.StdControl interfészen keresztül tehetjük meg (persze még a kikapcsolás előtt kell elküldeni az üzenetet a központnak, hogy el fog aludni a mote).


-- Laci - 2007.04.19.