我需要制定一个MANET路由协议,所以我正在INET中查看GPSR和DSDV源代码,以了解如何执行此操作。
我检查了文件DsdvHello.msg
和Gpsr.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.msg
和Gpsr.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
文件中使用这些类吗?
将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;
}
然后转到项目的Properties
,选择OMNeT++
|Makemake
| src文件夹| Options...
和:
Compile
标签中,选中“添加从参考项目导出的包含路径”在Custom
选项卡中添加以下行:
MSGC:=$(MSGC) --msg6