PacketTransmitterBase

Package: inet.protocolelement.transceiver.base

simple module PacketTransmitterBase

(no description)

inet.protocolelement.transceiver.base.PacketTransmitterBasePacketTransmitterBasesimple

Inheritance diagram

Known subclasses

Name

Type

Description

StreamingTransmitterBase

simple module

(no description)

PacketTransmitter

simple module

Receives packets from the upper layer as a whole. It also sends signals to the transmission medium (wire) as a whole.

Extends

Name

Type

Description

PacketProcessorBase

simple module

Base module for various packet processing modules which maintains a few statistics.

Parameters

Name

Type

Default value

Description

displayStringTextFormat

string

“processed {numProcessedPackets} pk ({processedTotalLength})”

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

clockModule

string

“”

Relative path of a module that implements IClock(1,:ref:2 <neddoc-msg-inet-iclock>); optional

datarate

double

Properties

Name

Value

Description

class

PacketTransmitterBase

display

i=block/wtx

Gates

Name

Direction

Size

Description

in

input

out

output

Signals

Name

Type

Unit

Description

transmissionEnded

inet::physicallayer::Signal

transmissionStarted

inet::physicallayer::Signal

Statistics

Name

Title

Source

Record

Unit

Interpolation Mode

Description

flowTransmissionTime

flow transmission time

packetDuration(demuxFlow(transmissionEnded))

vector,histogram

s

none

propagationTime

propagation time

s

throughput

throughput

throughput(transmissionEnded)

vector,histogram

bps

linear

transmissionTime

transmission time

packetDuration(transmissionEnded)

vector,histogram

s

none

transmitting

transmitting state

count(transmissionStarted) - count(transmissionEnded)

vector

sample-hold

utilization

utilization

100 * utilization(count(transmissionStarted) - count(transmissionEnded))

vector,histogram

%

linear

Source code

simple PacketTransmitterBase extends PacketProcessorBase
{
    parameters:
        string clockModule = default(""); // Relative path of a module that implements IClock; optional
        volatile double datarate @unit(bps);
        @class(PacketTransmitterBase);
        @display("i=block/wtx");
        @signal[transmissionStarted](type=inet::physicallayer::Signal);
        @signal[transmissionEnded](type=inet::physicallayer::Signal);
        @statistic[transmitting](title="transmitting state"; type=enum; enum=IDLE, TRANSMITTING; source=count(transmissionStarted) - count(transmissionEnded); record=vector; interpolationmode=sample-hold);
        @statistic[throughput](title="throughput"; unit=bps; source=throughput(transmissionEnded); record=vector,histogram; interpolationmode=linear);
        @statistic[utilization](title="utilization"; unit=%; source=100 * utilization(count(transmissionStarted) - count(transmissionEnded)); record=vector,histogram; interpolationmode=linear);
        @statistic[propagationTime](title="propagation time"; unit=s);
        @statistic[transmissionTime](title="transmission time"; unit=s; source=packetDuration(transmissionEnded); record=vector,histogram; interpolationmode=none);
        @statistic[flowTransmissionTime](title="flow transmission time"; unit=s; source=packetDuration(demuxFlow(transmissionEnded)); record=vector,histogram; interpolationmode=none);
    gates:
        input in;
        output out;
}

File: src/inet/protocolelement/transceiver/base/PacketTransmitterBase.ned