如何解决将 VeinsInetCar 转换为 RSU 时出错
我尝试通过将移动性更改为固定移动性来使用 VeinsInetCar 模块作为 rsu
# VeinsInetmobility
*.node[*].mobility.typename = "VeinsInetmobility"
*.wifirsu.mobility.typename = "Stationarymobility"
我为车辆使用了 VeinsInetSampleApplication,并为 rsu 稍微更改了它。创建了一个新的 VeinsInetApplicationBase 并删除了traci 和mobility 部分。
void VeinsInetApplicationBase::handleStartOperation(LifecycleOperation* operation)
{
mobility = veins::VeinsInetmobilityAccess().get(getParentModule());
traci = mobility->getCommandInterface();
traciVehicle = mobility->getVehicleCommandInterface();
L3AddressResolver().tryResolve("224.0.0.1",destAddress);
ASSERT(!destAddress.isUnspecified());
然后移除与traci相关的变量并将其替换为RSU的veinesInetSampleApplication中的虚拟变量。现在,当我尝试运行模拟时,它会导致此错误。
check_and_cast(): Cannot cast (inet::physicallayer::Ieee80211ScalarTransmission*) to type 'const inet::physicallayer::DimensionalTransmission *' -- in module (inet::physicallayer::Ieee80211Radio) Scenario.node[0].wlan[0].radio
解决方法
我的猜测是您为名为 node[*]
的节点配置了一组参数,为名为 wifirsu
的节点配置了另一组参数。可能您的 .ini
文件主要列出名为 node[*]
的节点的参数,并将许多参数保留为名为 wifirsu
的节点的默认值。这可能会导致您的模拟对一种类型的节点使用“标量”无线电,而对其他类型的节点使用“维度”无线电,这会导致您显示的错误消息。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。