...
The reference implementation of IEEE802.15.4e provided here is part of the OpenWSN stack implementation. Now, while the IEEE802154E.c file does not contain any hardware-dependent functions, it does depend on a couple of modules around it, which we list in this page.
...
The link layer consists of two sublayers:
- "02a-MACMAClow" is the "lower MAC". It consists of the IEEE802.15.4e implementation and the associated timer. IEEE802.15.4e feeds from the queue of packets to be sent (the
OpenQueue
module), and the schedule (in theschedule
schedule). It runs entirely in ISR (interrupt service routine) mode and "executes" the schedule without modifying it - "02b-RESMAChigh" is the "upper MAC" which is responsible for managing the schedule. It runs entirely in task mode (same goes for everything in the stack except IEEE802.15.4e)
In the source code, you will find a folder structure which mimics the layers at openwsn.
Dependencies
The reference code for the IEEE802.15.4e is at IEEE802154E.c. It calls functions from the different modules. These are implemented in OpenWSN. You're free to either reuse them, or implement them in your stack/OS. Most likely, you'll already have very similar functionality.
...
For a detailed description of this module, look at:
openqueue
This module manages a pool of OpenQueueEntry_t
buffers. It implements the following functions IEEE802.15.4e calls:
...
For a detailed description of this module, look at:
idmanager
This module keeps track of the mote's addresses. It implements the following functions IEEE802.15.4e calls:
...
For a detailed description of this module, look at:
openserial
This module is used to print messages through the serial port. It implements the following functions IEEE802.15.4e calls:
...
For a detailed description of this module, look at:
schedule
This module stores the IEEE802.15.4e schedule. It implements the following functions IEEE802.15.4e calls:
...
For a detailed description of this module, look at:
sixtop
This module manages the IEEE802.15.4e schedule and serves as a pass-through between IEEE802.15.4e and the upper layer. It implements the following functions IEEE802.15.4e calls:
...
For a detailed description of this module, look at:
leds
This module drives the LEDs of the board. It implements the following functions IEEE802.15.4e calls:
...
For a detailed description of this module, look at: