38#ifndef UWPOLLING_HDR_AUV_H
39#define UWPOLLING_HDR_AUV_H
56#define UWPOLLING_AUV_DROP_REASON_ERROR "DERR"
57#define UWPOLLING_AUV_DROP_REASON_UNKNOWN_TYPE \
59#define UWPOLLING_AUV_DROP_REASON_WRONG_RECEIVER \
61#define UWPOLLING_AUV_DROP_REASON_WRONG_STATE \
63#define UWPOLLING_AUV_DROP_REASON_BUFFER_FULL "ADBF"
65#define ENTRY_MAX_SIZE 256
217 virtual int command(
int argc,
const char *
const *argv);
487 virtual void expire(Event *e);
520 virtual void expire(Event *e);
547 virtual void expire(Event *e);
574 virtual void expire(Event *e);
593 double x,
double x1,
double x2,
double y1,
double y2);
926 inline unsigned long int
929 unsigned long int timestamp =
930 (
unsigned long int) (std::chrono::duration_cast<
931 std::chrono::milliseconds>(
932 std::chrono::system_clock::now().time_since_epoch())
1070 static std::map<UWPOLLING_PKT_TYPE, std::string>
1073 static std::map<UWPOLLING_AUV_STATUS, std::string>
1076 static std::map<UWPOLLING_AUV_REASON, std::string>
Definition uwpolling_AUV.h:551
virtual void expire(Event *e)
Definition uwpolling_AUV.cpp:378
AckTimer(Uwpolling_AUV *m)
Definition uwpolling_AUV.h:556
virtual ~AckTimer()
Definition uwpolling_AUV.h:565
Definition uwpolling_AUV.h:464
virtual void expire(Event *e)
Definition uwpolling_AUV.cpp:356
DataTimer(Uwpolling_AUV *m)
Definition uwpolling_AUV.h:470
virtual ~DataTimer()
Definition uwpolling_AUV.h:478
Definition uwpolling_AUV.h:524
PollTimer(Uwpolling_AUV *m)
Definition uwpolling_AUV.h:529
virtual ~PollTimer()
Definition uwpolling_AUV.h:538
virtual void expire(Event *e)
Definition uwpolling_AUV.cpp:388
Definition uwpolling_AUV.h:497
ProbeTimer(Uwpolling_AUV *m)
Definition uwpolling_AUV.h:502
virtual void expire(Event *e)
Definition uwpolling_AUV.cpp:369
virtual ~ProbeTimer()
Definition uwpolling_AUV.h:511
Definition uwpolling_AUV.h:280
virtual ~Uwpolling_AUV_Timer()
Definition uwpolling_AUV.h:300
Uwpolling_AUV_Timer(Uwpolling_AUV *m)
Definition uwpolling_AUV.h:286
virtual void freeze()
Definition uwpolling_AUV.h:308
Uwpolling_AUV *UWPOLLING_TIMER_STATUS timer_status
Definition uwpolling_AUV.h:451
bool isExpired()
Definition uwpolling_AUV.h:381
int counter
Definition uwpolling_AUV.h:448
bool isActive()
Definition uwpolling_AUV.h:401
void resetCounter()
Definition uwpolling_AUV.h:411
virtual void schedule(double val)
Definition uwpolling_AUV.h:348
int getCounter()
Definition uwpolling_AUV.h:430
double getDuration()
Definition uwpolling_AUV.h:440
virtual void stop()
Definition uwpolling_AUV.h:337
bool isRunning()
Definition uwpolling_AUV.h:371
double start_time
Definition uwpolling_AUV.h:446
bool isIdle()
Definition uwpolling_AUV.h:361
bool isFrozen()
Definition uwpolling_AUV.h:391
double left_duration
Definition uwpolling_AUV.h:447
virtual void unFreeze()
Definition uwpolling_AUV.h:324
void incrCounter()
Definition uwpolling_AUV.h:420
Definition uwpolling_AUV.h:196
std::deque< Packet * > tx_buffer
Definition uwpolling_AUV.h:1140
virtual void initInfo()
Definition uwpolling_AUV.cpp:1000
virtual void Phy2MacStartRx(const Packet *p)
Definition uwpolling_AUV.cpp:560
PollTimer poll_timer
Definition uwpolling_AUV.h:1024
virtual void refreshState(UWPOLLING_AUV_STATUS state)
Definition uwpolling_AUV.h:804
Packet * curr_data_packet
Definition uwpolling_AUV.h:1036
int n_dropped_ack_pkts
Definition uwpolling_AUV.h:1130
virtual void ChangeNodePolled()
Definition uwpolling_AUV.cpp:800
Packet * curr_tx_data_packet
Definition uwpolling_AUV.h:1038
Packet * curr_probe_packet
Definition uwpolling_AUV.h:1037
probbed_node probbed_sink
Definition uwpolling_AUV.h:1030
void incrPollTx()
Definition uwpolling_AUV.h:700
virtual uint16_t getPollTime()
Definition uwpolling_AUV.cpp:1377
int N_dropped_probe_pkts
Definition uwpolling_AUV.h:1128
int full_knowledge
Definition uwpolling_AUV.h:1170
void incrTriggerTx()
Definition uwpolling_AUV.h:627
std::vector< probbed_node > list_probbed_node
Definition uwpolling_AUV.h:1028
bool sink_inserted
Definition uwpolling_AUV.h:1032
virtual void handleNoAck()
Definition uwpolling_AUV.cpp:1283
double Ttrigger
Definition uwpolling_AUV.h:1123
virtual void Mac2PhyStartTx(Packet *p)
Definition uwpolling_AUV.cpp:430
int modem_data_bit_rate
Definition uwpolling_AUV.h:1057
UWPOLLING_AUV_STATUS prev_state
Definition uwpolling_AUV.h:1065
virtual void TxTrigger()
Definition uwpolling_AUV.cpp:468
uint n_tx_pkts
Definition uwpolling_AUV.h:1151
virtual void stop_count_time()
Definition uwpolling_AUV.cpp:1054
std::string backoff_LUT_file
Definition uwpolling_AUV.h:1165
virtual void stateIdle()
Definition uwpolling_AUV.cpp:985
virtual void waitForUser()
Definition uwpolling_AUV.cpp:1046
uint POLL_uid
Definition uwpolling_AUV.h:1126
uint TRIGGER_uid
Definition uwpolling_AUV.h:1125
double Tdata
Definition uwpolling_AUV.h:1121
static std::map< UWPOLLING_AUV_REASON, std::string > reason_info
Definition uwpolling_AUV.h:1077
UWPOLLING_AUV_REASON
Definition uwpolling_AUV.h:247
@ UWPOLLING_AUV_REASON_PACKET_ERROR
Definition uwpolling_AUV.h:253
@ UWPOLLING_AUV_REASON_RX_DATA_TO
Definition uwpolling_AUV.h:252
@ UWPOLLING_AUV_REASON_PROBE_TO_EXPIRED
Definition uwpolling_AUV.h:257
@ UWPOLLING_AUV_REASON_PROBE_RECEIVED
Definition uwpolling_AUV.h:251
@ UWPOLLING_AUV_REASON_TX_POLL
Definition uwpolling_AUV.h:250
@ UWPOLLING_AUV_REASON_MAX_PROBE_RECEIVED
Definition uwpolling_AUV.h:255
@ UWPOLLING_AUV_REASON_LAST_POLLED_NODE
Definition uwpolling_AUV.h:256
@ UWPOLLING_AUV_REASON_LAST_PACKET_RECEIVED
Definition uwpolling_AUV.h:254
@ UWPOLLING_AUV_REASON_DATA_RX
Definition uwpolling_AUV.h:248
@ UWPOLLING_AUV_REASON_TX_TRIGGER
Definition uwpolling_AUV.h:249
virtual void SortNode2Poll()
Definition uwpolling_AUV.cpp:955
uint n_probe_rx
Definition uwpolling_AUV.h:1112
virtual void stateRxProbe()
Definition uwpolling_AUV.cpp:819
double curr_Tmeasured
Definition uwpolling_AUV.h:1102
AckTimer ack_timer
Definition uwpolling_AUV.h:1025
int last_probe_lost
Definition uwpolling_AUV.h:1172
int sea_trial_
Definition uwpolling_AUV.h:1054
virtual void DataTOExpired()
Definition uwpolling_AUV.cpp:398
static bool initialized
Definition uwpolling_AUV.h:1080
double T_probe
Definition uwpolling_AUV.h:1042
virtual double linearInterpolator(double x, double x1, double x2, double y1, double y2)
Definition uwpolling_AUV.cpp:338
double total_time
Definition uwpolling_AUV.h:1119
Packet * curr_ack_packet
Definition uwpolling_AUV.h:1039
UWPOLLING_AUV_REASON reason
Definition uwpolling_AUV.h:1066
int getDroppedProbeWrongState()
Definition uwpolling_AUV.h:784
void incrDroppedAckPkts()
Definition uwpolling_AUV.h:679
virtual void UpdateRTT()
Definition uwpolling_AUV.cpp:723
int getProbeRx()
Definition uwpolling_AUV.h:720
int getWrongNodeDataSent()
Definition uwpolling_AUV.h:741
int DATA_POLL_guard_time_
Definition uwpolling_AUV.h:1058
uint max_buffer_size
Definition uwpolling_AUV.h:1143
double T_guard
Definition uwpolling_AUV.h:1051
int getPollSent()
Definition uwpolling_AUV.h:751
uint16_t uid_tx_pkt
Definition uwpolling_AUV.h:1144
uint curr_node_id
Definition uwpolling_AUV.h:1096
uint n_pkts_to_tx
Definition uwpolling_AUV.h:1149
virtual void computeTxTime(UWPOLLING_PKT_TYPE pkt)
Definition uwpolling_AUV.cpp:684
virtual void Phy2MacEndRx(Packet *p)
Definition uwpolling_AUV.cpp:579
virtual void stateTxData()
Definition uwpolling_AUV.cpp:1189
int max_polled_node
Definition uwpolling_AUV.h:1052
int ack_enabled
Definition uwpolling_AUV.h:1158
bool curr_is_sink
Definition uwpolling_AUV.h:1146
virtual void ackTOExpired()
Definition uwpolling_AUV.cpp:422
void incrDroppedProbePkts()
Definition uwpolling_AUV.h:669
bool RxProbeEnabled
Definition uwpolling_AUV.h:1085
double probe_rtt
Definition uwpolling_AUV.h:1105
double Tpoll
Definition uwpolling_AUV.h:1124
double T_max
Definition uwpolling_AUV.h:1049
bool enableAckRx
Definition uwpolling_AUV.h:1155
int getTriggerTx()
Definition uwpolling_AUV.h:710
static std::map< UWPOLLING_PKT_TYPE, std::string > pkt_type_info
Definition uwpolling_AUV.h:1071
double T_min
Definition uwpolling_AUV.h:1047
ProbeTimer probe_timer
Definition uwpolling_AUV.h:1023
virtual void refreshReason(UWPOLLING_AUV_REASON reason)
Definition uwpolling_AUV.h:794
std::map< int, uint > rx_pkts_map
Definition uwpolling_AUV.h:1161
int print_stats_
Definition uwpolling_AUV.h:1056
void incrWrongNodeDataSent()
Definition uwpolling_AUV.h:659
std::ofstream fout
Definition uwpolling_AUV.h:1134
static std::map< UWPOLLING_AUV_STATUS, std::string > status_info
Definition uwpolling_AUV.h:1074
probe_cicle_counters probe_counters
Definition uwpolling_AUV.h:1168
virtual void handleAck()
Definition uwpolling_AUV.cpp:1246
UWPOLLING_PKT_TYPE
Definition uwpolling_AUV.h:261
@ UWPOLLING_DATA_PKT
Definition uwpolling_AUV.h:262
@ UWPOLLING_TRIGGER_PKT
Definition uwpolling_AUV.h:264
@ UWPOLLING_POLL_PKT
Definition uwpolling_AUV.h:263
@ UWPOLLING_PROBE_PKT
Definition uwpolling_AUV.h:265
virtual void addNode2List()
Definition uwpolling_AUV.cpp:1332
virtual void stateWaitData()
Definition uwpolling_AUV.cpp:524
virtual void stateTxPoll()
Definition uwpolling_AUV.cpp:895
virtual void stateWaitAck()
Definition uwpolling_AUV.cpp:1217
void incrAckRx()
Definition uwpolling_AUV.h:647
UWPOLLING_AUV_REASON last_reason
Definition uwpolling_AUV.h:1066
void incrDroppedProbeWrongState()
Definition uwpolling_AUV.h:691
int n_trigger_tx
Definition uwpolling_AUV.h:1111
virtual void stateTxTrigger()
Definition uwpolling_AUV.cpp:436
virtual void handleProbeAck()
Definition uwpolling_AUV.cpp:1297
int N_dropped_probe_wrong_state
Definition uwpolling_AUV.h:1131
int getDroppedProbePkts()
Definition uwpolling_AUV.h:761
virtual uint getRxPkts(int mac_addr)
Definition uwpolling_AUV.cpp:1403
double pkt_time
Definition uwpolling_AUV.h:1118
Packet * curr_trigger_packet
Definition uwpolling_AUV.h:1034
bool RxDataEnabled
Definition uwpolling_AUV.h:1083
virtual void stateAckRx()
Definition uwpolling_AUV.cpp:1228
void incrProbeRx()
Definition uwpolling_AUV.h:637
uint16_t last_pkt_uid
Definition uwpolling_AUV.h:1153
DataTimer data_timer
Definition uwpolling_AUV.h:1022
virtual void recvFromUpperLayers(Packet *p)
Definition uwpolling_AUV.cpp:1061
double stop_time
Definition uwpolling_AUV.h:1116
UWPOLLING_TIMER_STATUS
Definition uwpolling_AUV.h:269
@ UWPOLLING_IDLE
Definition uwpolling_AUV.h:270
@ UWPOLLING_FROZEN
Definition uwpolling_AUV.h:272
@ UWPOLLING_RUNNING
Definition uwpolling_AUV.h:271
@ UWPOLLING_EXPIRED
Definition uwpolling_AUV.h:273
uint max_tx_pkts
Definition uwpolling_AUV.h:1147
double distance
Definition uwpolling_AUV.h:1089
double T_probe_guard
Definition uwpolling_AUV.h:1043
int getAckRx()
Definition uwpolling_AUV.h:730
std::ofstream out_file_stats
Definition uwpolling_AUV.h:1137
virtual void addSink2List()
Definition uwpolling_AUV.cpp:1362
UWPOLLING_AUV_STATUS curr_state
Definition uwpolling_AUV.h:1064
int max_payload
Definition uwpolling_AUV.h:1046
std::deque< Packet * > temp_buffer
Definition uwpolling_AUV.h:1141
double Tprobe
Definition uwpolling_AUV.h:1122
int N_expected_pkt
Definition uwpolling_AUV.h:1090
double initial_time
Definition uwpolling_AUV.h:1109
virtual void TxPoll()
Definition uwpolling_AUV.cpp:944
virtual void stateWaitProbe()
Definition uwpolling_AUV.cpp:508
std::map< double, double > backoff_LUT
Definition uwpolling_AUV.h:1167
int packet_index
Definition uwpolling_AUV.h:1092
virtual ~Uwpolling_AUV()
Definition uwpolling_AUV.cpp:76
virtual void ProbeTOExpired()
Definition uwpolling_AUV.cpp:406
double T_ack_timer
Definition uwpolling_AUV.h:1045
double GetTotalReceivingTime()
Definition uwpolling_AUV.h:913
virtual double GetDataTimerValue()
Definition uwpolling_AUV.cpp:538
virtual void Phy2MacEndTx(const Packet *p)
Definition uwpolling_AUV.cpp:479
bool initBackoffLUT()
Definition uwpolling_AUV.cpp:247
bool acked
Definition uwpolling_AUV.h:1156
virtual void txData()
Definition uwpolling_AUV.cpp:1207
int n_poll_tx
Definition uwpolling_AUV.h:1114
int curr_polled_node_address
Definition uwpolling_AUV.h:1094
UWPOLLING_AUV_STATUS
Definition uwpolling_AUV.h:233
@ UWPOLLING_AUV_STATUS_RX_DATA
Definition uwpolling_AUV.h:237
@ UWPOLLING_AUV_STATUS_TX_DATA
Definition uwpolling_AUV.h:240
@ UWPOLLING_AUV_STATUS_IDLE
Definition uwpolling_AUV.h:234
@ UWPOLLING_AUV_STATUS_WAIT_ACK
Definition uwpolling_AUV.h:243
@ UWPOLLING_AUV_STATUS_TX_TRIGGER
Definition uwpolling_AUV.h:235
@ UWPOLLING_AUV_STATUS_RX_PROBES
Definition uwpolling_AUV.h:236
@ UWPOLLING_AUV_STATUS_TX_POLL
Definition uwpolling_AUV.h:239
@ UWPOLLING_AUV_STATUS_WAIT_DATA
Definition uwpolling_AUV.h:242
@ UWPOLLING_AUV_STATUS_RX_ACK
Definition uwpolling_AUV.h:238
@ UWPOLLING_AUV_STATUS_WAIT_PROBE
Definition uwpolling_AUV.h:241
Uwpolling_AUV()
Definition uwpolling_AUV.cpp:89
virtual int crLayCommand(ClMessage *m)
Definition uwpolling_AUV.cpp:347
int wrong_node_data_sent
Definition uwpolling_AUV.h:1107
unsigned long int getEpoch()
Definition uwpolling_AUV.h:927
int polling_index
Definition uwpolling_AUV.h:1031
bool TxEnabled
Definition uwpolling_AUV.h:1087
int getDroppedAckPkts()
Definition uwpolling_AUV.h:771
int n_ack_rx
Definition uwpolling_AUV.h:1113
virtual void stateTx()
Definition uwpolling_AUV.cpp:1095
bool enable_adaptive_backoff
Definition uwpolling_AUV.h:1163
char lut_token_separator
Definition uwpolling_AUV.h:1166
bool begin
Definition uwpolling_AUV.h:1115
virtual void stateRxData()
Definition uwpolling_AUV.cpp:732
Packet * curr_poll_packet
Definition uwpolling_AUV.h:1035
int n_run
Definition uwpolling_AUV.h:1061
virtual int command(int argc, const char *const *argv)
Definition uwpolling_AUV.cpp:185
double curr_RTT
Definition uwpolling_AUV.h:1101
double getMaxBackoffTime()
Definition uwpolling_AUV.cpp:271
Definition uwpolling_AUV.h:108
uint16_t & get_id_ack()
Definition uwpolling_AUV.h:176
bool & is_sink()
Definition uwpolling_AUV.h:167
int n_pkts
Definition uwpolling_AUV.h:110
double time_stamp
Definition uwpolling_AUV.h:113
double & get_time_stamp()
Definition uwpolling_AUV.h:131
uint id_node
Definition uwpolling_AUV.h:109
int & get_n_pkts()
Definition uwpolling_AUV.h:149
double Tmeasured
Definition uwpolling_AUV.h:117
uint & get_id_node()
Definition uwpolling_AUV.h:140
double & get_weight()
Definition uwpolling_AUV.h:185
bool is_sink_
Definition uwpolling_AUV.h:119
uint16_t id_ack
Definition uwpolling_AUV.h:121
int & get_mac_address()
Definition uwpolling_AUV.h:158
double policy_weight
Definition uwpolling_AUV.h:124
int mac_address
Definition uwpolling_AUV.h:112
Definition uwpolling_AUV.h:71
uint n_probe_received
Definition uwpolling_AUV.h:74
uint n_probe_detected
Definition uwpolling_AUV.h:72
void incrementCounters()
Definition uwpolling_AUV.h:80
void resetCounters()
Definition uwpolling_AUV.h:89
uint getNumberOfNeighbors()
Definition uwpolling_AUV.h:98
std::pair< int, int > counter
Definition uwinterference.h:53
struct probbed_node probbed_node
Common structures and variables in the protocol.
Provides the definition of the class UWSMPosition.