如何在消息文件 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 :
我想发送用户数据,所以我在消息文件中添加了一个字段:
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 :