Не удается расширить класс FieldsChunk (от INET) внутри MSG-файла - PullRequest
0 голосов
/ 05 февраля 2020

Мне нужно сделать протокол маршрутизации M ANET, поэтому я просматриваю исходный код GPSR и DSDV в INET, чтобы понять, как это сделать.

Я проверил файлы 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;
}

Я не уверен, что делаю верно, но я делаю это, как я вижу в DsdvHello.msg и Gpsr.msg и главе «Определения сообщений» в Руководстве по моделированию OMNeT ++.

Я выбрал INET в Project> Properties> Project References, но когда я строю свой проект, я получаю сообщение fatal error: inet/common/packet/chunk/FieldsChunk.h: No such file or directory, когда он пытается скомпилировать мой .msg файл.

У меня также есть файл NED, который использует IManetRouting (также из INET) без проблем, но по какой-то причине он не находит FieldsChunk.h и IPv6Address.h в файле .msg.

Может кто-нибудь сказать мне, нужно ли мне делать что-то еще, чтобы я мог использовать эти классы в своем * 1023? * файл?

1 Ответ

2 голосов
/ 05 февраля 2020
  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. Затем go до Properties вашего проекта, выберите OMNeT++ | Makemake | sr c папка | Options... и:

    • во вкладке Compile отметка «Добавить включаемые пути, экспортированные из ссылочных проектов» *
    • во вкладке Custom добавьте следующую строку:

      MSGC:=$(MSGC) --msg6
      
...