DESERT 4.0.0
UwSCFTrackerModule Class Reference

#include <uwsc-tracker-follower-module.h>

Inheritance diagram for UwSCFTrackerModule:
Inheritance graph
Collaboration diagram for UwSCFTrackerModule:
Collaboration graph

Public Member Functions

 UwSCFTrackerModule ()
 
virtual ~UwSCFTrackerModule ()=default
 
virtual int command (int argc, const char *const *argv) override
 
virtual void initPkt (Packet *p) override
 
- Public Member Functions inherited from UwTrackerModule
 UwTrackerModule ()
 
 UwTrackerModule (UWSMPosition *p)
 
virtual ~UwTrackerModule ()
 
- Public Member Functions inherited from UwCbrModule
 UwCbrModule ()
 
virtual ~UwCbrModule ()=default
 
virtual void recv (Packet *) override
 
virtual void recv (Packet *p, Handler *h) override
 
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
 

Protected Types

enum class  FollowerState { TRACK , DETECT , DEMINE , IDLE }
 

Protected Member Functions

void sendPkt ()
 
void updateMineRemove ()
 
UWSMPositionupdateTrackPosition ()
 
virtual void start () override
 
virtual void stop () override
 
- Protected Member Functions inherited from UwTrackerModule
virtual void printReceivedPacket (Packet *p)
 
void sendPkt ()
 
void updateTrackMeasure ()
 
- Protected Member Functions inherited from UwCbrModule
virtual void sendPktLowPriority ()
 
virtual void sendPktHighPriority ()
 
virtual void transmit ()
 
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 ()
 

Protected Attributes

std::vector< UWSMPosition * > mine_positions
 
Position auv_position
 
FollowerState auv_state
 
double demine_period
 
hdr_uwSCFTracker mine_measure
 
UwUpdateMineStatus mine_timer
 
- Protected Attributes inherited from UwTrackerModule
UWSMPositiontrack_position
 
hdr_uwTracker track_measure
 
double max_tracking_distance
 
int send_only_active_trace
 
int track_my_position
 
double tracking_period
 
UwUpdateTrackMeasure measure_timer
 
- 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_
 

Friends

class UwUpdateMineStatus
 

Additional Inherited Members

- Static Protected Member Functions inherited from UwCbrModule
static int getCbrHeaderSize ()
 
- Static Protected Attributes inherited from UwCbrModule
static int uidcnt_ = 0
 

Detailed Description

UwSCFTrackerModule class is used to track mines via sonar and share tracking information via packets. After a given time a mine is detected, this module provides to remove it.

Member Enumeration Documentation

◆ FollowerState

enum class UwSCFTrackerModule::FollowerState
strongprotected

Followerstate list all the possible state of the follower.

Enumerator
TRACK 

Tracking mines.

DETECT 

Detecting a mine.

DEMINE 

Removed a mine.

IDLE 

Not tracking.

Constructor & Destructor Documentation

◆ UwSCFTrackerModule()

UwSCFTrackerModule::UwSCFTrackerModule ( )

Default Constructor of UwSCFTrackerModule class.

References demine_period.

◆ ~UwSCFTrackerModule()

virtual UwSCFTrackerModule::~UwSCFTrackerModule ( )
virtualdefault

Destructor of UwSCFTrackerModule class.

Member Function Documentation

◆ command()

int UwSCFTrackerModule::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 UwTrackerModule.

References UwTrackerModule::command(), mine_positions, and UwTrackerModule::track_position.

Here is the call graph for this function:

◆ initPkt()

void UwSCFTrackerModule::initPkt ( Packet *  p)
overridevirtual

Initializes a monitoring 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 UwTrackerModule.

References UwTrackerModule::initPkt(), mine_measure, UwTrackerModule::track_measure, hdr_uwSCFTracker::x(), hdr_uwTracker::x(), hdr_uwSCFTracker::y(), hdr_uwTracker::y(), hdr_uwSCFTracker::z(), and hdr_uwTracker::z().

Here is the call graph for this function:

◆ sendPkt()

void UwSCFTrackerModule::sendPkt ( )
protectedvirtual

Allocates, initialize and sends a packet with the default priority flag set from tcl.

Reimplemented from UwCbrModule.

References auv_state, DEMINE, DETECT, IDLE, mine_measure, mine_positions, hdr_uwSCFTracker::mine_remove(), mine_timer, UwTrackerModule::sendPkt(), UwTrackerModule::track_measure, UwTrackerModule::track_position, UwTrackerModule::tracking_period, hdr_uwTracker::x(), hdr_uwTracker::y(), and hdr_uwTracker::z().

Here is the call graph for this function:

◆ start()

void UwSCFTrackerModule::start ( )
overrideprotectedvirtual

Start to send packets.

Reimplemented from UwTrackerModule.

References auv_position, mine_timer, UWSMPosition::setX(), UwTrackerModule::start(), and UwTrackerModule::tracking_period.

Here is the call graph for this function:

◆ stop()

void UwSCFTrackerModule::stop ( )
overrideprotectedvirtual

Stop to send packets.

Reimplemented from UwTrackerModule.

References mine_timer, and UwTrackerModule::stop().

Here is the call graph for this function:

◆ updateMineRemove()

◆ updateTrackPosition()

UWSMPosition * UwSCFTrackerModule::updateTrackPosition ( )
protected

Update the current track position with the nearest mine position

Returns
UWSMPosition* Pointer to the nearest mine position

References auv_position, UwCbrModule::debug_, UWSMPosition::getX(), UWSMPosition::getY(), UWSMPosition::getZ(), mine_measure, mine_positions, hdr_uwSCFTracker::timestamp(), and UwTrackerModule::track_position.

Referenced by updateMineRemove().

Here is the call graph for this function:

Friends And Related Symbol Documentation

◆ UwUpdateMineStatus

friend class UwUpdateMineStatus
friend

Member Data Documentation

◆ auv_position

Position UwSCFTrackerModule::auv_position
protected

Current position of the follower.

Referenced by start(), updateMineRemove(), and updateTrackPosition().

◆ auv_state

FollowerState UwSCFTrackerModule::auv_state
protected

Current state of the follower.

Referenced by sendPkt(), and updateMineRemove().

◆ demine_period

double UwSCFTrackerModule::demine_period
protected

Timer to schedule packets transmission.

Referenced by updateMineRemove(), and UwSCFTrackerModule().

◆ mine_measure

hdr_uwSCFTracker UwSCFTrackerModule::mine_measure
protected

Detected mine packets.

Referenced by initPkt(), sendPkt(), updateMineRemove(), and updateTrackPosition().

◆ mine_positions

std::vector<UWSMPosition *> UwSCFTrackerModule::mine_positions
protected

Positions of the mines in the area.

Referenced by command(), sendPkt(), and updateTrackPosition().

◆ mine_timer

UwUpdateMineStatus UwSCFTrackerModule::mine_timer
protected

Timer to schedule detecting measurements

Referenced by sendPkt(), start(), stop(), and updateMineRemove().


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