OMnet++奮闘記3
ついに2個のdelayを一つにすることに成功しました!
しかしバイトがあるのでコードを貼れない…
でもうれしくて報告!帰ってきたらソースコードはります。
そんなわけでとりあえずソースから。
txc.ccとtictoc.nedは変化なしです。
delay.ned
simple Delay
gates:
in: in;
out: out;
endsimple
こんだけ。
前と変わったところは行列のような[]がついたところです。
次にdelay.cc
#include
#include
class Delay : public cSimpleModule
{
protected:
virtual void handleMessage(cMessage *msg);
};
Define_Module(Delay);
void Delay::handleMessage(cMessage *msg)
{
if(msg->arrivedOn("in",0)){
send(msg, gate("out",0));
}
else{
send(msg,gate("out",1));
}
}
これが一番悩みました。
manualを見て関数を調べ、send()にもいろいろあるとかarrivedOn()とかも知りました。
そんでtopology.ned
import "Txc1" , "Delay";
module topology
submodules:
tic: Txc1;
display:"p=0,0;i=block/routing";
toc: Txc1;
display:"p=100,100;i=block/routing";
delay1: Delay;
gatesizes:
in[2],
out[2];
display:"p=50,50;i=block/opticaldelay_s";
connections://maybe mistakes are here.
tic.out --> delay 100ms --> delay1.in[0];
toc.in <-- delay 100ms <-- delay1.out[0];
toc.out --> delay 100ms --> delay1.in[1];
tic.in <-- delay 100ms <-- delay1.out[1];
endmodule
network Tictoc1: topology
endnetwork;
以上です。
とりあえず一つにもできたし、delayもgateを増やせるようになったので満足です。
これを発展させればスイッチになるんかな…とか思いつつ。
以上でとりあえずOMnet++はひとまず休みです。
これ以上は僕の研究とかかわるかもしれないのでw;
でも「こんなのがほしいな」みたいなのがあれば作ろうと思います。
いまんとこネットワークでそんなのはなさそうだけど…
あとモジュールの階層化について理解して、余裕があったら載せたいと思います。
以上です。
ありがとうございましたー。