Szenzorhálózatok - A TinyOS és a nesC

A VIK Wikiből
A lap korábbi változatát látod, amilyen Szikszayl (vitalap | szerkesztései) 2014. augusztus 24., 17:11-kor történt szerkesztése után volt.
(eltér) ← Régebbi változat | Aktuális változat (eltér) | Újabb változat→ (eltér)
Ugrás a navigációhoz Ugrás a kereséshez

A TinyOS egy beágyazott operációs rendszer, amit kifejezetten szenzorhálózati alkalmazások fejlesztésére találtak ki. nesC nyelven írták, és ezen a nyelven lehet hozzá programokat is írni. Ezeknek a részletesebb tulajdonságait fejtem ki alább.

A nesC programozási nyelv

A nesC a C nyelv egy komponens-orientált kiterjesztése. Fő jellemzője még a komponens-orientáltságon kívül az eseményvezérelt működés.

nesC 1.1

Komponensek, modulok, konfigurációk, parancsok, események, interfészek

A nesC programok komponensekből épülnek fel, amik az objektum-orientált nyelvek osztályaihoz hasonlítanak, mert egyegységbe zárják az adatokat és a rajtuk végezhető műveleteket, de mivel hardverközeli környezetben vagyunk, nem csak adatokról van szó, hanem perifériákról is. Jellemő eltérés az objektum-orientált nyelvekkel szemben, hogy minden komponens csak egy példányban létezhet, tehát olyan, mint egy singleton, vagy mintha statikus lenne minden metódusa és mezője. (Paraméterezett interfészek segítségével megoldhatóak bizonyos helyzetek, amikor több példányra lenne szükség, de erről majd később, és ennek ellenére ez egy hátrány, amit az újabb verzióban már megoldottak.) Mivel a nesC nyelv eseményvezérelt szemléletű, ezért a komponenseknek nem csak parancsai (*command*) vannak, amik a szokásos metódusoknak felelnek meg, hanem deklarálni kell a komponens által kiváltott eseményeket is, valamint azt, hogy milyen eseményekre reagál a komponens. Szokatlan módon a parancsoknál sem csak azt kell megadni, hogy milyeneket valósítmeg a komponens, hanem azokat is, amelyeket meg akar hívni. Komponensekből két fajta van: modul és konfiguráció. A modulok hasonlítanak a szokásos programozási nyelvekre: meg van bennük valósítva minden parancs, amit mások felé nyújtanak, valamint az eseménykezelők azokra az eseményekre, amiket használnak. A függvénytörzsek gyakorlatilag C nyelvűek, eltekintve néhány kulcsszótól, mint például a call a parancsok meghívására és a signal az események kiváltására, a függvények előtt pedig jelezni kell, hogy az parancs (*command*), vagy eseménykezelő (*event*). A fentieknek megfelelően a megvalósításban csak a használatra deklarált parancsokat lehet meghívni és a mások felé nyújtott eseményeket lehet kiváltani.

Folyt. köv.

A nesC programok .nc kiterjesztésű fájlokból állnak, ezeknek több fajtájuk van:

  • Komponensek
    • Konfigurációk
    • Modulok
  • Interfészek:

Definiálják a komponensek közötti kapcsolatok típusát.

-- Laci - 2007.03.25.