無(wú)線傳感器網(wǎng)絡(luò)各類路由協(xié)議仿真_第1頁(yè)
無(wú)線傳感器網(wǎng)絡(luò)各類路由協(xié)議仿真_第2頁(yè)
無(wú)線傳感器網(wǎng)絡(luò)各類路由協(xié)議仿真_第3頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、WORD格式實(shí)驗(yàn)報(bào)告課程無(wú)線傳感網(wǎng)絡(luò)各類路由協(xié)議仿真1.實(shí)驗(yàn)?zāi)康膶I(yè)資料整理WORD格式網(wǎng)絡(luò)數(shù)據(jù)傳輸離不開(kāi)路由協(xié)議,路由協(xié)議是其組網(wǎng)的根底, 路由協(xié)議是無(wú)線專業(yè)資料整理WORD格式傳感器網(wǎng)絡(luò)研究的重點(diǎn)之一, 其主要的設(shè)計(jì)目標(biāo)是降低節(jié)點(diǎn)能量消耗, 延長(zhǎng)網(wǎng)絡(luò)的生命周期。本次實(shí)驗(yàn)將仿真各類無(wú)線傳感器網(wǎng)絡(luò)路由協(xié)議。2.實(shí)驗(yàn)要求爭(zhēng)取考慮全面,考慮到各因素對(duì)各類協(xié)議的影響,以提高無(wú)線傳感網(wǎng)絡(luò)的性能。3.設(shè)計(jì)思想(1)Flooding泛洪是一種傳統(tǒng)的路由技術(shù), 不要求維護(hù)網(wǎng)絡(luò)的拓?fù)錁?gòu)造, 并進(jìn)展路由計(jì)算,接收到消息的節(jié)點(diǎn)以播送形式轉(zhuǎn)發(fā)分組。 對(duì)于自組織的傳感器網(wǎng)絡(luò), 泛洪路由是一種較直接的實(shí)現(xiàn)方法, 但消息

2、的“內(nèi)爆 (implosion)和“重疊 (overlap)是其固有的缺陷。為了抑制這些缺陷, S.hedetniemi等人提出了 Gossiping策略,節(jié)點(diǎn)隨機(jī)選取一個(gè)相鄰節(jié)點(diǎn)轉(zhuǎn)發(fā)它接收到的分組, 而不是采用播送形式。 這種方法防止了消息的 “內(nèi)爆 現(xiàn)象,但有可能增加端到端的傳輸延時(shí)。Flooding 路由協(xié)議中的內(nèi)爆和重疊問(wèn)題(2)SPIN (sensor protocol for information via negotiation)SPIN是以數(shù)據(jù)為中心的自適應(yīng)路由協(xié)議,通過(guò)協(xié)商機(jī)制來(lái)解決泛洪算法中的 “內(nèi)爆 和 “重疊 問(wèn)題。傳感器節(jié)點(diǎn)僅播送采集數(shù)據(jù)的描述信息,當(dāng)有相應(yīng)的請(qǐng)求時(shí),

3、才有目的地發(fā)送數(shù)據(jù)信息。SPIN協(xié)議中有 3種類型的消息,即 ADV ,REQ和 DATA 。ADV 用于新數(shù)據(jù)播送。當(dāng)一個(gè)節(jié)點(diǎn)有數(shù)據(jù)可共享時(shí),它以播送方式向外發(fā)送專業(yè)資料整理WORD格式DATA 數(shù)據(jù)包中的元數(shù)據(jù)。REQ用于請(qǐng)求發(fā)送數(shù)據(jù)。當(dāng)一個(gè)節(jié)點(diǎn)希望接收DATA 數(shù)據(jù)包時(shí),發(fā)送 REQ數(shù)據(jù)包。DATA 包含附上元數(shù)據(jù)頭 (meta一header)的實(shí)際數(shù)據(jù)包。SPIN協(xié)議有 4種不同的形式 :? SPIN-PP:采用點(diǎn)到點(diǎn)的通信模式,并假定兩節(jié)點(diǎn)間的通信不受其他節(jié)點(diǎn)的干擾,分組不會(huì)喪失,功率沒(méi)有任何限制。要發(fā)送數(shù)據(jù)的節(jié)點(diǎn)通過(guò)ADV 向它的相鄰節(jié)點(diǎn)播送消息,感興趣的節(jié)點(diǎn)通過(guò)REQ發(fā)送請(qǐng)求,數(shù)

4、據(jù)源向請(qǐng)求者發(fā)送數(shù)據(jù)。接收到數(shù)據(jù)的節(jié)點(diǎn)再向它的相鄰節(jié)點(diǎn)播送ADV 消息,如此重復(fù),使所有節(jié)點(diǎn)都有時(shí)機(jī)接收到任何數(shù)據(jù)。" SPIN-EC:在SPIN-PP的根底上考慮了節(jié)點(diǎn)的功耗,只有能夠順利完成所有任務(wù)且能量不低于設(shè)定閾值的節(jié)點(diǎn)才可參與數(shù)據(jù)交換。? SPIN-BC:設(shè)計(jì)了播送信道,使所有在有效半徑內(nèi)的節(jié)點(diǎn)可以同時(shí)完成數(shù)據(jù)交換。為了防止產(chǎn)生重復(fù)的 REQ請(qǐng)求,節(jié)點(diǎn)在聽(tīng)到 ADV 消息以后,設(shè)定一個(gè)隨機(jī)定時(shí)器來(lái)控制 REQ請(qǐng)求的發(fā)送,其他節(jié)點(diǎn)聽(tīng)到該請(qǐng)求,主動(dòng)放棄請(qǐng)求權(quán)利。? SPIN-RL :它是對(duì) SPIN-BC的完善,主要考慮如何恢復(fù)無(wú)線鏈路引入的分組過(guò)失與喪失。記錄 ADV 消息的

5、相關(guān)狀態(tài),如果在確定時(shí)間間隔內(nèi)接收不到請(qǐng)求數(shù)據(jù),那么發(fā)送重傳請(qǐng)求,重傳請(qǐng)求的次數(shù)有一定的限制。圖 3.2說(shuō)明了 SPIN協(xié)議的路由建立與數(shù)據(jù)傳送。SPIN 協(xié)議的路由建立與數(shù)據(jù)傳送基于數(shù)據(jù)描述的協(xié)商機(jī)制和能量自適應(yīng)機(jī)制的SP創(chuàng)協(xié)議能夠很好地解決傳統(tǒng)的 Flooding協(xié)議所帶來(lái)的信息爆炸、信息重復(fù)和資源浪費(fèi)等問(wèn)題。此外,由于協(xié)議中每個(gè)節(jié)點(diǎn)只需知道其單跳鄰居節(jié)點(diǎn)的信息,拓?fù)涓淖兂尸F(xiàn)本地化特征。 SP州協(xié)議的缺點(diǎn)是數(shù)據(jù)廣告機(jī)制不能保證數(shù)據(jù)的可靠傳遞,如果對(duì)數(shù)據(jù)感興趣的節(jié)點(diǎn)遠(yuǎn)離源節(jié)點(diǎn)或者在源節(jié)點(diǎn)和目的節(jié)點(diǎn)中間的節(jié)點(diǎn)對(duì)數(shù)據(jù)不感興趣,那么數(shù)據(jù)就不可能被傳遞到目的地。 因此,對(duì)于入侵發(fā)現(xiàn)等需要在定期間隔內(nèi)

6、可靠傳遞數(shù)據(jù)專業(yè)資料整理WORD格式的應(yīng)用系統(tǒng)來(lái)說(shuō), SP州并不是一個(gè)很好的選擇。(3)SAR (sequential assignment routing)在選擇路徑時(shí), 有序分配路由 (SAR) 策略充分考慮了功耗、 QoS和分組優(yōu)先權(quán)等特殊要求, 采用局部路徑恢復(fù)和多路經(jīng)備份策略,防止節(jié)點(diǎn)或鏈路失敗時(shí)進(jìn)行路由重計(jì)算需要的過(guò)量計(jì)算開(kāi)銷。為了在每個(gè)節(jié)點(diǎn)與sink節(jié)點(diǎn)間生成多條路經(jīng),需要維護(hù)多個(gè)樹構(gòu)造,每個(gè)樹以落在sink節(jié)點(diǎn)有效傳輸半徑內(nèi)的節(jié)點(diǎn)為根向外生長(zhǎng),枝干的選擇需滿足一定 QOS要求并要有一定的能量?jī)?chǔ)藏。 這一處理使大多數(shù)傳感器節(jié)點(diǎn)可能同時(shí)屬于多個(gè)樹,可任選其一將采集數(shù)據(jù)回傳到sink

7、節(jié)點(diǎn)。(4) LEACH (low energy adaptive clustering hierarchy)LEACH 是 MIT 的 Chandrakasan等人為無(wú)線傳感器網(wǎng)絡(luò)設(shè)計(jì)的低功耗自適應(yīng)聚類路由算法。與一般的平面多跳路由協(xié)議和靜態(tài)聚類算法相比,LEACH 可以將網(wǎng)絡(luò)生命周期延長(zhǎng) 15%,主要通過(guò)隨機(jī)選擇聚類首領(lǐng),平均分擔(dān)中繼通信業(yè)務(wù)來(lái)實(shí)現(xiàn)。 LEACH 定義了“輪(round)的概念 ,一輪由初始化和穩(wěn)定工作兩個(gè)階段組成。為了防止額外的處理開(kāi)銷,穩(wěn)定態(tài)一般持續(xù)相對(duì)較長(zhǎng)的時(shí)間。如圖 3.4所示:初始化階段穩(wěn)定工作階段時(shí)間LEACH 協(xié)議的時(shí)序圖在初始化階段 ,聚類首領(lǐng)是通過(guò)下面的機(jī)

8、制產(chǎn)生的。傳感器節(jié)點(diǎn)生成0,1之間的隨機(jī)數(shù) ,如果大于閾值 T,那么選該節(jié)點(diǎn)為聚類首領(lǐng) .T的計(jì)算方法如下 :P3.1T1 P r mod 1p其中 p為節(jié)點(diǎn)中成為聚類首領(lǐng)的百分?jǐn)?shù),r是當(dāng)前的輪數(shù)。當(dāng)簇頭選定之后,簇頭節(jié)點(diǎn)主動(dòng)向網(wǎng)絡(luò)中節(jié)點(diǎn)播送自己成為簇頭的消息(ADV_CH) 。接收到此消息的節(jié)點(diǎn),依據(jù)接收信號(hào)的強(qiáng)度, 選擇它所要參加的簇,并發(fā)消息通知相應(yīng)的簇頭(JOIN_REQ) ?;跁r(shí)分多址(Time DivisionMultipleAddress,簡(jiǎn)稱 TDMA) 的方式,簇頭節(jié)點(diǎn)為其中的每個(gè)成員分配通信時(shí)隙,并以專業(yè)資料整理WORD格式播送的形式通知所有的簇內(nèi)節(jié)點(diǎn) (ADVSCH)

9、。這樣保證了簇內(nèi)每個(gè)節(jié)點(diǎn)在指定的傳輸時(shí)隙進(jìn)展數(shù)據(jù)傳輸, 而在其他時(shí)間進(jìn)入休眠狀態(tài), 減少了能量消耗。 在穩(wěn)定工作階段,節(jié)點(diǎn)持續(xù)采集監(jiān)測(cè)數(shù)據(jù), 在自身傳輸時(shí)隙到來(lái)時(shí)把監(jiān)測(cè)數(shù)據(jù)傳給簇頭節(jié)點(diǎn) (DATA) ,如圖 3.5 所示。簇頭節(jié)點(diǎn)對(duì)接收到數(shù)據(jù)進(jìn)展融合處理之后,發(fā)送到 Sink 節(jié)點(diǎn),這是一種減小通信業(yè)務(wù)量的合理工作模式。持續(xù)一段時(shí)間以后,整個(gè)網(wǎng)絡(luò)進(jìn)入下一輪工作周期,重新選擇簇頭節(jié)點(diǎn)。LEACH 協(xié)議采用動(dòng)態(tài)轉(zhuǎn)換簇頭的方法來(lái)平均網(wǎng)絡(luò)節(jié)點(diǎn)的能量消耗,使因能量耗盡而失效的節(jié)點(diǎn)呈隨機(jī)分布狀態(tài),因而與一般的多跳路由協(xié)議和靜態(tài)簇算法相比, LEACH 可以將網(wǎng)絡(luò)生命周期延長(zhǎng)15%。但是 LEACH 協(xié)議在

10、每輪固定簇頭節(jié)點(diǎn)后在劃分簇的過(guò)程中, 簇頭節(jié)點(diǎn)開(kāi)銷較大。 并且簇頭節(jié)點(diǎn)的選擇無(wú)法到達(dá)最優(yōu),有可能簇頭節(jié)點(diǎn)位于網(wǎng)絡(luò)的邊緣或者幾個(gè)簇頭節(jié)點(diǎn)相鄰,某些節(jié)點(diǎn)不得不傳輸較遠(yuǎn)的距離來(lái)與簇頭通信,這就導(dǎo)致了大量能量消耗。而且LEACH 協(xié)議所有簇頭節(jié)點(diǎn)直接與Sink 節(jié)點(diǎn)通信,采用連續(xù)數(shù)據(jù)發(fā)送模式和單跳路徑選擇模式,使得每輪中簇頭節(jié)點(diǎn)能耗巨大,因此不適合在大規(guī)模的傳感器網(wǎng)絡(luò)中應(yīng)用。(5) TEEN (threshold sensitive energy efficient sensor network protocol)依照應(yīng)用模式的不同,通??梢院?jiǎn)單地將無(wú)線自組織網(wǎng)絡(luò)(包括傳感器網(wǎng)絡(luò)和 Ad-hoc 網(wǎng)絡(luò)

11、 )分為主動(dòng) (proactive)和響應(yīng) (reactive)兩種類型。主動(dòng)型傳感器網(wǎng)絡(luò)持續(xù)監(jiān)測(cè)周圍的物質(zhì)現(xiàn)象, 并以恒定速率發(fā)送監(jiān)測(cè)數(shù)據(jù); 而響應(yīng)型傳感器網(wǎng)絡(luò)只是在被觀測(cè)變量發(fā)生突變時(shí)才傳送數(shù)據(jù)。相比之下 ,響應(yīng)型傳感器網(wǎng)絡(luò)更適合應(yīng)用在敏感時(shí)間的應(yīng)用中。 TEEN 和 LEACH 的實(shí)現(xiàn)機(jī)制非常相似 ,只是前者是響應(yīng)型的,而后者屬于主動(dòng)型傳感器網(wǎng)絡(luò)。在 TEEN 中定義了硬、軟兩個(gè)門限值,以確定是否需要發(fā)送監(jiān)測(cè)數(shù)據(jù)。當(dāng)監(jiān)測(cè)數(shù)據(jù)第一次超過(guò)設(shè)定的硬門限時(shí) ,節(jié)點(diǎn)用它作為新的硬門限 ,并在接著到來(lái)的時(shí)隙內(nèi)發(fā)送它。在接下來(lái)的過(guò)程中,如果監(jiān)測(cè)數(shù)據(jù)的變化幅度大于軟門限界定的X圍, 那么節(jié)點(diǎn)傳送最新采集

12、的數(shù)據(jù), 并將它設(shè)定為新的硬門限。 通過(guò)調(diào)節(jié)軟門限值的大小, 可以在監(jiān)測(cè)精度和系統(tǒng)能耗之間取得合理的平衡。圖 3.6 表示的是 TEEN 協(xié)議中由聚簇構(gòu)成的層次構(gòu)造。專業(yè)資料整理WORD格式SinkHigh level cluster headLow level cluster headNormal sensor nodeClusteringTEEN 協(xié)議中由聚簇構(gòu)成的層次構(gòu)造TENE 適用于實(shí)時(shí)性要求較高的應(yīng)用場(chǎng)合,比方入侵警報(bào),爆炸預(yù)警等,用戶可以及時(shí)獲取感興趣的信息。 而且用戶可以通過(guò)設(shè)置不同的軟門限方便地平衡監(jiān)測(cè)的準(zhǔn)確性與系統(tǒng)節(jié)能性兩項(xiàng)指標(biāo)。但是這個(gè)方案也有一些缺乏之處,例如門限值達(dá)不

13、到,節(jié)點(diǎn)就永遠(yuǎn)不會(huì)和簇頭節(jié)點(diǎn)通信, 用戶就無(wú)法從網(wǎng)絡(luò)得到任何數(shù)據(jù);沒(méi)有相應(yīng)的機(jī)制去區(qū)分那些沒(méi)有感應(yīng)到足夠大變化的節(jié)點(diǎn)和處于關(guān)閉狀態(tài)的節(jié)點(diǎn),所以 TEEN 協(xié)議不適合應(yīng)用在。(6) PEGAGIS (power-efficient gathering in sensor information system) PEGASIS由 LEACH 開(kāi)展而來(lái)。它假定組成網(wǎng)絡(luò)的傳感器節(jié)點(diǎn)是同構(gòu)且靜止的。節(jié)點(diǎn)發(fā)送能量遞減的測(cè)試信號(hào), 通過(guò)檢測(cè)應(yīng)答來(lái)確定離自己最近的相鄰節(jié)點(diǎn)。在收集數(shù)據(jù)前, 首先利用貪心算法將網(wǎng)絡(luò)中的所有節(jié)點(diǎn)連接成一條單鏈。 通過(guò)這種方式,網(wǎng)絡(luò)中的所有節(jié)點(diǎn)能夠了解彼此的位置關(guān)系, 進(jìn)而每個(gè)節(jié)點(diǎn)依

14、據(jù)自己的位置選擇所屬的聚類, 聚類的首領(lǐng)向鏈的兩端發(fā)出收集數(shù)據(jù)的請(qǐng)求, 數(shù)據(jù)從單鏈的兩個(gè)端點(diǎn)向首領(lǐng)流動(dòng)。 中間節(jié)點(diǎn)在傳遞數(shù)據(jù)前要執(zhí)行融合操作, 最終由首領(lǐng)節(jié)點(diǎn)將結(jié)果數(shù)據(jù)傳送給 Sink節(jié)點(diǎn)。因?yàn)?PEGASIS中每個(gè)節(jié)點(diǎn)都以最小功率發(fā)送數(shù)據(jù)分組,并有條件完成必要的數(shù)據(jù)融合,減小業(yè)務(wù)流量。因此 ,整個(gè)網(wǎng)絡(luò)的功耗較小。研究結(jié)果說(shuō)明, PEGASIS支持的傳感器網(wǎng)絡(luò)的生命周期是 LEACH 的近兩倍。專業(yè)資料整理WORD格式4.實(shí)驗(yàn)器材與工具M(jìn)ATLAB5.程序源代碼function x=animation_datasmall=5; medium=20; large=50;%Event_nameAn

15、imatedColor/on/off/toggleSizeanim_def=.'Init_Application',0,0 00 ,small, .'Packet_Sent',1,010,small, .'Packet_Received',1,010,small, .'Collided_Packet_Received', 0,100,small, .'Clock_Tick',0,000,small, .'Channel_Request',0,000,small, .'Channel_Idle

16、_Check',1,100,small, .'Packet_Receive_Start',0,010,small, .'Packet_Receive_End',0,000,small, .'Packet_Transmit_Start',1,1 00 ,medium, .'Packet_Transmit_End',0,010,small;for i=1:length(anim_def)a=anim_defi;x(i)=struct('event', a1, 'animated', a2, &#

17、39;color', a3, 'size', a4);endfunction application(S)% DO NOT edit simulator code (lines that begin with S;)專業(yè)資料整理WORD格式S;S;S;S;S;S;S;S;persistent app_dataglobal ID tt, event, ID, data=get_event(S);topology, mote_IDs=prowler('GetTopologyInfo');ix=find(mote_IDs=ID);if strcmp(event

18、, 'Init_Application')try memory=app_dataix; catch memory=; end,end專業(yè)資料整理WORD格式S;switch eventcase 'Init_Application'專業(yè)資料整理WORD格式signal_strength=1;if ID=1 % first node starts floodSet_Clock(1000)endPrintMessage('i')case 'Packet_Sent'PrintMessage('s')case 'Pa

19、cket_Received'% data.data% message% data.signal_strength % received signal strength if memory.sendp=sim_params('get_app', 'P'); if isempty(p); p=.5; endif rand<pSend_Packet(radiostream(data.data, memory.signal_strength);endmemory.send=0;PrintMessage('r')endcase 'Co

20、llided_Packet_Received'% this is for debug purposes onlycase 'Clock_Tick'Send_Packet(radiostream('Message for 00111 from Golomb', memory.signal_strength);case 'GuiInfoRequest'disp(sprintf('Memory Dump of mote ID# %d:n',ID); disp(memory)case 'Application_Stoppe

21、d'% this event is called when simulation is stopped/suspendedcase 'Application_Finished'% this event is called when simulation is finishedotherwiseerror('Bad event name for application: ' event)endS;app_dataix=memory;function b=Send_Packet(data);global ID t專業(yè)資料整理WORD格式radio=prowl

22、er('GetRadioName');b=feval(radio, 'Send_Packet', ID, data, t);function b=Set_Clock(alarm_time);global IDprowler('InsertEvents2Q', make_event(alarm_time, 'Clock_Tick', ID);function PrintMessage(msg)global IDprowler('TextMessage', ID, msg)function LED(msg)global

23、 IDprowler('LED', ID, msg)function varargout=infotitle1='Application FLOOD1D'str1='This application illustrates the simple flooding algorithm.' .''.'The sender mote transmits a message. Each mote receiving the'.'message retransmits it with probability p.&#

24、39; ;.'The value of p can be set in the ''Application Parameters'''.'window. The default value is p=0.5'.''.'If p is too low, the flood dies out before every mote could'.'receive the message. If p it too high, the message is'.'retransmitted

25、 several times after every mote have received it,' ;.'thus causing an unnecessarily high settling time.'.''.'The optimal value of p highly depends on topology.'.''.'YoucanchangethetopologybyeditingthefileFLOOD1D_TOPOLOGY .'.''.'See also FLOOD2D

26、.'.''if nargout=0helpwin( title1, str1, 'Application Info')elsevarargout= title1, str1;endfunction param=params;param(1).name='P'param(1).default=0.5;專業(yè)資料整理WORD格式function topology,mote_IDs=topology(varargin);Nx=10; Ny=1; % number of points on the gridix=1;t=;distx=1;disty

27、=5;X=1:distx:(Nx-1)*distx+1;Y=1:disty:(Ny-1)*disty+1;for i=Xfor j=Yt=t; i,j;endendtopology=t;mote_IDs=1:Nx*Ny;function x=animationpersistent anim_dataif isempty(anim_data)small=5; medium=20; large=50;%Event_nameAnimatedColor/on/off/toggleSizeanim_def=.small, .'Init_Application',1,000,'Pa

28、cket_Sent',2,100,small, .'Packet_Received',3,100,small, .'Collided_Packet_Received',4,100,small, .'Clock_Tick',0,000,small, .small, .'Channel_Request',0,000,'Channel_Idle_Check',1,100,small, .'Packet_Receive_Start',0,010,small, .'Packet_Receive

29、_End',0,000,專業(yè)資料整理WORD格式small, .'Packet_Transmit_Start',1,100,medium, .'Packet_Transmit_End',1,010,small;for i=1:length(anim_def)a=anim_defi;if i=1anim_data=struct('event', a1,'animated', a2,'color', a3,'size',a4);elseanim_data(i)=struct('event

30、', a1, 'animated', a2, 'color', a3, 'size',a4);endendendx=anim_data;function application(S)S;persistent app_dataS;global ID tS;t, event, ID, data=get_event(S);S;topology, mote_IDs=prowler('GetTopologyInfo');S;ix=find(mote_IDs=ID);S;if strcmp(event, 'Init_Appli

31、cation')S;try memory=app_dataix; catch memory=; end,S;endS;SENDER_ID=sim_params('get_app', 'Start_Mote');if isempty(SENDER_ID), SENDER_ID=1; endswitch eventcase 'Init_Application'signal_strength=1;memory=struct('send',1, 'signal_strength', signal_strength)

32、; if ID=SENDER_ID % this node starts floodSet_Clock(1000)endPrintMessage('i')case 'Packet_Sent'memory.send=0;專業(yè)資料整理WORD格式PrintMessage('s')case 'Packet_Received'% data.data% message% data.signal_strength % received signal strength if memory.sendp=sim_params('get_ap

33、p', 'P'); if isempty(p); p=.3; end% p=0.3; % p is forced to 0.3 / Comment this line if you want to use it for optimizationif rand<pSend_Packet(radiostream(data.data, memory.signal_strength);endmemory.send=0;PrintMessage('r')endcase 'Collided_Packet_Received'% this is f

34、or debug purposes onlycase 'Clock_Tick'Send_Packet(radiostream('this is the message', memory.signal_strength);case 'GuiInfoRequest'if isempty(memory)disp(sprintf('Memory Dump of mote ID# %d:n',ID); disp(memory)elsedisp(sprintf('No memory dump available for node %d

35、.n',ID);endcase 'Application_Stopped'% this event is called when simulation is stopped/suspendedcase 'Application_Finished'% this event is called when simulation is finishedotherwiseerror('Bad event name for application: ' event)end專業(yè)資料整理WORD格式S;S;app_dataix=memory;專業(yè)資料整理

36、WORD格式function b=Send_Packet(data);專業(yè)資料整理WORD格式global ID tradio=prowler('GetRadioName');b=feval(radio, 'Send_Packet', ID, data, t);function b=Set_Clock(alarm_time);global IDprowler('InsertEvents2Q', make_event(alarm_time, 'Clock_Tick', ID);function PrintMessage(msg)gl

37、obal IDprowler('TextMessage', ID, msg)function varargout=infotitle1='Application FLOOD2D'str1='This application illustrates the flooding algorithm in 2D.' .''.'The sender mote transmits a message. Each mote receiving the'.'message retransmits it with proba

38、bility p.' ;.'The value of p can be set in the ''Application Parameters'''.'window. The default value is p=0.5.'.''.'The starting node can also be selected (parameter Start_Mote).'.'Try 1 to start from the lower left corner, and 55 to start fro

39、m'.'the center of the (10x10) grid.'.''.'If p is too low, the flood dies out before every mote could'.'receive the message. If p it too high, the message is'.'retransmitted several times after every mote have received it,' ;.'thus causing an unnecessarily high settling time.'.''.'The optima

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論