Prototype for radio modules. Radio modules deal with the transmission of frames over a wireless medium (the radio medium).
Transmission
Upper layers (wireless L2 protocols) can send frames to the radio module. Frames will be encapsulated into RadioFrame messages and distributed to other network nodes within communication range.
The global IRadioMedium module keeps track of node positions, and knows which nodes are within communication and interference distance of others (neighbour cache). When transmitting, the radio module obtains the neighbour list, and sends a copy of the RadioFrame to each neighbour.
Reception
Received RadioFrame messages get delivered to the radioIn gate of the radio module. If it was found to have been received correctly, it gets decapsulated and the frame sent to the upper layer.
Note: currently the packet is also sent up if it was NOT received correctly, with its error flag set to true.
The following diagram shows usage relationships between types. Unresolved types are missing from the diagram.
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
Name | Type | Description |
---|---|---|
IPhysicalLayer | module interface |
This module interface provides an abstraction for the interface of different physical layers. |
Name | Type | Description |
---|---|---|
IdealWirelessNic | compound module |
Highly abstracted wireless NIC that consists of a unit disk radio and a trivial MAC protocol. It offers simplicity for scenarios where Layer 1 and 2 effects can be completely ignored, for example testing the basic functionality of a wireless ad-hoc routing protocol. |
Ieee80211Nic | compound module |
This NIC implements an 802.11 network interface card. It can be configured via the mgmtType parameter to act as an AP or a STA, or for ad-hoc mode. |
Ieee802154NarrowbandNic | compound module | (no description) |
Ieee802154UWBIRNic | compound module | (no description) |
WirelessNic | compound module | (no description) |
Name | Value | Description |
---|---|---|
display | i=block/fork |
Name | Type | Unit |
---|---|---|
receptionStateChanged | long | |
radioModeChanged | long | |
radioChannelChanged | long | |
transmissionStateChanged | long | |
listeningChanged |
// // Prototype for radio modules. Radio modules deal with the transmission of // frames over a wireless medium (the radio medium). // // <b>Transmission</b> // // Upper layers (wireless L2 protocols) can send frames to the radio module. // Frames will be encapsulated into RadioFrame messages and distributed to // other network nodes within communication range. // // The global ~IRadioMedium module keeps track of node positions, and knows // which nodes are within communication and interference distance of others // (neighbour cache). When transmitting, the radio module obtains the neighbour // list, and sends a copy of the RadioFrame to each neighbour. // // // <b>Reception</b> // // Received RadioFrame messages get delivered to the radioIn gate of the radio // module. If it was found to have been received correctly, it gets decapsulated // and the frame sent to the upper layer. // // Note: currently the packet is also sent up if it was NOT received correctly, // with its error flag set to true. // moduleinterface IRadio extends IPhysicalLayer { parameters: @display("i=block/wrxtx"); @signal[radioModeChanged](type=long); @signal[listeningChanged]; @signal[receptionStateChanged](type=long); @signal[transmissionStateChanged](type=long); @signal[radioChannelChanged](type=long); gates: input radioIn @labels(IRadioFrame); }