如何区分 RSU ID 与 Veins 和 Omnet++ 中的节点 ID?
How to differentiate RSU IDs from Node IDs in Veins and Omnet++?
我们的静脉模拟有问题。我们正在尝试在演示场景 (TraCIDemo11p) 中实现一个关于消息扩散的算法,我们的问题是发送 WSM 消息。我们想从节点(例如汽车)向特定 RSU 发送特定消息。节点通过收集信标消息并将发送者的 ID 和类型存储到缓冲区来了解其邻居。问题是当我们想要将消息发送到例如 ID 为 7 的 RSU 时,如果有一个 ID 为 7 的节点,将发送两条消息,因为它们的 ID 均为 7。我们在哪里可以更改给定的 ID隐含地,以便我们可以区分 TraCIDemo11p.cc?
中的节点和 RSU
因为它们是两个不同的模块,所以节点存储在数组 node[] 中,RSU 存储在数组 rsu[] 中,这就是为什么它们可以具有相同的 ID 或索引。
我们尝试通过修改TraCIDemoRSU11p的initialize方法中的myId属性,但是当消息即将发送时,接收方收不到。通过分析汽车收到的信标消息,我们可以知道 RSU 具有修改后的 ID,例如 50。然后我们使用 populateWSM 方法并将 rcvID 参数声明为 50,但 RSU 上从未收到消息。
我们正在使用 Veins 4.7.1。和 OmNet++ 5.4.1.
你是对的:Veins 4.7.1 使用主机模块的索引(即 "node[7]" 中的 7)作为网卡的 "MAC address"(参见 here). More recent versions, for example, Veins 5.0-alpha2, are using a fully flexible scheme; moreover it defaults to using the OMNeT++ module id of the network card (see here ), 这不仅可以区分具有相同索引的主机,还可以区分这些主机中的多个网卡。
如果切换到 Veins 5 不适合您,向后移植此更改应该很简单。
我们的静脉模拟有问题。我们正在尝试在演示场景 (TraCIDemo11p) 中实现一个关于消息扩散的算法,我们的问题是发送 WSM 消息。我们想从节点(例如汽车)向特定 RSU 发送特定消息。节点通过收集信标消息并将发送者的 ID 和类型存储到缓冲区来了解其邻居。问题是当我们想要将消息发送到例如 ID 为 7 的 RSU 时,如果有一个 ID 为 7 的节点,将发送两条消息,因为它们的 ID 均为 7。我们在哪里可以更改给定的 ID隐含地,以便我们可以区分 TraCIDemo11p.cc?
中的节点和 RSU因为它们是两个不同的模块,所以节点存储在数组 node[] 中,RSU 存储在数组 rsu[] 中,这就是为什么它们可以具有相同的 ID 或索引。
我们尝试通过修改TraCIDemoRSU11p的initialize方法中的myId属性,但是当消息即将发送时,接收方收不到。通过分析汽车收到的信标消息,我们可以知道 RSU 具有修改后的 ID,例如 50。然后我们使用 populateWSM 方法并将 rcvID 参数声明为 50,但 RSU 上从未收到消息。
我们正在使用 Veins 4.7.1。和 OmNet++ 5.4.1.
你是对的:Veins 4.7.1 使用主机模块的索引(即 "node[7]" 中的 7)作为网卡的 "MAC address"(参见 here). More recent versions, for example, Veins 5.0-alpha2, are using a fully flexible scheme; moreover it defaults to using the OMNeT++ module id of the network card (see here ), 这不仅可以区分具有相同索引的主机,还可以区分这些主机中的多个网卡。
如果切换到 Veins 5 不适合您,向后移植此更改应该很简单。