DESERT 4.0.0
UwROVCtrModule Class Reference

#include <uwrovctr-module.h>

Inheritance diagram for UwROVCtrModule:
Inheritance graph
Collaboration diagram for UwROVCtrModule:
Collaboration graph

Public Member Functions

 UwROVCtrModule ()
 
virtual ~UwROVCtrModule ()=default
 
virtual int command (int argc, const char *const *argv) override
 
virtual void initPkt (Packet *p) override
 
void reset_retx ()
 
virtual void recv (Packet *) override
 
virtual void recv (Packet *p, Handler *h) override
 
virtual void transmit () override
 
virtual void start () override
 
- Public Member Functions inherited from UwCbrModule
 UwCbrModule ()
 
virtual ~UwCbrModule ()=default
 
virtual double GetRTT () const
 
virtual double GetFTT () const
 
virtual double GetTxTime () const
 
virtual double GetPER () const
 
virtual double GetTHR () const
 
virtual double GetRTTstd () const
 
virtual double GetFTTstd () const
 
virtual void resetStats ()
 
void printIdsPkts () const
 

Static Public Member Functions

static int getROVMonHeaderSize ()
 
static int getROVCTRHeaderSize ()
 

Protected Attributes

int sn
 
int adaptiveRTO
 
double adaptiveRTO_parameter
 
float x_rov
 
float y_rov
 
float z_rov
 
float newX
 
float newY
 
float newZ
 
float speed
 
Position * posit
 
Packet * pkt
 
- Protected Attributes inherited from UwCbrModule
uint16_t dstPort_
 
std::string log_suffix
 
nsaddr_t dstAddr_
 
char priority_
 
std::ofstream tracefile
 
std::string tracefilename
 
bool * sn_check
 
int PoissonTraffic_
 
int debug_
 
int drop_out_of_order_
 
uint traffic_type_
 
UwSendTimer sendTmr_
 
int txsn
 
int hrsn
 
int pkts_recv
 
int pkts_ooseq
 
int pkts_lost
 
int pkts_invalid
 
int pkts_last_reset
 
int cnt
 
double rftt
 
double srtt
 
double sftt
 
double lrtime
 
double sthr
 
double period_
 
int pktSize_
 
double sumrtt
 
double sumrtt2
 
int rttsamples
 
double sumftt
 
double sumftt2
 
int fttsamples
 
double sumtxtimes = 0
 
double sumbytes
 
double sumdt
 
uint32_t esn
 
int tracefile_enabler_
 

Additional Inherited Members

- Protected Member Functions inherited from UwCbrModule
virtual void sendPkt ()
 
virtual void sendPktLowPriority ()
 
virtual void sendPktHighPriority ()
 
virtual void stop ()
 
virtual void updateRTT (const double &)
 
virtual void updateFTT (const double &)
 
virtual void updateThroughput (const int &, const double &)
 
virtual void incrPktLost (const int &)
 
virtual void incrPktRecv ()
 
virtual void incrPktOoseq ()
 
virtual void incrPktInvalid ()
 
virtual double getTimeBeforeNextPkt ()
 
virtual void printReceivedPacket (Packet *p)
 
- Static Protected Member Functions inherited from UwCbrModule
static int getCbrHeaderSize ()
 
- Static Protected Attributes inherited from UwCbrModule
static int uidcnt_ = 0
 

Detailed Description

UwROVCtrModule class is used to manage UWROVCtr packets and to collect statistics about them.

Constructor & Destructor Documentation

◆ UwROVCtrModule()

UwROVCtrModule::UwROVCtrModule ( )

Constructor of UwROVCtrModule class.

References adaptiveRTO, and adaptiveRTO_parameter.

◆ ~UwROVCtrModule()

virtual UwROVCtrModule::~UwROVCtrModule ( )
virtualdefault

Destructor of UwROVCtrModule class.

Member Function Documentation

◆ command()

int UwROVCtrModule::command ( int  argc,
const char *const *  argv 
)
overridevirtual

TCL command interpreter. It implements the following OTcl methods:

Parameters
argcNumber of arguments in argv.
argvArray of strings which are the command parameters (Note that argv[0] is the name of the object).
Returns
TCL_OK or TCL_ERROR whether the command has been dispatched successfully or not.

Reimplemented from UwCbrModule.

Reimplemented in UwSCROVCtrModule.

References adaptiveRTO_parameter, UwCbrModule::command(), getROVCTRHeaderSize(), getROVMonHeaderSize(), newX, newY, newZ, posit, reset_retx(), speed, and transmit().

Referenced by UwSCROVCtrModule::command().

Here is the call graph for this function:

◆ getROVCTRHeaderSize()

static int UwROVCtrModule::getROVCTRHeaderSize ( )
inlinestatic

Returns the size in byte of a hdr_uwROV_ctr packet header.

Returns
The size of a hdr_uwROV_monitoring packet header.

Referenced by command().

◆ getROVMonHeaderSize()

static int UwROVCtrModule::getROVMonHeaderSize ( )
inlinestatic

Returns the size in byte of a hdr_uwROV_monitoring packet header.

Returns
The size of a hdr_uwROV_monitoring packet header.

Referenced by command().

◆ initPkt()

void UwROVCtrModule::initPkt ( Packet *  p)
overridevirtual

Initializes a control data packet passed as argument with the default values.

Parameters
Packet*Pointer to a packet already allocated to fill with the right values.

Reimplemented from UwCbrModule.

References UwCbrModule::debug_, UwCbrModule::initPkt(), newX, newY, newZ, pkt, UwCbrModule::rttsamples, hdr_uwROV_ctr::sn(), sn, hdr_uwROV_ctr::speed(), speed, UwCbrModule::sumrtt, hdr_uwROV_ctr::x(), hdr_uwROV_ctr::y(), and hdr_uwROV_ctr::z().

Here is the call graph for this function:

◆ recv() [1/2]

void UwROVCtrModule::recv ( Packet *  p)
overridevirtual

Performs the reception of packets from upper and lower layers.

Parameters
Packet*Pointer to the packet will be received.

Reimplemented from UwCbrModule.

Reimplemented in UwSCROVCtrModule.

References hdr_uwROV_monitoring::ack(), UwCbrModule::debug_, pkt, UwCbrModule::recv(), UwCbrModule::sendTmr_, sn, hdr_uwROV_monitoring::x(), x_rov, hdr_uwROV_monitoring::y(), y_rov, hdr_uwROV_monitoring::z(), and z_rov.

Referenced by UwSCROVCtrModule::recv(), and recv().

Here is the call graph for this function:

◆ recv() [2/2]

void UwROVCtrModule::recv ( Packet *  p,
Handler *  h 
)
overridevirtual

Performs the reception of packets from upper and lower layers.

Parameters
Packet*Pointer to the packet will be received.
Handler*Handler.

Reimplemented from UwCbrModule.

References recv().

Here is the call graph for this function:

◆ reset_retx()

void UwROVCtrModule::reset_retx ( )
inline

Reset retransmissions

References pkt, and UwCbrModule::sendTmr_.

Referenced by command(), UwSCROVCtrModule::command(), and UwSCROVCtrModule::recvSyncClMsg().

◆ start()

void UwROVCtrModule::start ( )
overridevirtual

Start the controller.

Reimplemented from UwCbrModule.

◆ transmit()

void UwROVCtrModule::transmit ( )
overridevirtual

Member Data Documentation

◆ adaptiveRTO

int UwROVCtrModule::adaptiveRTO
protected

Sequence number of the last control packet sent. 1 if an adaptive RTO is used, 0 if a constant RTO is used.

Referenced by transmit(), and UwROVCtrModule().

◆ adaptiveRTO_parameter

double UwROVCtrModule::adaptiveRTO_parameter
protected

Parameter for the adaptive RTO.

Referenced by command(), transmit(), and UwROVCtrModule().

◆ newX

float UwROVCtrModule::newX
protected

X of the new position sent to the ROV.

Referenced by command(), UwSCROVCtrModule::command(), initPkt(), and UwSCROVCtrModule::recvSyncClMsg().

◆ newY

float UwROVCtrModule::newY
protected

Y of the new position sent to the ROV.

Referenced by command(), UwSCROVCtrModule::command(), initPkt(), and UwSCROVCtrModule::recvSyncClMsg().

◆ newZ

float UwROVCtrModule::newZ
protected

Z of the new position sent to the ROV.

Referenced by command(), UwSCROVCtrModule::command(), initPkt(), and UwSCROVCtrModule::recvSyncClMsg().

◆ pkt

Packet* UwROVCtrModule::pkt
protected

Referenced by initPkt(), recv(), and reset_retx().

◆ posit

Position* UwROVCtrModule::posit
protected

Controller position.

Referenced by command().

◆ sn

int UwROVCtrModule::sn
protected

Referenced by initPkt(), and recv().

◆ speed

float UwROVCtrModule::speed
protected

Moving speed sent to the ROV.

Referenced by command(), UwSCROVCtrModule::command(), and initPkt().

◆ x_rov

float UwROVCtrModule::x_rov
protected

X of the last ROV position monitored.

Referenced by recv(), and UwSCROVCtrModule::recvSyncClMsg().

◆ y_rov

float UwROVCtrModule::y_rov
protected

Y of the last ROV position monitored.

Referenced by recv(), and UwSCROVCtrModule::recvSyncClMsg().

◆ z_rov

float UwROVCtrModule::z_rov
protected

Z of the last ROV position monitored.

Referenced by recv(), and UwSCROVCtrModule::recvSyncClMsg().


The documentation for this class was generated from the following files: