0

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

我已经开发了这个模型,它对我来说工作得很好......

现在我需要在队列和接收器之间放置 tokenbucket 计...以处理突发并将拒绝的数据包从令牌计发送回队列..类似于第二个附加图像..我已经从OMNET的simuLTE包...

当我模拟这个时,它显示错误

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

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

你能澄清一下吗?将非常感谢

4

1 回答 1

0

我现在也在一个项目中使用 OMNeT++。在之前只接触过一些 C99 的情况下学习使用 OMNeT++ 可能有点令人沮丧。

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

看看项目PassiveQueue.cc中的/queueinglib处理工作 - 一切都作为 a 传递,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自己,但考虑到协议的工作方式,您似乎可以将消息转换为一个或多个数据包。

于 2013-07-10T14:56:36.513 回答