Simple Module LMacLayer

Package: org.mixim.modules.mac
File: modules/mac/LMacLayer.ned

C++ definition

Implementation of L-MAC (Lightweight Medium Access Protocol for Wireless Sensor Networks)

See C++ documentation for details

LMacLayer

Usage diagram:

The following diagram shows usage relationships between types. Unresolved types are missing from the diagram. Click here to see the full picture.

Inheritance diagram:

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram. Click here to see the full picture.

Extends:

BaseMacLayer (simple module)

Base module for every mac layer module

Used in compound modules:

If a module type shows up more than once, that means it has been defined in more than one NED file.

NicLMAC (compound module)

This module implements a LMAC network interface card using the "LMacLayer" MAC layer module

Parameters:

Name Type Default value Description
notAffectedByHostState bool false
coreDebug bool

debug switch

headerLength double

length of the MAC packet header (in bits)

debug bool false

enable per module debug

slotDuration double 100ms

how long is a slot?

queueLength double 10

length of MAC header

defaultChannel double 0

default channel

bitrate double 19200bps

bit rate

reservedMobileSlots int 2
numSlots int 64
txPower double 50

Properties:

Name Value Description
class LMacLayer

Gates:

Name Direction Size Description
upperGateIn input

from upper layer

upperGateOut output

to uppe layer

upperControlIn input

control from upper layer

upperControlOut output

control to upper layer

lowerGateIn input

from lower layer

lowerGateOut output

to lower layer

lowerControlIn input

control from lower layer

lowerControlOut output

control to lower layer

Source code:

//
// Implementation of L-MAC (Lightweight Medium Access Protocol for
// Wireless Sensor Networks)
//
// See C++ documentation for details
//
simple LMacLayer extends BaseMacLayer
{
    parameters:
        // enable per module debug
        bool debug = default(false);
        // how long is a slot?
        double slotDuration @unit(s) = default(100ms);
        // length of MAC header
        double queueLength = default(10);
        // default channel 
        double defaultChannel = default(0);
        // bit rate 
        double bitrate @unit(bps) = default(19200bps);
        // level at which we consider medium busy FIXME not used currently
//        double busyRSSI;

        int reservedMobileSlots = default(2);
        int numSlots = default(64);
        double txPower = default(50);

        @class(LMacLayer);
}