令牌桶的omnet模拟

时间:2013-07-03 04:38:41

标签: omnet++

我正在开发omnet ++的仿真模型。基本上我的工作是开发与LTE相关的东西,但首先我需要开发一个简单的模型,该模型从源获取数据包并将其存储在队列中一段时间​​并交付它下沉......

我开发了这个模型,它对我来说很好....

现在我需要将tokenbucket仪表放在队列和接收器之间......处理突发并将拒绝的数据包从令牌表发送回队列......就像第二个附加图像一样..我已经采取了这个来自OMNET的simuLTE包的tokenbucketmeter ......

当我模拟它时,它显示错误,如

Quote: cannot cast (queueing::Job *)net.tokenBucketMeter.job-1 to type 'cPacket *' 

我没有得到问题的确切位置,可能是我正在使用的源是创建作业,而tokenbucket meter只接受数据包。如果是这样,那么我应该使用什么类型的源?

请你澄清一下吗?非常感谢

1 个答案:

答案 0 :(得分:0)

我目前正在项目中使用OMNeT ++。学习使用之前只触及某些C99的OMNeT ++可能会有点令人沮丧。

通过查看您用作项目基础的演示项目,看起来JobcPacket不会共享cObject以外的任何有用类型,所以我不会尝试像这样投。

PassiveQueue.cc项目中查看/queueinglib处理作业 - 所有内容都以cMessage传递,并使用内置的强制转换进行投射:

cMessage msg (comes in from method signature)

Job *job = check_and_cast<Job *>(msg);

您要使用的cPackets是此链接中显示的继承层次结构中的cMessage的子代:

http://www.omnetpp.org/doc/omnetpp/api/index.html

我自己并没有使用cPackets,但鉴于协议如何工作,您似乎可以将消息转换为一个或多个数据包。