DESERT 3.5.1
Loading...
Searching...
No Matches
UwRangingTDOA Class Reference

#include <uwranging_tdoa.h>

Inheritance diagram for UwRangingTDOA:
Collaboration diagram for UwRangingTDOA:

Public Member Functions

 UwRangingTDOA ()
 
virtual ~UwRangingTDOA ()=default
 
virtual void recv (Packet *) override
 
virtual void recv (Packet *p, Handler *h) override
 
virtual int recvSyncClMsg (ClMessage *m) override
 
virtual int command (int argc, const char *const *argv) override
 
virtual void start ()
 
virtual void stop ()
 

Protected Member Functions

virtual bool isValid (double value) const
 
virtual bool isValid (const tdoa_entry &entry) const
 
virtual void rangeTX ()
 
virtual void rangeRX (const Packet *p)
 
virtual void updateHoldoverTime (Packet *p, double tx_duration)
 
virtual int calcOptEntries (std::vector< int > *sorted_entries=nullptr) const
 
virtual double entryWeight (int entry, int pkt_size, int mode) const
 
virtual void throttleTX ()
 

Protected Attributes

bool scheduler_active
 
int debug_tdoa
 
int node_id
 
int packet_id
 
int n_nodes
 
int dist_num
 
int range_entries
 
int poisson_traffic
 
int range_pkts_sent
 
int range_bytes_sent
 
int range_pkts_recv
 
int range_pkts_err
 
int saved_entries
 
int phy_id
 
int queue_size
 
UwRangeTimer send_timer
 
double mac2phy_delay
 
double max_tt
 
double max_age
 
double range_period
 
double delay_start
 
double full_pkt_tx_dur
 
double soundspeed
 
std::vector< std::vector< int > > tof_map
 
std::vector< std::vector< std::vector< tdoa_entry > > > entries_mat
 
std::vector< std::vector< double > > times_mat
 
std::vector< int > last_ids
 
std::vector< double > time_of_flights
 
std::vector< double > entries_timestamps
 
std::vector< double > entry_last_tx
 
std::vector< uwrange_time_ttx_timestamp
 
std::vector< double > ber
 
const size_t PKTIDMAX = std::numeric_limits<uwrange_pkt_t>::max()
 

Friends

class UwRangeTimer
 

Detailed Description

Class that represents a UwRangingTDOA Node.

Definition at line 69 of file uwranging_tdoa.h.

Constructor & Destructor Documentation

◆ UwRangingTDOA()

UwRangingTDOA::UwRangingTDOA ( )

Constructor of the UwRangingTDOA class.

Definition at line 93 of file uwranging_tdoa.cpp.

◆ ~UwRangingTDOA()

virtual UwRangingTDOA::~UwRangingTDOA ( )
virtualdefault

Destructor of the UwRangingTDOA class.

Member Function Documentation

◆ calcOptEntries()

int UwRangingTDOA::calcOptEntries ( std::vector< int > *  sorted_entries = nullptr) const
protectedvirtual

Compute the optimal number of entries for the ranging message.

Parameters
std::vector<int>Vector of entries to sort.
Returns
int Number of optimal entries.

Definition at line 300 of file uwranging_tdoa.cpp.

◆ command()

int UwRangingTDOA::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
Returns
TCL_OK or TCL_ERROR

Definition at line 615 of file uwranging_tdoa.cpp.

◆ entryWeight()

double UwRangingTDOA::entryWeight ( int  entry,
int  pkt_size,
int  mode 
) const
protectedvirtual

Compute the weight of the entry given the packet size in bits.

Parameters
intn-th entries.
intsize of the n-th entries in bit
intmode to use to compute the optimal number of entries

Definition at line 264 of file uwranging_tdoa.cpp.

◆ isValid() [1/2]

bool UwRangingTDOA::isValid ( const tdoa_entry entry) const
protectedvirtual

Check if all elements of a tdoa entry are not negative.

Parameters
tdoa_entryEntry to check.
Returns
true if valid, false otherwise

Definition at line 609 of file uwranging_tdoa.cpp.

◆ isValid() [2/2]

bool UwRangingTDOA::isValid ( double  value) const
protectedvirtual

Check if value is not negative.

Parameters
doubleValue to check.
Returns
true if valid, false otherwise

Definition at line 603 of file uwranging_tdoa.cpp.

◆ rangeRX()

void UwRangingTDOA::rangeRX ( const Packet *  p)
protectedvirtual

Definition at line 503 of file uwranging_tdoa.cpp.

◆ rangeTX()

void UwRangingTDOA::rangeTX ( )
protectedvirtual

Send a ranging message down to the MAC layer.

Definition at line 373 of file uwranging_tdoa.cpp.

◆ recv() [1/2]

void UwRangingTDOA::recv ( Packet *  p)
overridevirtual

Performs the reception of packets from upper and lower layers.

Parameters
Packet*Pointer to the packet will be received.

Definition at line 166 of file uwranging_tdoa.cpp.

◆ recv() [2/2]

void UwRangingTDOA::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.

Definition at line 181 of file uwranging_tdoa.cpp.

◆ recvSyncClMsg()

int UwRangingTDOA::recvSyncClMsg ( ClMessage *  m)
overridevirtual

Retrieve packets from other modules.

Parameters
mClMessage

Definition at line 187 of file uwranging_tdoa.cpp.

◆ start()

void UwRangingTDOA::start ( )
virtual

Start to send packets.

Definition at line 698 of file uwranging_tdoa.cpp.

◆ stop()

void UwRangingTDOA::stop ( )
virtual

Stop to send packets.

Definition at line 705 of file uwranging_tdoa.cpp.

◆ throttleTX()

void UwRangingTDOA::throttleTX ( )
protectedvirtual

Schedule the transmission of a rangig message.

Definition at line 712 of file uwranging_tdoa.cpp.

◆ updateHoldoverTime()

void UwRangingTDOA::updateHoldoverTime ( Packet *  p,
double  tx_duration 
)
protectedvirtual

Update the holdover time with the actual time of transmission.

Parameters
Packet*Pointer to the packet received.
doubleTransmission duration computed by the physical layer.

Definition at line 453 of file uwranging_tdoa.cpp.

Friends And Related Symbol Documentation

◆ UwRangeTimer

friend class UwRangeTimer
friend

Definition at line 72 of file uwranging_tdoa.h.

Member Data Documentation

◆ ber

std::vector<double> UwRangingTDOA::ber
protected

Definition at line 204 of file uwranging_tdoa.h.

◆ debug_tdoa

int UwRangingTDOA::debug_tdoa
protected

Definition at line 173 of file uwranging_tdoa.h.

◆ delay_start

double UwRangingTDOA::delay_start
protected

Starting delay in seconds.

Definition at line 192 of file uwranging_tdoa.h.

◆ dist_num

int UwRangingTDOA::dist_num
protected

Number of distances each node computes.

Definition at line 177 of file uwranging_tdoa.h.

◆ entries_mat

std::vector<std::vector<std::vector<tdoa_entry> > > UwRangingTDOA::entries_mat
protected

Definition at line 197 of file uwranging_tdoa.h.

◆ entries_timestamps

std::vector<double> UwRangingTDOA::entries_timestamps
protected

Definition at line 201 of file uwranging_tdoa.h.

◆ entry_last_tx

std::vector<double> UwRangingTDOA::entry_last_tx
protected

Vector of the last (actual) TX times of each entry.

Definition at line 202 of file uwranging_tdoa.h.

◆ full_pkt_tx_dur

double UwRangingTDOA::full_pkt_tx_dur
protected

TX duration for a full range packet.

Definition at line 193 of file uwranging_tdoa.h.

◆ last_ids

std::vector<int> UwRangingTDOA::last_ids
protected

Definition at line 199 of file uwranging_tdoa.h.

◆ mac2phy_delay

double UwRangingTDOA::mac2phy_delay
protected

Definition at line 188 of file uwranging_tdoa.h.

◆ max_age

double UwRangingTDOA::max_age
protected

Max age of a ranging packet in seconds.

Definition at line 190 of file uwranging_tdoa.h.

◆ max_tt

double UwRangingTDOA::max_tt
protected

Floating numbers within this value won't be discarded by NNLS.

Max travel time between nodes in seconds.

Definition at line 189 of file uwranging_tdoa.h.

◆ n_nodes

int UwRangingTDOA::n_nodes
protected

Number of nodes.

Definition at line 176 of file uwranging_tdoa.h.

◆ node_id

int UwRangingTDOA::node_id
protected

Id of the current node.

Definition at line 174 of file uwranging_tdoa.h.

◆ packet_id

int UwRangingTDOA::packet_id
protected

id of the last ranging packet sent (= node_id + k*n_nodes)

Definition at line 175 of file uwranging_tdoa.h.

◆ phy_id

int UwRangingTDOA::phy_id
protected

Id of the PHY module.

Definition at line 185 of file uwranging_tdoa.h.

◆ PKTIDMAX

const size_t UwRangingTDOA::PKTIDMAX = std::numeric_limits<uwrange_pkt_t>::max()
protected

Max number of ranging packets that can be saved.

Definition at line 206 of file uwranging_tdoa.h.

◆ poisson_traffic

int UwRangingTDOA::poisson_traffic
protected

If true the ranging packets are sent according to a poisson process with rate range_period.

Definition at line 179 of file uwranging_tdoa.h.

◆ queue_size

int UwRangingTDOA::queue_size
protected

Counts the packet sent to the MAC waiting to be transmitted.

Definition at line 186 of file uwranging_tdoa.h.

◆ range_bytes_sent

int UwRangingTDOA::range_bytes_sent
protected

Counter of sent ranging bytes.

Definition at line 181 of file uwranging_tdoa.h.

◆ range_entries

int UwRangingTDOA::range_entries
protected

Number of entries per ranging packet, if <= 0 enable adaptive payload size.

Definition at line 178 of file uwranging_tdoa.h.

◆ range_period

double UwRangingTDOA::range_period
protected

Ranging period in seconds.

Definition at line 191 of file uwranging_tdoa.h.

◆ range_pkts_err

int UwRangingTDOA::range_pkts_err
protected

Counter of lost ranging packets.

Definition at line 183 of file uwranging_tdoa.h.

◆ range_pkts_recv

int UwRangingTDOA::range_pkts_recv
protected

Counter of received ranging packets.

Definition at line 182 of file uwranging_tdoa.h.

◆ range_pkts_sent

int UwRangingTDOA::range_pkts_sent
protected

Counter of sent ranging packets.

Definition at line 180 of file uwranging_tdoa.h.

◆ saved_entries

int UwRangingTDOA::saved_entries
protected

Total number of entries not sent in the ranging packets.

Definition at line 184 of file uwranging_tdoa.h.

◆ scheduler_active

bool UwRangingTDOA::scheduler_active
protected

True if the ranging scheduler is been activated with Tcl "start" command.

Definition at line 172 of file uwranging_tdoa.h.

◆ send_timer

UwRangeTimer UwRangingTDOA::send_timer
protected

Timer that schedules ranging packet transmissions.

Definition at line 187 of file uwranging_tdoa.h.

◆ soundspeed

double UwRangingTDOA::soundspeed
protected

Speed of sound in m/s.

Definition at line 194 of file uwranging_tdoa.h.

◆ time_of_flights

std::vector<double> UwRangingTDOA::time_of_flights
protected

Definition at line 200 of file uwranging_tdoa.h.

◆ times_mat

std::vector<std::vector<double> > UwRangingTDOA::times_mat
protected

Definition at line 198 of file uwranging_tdoa.h.

◆ tof_map

std::vector<std::vector<int> > UwRangingTDOA::tof_map
protected

Definition at line 196 of file uwranging_tdoa.h.

◆ tx_timestamp

std::vector<uwrange_time_t> UwRangingTDOA::tx_timestamp
protected

Vector of the TX timestamp for each packet to be sent.

Definition at line 203 of file uwranging_tdoa.h.


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