37#ifndef UWUFETCH_AUV_H_
38#define UWUFETCH_AUV_H_
51#define UWFETCH_AUV_DROP_REASON_ERROR \
53#define UWFETCH_AUV_DROP_REASON_UNKNOWN_TYPE \
55#define UWFETCH_AUV_DROP_REASON_WRONG_RECEIVER \
57#define UWFETCH_AUV_DROP_REASON_WRONG_STATE \
60#define UWFETCH_AUV_DROP_PHY_CAN_NOT_TX \
62#define UWFETCH_AUV_DROP_REASON_ALREADY_ONE_RTS_RX \
64#define UUFETCH_AUV_DROP_REASON_NOT_ENABLE \
67#define UWUFETCH_AUV_DROP_CAN_NOT_RX_THIS_PCK \
107 virtual int command(
int argc,
const char *
const *argv);
392 virtual void expire(Event *e);
428 virtual void expire(Event *e);
464 virtual void expire(Event *e);
504 virtual void expire(Event *e);
1138 static std::map<UWUFETCH_AUV_STATUS, std::string>
1141 static std::map<UWUFETCH_AUV_STATUS_CHANGE, std::string>
1144 static std::map<UWUFETCH_AUV_PACKET_TYPE, std::string>
1147 static std::map<UWUFETCH_TIMER_STATUS, std::string>
Definition uwUFetch_AUV.h:439
uwUFetch_DATA_timer(uwUFetch_AUV *m)
Definition uwUFetch_AUV.h:446
virtual ~uwUFetch_DATA_timer()
Definition uwUFetch_AUV.h:454
virtual void expire(Event *e)
Definition uwUFetch_AUV.cpp:2046
Definition uwUFetch_AUV.h:480
virtual void expire(Event *e)
Definition uwUFetch_AUV_mod_1.cpp:1823
uwUFetch_FIRST_DATA_timer(uwUFetch_AUV *m)
Definition uwUFetch_AUV.h:486
virtual ~uwUFetch_FIRST_DATA_timer()
Definition uwUFetch_AUV.h:494
Definition uwUFetch_AUV.h:403
uwUFetch_RTS_timer(uwUFetch_AUV *m)
Definition uwUFetch_AUV.h:410
virtual ~uwUFetch_RTS_timer()
Definition uwUFetch_AUV.h:418
virtual void expire(Event *e)
Definition uwUFetch_AUV.cpp:2033
Definition uwUFetch_AUV.h:367
virtual void expire(Event *e)
Definition uwUFetch_AUV.cpp:2020
virtual ~uwUFetch_TRIGGER_timer()
Definition uwUFetch_AUV.h:382
uwUFetch_TRIGGER_timer(uwUFetch_AUV *m)
Definition uwUFetch_AUV.h:374
Definition uwUFetch_AUV.h:177
virtual void stop()
Definition uwUFetch_AUV.h:235
void incrCounter()
Definition uwUFetch_AUV.h:323
void resetCounter()
Definition uwUFetch_AUV.h:314
double getDuration()
Definition uwUFetch_AUV.h:345
int counter
Definition uwUFetch_AUV.h:353
virtual void freeze()
Definition uwUFetch_AUV.h:203
uwUFetch_timer(uwUFetch_AUV *m)
Definition uwUFetch_AUV.h:183
double left_duration
Definition uwUFetch_AUV.h:352
virtual void schedule(double val)
Definition uwUFetch_AUV.h:247
bool isRunning()
Definition uwUFetch_AUV.h:272
bool isActive()
Definition uwUFetch_AUV.h:305
bool isFroozen()
Definition uwUFetch_AUV.h:283
virtual ~uwUFetch_timer()
Definition uwUFetch_AUV.h:197
double start_time
Definition uwUFetch_AUV.h:351
uwUFetch_AUV *UWUFETCH_TIMER_STATUS timer_status
Definition uwUFetch_AUV.h:355
bool isExpired()
Definition uwUFetch_AUV.h:294
virtual void unFreeze()
Definition uwUFetch_AUV.h:219
int getCounter()
Definition uwUFetch_AUV.h:334
bool isIdle()
Definition uwUFetch_AUV.h:261
Definition uwUFetch_AUV.h:85
UWUFETCH_AUV_PACKET_TYPE
Definition uwUFetch_AUV.h:158
@ UWUFETCH_AUV_PACKET_TYPE_CTS
Definition uwUFetch_AUV.h:162
@ UWUFETCH_AUV_PACKET_TYPE_TRIGGER
Definition uwUFetch_AUV.h:160
@ UWUFETCH_AUV_PACKET_TYPE_DATA
Definition uwUFetch_AUV.h:159
@ UWUFETCH_AUV_PACKET_TYPE_RTS
Definition uwUFetch_AUV.h:161
virtual int command(int argc, const char *const *argv)
Definition uwUFetch_AUV.cpp:234
int num_pck_hn_1
Definition uwUFetch_AUV.h:1075
double tx_CTS_start_time
Definition uwUFetch_AUV.h:1023
virtual double getDataTimerValue()
Definition uwUFetch_AUV.cpp:1868
int getTrigger_Tx_by_AUV()
Definition uwUFetch_AUV.h:781
int n_DATA_rx_by_AUV
Definition uwUFetch_AUV.h:1102
uwUFetch_FIRST_DATA_timer DATA_timer_first_pck
Definition uwUFetch_AUV.h:998
int n_RTS_rx_by_AUV
Definition uwUFetch_AUV.h:1098
int getTotal_Data_Rx_by_AUV()
Definition uwUFetch_AUV.h:947
uwUFetch_RTS_timer RTS_timer
Definition uwUFetch_AUV.h:993
int HEAD_NODE_4
Definition uwUFetch_AUV.h:1014
virtual void Phy2MacEndTx(const Packet *p)
Definition uwUFetch_AUV.cpp:387
int n_tot_RTS_rx_by_AUV
Definition uwUFetch_AUV.h:1034
double MAX_PAYLOAD
Definition uwUFetch_AUV.h:1003
int num_pck_hn_3
Definition uwUFetch_AUV.h:1079
int number_data_pck_AUV_rx_exact
Definition uwUFetch_AUV.h:1050
double rx_RTS_start_time
Definition uwUFetch_AUV.h:1019
int n_tot_TRIGGER_tx_by_AUV
Definition uwUFetch_AUV.h:1031
UWUFETCH_AUV_STATUS prev_state
Definition uwUFetch_AUV.h:1136
virtual void state_TRIGGER_tx_without()
Definition uwUFetch_AUV_mod_2.cpp:613
double data_timeout
Definition uwUFetch_AUV.h:1055
void incrData_Rx_by_AUV()
Definition uwUFetch_AUV.h:914
double tx_TRIGGER_finish_time
Definition uwUFetch_AUV.h:1017
int HEAD_NODE_2
Definition uwUFetch_AUV.h:1012
int NUM_MAX_DATA_AUV_WANT_RX
Definition uwUFetch_AUV.h:1004
uwUFetch_AUV()
Definition uwUFetch_AUV.cpp:93
bool txTRIGGEREnabled
Definition uwUFetch_AUV.h:1085
UWUFETCH_AUV_STATUS_CHANGE last_reason
Definition uwUFetch_AUV.h:1132
std::queue< int > Q_rts_n_pcks_HN_want_tx_AUV
Definition uwUFetch_AUV.h:1121
int debugMio_
Definition uwUFetch_AUV.h:1009
virtual double getRTT()
Definition uwUFetch_AUV.cpp:1916
UWUFETCH_AUV_STATUS curr_state
Definition uwUFetch_AUV.h:1134
std::ofstream out_file_logging
Definition uwUFetch_AUV.h:1155
int n_tot_DATA_rx_by_AUV
Definition uwUFetch_AUV.h:1043
int mac_addr_HN_ctsed
Definition uwUFetch_AUV.h:1053
int n_TRIGGER_tx_by_AUV
Definition uwUFetch_AUV.h:1095
double Tdata
Definition uwUFetch_AUV.h:1063
void incrTotal_Data_Rx_by_AUV()
Definition uwUFetch_AUV.h:935
virtual void state_CTS_tx()
Definition uwUFetch_AUV.cpp:1506
int NUM_HN_NET
Definition uwUFetch_AUV.h:987
virtual void DataTOExpired_first()
Definition uwUFetch_AUV_mod_1.cpp:1516
double RTT
Definition uwUFetch_AUV.h:1065
double rx_RTS_finish_time
Definition uwUFetch_AUV.h:1021
virtual void refreshReason(UWUFETCH_AUV_STATUS_CHANGE reason)
Definition uwUFetch_AUV.h:602
int HEAD_NODE_1
Definition uwUFetch_AUV.h:1011
std::ofstream fout
Definition uwUFetch_AUV.h:1152
int index
Definition uwUFetch_AUV.h:1072
virtual void updateQueueRTS()
Definition uwUFetch_AUV.cpp:1925
void incrTotalRts_Rx_corrupted_by_AUV()
Definition uwUFetch_AUV.h:853
UWUFETCH_AUV_STATUS_CHANGE
Definition uwUFetch_AUV.h:131
@ UWUFETCH_AUV_STATUS_CHANGE_PACKET_FOR_ANOTHER_NODE
Definition uwUFetch_AUV.h:145
@ UWFETCH_AUV_STATUS_CHANGE_PACKET_ERROR
Definition uwUFetch_AUV.h:140
@ UWUFETCH_AUV_STATUS_CHANGE_RTS_TO_EXPIRED_0_RTS_RX
Definition uwUFetch_AUV.h:152
@ UWUFETCH_AUV_STATUS_CHANGE_TRIGGER_TO_EXPIRED
Definition uwUFetch_AUV.h:148
@ UWUFETCH_AUV_STATUS_CHANGE_TRIGGER_INITIALIZE_TX_TRIGGER
Definition uwUFetch_AUV.h:149
@ UWUFETCH_AUV_STATUS_CHANGE_RTS_RX
Definition uwUFetch_AUV.h:136
@ UWUFETCH_AUV_STATUS_CHANGE_TO_WAIT_RTS_EXPIRED
Definition uwUFetch_AUV.h:134
@ UWUFETCH_AUV_STATUS_CHANGE_RTS_TO_EXPIRED_AT_LEAST_ONE_RTS_RX
Definition uwUFetch_AUV.h:151
@ UWUFETCH_AUV_STATUS_CHANGE_CTS_INITIALIZED_TX_CTS
Definition uwUFetch_AUV.h:153
@ UWUFETCH_AUV_STATUS_CHANGE_RTS_FINISHED_TO_RX
Definition uwUFetch_AUV.h:143
@ UWUFETCH_AUV_STATUS_CHANGE_CTS_TX
Definition uwUFetch_AUV.h:137
@ UWUFETCH_AUV_STATUS_CHANGE_PHY_CAN_NOT_TX
Definition uwUFetch_AUV.h:133
@ UWUFETCH_AUV_STATUS_CHANGE_TRIGGER_TX
Definition uwUFetch_AUV.h:132
@ UWUFETCH_AUV_STATUS_CHANGE_TRIGGER_TX_WAIT_RTS
Definition uwUFetch_AUV.h:141
@ UWUFETCH_AUV_STATUS_CHANGE_DATA_PCK_FINISHED_TO_RX
Definition uwUFetch_AUV.h:144
@ UWUFETCH_AUV_STATUS_CHANGE_DATA_PCK_RX
Definition uwUFetch_AUV.h:138
@ UWUFETCH_AUV_STATUS_CHANGE_RTS_FINSHED_TO_STORE
Definition uwUFetch_AUV.h:150
@ UWUFETCH_AUV_STATUS_CHANGE_TO_WAIT_DATA_EXPIRED
Definition uwUFetch_AUV.h:154
@ UWUFETCH_AUV_STATUS_CHANGE_PACKET_IS_IN_ERROR
Definition uwUFetch_AUV.h:135
@ UWUFETCH_AUV_STATUS_CHANGE_ANOTHER_DATA_PCK_RX
Definition uwUFetch_AUV.h:147
@ UWUFETCH_AUV_STATUS_CHANGE_CTS_TX_WAIT_DATA
Definition uwUFetch_AUV.h:142
@ UWFETCH_AUV_STATUS_CHANGE_PACKET_FOR_ANOTHER_NODE
Definition uwUFetch_AUV.h:139
@ UWUFETCH_AUV_STATUS_CHANGE_LAST_DATA_PCK_RX
Definition uwUFetch_AUV.h:146
int mode_comm_hn_auv
Definition uwUFetch_AUV.h:985
int getTotalCts_Tx_by_AUV()
Definition uwUFetch_AUV.h:905
virtual void Phy2MacStartRx_without(const Packet *p)
Definition uwUFetch_AUV_mod_2.cpp:132
virtual void Mac2PhyStartTx(Packet *p)
Definition uwUFetch_AUV.cpp:320
virtual void DataTOExpired()
Definition uwUFetch_AUV.cpp:1812
int num_pck_hn_2
Definition uwUFetch_AUV.h:1077
virtual void computeTxTime(UWUFETCH_AUV_PACKET_TYPE tp)
Definition uwUFetch_AUV.cpp:1897
int HEAD_NODE_3
Definition uwUFetch_AUV.h:1013
int N_RUN
Definition uwUFetch_AUV.h:1010
void incrTotalRts_Rx_by_AUV()
Definition uwUFetch_AUV.h:832
std::queue< double > Q_rts_backoff_time
Definition uwUFetch_AUV.h:1125
double Tcts
Definition uwUFetch_AUV.h:1061
double T_MAX_RTS
Definition uwUFetch_AUV.h:979
int n_tot_CTS_tx_by_AUV
Definition uwUFetch_AUV.h:1040
void incrTotalCts_Tx_by_AUV()
Definition uwUFetch_AUV.h:894
int n_tot_DATA_rx_corr_by_AUV
Definition uwUFetch_AUV.h:1046
double T_MIN_RTS
Definition uwUFetch_AUV.h:977
double tx_TRIGGER_start_time
Definition uwUFetch_AUV.h:1015
virtual void state_TRIGGER_tx()
Definition uwUFetch_AUV.cpp:1145
virtual void state_wait_DATA()
Definition uwUFetch_AUV.cpp:1771
static std::map< UWUFETCH_AUV_PACKET_TYPE, std::string > packetType
Definition uwUFetch_AUV.h:1145
bool rxRTSEnabled
Definition uwUFetch_AUV.h:1087
Packet * curr_CTS_pck_tx
Definition uwUFetch_AUV.h:1111
uwUFetch_TRIGGER_timer Trigger_timer
Definition uwUFetch_AUV.h:991
virtual void another_DATA_received()
Definition uwUFetch_AUV.cpp:1946
void incrCts_Tx_by_AUV()
Definition uwUFetch_AUV.h:874
void incrTotalTrigger_Tx_by_AUV()
Definition uwUFetch_AUV.h:790
double T_START_PROC_TRIGGER
Definition uwUFetch_AUV.h:1007
int getTotal_Data_Rx_corrupted_by_AUV()
Definition uwUFetch_AUV.h:968
std::queue< int > Q_rts_mac_HN
Definition uwUFetch_AUV.h:1119
int getRts_Rx_by_AUV()
Definition uwUFetch_AUV.h:823
int mac_addr_hn_triggered
Definition uwUFetch_AUV.h:1073
int hn_trigg
Definition uwUFetch_AUV.h:1070
virtual void Mac2PhyStartTx_without(Packet *p)
Definition uwUFetch_AUV_mod_2.cpp:51
int getTotalRts_Rx_by_AUV()
Definition uwUFetch_AUV.h:844
virtual void state_wait_first_DATA_without()
Definition uwUFetch_AUV_mod_2.cpp:838
int n_CTS_tx_by_AUV
Definition uwUFetch_AUV.h:1100
static std::map< UWUFETCH_TIMER_STATUS, std::string > statusTimer
Definition uwUFetch_AUV.h:1148
int getCts_Tx_by_AUV()
Definition uwUFetch_AUV.h:885
void incrTrigger_Tx_by_AUV()
Definition uwUFetch_AUV.h:769
static bool initialized
Definition uwUFetch_AUV.h:1157
double Trts
Definition uwUFetch_AUV.h:1059
double T_GUARD
Definition uwUFetch_AUV.h:981
Packet * curr_DATA_pck_rx
Definition uwUFetch_AUV.h:1113
UWUFETCH_AUV_STATUS
Definition uwUFetch_AUV.h:120
@ UWUFETCH_AUV_STATUS_RECEIVE_RTS_PACKET
Definition uwUFetch_AUV.h:124
@ UWUFETCH_AUV_STATUS_TRANSMIT_CTS_PACKET
Definition uwUFetch_AUV.h:125
@ UWUFETCH_AUV_STATUS_WAIT_RTS_PACKET
Definition uwUFetch_AUV.h:123
@ UWUFETCH_AUV_STATUS_RECEIVE_DATA_PACKET
Definition uwUFetch_AUV.h:127
@ UWUFETCH_AUV_STATUS_WAIT_DATA_HN
Definition uwUFetch_AUV.h:126
@ UWUFETCH_AUV_STATUS_IDLE
Definition uwUFetch_AUV.h:121
@ UWUFETCH_AUV_STATUS_TRANSMIT_TRIGGER
Definition uwUFetch_AUV.h:122
virtual void waitForUser()
Definition uwUFetch_AUV.cpp:2156
int getData_Rx_by_AUV()
Definition uwUFetch_AUV.h:926
virtual ~uwUFetch_AUV()
Definition uwUFetch_AUV.cpp:75
uwUFetch_DATA_timer DATA_timer
Definition uwUFetch_AUV.h:995
virtual void Phy2MacEndRx_without(Packet *p)
Definition uwUFetch_AUV_mod_2.cpp:204
static const int MAX_RTS_RX
Definition uwUFetch_AUV.h:1162
double T_RTS
Definition uwUFetch_AUV.h:983
virtual void Phy2MacEndTx_without(const Packet *p)
Definition uwUFetch_AUV_mod_2.cpp:89
virtual void RTS_rx()
Definition uwUFetch_AUV.cpp:1336
bool rxDATAEnabled
Definition uwUFetch_AUV.h:1091
std::queue< Packet * > Q_data_AUV
Definition uwUFetch_AUV.h:1117
double rx_DATA_finish_time
Definition uwUFetch_AUV.h:1029
int num_pck_hn_4
Definition uwUFetch_AUV.h:1081
virtual void DATA_rx()
Definition uwUFetch_AUV.cpp:1679
virtual void refreshState(UWUFETCH_AUV_STATUS state)
Definition uwUFetch_AUV.h:613
int last_hn_triggered
Definition uwUFetch_AUV.h:1068
virtual void initInfo()
Definition uwUFetch_AUV.cpp:2068
double rx_DATA_start_time
Definition uwUFetch_AUV.h:1027
static std::map< UWUFETCH_AUV_STATUS_CHANGE, std::string > statusChange
Definition uwUFetch_AUV.h:1142
Packet * curr_RTS_pck_rx
Definition uwUFetch_AUV.h:1109
int getTotalRts_Rx_corrupted_by_AUV()
Definition uwUFetch_AUV.h:865
int mac_addr_HN_in_data
Definition uwUFetch_AUV.h:1066
virtual void state_wait_first_DATA()
Definition uwUFetch_AUV.cpp:1617
double T_tx_TRIGGER
Definition uwUFetch_AUV.h:1057
virtual void printStateInfo(double delay=0)
Definition uwUFetch_AUV.cpp:2059
int n_tot_RTS_rx_corr_by_AUV
Definition uwUFetch_AUV.h:1037
virtual void stateIdle_AUV()
Definition uwUFetch_AUV.cpp:1048
void incrTotal_Data_Rx_corrupted_by_AUV()
Definition uwUFetch_AUV.h:956
virtual void TriggerTOExpired()
Definition uwUFetch_AUV.cpp:1119
virtual void Phy2MacEndRx(Packet *p)
Definition uwUFetch_AUV.cpp:613
Packet * curr_TRIGGER_pck_tx
Definition uwUFetch_AUV.h:1107
virtual void Phy2MacStartRx(const Packet *p)
Definition uwUFetch_AUV.cpp:475
bool txCTSEnabled
Definition uwUFetch_AUV.h:1089
virtual void state_wait_RTS()
Definition uwUFetch_AUV.cpp:1280
virtual void RtsTOExpired()
Definition uwUFetch_AUV.cpp:1441
virtual void CTS_tx()
Definition uwUFetch_AUV.cpp:1609
void incrRts_Rx_by_AUV()
Definition uwUFetch_AUV.h:811
virtual void TRIGGER_tx()
Definition uwUFetch_AUV.cpp:1267
UWUFETCH_TIMER_STATUS
Definition uwUFetch_AUV.h:166
@ UWUFETCH_TIMER_STATUS_IDLE
Definition uwUFetch_AUV.h:167
@ UWUFETCH_TIMER_STATUS_EXPIRED
Definition uwUFetch_AUV.h:170
@ UWUFETCH_TIMER_STATUS_FROZEN
Definition uwUFetch_AUV.h:169
@ UWUFETCH_TIMER_STATUS_RUNNING
Definition uwUFetch_AUV.h:168
virtual bool typeCommunication()
Definition uwUFetch_AUV.cpp:1858
virtual int crLayCommand(ClMessage *m)
Definition uwUFetch_AUV.cpp:301
bool print_transitions
Definition uwUFetch_AUV.h:1159
int getTotalTrigger_Tx_by_AUV()
Definition uwUFetch_AUV.h:802
static std::map< UWUFETCH_AUV_STATUS, std::string > statusInfo
Definition uwUFetch_AUV.h:1139
double tx_CTS_finish_time
Definition uwUFetch_AUV.h:1025
packet_t PT_POLL_UFETCH
Definition initlib.cpp:56
packet_t PT_CBEACON_UFETCH
Definition initlib.cpp:57
packet_t PT_CTS_UFETCH
Definition initlib.cpp:53
packet_t PT_TRIGGER_UFETCH
Definition initlib.cpp:51
packet_t PT_BEACON_UFETCH
Definition initlib.cpp:54
packet_t PT_PROBE_UFETCH
Definition initlib.cpp:55
packet_t PT_RTS_UFETCH
Definition initlib.cpp:52
std::pair< int, int > counter
Definition uwinterference.h:53