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

时间:2019-05-10 10:42:41

标签: c++ omnet++ 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(),但是我没有找到如何使用它。

1 个答案:

答案 0 :(得分:0)

我尝试获取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