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

时间:2016-07-11 12:34:02

标签: omnet++ veins

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

sendWSM(prepareWSM(" ack",ackLengthBits,type_SCH,ackPriority,sourcenode.idNode,2));

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

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

我是否无权重新使用SCH通道获取ACK消息? 我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

静脉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)传输消息。

因此,您要求互斥行为。

Veins正确地识别了这一点并中止了您的模拟。