StateBasedCcEnergyConsumer

Package: inet.physicallayer.wireless.common.energyconsumer

simple module StateBasedCcEnergyConsumer

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

inet.physicallayer.wireless.common.energyconsumer.StateBasedCcEnergyConsumerStateBasedCcEnergyConsumersimple

Inheritance diagram

Known subclasses

Name

Type

Description

SensorStateBasedCcEnergyConsumer

simple module

This current consumption module extends StateBasedCcEnergyConsumer 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.

Ieee80211StateBasedCcEnergyConsumer

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.

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

minSupplyVoltage

double

0V

maxSupplyVoltage

double

inf V

offCurrentConsumption

double

0mA

sleepCurrentConsumption

double

1mA

switchingCurrentConsumption

double

1mA

receiverIdleCurrentConsumption

double

2mA

receiverBusyCurrentConsumption

double

5mA

receiverReceivingCurrentConsumption

double

10mA

receiverReceivingPreambleCurrentConsumption

double

receiverReceivingCurrentConsumption

receiverReceivingHeaderCurrentConsumption

double

receiverReceivingCurrentConsumption

receiverReceivingDataCurrentConsumption

double

receiverReceivingCurrentConsumption

transmitterIdleCurrentConsumption

double

2mA

transmitterTransmittingCurrentConsumption

double

100mA

transmitterTransmittingPreambleCurrentConsumption

double

transmitterTransmittingCurrentConsumption

transmitterTransmittingHeaderCurrentConsumption

double

transmitterTransmittingCurrentConsumption

transmitterTransmittingDataCurrentConsumption

double

transmitterTransmittingCurrentConsumption

Properties

Name

Value

Description

class

StateBasedCcEnergyConsumer

display

i=block/cogwheel

Signals

Name

Type

Unit

Description

currentConsumptionChanged

double

Statistics

Name

Title

Source

Record

Unit

Interpolation Mode

Description

currentConsumption

Current consumption

currentConsumptionChanged

vector

A

sample-hold

Source code

//
// Provides a radio energy consumer model. The current consumption is
// determined by the radio mode, the transmitter state, and the receiver state
// using constant parameters.
//
simple StateBasedCcEnergyConsumer extends SimpleModule like ICcEnergyConsumer
{
    parameters:
        @class(StateBasedCcEnergyConsumer);
        string energySourceModule;
        double minSupplyVoltage @unit(V) = default(0V);
        double maxSupplyVoltage @unit(V) = default(inf V);
        double offCurrentConsumption @unit(A) = default(0mA);
        double sleepCurrentConsumption @unit(A) = default(1mA);
        double switchingCurrentConsumption @unit(A) = default(1mA);
        double receiverIdleCurrentConsumption @unit(A) = default(2mA);
        double receiverBusyCurrentConsumption @unit(A) = default(5mA);
        double receiverReceivingCurrentConsumption @unit(A) = default(10mA);
        double receiverReceivingPreambleCurrentConsumption @unit(A) = default(receiverReceivingCurrentConsumption);
        double receiverReceivingHeaderCurrentConsumption @unit(A) = default(receiverReceivingCurrentConsumption);
        double receiverReceivingDataCurrentConsumption @unit(A) = default(receiverReceivingCurrentConsumption);
        double transmitterIdleCurrentConsumption @unit(A) = default(2mA);
        double transmitterTransmittingCurrentConsumption @unit(A) = default(100mA);
        double transmitterTransmittingPreambleCurrentConsumption @unit(A) = default(transmitterTransmittingCurrentConsumption);
        double transmitterTransmittingHeaderCurrentConsumption @unit(A) = default(transmitterTransmittingCurrentConsumption);
        double transmitterTransmittingDataCurrentConsumption @unit(A) = default(transmitterTransmittingCurrentConsumption);
        @display("i=block/cogwheel");
        @class(StateBasedCcEnergyConsumer);
        @signal[currentConsumptionChanged](type=double);
        @statistic[currentConsumption](title="Current consumption"; source=currentConsumptionChanged; record=vector; interpolationmode=sample-hold; unit=A);
}

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