Как создать собственный INET-пакет?

Я хочу создать собственный класс пакета, который является пакетом INET. Например, чтобы создать собственный пакет Omnet cPacket, я бы использовал

class myPacket : public ::omnetpp::cPacket
{

Есть ли способ сделать это для пакета INET?

Я пробовал следующее, но все время получаю ошибки.

class myPacket : public inet::Packet
{
class myPacket : public INET_API::inet::Packet
{
class myPacket : public Packet
{

Причина, по которой мне нужен пакет INET, заключается в том, что я хочу отправить его с помощью функции sendTo, но эта функция принимает только пакет типа INET. Также принимающим модулем будет INET Radio, которое также принимает INET-пакеты.


person kwkwkw    schedule 11.01.2020    source источник
comment
Какие функции вы надеетесь добавить, создав подкласс inet :: Packet?   -  person Attila    schedule 13.01.2020


Ответы (1)


Лучше не создавать класс пакета, а создать файл .msg и позволить msgc (компилятору сообщений) создавать класс. В файле msg вы можете расширить Packet и импортировать inet.common.packet.Packet, но вы, вероятно, предпочтете расширить Chunk, FieldsChunk или аналогичные более конкретные классы, для которых требуется импорт inet.common.packet.chunk.Chunk. Если вы создаете свой собственный класс без файлов msg, я предполагаю, что вы можете перейти от inet :: Packet и #include inet / common / packet / Packet.h, но я не могу сказать, что пробовал это напрямую. Документация не слишком ясна, но вы можете найти полезную информацию о создании пользовательских пакетов здесь: https://inet.omnetpp.org/docs/developers-guide/ch-packets.html

person Asi    schedule 13.02.2021