如何在消息文件 INET 中获取用户定义的字段

How to get user defined field in message file INET

我想发送用户数据,所以我在消息文件中添加了一个字段:

class MpeiMacHeader extends MacHeaderBase
{
    MPEIMacType   type;
    uint32_t data;
}

这是收到的消息的样子: msg fields

我没有成功在我的代码中获取字段 data。我尝试了几个表达式,我只能得到:msg fields

但是当我尝试在我的代码中使用 msg->content 进行编译时:

no member named 'content' in 'omnetpp::cMessage'

如何在我的代码中获取这个字段?生成的文件中有一个 getData(),但我没有找到如何使用它。

我试图获取 handleSelfMessage() 中的数据,我找到了使用 handleLowerPacket() 的解决方案:

void MpeiMac::handleLowerPacket(Packet *packet)
{
    if (packet->hasBitError())
    {
        ...
    }
    else
    {
        const auto& hdr = packet->peekAtFront<MpeiMacHeader>();
        packet->setKind(hdr->getType());

        if( hostID == 0 )
            data = hdr->getData();
        // simply pass the massage as self message, to be processed by the FSM.
        handleSelfMessage(packet);
    }
}

也许这部分可以解释:inet_developers-guide :