无法在.msg文件中扩展FieldsChunk类(来自INET)

问题描述 投票:0回答:1

我需要制定一个MANET路由协议,所以我正在INET中查看GPSR和DSDV源代码,以了解如何执行此操作。

我检查了文件DsdvHello.msgGpsr.msg,其中定义了代表这些协议的数据包的类。这些类扩展了FieldsChunk类。我以为我必须以相同的方式定义协议的数据包,因此我在项目中创建了文件Protocolo.msg,如下所示。

cplusplus {{
#include "inet/common/packet/chunk/FieldsChunk.h"
#include "inet/networklayer/contract/ipv6/Ipv6Address.h"
}}

class FieldsChunk;
class Ipv6Address;

class Hola extends FieldsChunk {

    Ipv6Address ip;
    string ubicacion;
}

class Adios extends FieldsChunk {

    Ipv6Address ip;
}

我不确定我是否做得正确,但是我正在按照[OenT ++模拟手册的DsdvHello.msgGpsr.msg和“消息定义”一章中的说明进行操作。

[我在Project> Properties> Project References中选择了INET,但是当我构建项目时,尝试编译fatal error: inet/common/packet/chunk/FieldsChunk.h: No such file or directory文件时会收到消息.msg

我也有一个使用IManetRouting的NED文件(也来自INET),没有问题,但由于某种原因,它在FieldsChunk.h文件中找不到IPv6Address.h.msg

有人可以告诉我是否需要做其他事情以便可以在我的.msg文件中使用这些类吗?

omnet++ inet
1个回答
2
投票
  1. Protocolo.msg更改为:

    import inet.common.INETDefs;
    import inet.common.packet.chunk.Chunk;
    import inet.networklayer.contract.ipv6.Ipv6Address;
    
    namespace inet;
    
    class Hola extends FieldsChunk {
      Ipv6Address ip;
      string ubicacion;
    }
    
    class Adios extends FieldsChunk {
      Ipv6Address ip;
    }
    
  2. 然后转到项目的Properties,选择OMNeT++ |Makemake| src文件夹| Options...和:

    • Compile标签中,选中“添加从参考项目导出的包含路径”
    • Custom选项卡中添加以下行:

      MSGC:=$(MSGC) --msg6
      
© www.soinside.com 2019 - 2024. All rights reserved.