StateBasedEpEnergyConsumer

Package: inet.physicallayer.wireless.common.energyconsumer

StateBasedEpEnergyConsumer

simple module

C++ definition

Provides a radio power consumer model. The power consumption is determined by the radio mode, the transmitter state, and the receiver state using constant parameters.

Inheritance diagram

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.

Known subclasses

Name Type Description
Ieee80211StateBasedEpEnergyConsumer simple module

Provides a radio power consumer model for IEEE 802.11 radios. Default values are roughly based on CC3220 transceiver. The power consumption is determined by the radio mode, the transmitter state, and the receiver state using constant parameters.

SensorStateBasedEpEnergyConsumer simple module

This energy consumption module extends ~StateBasedEpEnergyConsumer and provides default values suitable for use in low-power wireless sensor nodes. Values are roughly based on the datasheet for the CC2500 RF transceiver. Used for accurate battery life simulation in wireless sensor networks.

Extends

Name Type Description
SimpleModule simple module

Base module for all INET simple modules.

Parameters

Name Type Default value Description
displayStringTextFormat string ""

Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information

energySourceModule string
offPowerConsumption double 0mW
sleepPowerConsumption double 1mW
switchingPowerConsumption double 1mW
receiverIdlePowerConsumption double 2mW
receiverBusyPowerConsumption double 5mW
receiverReceivingPowerConsumption double 10mW
receiverReceivingPreamblePowerConsumption double receiverReceivingPowerConsumption
receiverReceivingHeaderPowerConsumption double receiverReceivingPowerConsumption
receiverReceivingDataPowerConsumption double receiverReceivingPowerConsumption
transmitterIdlePowerConsumption double 2mW
transmitterTransmittingPowerConsumption double 100mW
transmitterTransmittingPreamblePowerConsumption double transmitterTransmittingPowerConsumption
transmitterTransmittingHeaderPowerConsumption double transmitterTransmittingPowerConsumption
transmitterTransmittingDataPowerConsumption double transmitterTransmittingPowerConsumption

Properties

Name Value Description
class StateBasedEpEnergyConsumer
display i=block/cogwheel

Signals

Name Type Unit Description
powerConsumptionChanged double

Statistics

Name Title Source Record Unit Interpolation Mode Description
powerConsumption Power consumption powerConsumptionChanged vector W sample-hold

Source code

//
// Provides a radio power consumer model. The power consumption is
// determined by the radio mode, the transmitter state, and the receiver state
// using constant parameters.
//
simple StateBasedEpEnergyConsumer extends SimpleModule like IEpEnergyConsumer
{
    parameters:
        @class(StateBasedEpEnergyConsumer);
        string energySourceModule;
        double offPowerConsumption @unit(W) = default(0mW);
        double sleepPowerConsumption @unit(W) = default(1mW);
        double switchingPowerConsumption @unit(W) = default(1mW);
        double receiverIdlePowerConsumption @unit(W) = default(2mW);
        double receiverBusyPowerConsumption @unit(W) = default(5mW);
        double receiverReceivingPowerConsumption @unit(W) = default(10mW);
        double receiverReceivingPreamblePowerConsumption @unit(W) = default(receiverReceivingPowerConsumption);
        double receiverReceivingHeaderPowerConsumption @unit(W) = default(receiverReceivingPowerConsumption);
        double receiverReceivingDataPowerConsumption @unit(W) = default(receiverReceivingPowerConsumption);
        double transmitterIdlePowerConsumption @unit(W) = default(2mW);
        double transmitterTransmittingPowerConsumption @unit(W) = default(100mW);
        double transmitterTransmittingPreamblePowerConsumption @unit(W) = default(transmitterTransmittingPowerConsumption);
        double transmitterTransmittingHeaderPowerConsumption @unit(W) = default(transmitterTransmittingPowerConsumption);
        double transmitterTransmittingDataPowerConsumption @unit(W) = default(transmitterTransmittingPowerConsumption);
        @display("i=block/cogwheel");
        @class(StateBasedEpEnergyConsumer);
        @signal[powerConsumptionChanged](type=double);
        @statistic[powerConsumption](title="Power consumption"; source=powerConsumptionChanged; record=vector; interpolationmode=sample-hold; unit=W);
}

File: src/inet/physicallayer/wireless/common/energyconsumer/StateBasedEpEnergyConsumer.ned