2015-11-22 48 views
0

我是omnet中的新成員。我需要訪問網絡參數才能在sensornode.cc文件中使用它。因爲我統一分配節點wrt用戶輸入。我的意思是我想用網絡參數(如寬度和高度)來檢查分佈範圍。在.cc文件中訪問network.ned參數Omnet ++

我試過cPar但它失敗了,因爲參數未在sensornode.ned中定義。那麼,我怎樣才能在sonsornode.cc裏面使用這個參數。

rng =par("range"); 
widthInCC =par("width"); 
if(rng>widthInCC+1) 
rng=widthInCC+1; 
snX=uniform(0,rng); 
snY=uniform(0,rng); 

simple SensorNode { parameters: double range @unit(m);

gates: 
    inout snsGate[] @loose; 

}

+0

StackOverflow是關於收集(良好)問題的好答案的。你的問題實際上是要求2個不同的事情,這使得很難找出一個好的答案。你介意一次只問一個問題嗎?在這樣做的時候,請說出您的問題,以便它(連同答案)對儘可能多的讀者有所幫助。謝謝! –

+0

這個代碼部分,你已經發布,是從你的sensornode.cc文件?你可以發佈你的sensornode.ned文件嗎? – Ventu

+0

我添加了sensornode.ned文件,但我不想訪問它的參數。因爲我已經可以訪問它了。我想訪問sensornode.cc文件中的network.ned參數.Network.ned是基礎網絡。因此,所有的節點都部署在這一層。我希望我解釋得很好。 – ekn

回答

1

首先獲得一個指向網絡模塊,然後你可以得到的參數了。

int width = getParentModule()->par("width"); 
+0

仍然無法正常工作。 'sn.cc:19:29:error:'getSystemModule'未在此範圍內聲明@ @Rudi – ekn

+0

可能最好只使用getParent()。這樣你可以訪問父模塊的參數。我會指出,訪問其他模塊的參數是不好的軟件設計和反模式,因爲它阻止了組件以後的重新使用。 – Rudi

+0

我解決了這個問題。我用getParentModule()代替了getSystemModule()。謝謝 – ekn