Skip to content

Commit 8bea55b

Browse files
committed
ResidenceTimeMeasurer: use signal names from par in receiveSignal, too (fix for #1052)
1 parent 8ec8887 commit 8bea55b

2 files changed

Lines changed: 10 additions & 21 deletions

File tree

src/inet/common/ResidenceTimeMeasurer.cc

Lines changed: 6 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ void ResidenceTimeMeasurer::initialize(int stage)
2222
{
2323
if (stage == INITSTAGE_LOCAL) {
2424
auto subscriptionModule = getModuleFromPar<cModule>(par("subscriptionModule"), this);
25-
auto measurementStartSignal = registerSignal(par("measurementStartSignal"));
26-
auto measurementEndSignal = registerSignal(par("measurementEndSignal"));
25+
measurementStartSignal = registerSignal(par("measurementStartSignal"));
26+
measurementEndSignal = registerSignal(par("measurementEndSignal"));
2727
subscriptionModule->subscribe(measurementStartSignal, this);
2828
subscriptionModule->subscribe(measurementEndSignal, this);
2929
subscriptionModule->subscribe(packetCreatedSignal, this);
@@ -59,30 +59,15 @@ void ResidenceTimeMeasurer::receiveSignal(cComponent *source, simsignal_t signal
5959
auto packet = check_and_cast<Packet *>(physicalSignal->getEncapsulatedPacket());
6060
b offset = b(0);
6161
b length = packet->getDataLength();
62-
if (signal == receptionStartedSignal) {
63-
EV_DEBUG << "Reception started" << EV_FIELD(packet) << std::endl;
62+
if (signal == measurementStartSignal) {
63+
EV_DEBUG << "Measurement started (signal=" << getSignalName(signal) << ") " << EV_FIELD(packet) << std::endl;
6464
packet->addRegionTagsWhereAbsent<ResidenceTimeTag>(offset, length);
6565
packet->mapAllRegionTagsForUpdate<ResidenceTimeTag>(offset, length, [&] (b o, b l, const Ptr<ResidenceTimeTag>& tag) {
6666
tag->setStartTime(simTime());
6767
});
6868
}
69-
else if (signal == receptionEndedSignal) {
70-
EV_DEBUG << "Reception ended" << EV_FIELD(packet) << std::endl;
71-
packet->addRegionTagsWhereAbsent<ResidenceTimeTag>(offset, length);
72-
packet->mapAllRegionTagsForUpdate<ResidenceTimeTag>(offset, length, [&] (b o, b l, const Ptr<ResidenceTimeTag>& tag) {
73-
tag->setStartTime(simTime());
74-
});
75-
}
76-
else if (signal == transmissionStartedSignal) {
77-
EV_DEBUG << "Transmission started" << EV_FIELD(packet) << std::endl;
78-
packet->mapAllRegionTagsForUpdate<ResidenceTimeTag>(offset, length, [&] (b o, b l, const Ptr<ResidenceTimeTag>& tag) {
79-
tag->setEndTime(simTime());
80-
});
81-
emit(packetStayedSignal, packet);
82-
packet->removeRegionTagsWherePresent<ResidenceTimeTag>(offset, length);
83-
}
84-
else if (signal == transmissionEndedSignal) {
85-
EV_DEBUG << "Transmission ended" << EV_FIELD(packet) << std::endl;
69+
else if (signal == measurementEndSignal) {
70+
EV_DEBUG << "Measurement ended (signal=" << getSignalName(signal) << ") " << EV_FIELD(packet) << std::endl;
8671
packet->mapAllRegionTagsForUpdate<ResidenceTimeTag>(offset, length, [&] (b o, b l, const Ptr<ResidenceTimeTag>& tag) {
8772
tag->setEndTime(simTime());
8873
});

src/inet/common/ResidenceTimeMeasurer.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@ namespace inet {
1515

1616
class INET_API ResidenceTimeMeasurer : public SimpleModule, public cListener
1717
{
18+
private:
19+
simsignal_t measurementStartSignal = -1;
20+
simsignal_t measurementEndSignal = -1;
21+
1822
public:
1923
static simsignal_t packetStayedSignal;
2024

0 commit comments

Comments
 (0)