首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用omnet++实现车辆网络仿真中的停车?

如何用omnet++实现车辆网络仿真中的停车?
EN

Stack Overflow用户
提问于 2019-01-02 18:59:59
回答 2查看 186关注 0票数 0

在我的模拟中,我需要将一辆汽车停在停车场,当汽车离开停车场时,它会将它们的信息传输到parking.Therefore内部的其余汽车,当车辆停在停车场时,它与停车场外部或内部的通信不应中断。

我使用的是omnetpp-5.0、sumo-0.25.0和veins veins 4.4。我尝试将更改应用到基础纹理,但我没有得到结果。

我怎样才能在不中断与停车场内外通信的情况下停车?

有谁可以帮我?

EN

回答 2

Stack Overflow用户

发布于 2019-01-05 20:08:44

我不是静脉方面的专家,所以我只能代表相扑方面发言。你可以简单地在车辆路线上添加一个停靠点,并像这样标记它是一个停车位:

代码语言:javascript
复制
<vehicle id="1" depart="0">
    <route edges="edge1 edge2"/>
    <stop lane="edge2_0" endPos="100" duration="100" parking="true"/>
</vehicle>

如果由于停车将车辆从网络中移除,因此可能会因为不再有可靠位置而禁用通信,因此无法工作,则在网络中创建一条单独的街道:

代码语言:javascript
复制
<vehicle id="1" depart="0">
    <route edges="edge1 edge2a parking edge2b"/>
    <stop lane="parking_0" endPos="100" duration="100"/>
</vehicle>

其中“停车”至少比edge2多一条车道,这样车辆就可以超车。(我在没有测试的情况下从内存中编写了这个示例,因此其中可能存在错误。)

票数 2
EN

Stack Overflow用户

发布于 2021-08-07 05:04:45

下面的摘录可能会有所帮助,因为它演示了一辆在临时停车(模拟停车)的车辆。有关详细信息,请查看veins中的TraCIMobility.cc

代码语言:javascript
复制
void TraCIMobility::handleSelfMsg(cMessage *msg)
{
    if (msg == startAccidentMsg) {
        commandSetSpeed(0);
        simtime_t accidentDuration = par("accidentDuration");
        scheduleAt(simTime() + accidentDuration, stopAccidentMsg);
        accidentCount--;
    }
    else if (msg == stopAccidentMsg) {
        commandSetSpeed(-1);
        if (accidentCount > 0) {
            simtime_t accidentInterval = par("accidentInterval");
            scheduleAt(simTime() + accidentInterval, startAccidentMsg);
        }
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54005127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档