代码之家  ›  专栏  ›  技术社区  ›  Fariha

模块错误(Mac1609_4)模型错误:ASSERT:函数handleUpperMsg中的条件useSCH false

  •  0
  • Fariha  · 技术社区  · 8 年前

    我使用Veins-4a2,并修改了演示示例的场景。我添加了一个新的wsm,它是ACK。当节点收到消息时,它会向源节点发送一条ACK消息。 我在onData()函数中添加了这一行:

    发送WSM(准备WSM(“ack”,ackLengthBits,type_SCH,ackPriority,sourcenode.idNode,2));

    我当然更改了BaseWaveApplLayer中的prepareWSM和handleLowerMsg()函数。cc,但当我执行模拟时,它在10秒后崩溃。这是错误消息:

    模块(Mac1609_4)RSUExampleScenario.node[2].nic出错。mac1609_4(id=240),事件#1196,t=9.210177776741:模型错误:ASSERT:函数handleUpperMsg中的条件useSCH false,静脉/模块/mac/iee80211p/mac1609_4.cc行259。

    我怎样才能纠正这个问题?

    1 回复  |  直到 8 年前
        1
  •  0
  •   Christoph Sommer    8 年前

    Veins 4a2的1609.4 MAC层可用于两种操作模式之一:单通道和多通道。可以通过设置.ned文件的此参数来配置行为:

    // cycle between an SCH and the CCH (or stay on CCH all the time)
    bool useServiceChannel = default(true);
    

    根据您发布的错误消息,似乎您已将此参数设置为 false ,表示您希望收音机始终保持在控制频道(CCH)上。同时,您发布的代码请求通过服务通道(SCH)传输消息。

    因此,您要求采取相互排斥的行为。

    静脉正确识别了这一点,并中止了模拟。