CoRE Simulation Models for Real-time Networks

Changeset 5207e11 in oppResultManagers


Ignore:
Timestamp:
04/07/16 16:00:12 (3 years ago)
Author:
steinbach <till.steinbach@…>
Branches:
master
Children:
f2be83d
Parents:
132119f
Message:

now can also receive packets :)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/oppresultmanagers/eventlog/pcapng/PCAPNGEventlogManager.cc

    r132119f r5207e11  
    8484                    (*interfaceModule).c_str());
    8585        }
    86         interfaceMap[module] = pcapwriter->addInterface("", module->getFullPath(), static_cast<uint32_t>(capture_length),
    87                 static_cast<uint8_t>(abs(omnetpp::simTime().getScaleExp())));
     86        interfaceMap[module] = pcapwriter->addInterface("", module->getFullPath(),
     87                static_cast<uint32_t>(capture_length), static_cast<uint8_t>(abs(omnetpp::simTime().getScaleExp())));
    8888    }
    8989    recordingStarted = true;
     
    104104}
    105105
    106 void PCAPNGEventlogManager::simulationEvent(__attribute__((__unused__))                   omnetpp::cEvent *event)
     106void PCAPNGEventlogManager::simulationEvent(omnetpp::cEvent *event)
    107107{
    108 
     108    if (recordEventlog)
     109    {
     110        if (!recordingStarted)
     111        {
     112            startRecording();
     113        }
     114        if (event->isMessage())
     115        {
     116            if (omnetpp::cPacket* pkt = dynamic_cast<omnetpp::cPacket*>(event))
     117            {
     118                if (dynamic_cast<omnetpp::cDatarateChannel*>(pkt->getArrivalGate()->findIncomingTransmissionChannel()))
     119                {
     120                    //Refactor in method?
     121                    if (interfaceMap.find(pkt->getArrivalModule()) != interfaceMap.end())
     122                    {
     123                        char serializeBuffer[10000];
     124                        inet::serializer::Buffer wb(serializeBuffer, sizeof(serializeBuffer));
     125                        inet::serializer::Context c;
     126                        c.throwOnSerializerNotFound = false;
     127                        inet::serializer::SerializerBase::lookupAndSerialize(pkt, wb, c, inet::serializer::LINKTYPE,
     128                                inet::serializer::LINKTYPE_ETHERNET, static_cast<unsigned int>(capture_length));
     129                        pcapwriter->addEnhancedPacket(static_cast<uint32_t>(interfaceMap[pkt->getArrivalModule()]),
     130                                false, static_cast<uint64_t>(pkt->getArrivalTime().raw()),
     131                                static_cast<uint32_t>(pkt->getByteLength()), wb.getPos(), serializeBuffer);
     132                    }
     133                }
     134            }
     135        }
     136    }
    109137}
    110138
     
    130158                    inet::serializer::SerializerBase::lookupAndSerialize(pkt, wb, c, inet::serializer::LINKTYPE,
    131159                            inet::serializer::LINKTYPE_ETHERNET, static_cast<unsigned int>(capture_length));
    132                     EV << wb.getPos() << std::endl;
    133160                    pcapwriter->addEnhancedPacket(static_cast<uint32_t>(interfaceMap[msg->getSenderModule()]), true,
    134                             static_cast<uint64_t>(msg->getSendingTime().raw()), static_cast<uint32_t>(pkt->getByteLength()), wb.getPos(),
    135                             serializeBuffer);
     161                            static_cast<uint64_t>(msg->getSendingTime().raw()),
     162                            static_cast<uint32_t>(pkt->getByteLength()), wb.getPos(), serializeBuffer);
    136163                }
    137164            }
Note: See TracChangeset for help on using the changeset viewer.