Omnet++ omnet++/静脉:连接inet和静脉:TraCIScenarioManagerLaunchd中的可追踪性错误

Omnet++ omnet++/静脉:连接inet和静脉:TraCIScenarioManagerLaunchd中的可追踪性错误,omnet++,veins,Omnet++,Veins,我正在尝试连接inet 3.4.0和Velse4.4以获得Tcp/Ip支持。 我遵循了这些说明()甚至更多,但在尝试运行模拟时出现了以下错误:我不确定是否理解TraCIMobility函数 事件23,t=0.2:ASSERT:condition lastUpdate!=函数changePosition,veils/modules/mobility/traci/TraCIMobility.cc第192行中的simTime()为false。 这是我的汽车模块: import inet.node.in

我正在尝试连接inet 3.4.0和Velse4.4以获得Tcp/Ip支持。 我遵循了这些说明()甚至更多,但在尝试运行模拟时出现了以下错误:我不确定是否理解TraCIMobility函数

事件23,t=0.2:ASSERT:condition lastUpdate!=函数changePosition,veils/modules/mobility/traci/TraCIMobility.cc第192行中的simTime()为false。

这是我的汽车模块:

import inet.node.inet.AdhocHost;
import org.car2x.veins.base.modules.*;
import org.car2x.veins.modules.nic.Nic80211p;
import org.car2x.veins.base.modules.IMobility;

module Car extends AdhocHost
{
    parameters:
    //string applType; //type of the application layer
    int numWaveRadios = default(1);          
    string nicType = default("Nic80211p"); // type of network interface card
    string veinsmobilityType; //type of the mobility module
    string imobilityType; //type of the mobility module
    @display("bgl=2");
gates:
    input veinsRadioIn[numWaveRadios] @directIn; // gate for sendDirect

submodules:
    nic[numWaveRadios]: <nicType> like org.car2x.veins.modules.nic.INic80211p {
        parameters:
            @display("p=661,287");
    }

    veinsmobility: <veinsmobilityType> like org.car2x.veins.base.modules.IMobility {
        parameters:
            @display("p=163,242;i=block/cogwheel");
    }
    // optional mobility module. Required only if ieee80211p wireless cards are present
    imobility: <imobilityType> like org.car2x.veins.base.modules.IMobility if (imobilityType != ""){
        parameters:
            @display("p=53,200");
    }  
connections:
    for i=0..sizeof(veinsRadioIn)-1 {
        veinsRadioIn[i] --> { @display("m=s"); } --> nic[i].radioIn;
        nic[i].upperLayerOut --> networkLayer.ifIn++;
        nic[i].upperLayerIn <-- networkLayer.ifOut++;
    }

}
谢谢你的帮助!
关于,

好的,我已经评论了这个断言

//确保我们不会在一个时间步内被呼叫两次

//ASSERT(lastUpdate != simTime());
使用INET,我们被有效地调用了两次,一次在这里,另一次来自TraCIScenarioManagerInet.cc,因此我对这一行进行了注释


它现在运行…但在一个时间步中调用了两次Github上的Velses存储库现在包括一个示例子项目(
Velses\u inet
),该子项目使用Velses进行节点移动,运行inet框架(inet 3.4.0)模拟

//ASSERT(lastUpdate != simTime());

您可以在

上看到所需的代码(并且,在单击
浏览文件
后,您可以下载完整项目的.zip存档文件),我尝试了这个。但是没有成功。给我找不到外部id错误。Velses 5.0包括Velses\u inet。如果安装给您带来麻烦,静脉也会以“即时静脉”的形式出现“,一个随时可以运行的VM,只需单击一下即可安装。请参阅Velses\u inet导致我生成错误。Velses\u inet3工作正常。它是基于Velses mobility构建的吗?它可以模拟Velses car节点吗?我也会尝试instant-Velses。Velses 5.0的Velses\u inet用于inet 4,Velses\u inet3用于inet 3。有关兼容版本的完整列表,请参阅changelog on锡安