ChannelMobilityPtrType的功能const淌度=静脉5.0中的check_and_cast <ChannelMobilityPtrType>obj?

问题描述

当我阅读第5.0条代码void DemoBaseApplLayer::handlePositionUpdate(cObject* obj)时。我对变量mobility功能感到困惑。 mobility在DemoBaseApplLayer.h / .cc中定义为 TraCImobility* mobility;mobility = TraCImobilityAccess().get(getParentModule()),但再次定义为ChannelmobilityPtrType const mobility。你能告诉我为什么吗?为什么curSpeed的值总是等于(-0,0)? curSpeed不是车速吗?

TraCIDemo11p.cc

void TraCIDemo11p::handlePositionUpdate(cObject* obj)
{
    DemoBaseApplLayer::handlePositionUpdate(obj);
    if (mobility->getSpeed() < 1) {....}
    ......
}

DemoBaseApplLayer.cc

void DemoBaseApplLayer::handlePositionUpdate(cObject* obj)
{
    ChannelmobilityPtrType const mobility = check_and_cast<ChannelmobilityPtrType>(obj);
    curPosition = mobility->getPositionAt(simTime());
    curSpeed = mobility->getCurrentSpeed();
    EV<<"curSpeed="<<curSpeed<<endl;// the result is curSpeed=(-0,0) always
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)