如何获取数据包的持续时间



在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()

最新更新