我开发了这个模型,它对我来说很好....
现在我需要将tokenbucket仪表放在队列和接收器之间......处理突发并将拒绝的数据包从令牌表发送回队列......就像第二个附加图像一样..我已经采取了这个来自OMNET的simuLTE包的tokenbucketmeter ......
当我模拟它时,它显示错误,如
Quote: cannot cast (queueing::Job *)net.tokenBucketMeter.job-1 to type 'cPacket *'
我没有得到问题的确切位置,可能是我正在使用的源是创建作业,而tokenbucket meter只接受数据包。如果是这样,那么我应该使用什么类型的源?
请你澄清一下吗?非常感谢
答案 0 :(得分:0)
我目前正在项目中使用OMNeT ++。学习使用之前只触及某些C99的OMNeT ++可能会有点令人沮丧。
通过查看您用作项目基础的演示项目,看起来Job
和cPacket
不会共享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
,但鉴于协议如何工作,您似乎可以将消息转换为一个或多个数据包。