Omnet++ 如何解除数据包的封装以获取UDPBasicApp';AODVRouting.CC中的数据包名称?

Omnet++ 如何解除数据包的封装以获取UDPBasicApp';AODVRouting.CC中的数据包名称?,omnet++,inet,Omnet++,Inet,我目前正在模拟AODV路由,对包封装/去封装感到非常困惑。 在UDPBasicAPP.CC中,有一个名为packetName的变量来定义数据包的名称(从INI文件定义) 因此,一旦数据包通过AODVRouting.CC,它就被封装: void AODVRouting::receiveSignal(cComponent *source, simsignal_t signalID, cObject *obj, cObject *details) { cPacket *frame = check_a

我目前正在模拟AODV路由,对包封装/去封装感到非常困惑。 在UDPBasicAPP.CC中,有一个名为packetName的变量来定义数据包的名称(从INI文件定义)

因此,一旦数据包通过AODVRouting.CC,它就被封装:

 void AODVRouting::receiveSignal(cComponent *source, simsignal_t signalID, cObject *obj, cObject *details)
{
cPacket *frame = check_and_cast<cPacket *>(obj);
datagram = dynamic_cast<INetworkDatagram *>(frame->getEncapsulatedPacket());
}
void AODVRouting::receiveSignal(cComponent*源、simsignal\u t signalID、cObject*对象、cObject*详细信息)
{
cPacket*frame=检查和铸造(obj);
数据报=动态广播(帧->GetEn封装数据包());
}
我想再次解封该数据包,以便检索上面提到的packetName值。代码如下:

UDPPacket *testData  = check_and_cast<UDPPacket *>(frame->decapsulate());
UDPPacket*testData=check_和_cast(frame->decapsulate());

但是,我发现UDPPacket类没有任何函数来访问/检索数据包解封后的packetName值。我不确定还有哪个类可以提供这样的功能。我需要获取packetName来处理AODVRouting.CC中的一些数据。请告诉我,谢谢。

参数
packetName
用于创建有效负载的名称。查看
UDPBasicApp::sendPacket()

void UDPBasicApp::sendPacket()
{
std::ostringstream str;

str参数
packetName
用于创建有效负载的名称。请查看
UDPBasicApp::sendPacket()

void UDPBasicApp::sendPacket()
{
std::ostringstream str;
str
UDPPacket *testData  = check_and_cast<UDPPacket *>(frame->decapsulate());
void UDPBasicApp::sendPacket()
{
    std::ostringstream str;
    str << packetName << "-" << numSent;
    ApplicationPacket *payload = new ApplicationPacket(str.str().c_str());
    // ...