如何获取数据包的持续时间
How to get the duration of a packet
在 omnet++ 中,我使用以下命令创建了一个数据包,我需要查看数据包的持续时间(以秒和位为单位)。
void XMac::sendPreamble(MacAddress preamble_address)
{
//~ diff with XMAC, @ in preamble!
auto preamble = makeShared<XMacControlFrame>();
preamble->setSrcAddr(interfaceEntry->getMacAddress());
preamble->setDestAddr(preamble_address);
preamble->setChunkLength(ctrlFrameLength);
preamble->setType(XMAC_PREAMBLE);
auto packet = new Packet("Preamble", preamble);
packet->addTag<PacketProtocolTag>()->setProtocol(&Protocol::xmac);
attachSignal(packet, simTime());
sendDown(packet);
nbTxPreambles++;
}
谁能告诉我如何查看 packet
持续时间的语法?
谢谢
每个数据包都有一个长度(以位或字节为单位)。持续时间(即通过通道发送数据包的时间)至少取决于两个因素:
- 包的长度
- 频道比特率
数据包的长度可以这样读取,例如:
auto len = packet->getTotalLength();
int lenBits = b(len).get(); // in bits
收到数据包后,可以通过以下方式获取传输时长:
simtime_t duration = packet->getDuration()
在 omnet++ 中,我使用以下命令创建了一个数据包,我需要查看数据包的持续时间(以秒和位为单位)。
void XMac::sendPreamble(MacAddress preamble_address)
{
//~ diff with XMAC, @ in preamble!
auto preamble = makeShared<XMacControlFrame>();
preamble->setSrcAddr(interfaceEntry->getMacAddress());
preamble->setDestAddr(preamble_address);
preamble->setChunkLength(ctrlFrameLength);
preamble->setType(XMAC_PREAMBLE);
auto packet = new Packet("Preamble", preamble);
packet->addTag<PacketProtocolTag>()->setProtocol(&Protocol::xmac);
attachSignal(packet, simTime());
sendDown(packet);
nbTxPreambles++;
}
谁能告诉我如何查看 packet
持续时间的语法?
谢谢
每个数据包都有一个长度(以位或字节为单位)。持续时间(即通过通道发送数据包的时间)至少取决于两个因素:
- 包的长度
- 频道比特率
数据包的长度可以这样读取,例如:
auto len = packet->getTotalLength();
int lenBits = b(len).get(); // in bits
收到数据包后,可以通过以下方式获取传输时长:
simtime_t duration = packet->getDuration()