Beágyazott információs rendszerek 4. házi feladat

Hasonló dokumentumok
Beágyazott információs rendszerek házi feladat

operációs rendszer A TinyOS - Bevezető - [ Beágyazott Információs Rendszerek Tervezése ]

A TinyOS. operációs rendszer. (bevezető) Beágyazott Információs Rendszerek.

Mote-mote rádiós kommunikáció

Broadcast alkalmazás készítése

Hımérı alkalmazás készítése

Megoldás. Feladat 1. Statikus teszt Specifikáció felülvizsgálat

Számítógépes Hálózatok GY 6.hét

Számítógépes Hálózatok. 5. gyakorlat

Számítógép-hálózatok. Gyakorló feladatok a 2. ZH témakörének egyes részeihez

Hálózati architektúrák laborgyakorlat

Hibadetektáló és javító kódolások

Hálózatok. Alapismeretek. A hálózatok célja, építőelemei, alapfogalmak


9. MPI

Számítógép hálózatok gyakorlat

Programozható vezérlő rendszerek KOMMUNIKÁCIÓS HÁLÓZATOK 2.

Az internet ökoszisztémája és evolúciója. Gyakorlat 1

Tartalom. Az adatkapcsolati réteg, Ethernet, ARP. Fogalma és feladatai. Adatkapcsolati réteg. A hálókártya képe

Számítógépes Hálózatok GY 7.hét

Könyvtári címkéző munkahely

CAN alapú járműves adatokat megjelenítő szoftver fejlesztése

Autóipari beágyazott rendszerek. Local Interconnection Network

Tartalomjegyzék. Előszó... xi. 1. Bevezetés Mechanikai, elektromos és logikai jellemzők... 13

Magyar Gyors felhasználói útmutató A GW-7100PCI driver telepítése Windows 98, ME, 2000 és XP operációs rendszerek alatt

A vezérlő alkalmas 1x16, 2x16, 2x20, 4x20 karakteres kijelzők meghajtására. Az 1. ábrán látható a modul bekötése.

ClusterGrid for Windows

Hálózati protokoll tervezése

Hálózati réteg. WSN topológia. Útvonalválasztás.

APB mini PLC és SH-300 univerzális kijelző Általános használati útmutató

I+K technológiák. Beágyazott rendszerek 3. előadás Dr. Aradi Szilárd

Számítógépes Hálózatok. 4. gyakorlat

A C programozási nyelv III. Pointerek és tömbök.

Számítógépes Hálózatok. 5. gyakorlat

Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I.

Hálózati architektúrák és Protokollok Levelező II. Kocsis Gergely

Hálózati Technológiák és Alkalmazások. Vida Rolland, BME TMIT november 5. HSNLab SINCE 1992

A C programozási nyelv III. Pointerek és tömbök.

Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán

Hálózati architektúrák és Protokollok PTI 6. Kocsis Gergely

Intelligens kamera alkalmazás fejlesztése

Routing update: IPv6 unicast. Jákó András BME EISzK

I+K technológiák. Buszrendszerek Dr. Aradi Szilárd

OSI-ISO modell. Az OSI rétegek feladatai: Adatkapcsolati réteg (data link layer) Hálózati réteg (network layer)

Házi feladatok Szenzorhálózatok és alkalmazásaik

Számítógép-hálózatok zárthelyi feladat. Mik az ISO-OSI hálózati referenciamodell hálózati rétegének főbb feladatai? (1 pont)

Hálózati architektúrák laborgyakorlat

Számítógépes Hálózatok GY 3-4.hét

3.5.2 Laborgyakorlat: IP címek és a hálózati kommunikáció

Számítógépes Hálózatok. 5. gyakorlat

ALKALMAZÁSOK ISMERTETÉSE

Az internet ökoszisztémája és evolúciója. Gyakorlat 1

Gyakorló feladatok a 2. ZH témakörének egyes részeihez. Számítógép-hálózatok. Dr. Lencse Gábor

Járműfedélzeti kommunikáció. Dr. Aradi Szilárd

A rendszer célja. Funkciók

Számítógépes hálózatok

Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o

Hálózati architektúrák és Protokollok GI 8. Kocsis Gergely

Hálózati architektúrák és Protokollok GI 7. Kocsis Gergely

Powershell 2. gyakorlat

Hálózati architektúrák és Protokollok PTI 5. Kocsis Gergely

Mérési jegyzőkönyv. készítette Szabó Attila Mesterséges intelligencia alkalmazások gyakorlat, ELTE IK 2006/2007-2

Programozás 5. Dr. Iványi Péter

Adatkapcsolati réteg 1

Yottacontrol I/O modulok beállítási segédlet

A virtuális környezetet menedzselő program. Első lépésként egy új virtuális gépet hozzunk létre a Create a New Virtual Machine menüponttal.

Address Resolution Protocol (ARP)

A ComEasy Windows NT/98/ME/2000/XP/Vista/7 és Linux/Unix operációs rendszeren használható.

Járműfedélzeti rendszerek II. 6. előadás Dr. Bécsi Tamás

XII. PÁRHUZAMOS ÉS A SOROS ADATÁTVITEL

Számítógép Architektúrák

11. gyakorlat Sturktúrák használata. 1. Definiáljon dátum típust. Olvasson be két dátumot, és határozza meg melyik a régebbi.

Hálózati Architektúrák és Protokollok GI BSc. 3. laborgyakorlat

Járműfedélzeti rendszerek II. 6. előadás Dr. Aradi Szilárd

TxBlock-USB Érzékelőfejbe építhető hőmérséklet távadó

Titkosítás NetWare környezetben

és az instanceof operátor

SPECIÁLIS CÉLÚ HÁLÓZATI

C programozási nyelv

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

Két típusú összeköttetés PVC Permanent Virtual Circuits Szolgáltató hozza létre Operátor manuálisan hozza létre a végpontok között (PVI,PCI)

Multiprotocol encapsulation (RFC1483) - IETF Classical IP over ATM (RFC1577) - IETF LAN Emulation (LANE) - ATM Forum Multiprotocol over ATM (MPOA) -

Occam 1. Készítette: Szabó Éva

Pénzügyi algoritmusok

Java. Java Message Service. ANTAL Margit. JMS API technológia. ANTAL Margit. Sapientia - EMTE

Számítógépes Hálózatok 2012

Roger UT-2. Kommunikációs interfész V3.0

Tartalom DCOM. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés

1) Forgalomirányító (Router)

Windows rendszeradminisztráció és Microsoft szerveralkalmazások támogatása. Kocsis Gergely, Supák Zoltán

Hálózati Technológiák és Alkalmazások

ISA szimulátor objektum-orientált modell (C++)

III. Felzárkóztató mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

SZOCIÁLIS ÉS MUNKAÜGYI MINISZTÉRIUM

2014 UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Az RSVP szolgáltatást az R1 és R3 routereken fogjuk engedélyezni.

Programozó- készülék Kezelőkozol RT óra (pl. PC) Digitális bemenetek ROM memória Digitális kimenetek RAM memória Analóg bemenet Analóg kimenet

10. gyakorlat Struktúrák, uniók, típusdefiníciók

INFORMATIKA javítókulcs 2016

Járműfedélzeti rendszerek II. 8. előadás Dr. Bécsi Tamás

Átírás:

Beágyazott információs rendszerek 4. házi feladat Szenzorhálózatos alkalmazások Az alábbi kód egy TinyOS operációs rendszer alatt futó, nesc nyelven írt szenzorhálózatos alkalmazást ír le. Az alkalmazás célja a hálózatban lévő linkek minőségbecslése. Az egyes csomópontok broadcast üzeneteket küldenek és ilyen üzeneteket fogadnak. Egy node a szomszédos node-októl vett üzenetek számából következtet az adott szomszédhoz kapcsolódó link minőségére (kevés üzenet: rossz minőségű link, sok üzenet: jó minőségű link). A feladat megoldásához nem szükséges a kód futtatása vagy szimulálása, ill. a TinyOS rendszer telepítése vagy használata (utóbbi egyébként szabadon hozzáférhető a www.tinyos.net címen). Megjegyzés: A hálózatban egy üzenet átvitele akkor sikeres, ha az üzenet teljes hosszában hibátlan megjelenik a vevőnél (valamennyi bitje hibátlan vagy hibajavító kódolás segítségével helyreállítható). Feladatok 1. A program tartalmaz egy logikai hibát. Mi ez a hiba, hogyan javítaná ki? (1p) 2. A bekapcsolás után mennyi idő múlva kezdenek üzenetet küldeni az egyes node-ok? (1p) 3. A bekapcsolás után kb. mennyi idő múlva tárolja el az eredményt az alkalmazás (a store paranccsal)? (2p) 4. Milyen várható értékeket tartalmaz a store paranccsal eltárolt num[] tömb az 1. számú node-on, ha a kommunikációs protokoll nem tartalmaz hibajavító kódolást (de hibadetektálást természetesen igen)? (2p) 5. Milyen várható értékeket tartalmaz a store paranccsal eltárolt num[] tömb az 1. számú node-on, ha a kommunikációs protokoll egy egy-bit-hibát javító kódolást is tartalmaz? (2p) 6. Mekkora valószínűséggel jut el a 0. számú node-tól a 3. számú node-ig egy üzenet, ha a hálózat ún. elárasztásos protokollt használ? (Az elárasztásos protokollban minden sikeresen vett üzenetet a vevő egyszer megismétel. Minden állomás legfeljebb egyszer küldhet el egy üzenetet. Ha egy vevő egy üzenetet többször is megkap, pl. más forrásokból, akkor is csak egyszer küldi tovább.) A számítást az 5. feladatban szereplő hibajavító kódolás feltételezésével végezze el. (2p) Paraméterek: A rádióüzenet teljes hossza N bit. A kommunikációs linkek minőségét az alábbiakban a bithiba-valószínűséggel jellemezzük: p(i,j) annak a valószínűségét adja meg, hogy az i-ik csomópontból a j-ik csomópontba átvitt bit hibásan érkezik meg. M olyan négyzetes mátrix, ahol p(i,j) a mátrix i-ik sorának j-ik eleme. A mátrix 1-el jelölt elemei azt jelzik, hogy a kommunikáció a két csomópont között nem lehetséges. (A mátrix elemeinek értékét az alábbiakban sorfolytonosan adjuk meg.) A beadás tudnivalói: Határidő: 2016. április 28. 12 óra. A feladat-megoldásokat papíron kérjük (olvasható kézírással is lehet), és az előadási órákon, ill. a tanszéki adminisztráció előterében (I. épület E szárny, 4. emelet 444) adhatók le. Kérjük az alábbi záradék szerepeltetését is: A feladatokat önállóan, meg nem engedett segítség igénybevétele nélkül oldottam meg:... Név, Neptun-kód, aláírás

Az alkalmazás konfigurációja a következő: Konfiguráció configuration HomeWork implementation components Main, HomeWorkM, GenericComm as Comm, TimerC as TimerC1, TimerC as TimerC2; Main.StdControl -> Comm; Main.StdControl -> TimerC1; Main.StdControl -> TimerC2; Main.StdControl -> HomeWorkM; HomeWorkM.Timer1 -> TimerC1.Timer[unique("Timer")]; HomeWorkM.Timer2 -> TimerC2.Timer[unique("Timer")]; HomeWorkM.SendMsg -> Comm.SendMsg[13]; HomeWorkM.ReceiveMsg -> Comm.ReceiveMsg[13]; A konfigurációs fájlban felhasznált interfészek a következők: Timer interfész command result_t start(char type, uint32_t interval); command result_t stop(); event result_t fired(); A start parancs első paramétere vagy TIMER_REPEAT vagy TIMER_ONE_SHOT, attól függően, hogy a fired eseményt periódikusan vagy csak egyszer szeretnénk megkapni a második (interval) paraméter által meghatározott idő leteltével (ez a paraméter 1/1024-ed másodpercben értendő). Az időzítő a stop paranccsal megállítható. StdControl interfész command result_t init(); command result_t start(); command result_t stop(); Ez a szabványos interfész a legtöbb TinyOS komponens használatához szükséges. A megfelelő komponenseket inicializálni (init), elindítani (start) és megállítani (stop) lehet. Ugyanezen az interfészen keresztül kapja a vezérlést a feladatban ismertetett központi komponens a MAIN modultól. ReceiveMsg interfész event TOS_MsgPtr receive(tos_msgptr m); A rádiós csatornán érkező üzenetet jelzi és adja át ez az esemény. A TOS_MsgPtr egy olyan struktúrára mutat, melynek data tagja tartalmazza az üzenet (alkalmazás számára) hasznos részét. SendMsg interfész command result_t send(uint16_t address, uint8_t length, TOS_MsgPtr msg); event result_t senddone(tos_msgptr msg, result_t success); Rádiós üzenetet a send paranccsal küldhetünk, melynek első paramétere a megcímzett csomópont, második paramétere az alkalmazás szintű csomagterület hossza, végül a küldendő (teljes) csomagra mutató pointert adjuk át. A sikeres csomagküldésről a senddone üzenet értesít. A "siker" itt azt jelenti, hogy az üzenet elhagyta a csomópont rádiós rétegét, de nem mond semmit arról, hogy a címzetthez valóban megérkezett-e.

A konfigurációs fájlban hivatkozott HomeWorkM modul tartalma a következő: HomeWorkM modul includes IntMsg; module HomeWorkM provides interface StdControl; uses interface Timer as Timer1; interface Timer as Timer2; interface SendMsg; interface ReceiveMsg; implementation bool sending_enabled; char serialnumber=0; struct TOS_Msg data; char max[4]; uint8_t num[4]; command result_t StdControl.init() command result_t StdControl.start() sending_enabled=false; return call Timer1.start(TIMER_ONE_SHOT, 10000); command result_t StdControl.stop() return rcombine(call Timer1.stop(), call Timer2.stop()); event result_t Timer1.fired() IntMsg *message = (IntMsg *)data.data; if (sending_enabled) if (call Timer1.start(TIMER_REPEAT, 1000)) sending_enabled=true; else if (serialnumber < 100) serialnumber++;

message->val = serialnumber; atomic message->src = TOS_LOCAL_ADDRESS; call SendMsg.send(TOS_BCAST_ADDR, sizeof(intmsg), &data); event result_t Timer2.fired() uint8_t k; for (k=0; k<4; k++) store(k,num[k],max[k]); // stores num and max for each k event result_t SendMsg.sendDone(TOS_MsgPtr msg, bool success) event TOS_MsgPtr ReceiveMsg.receive(TOS_MsgPtr recv_packet) IntMsg *message = (IntMsg *)recv_packet->data; if (message->val > max[message->src]) max[message->src]=message->val; num[message->src]++; call Timer2.stop(); call Timer2.start(TIMER_ONE_SHOT, 60000); return recv_packet; Az IntMsg.h tartalma a következő: IntMsg.h typedef struct IntMsg uint16_t val; uint16_t src; IntMsg;

N M AUPVB0 50 0 0.01 0.06 1 0.02 0 0.03 0.05 0.05 0.025 0 1 1 0.004 1 0 B01TDD 50 0 0.015 0.06 1 0.02 0 0.03 0.005 0.05 0.02 0 1 1 0.003 1 0 BSB3Q4 50 0 0.025 0.06 1 0.02 0 0.03 0.005 0.05 0.03 0 1 1 0.005 1 0 CCOEZS 50 0 0.02 0.06 1 0.02 0 0.03 0.005 0.05 0.035 0 1 1 0.006 1 0 CE1XRN 50 0 0.02 0.06 1 0.02 0 0.03 0.005 0.05 0.035 0 1 1 0.006 1 0 E5Q6UI 50 0 0.04 0.06 1 0.04 0 0.03 0.005 0.05 0.03 0 1 1 0.004 1 0 EHU42H 50 0 0.03 0.06 1 0.04 0 0.03 0.005 0.05 0.02 0 1 1 0.005 1 0 F0TAL2 50 0 0.045 0.06 1 0.04 0 0.03 0.005 0.05 0.025 0 1 1 0.01 1 0 FGFC31 50 0 0.04 0.06 1 0.04 0 0.03 0.005 0.05 0.02 0 1 1 0.03 1 0 G8MZZ1 50 0 0.03 0.06 1 0.04 0 0.03 0.005 0.05 0.03 0 1 1 0.008 0 0 GGXJ18 45 0 0.01 0.06 1 0.02 0 0.03 0.05 0.05 0.025 0 1 1 0.004 1 0 IDX7FM 45 0 0.015 0.06 1 0.02 0 0.03 0.005 0.05 0.02 0 1 1 0.003 1 0 J38LZK 45 0 0.025 0.06 1 0.02 0 0.03 0.005 0.05 0.03 0 1 1 0.005 1 0 LP1FJ4 45 0 0.02 0.06 1 0.02 0 0.03 0.005 0.05 0.035 0 1 1 0.006 1 0 N5HULN 45 0 0.02 0.06 1 0.02 0 0.03 0.005 0.05 0.035 0 1 1 0.006 1 0 PVWPQO 45 0 0.04 0.06 1 0.04 0 0.03 0.005 0.05 0.03 0 1 1 0.004 1 0 RCESLX 45 0 0.03 0.06 1 0.04 0 0.03 0.005 0.05 0.02 0 1 1 0.005 1 0 SIONIU 45 0 0.045 0.06 1 0.04 0 0.03 0.005 0.05 0.025 0 1 1 0.01 1 0 T9O3CC 45 0 0.04 0.06 1 0.04 0 0.03 0.005 0.05 0.02 0 1 1 0.03 1 0 U4Q76R 45 0 0.03 0.06 1 0.04 0 0.03 0.005 0.05 0.03 0 1 1 0.008 0 0 U8NEM5 50 0 0.04 0.06 1 0.04 0 0.03 0.005 0.05 0.03 0 1 1 0.004 1 0 W2BFQI 50 0 0.03 0.06 1 0.04 0 0.03 0.005 0.05 0.02 0 1 1 0.005 1 0 WKJAGY 50 0 0.045 0.06 1 0.04 0 0.03 0.005 0.05 0.025 0 1 1 0.01 1 0 X0GWMR 50 0 0.04 0.06 1 0.04 0 0.03 0.005 0.05 0.02 0 1 1 0.03 1 0 Y60TX1 50 0 0.03 0.06 1 0.04 0 0.03 0.005 0.05 0.03 0 1 1 0.008 0 0 ZT4H4T 45 0 0.01 0.06 1 0.02 0 0.03 0.05 0.05 0.025 0 1 1 0.004 1 0