问题描述
当我阅读第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 (将#修改为@)