• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      一種基于omnet平臺(tái)的短波網(wǎng)半實(shí)物仿真方法

      2016-06-03 09:11:02文源盛
      中國(guó)新通信 2016年8期

      文源盛

      【摘要】 在短波網(wǎng)項(xiàng)目中,仿真技術(shù)作為一種低成本,高準(zhǔn)確性的方法得到廣泛使用。通過仿真技術(shù),設(shè)計(jì)者可以在短波通信系統(tǒng)設(shè)計(jì)時(shí)就能驗(yàn)證通信流程的正確性以及模擬網(wǎng)絡(luò)建成以后的使用性能效益,為網(wǎng)絡(luò)設(shè)計(jì)提供必要的依據(jù)。在眾多的仿真技術(shù)中,半實(shí)物仿真通過部分模塊與實(shí)際網(wǎng)絡(luò)環(huán)境進(jìn)行交互,更能貼近現(xiàn)實(shí)網(wǎng)絡(luò)環(huán)境,更能反映出實(shí)際網(wǎng)絡(luò)的性能。本文主要介紹如何在短波項(xiàng)目中使用omnet仿真平臺(tái)通過網(wǎng)口與仿真程序進(jìn)行數(shù)據(jù)交互實(shí)現(xiàn)半實(shí)物仿真,并且介紹其中注意的問題。

      【關(guān)鍵詞】 短波網(wǎng) 半實(shí)物仿真 omnet

      一、概述

      短波網(wǎng)項(xiàng)目中,仿真技術(shù)是一種低成本高準(zhǔn)確性的方法。通過仿真技術(shù),設(shè)計(jì)者可以在短波通信系統(tǒng)設(shè)計(jì)時(shí)就能驗(yàn)證通信流程的正確性以及模擬網(wǎng)絡(luò)建成以后的使用性能,為網(wǎng)絡(luò)設(shè)計(jì)提供必要的依據(jù)。

      在眾多的仿真技術(shù)中,半實(shí)物仿真通過部分模塊與實(shí)際網(wǎng)絡(luò)環(huán)境進(jìn)行交互,更能貼近現(xiàn)實(shí)網(wǎng)絡(luò)環(huán)境,更能反映出實(shí)際網(wǎng)絡(luò)的性能。omnet是一個(gè)基于離散事件,組建模塊化的網(wǎng)絡(luò)仿真平臺(tái)。

      由于其清晰的圖形界面,簡(jiǎn)單的消息交互機(jī)制以及提供了大量的成熟的通信仿真模塊,它已經(jīng)廣泛應(yīng)用于短波網(wǎng)項(xiàng)目中。在使用omnet進(jìn)行半實(shí)物仿真的過程中,經(jīng)常會(huì)碰到需要通過網(wǎng)口Socket與仿真程序進(jìn)行數(shù)據(jù)交互的情況,本文主要為了解決以上問題,介紹了如何使用omnet實(shí)現(xiàn)Socket接口與仿真程序交互數(shù)據(jù)。

      二、實(shí)現(xiàn)原理

      要說(shuō)明Socket與omnet仿真程序如何實(shí)現(xiàn)數(shù)據(jù)交換,先簡(jiǎn)要介紹omnet中消息的分發(fā)機(jī)制。

      omnet仿真平臺(tái)的消息分發(fā)機(jī)制是通過一個(gè)叫cSchedule的類來(lái)實(shí)現(xiàn)。當(dāng)仿真程序初始化的時(shí),omnet仿真平臺(tái)會(huì)生成一個(gè)公有的cSchedule類實(shí)例。這實(shí)例負(fù)責(zé)把各個(gè)仿真類對(duì)象所發(fā)送的消息,按照其應(yīng)該到達(dá)的時(shí)間,按時(shí)有效的傳遞到各個(gè)實(shí)例的handleMessage函數(shù)中,以便對(duì)消息進(jìn)行處理。

      oment的仿真平臺(tái)對(duì)以上過程進(jìn)行了妥善的封裝,對(duì)于使用者來(lái)說(shuō)是透明的,使用者只需關(guān)心消息到達(dá)以后如何處理,如何編寫handleMessage函數(shù)。

      要實(shí)現(xiàn)Socket接口與omnet仿真程序數(shù)據(jù)交互,則需要把已有的cSchedule類實(shí)例進(jìn)行改造,使其不單單只為omnet的仿真類傳遞消息,還能接受來(lái)自網(wǎng)口Socket的數(shù)據(jù),并且以handleMessage的形式交給用戶處理。

      omnet++4.0為實(shí)現(xiàn)這目標(biāo)提供了cSocketRTScheduler類。cSocketRTScheduler類使網(wǎng)口的傳輸數(shù)據(jù)與仿真程序接收到的消息的接口一致。網(wǎng)絡(luò)實(shí)際數(shù)據(jù)與程序中的虛擬數(shù)據(jù)均來(lái)源于自身模塊的omnet消息通知handlemessag函數(shù),用戶不用特意區(qū)分消息的來(lái)源,實(shí)現(xiàn)透明傳輸?shù)哪康摹?/p>

      三、使用方法

      既然cSocketRTScheduler類已經(jīng)幫我們完成了大部分工作,剩下的我們需要完成的工作包括:

      3.1加入cSocketRTScheduler類。

      拷貝SocketRTScheduler.cc和SocketRTScheduler.h文件到目標(biāo)工程目錄下。

      3.2創(chuàng)建并指定cMessage實(shí)例用來(lái)表示通過Socket網(wǎng)口傳遞的消息。

      調(diào)用函數(shù)new cMessage并取一個(gè)特定名字表示該消息,如名字為“rtEvent”則使用

      cMessage rtEvent = new cMessage(“rtEvent”);

      3.3替換omnet中的cSchedule類實(shí)例為cSocketRTScheduler類。

      通過simulation類的getScheduler函數(shù)獲取當(dāng)前的cSchedule類實(shí)例,并用check_and_cast使其轉(zhuǎn)化為cSocketRTScheduler類,具體使用如下:

      cScheduler*pcScheduler = simulation.getScheduler();

      cSocketRTScheduler*rtScheduler=check_and_ cast(pcScheduler);

      3.4使cSchedule類與消息和緩沖區(qū)建立連接。

      調(diào)用cSocketRTSchedule的setInterfaceModule函數(shù)實(shí)現(xiàn)與omnet消息和緩沖區(qū)建立連接,其中setInterfaceModule函數(shù)的聲明如表1所示。

      3.5配置文件中指定cSocketRTScheduler類

      在配置文件指定用cSocketRTScheduler類替代cSchedule類,在omnetpp.ini中添加如下配置代碼。

      scheduler-class =”cSocketRTScheduler”

      3.6指定本程序監(jiān)聽網(wǎng)絡(luò)Socket端口號(hào)

      最后是要指定監(jiān)聽網(wǎng)口的端口號(hào),cSocketRTSchedule類指定了一個(gè)屬性“socketrtscheduler-port”代表網(wǎng)口的端口號(hào),其默認(rèn)值為4242,可以通過配置文件omnetpp.ini中進(jìn)行配置,具體添加如下配置代碼到該文件中。

      socketrtscheduler-port = 60001

      四、數(shù)據(jù)收發(fā)

      4.1數(shù)據(jù)接收

      由于數(shù)據(jù)的接收統(tǒng)一到handleMessage函數(shù)中,數(shù)據(jù)接收與omnet仿真中的消息處理相類似。

      調(diào)用handleMessage函數(shù)。

      先判斷接收到的消息是否是自消息,再判斷接收到的消息是為與網(wǎng)口消息相關(guān)聯(lián)的omnet消息。

      訪問接收緩沖區(qū),進(jìn)行數(shù)據(jù)處理。

      4.2數(shù)據(jù)發(fā)送

      數(shù)據(jù)發(fā)送只需調(diào)用cSocketRTScheduler的sendBytes即可發(fā)送消息。其函數(shù)聲明如圖2 所示。

      五、注意事項(xiàng)

      當(dāng)使用了cSocketRTScheduler作為cSchedule后,仿真的時(shí)序和現(xiàn)實(shí)的時(shí)序?qū)?huì)統(tǒng)一,即仿真的時(shí)間間隔和現(xiàn)實(shí)時(shí)間間隔將會(huì)相等。

      仿真程序的休眠將會(huì)使得仿真程序的時(shí)間與實(shí)際時(shí)間不一致,導(dǎo)致產(chǎn)生不可預(yù)料的錯(cuò)誤,因此不推薦在進(jìn)行串口半實(shí)物仿真程序中進(jìn)行休眠。

      參 考 文 獻(xiàn)

      [1]操敏,李文峰,袁兵;基于OMNeT++的傳感器網(wǎng)絡(luò)仿真 中國(guó)論文科技在線 2011;

      [2]石為人,黃河,鮮曉東;OMNeT++與NS2在無(wú)線傳感器網(wǎng)絡(luò)仿真中的比較研究 計(jì)算機(jī)科學(xué)2008Vol.35

      [3]黃健強(qiáng),鞠建波;半實(shí)物仿真技術(shù)研究現(xiàn)狀及發(fā)展趨勢(shì) 艦船電子工程Vol.31No.75

      锦州市| 泰兴市| 河北区| 临澧县| 佛坪县| 麻栗坡县| 阿荣旗| 宜黄县| 邵阳市| 乐亭县| 静安区| 巩义市| 临夏市| 广东省| 绿春县| 墨竹工卡县| 育儿| 修文县| 思茅市| 铜梁县| 宜城市| 越西县| 合江县| 阆中市| 彭泽县| 镶黄旗| 葵青区| 泸定县| 玉山县| 元氏县| 凤山县| 荥阳市| 福建省| 右玉县| 成都市| 栖霞市| 互助| 廉江市| 马鞍山市| 安丘市| 平原县|