Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

ErrAndCollDecider Class Reference

#include <ErrAndCollDecider.h>

Inheritance diagram for ErrAndCollDecider:

SnrDecider BasicDecider BasicModule INotifiable List of all members.

Detailed Description

decider module for the GilbertElliotSnr module

This decider simply takes a look at the sduList contained in the received PhySDU packet and checks whether one of the mentioned snr levels is lower than the snrThresholdLevel which has to be read in at the beginning of a simulation (suggestion: from the omnetpp.ini file!). If there is such a level the packet is considered to be lost due to a collision. On top of that the packet can also be lost due to the BAD state of the digital channel model model (see e.g. GilbertElliotSnr module). This module should be used in combination with digital channel modules like GilbertElliotSnr.

Author:
Marc Löbbers


Protected Member Functions

virtual void handleLowerMsg (AirFrame *, SnrList &)
 In this function the decision whether a frame is received correctly or not is made.


Member Function Documentation

void ErrAndCollDecider::handleLowerMsg AirFrame *  af,
SnrList receivedList
[protected, virtual]
 

In this function the decision whether a frame is received correctly or not is made.

Redefine this function if you want to process messages from the channel before they are forwarded to upper layers

In this function it has to be decided whether this message got lost or not. This can be done with a simple SNR threshold or with transformations of SNR into bit error probabilities...

If you want to forward the message to upper layers please use sendUp which will decapsulate the MAC frame before sending

Reimplemented from SnrDecider.

00028 {
00029     if (snrOverThreshold(receivedList))
00030     {
00031         if (af->hasBitError())
00032         {
00033             EV << "Message got lost due to digital channel model BAD state\n";
00034             delete af;
00035         }
00036         else
00037         {
00038             EV << "Message handed on to Mac\n";
00039             sendUp(af);
00040         }
00041     }
00042     else
00043     {
00044         EV << "COLLISION!\n";
00045         delete af;
00046     }
00047 }


The documentation for this class was generated from the following files:
Generated on Sat Apr 1 20:52:21 2006 for INET Framework for OMNeT++/OMNEST by  doxygen 1.4.1