DESERT 4.0.0
uwUFetch_AUV.h
Go to the documentation of this file.
1//
2// Copyright (c) 2017 Regents of the SIGNET lab, University of Padova.
3// All rights reserved.
4//
5// Redistribution and use in source and binary forms, with or without
6// modification, are permitted provided that the following conditions
7// are met:
8// 1. Redistributions of source code must retain the above copyright
9// notice, this list of conditions and the following disclaimer.
10// 2. Redistributions in binary form must reproduce the above copyright
11// notice, this list of conditions and the following disclaimer in the
12// documentation and/or other materials provided with the distribution.
13// 3. Neither the name of the University of Padova (SIGNET lab) nor the
14// names of its contributors may be used to endorse or promote products
15// derived from this software without specific prior written permission.
16//
17// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
19// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
20// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
21// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
22// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
23// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
24// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
25// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
26// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
27// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
37#ifndef UWUFETCH_AUV_H_
38#define UWUFETCH_AUV_H_
39
40#include <cassert>
41#include <clmessage.h>
42#include <fstream>
43#include <iostream>
44#include <map>
45#include <mmac.h>
46#include <mphy.h>
47#include <ostream>
48#include <queue>
49#include <string>
50
51#define UWFETCH_AUV_DROP_REASON_ERROR \
52 "DERR"
53#define UWFETCH_AUV_DROP_REASON_UNKNOWN_TYPE \
54 "DUT"
55#define UWFETCH_AUV_DROP_REASON_WRONG_RECEIVER \
56 "DWR"
57#define UWFETCH_AUV_DROP_REASON_WRONG_STATE \
58 "DWS"
60#define UWFETCH_AUV_DROP_PHY_CAN_NOT_TX \
61 "PNT"
62#define UWFETCH_AUV_DROP_REASON_ALREADY_ONE_RTS_RX \
63 "DAORR"
64#define UUFETCH_AUV_DROP_REASON_NOT_ENABLE \
65 "PDNE"
67#define UWUFETCH_AUV_DROP_CAN_NOT_RX_THIS_PCK \
68 "DCNR"
71extern packet_t
73extern packet_t PT_RTS_UFETCH;
74extern packet_t PT_CTS_UFETCH;
75extern packet_t PT_BEACON_UFETCH;
76extern packet_t PT_PROBE_UFETCH;
77extern packet_t PT_POLL_UFETCH;
78extern packet_t
84class uwUFetch_AUV : public MMac
85{
86public:
91
95 virtual ~uwUFetch_AUV();
96
107 virtual int command(int argc, const char *const *argv);
108
116 virtual int crLayCommand(ClMessage *m);
117
118protected:
129
156
164
172
176 class uwUFetch_timer : public TimerHandler
177 {
178 public:
184 : TimerHandler()
185 , start_time(0.0)
186 , left_duration(0.0)
187 , counter(0)
188 , module(m)
190 {
191 assert(m != NULL);
192 }
193
197 virtual ~uwUFetch_timer() {};
198
202 virtual void
204 {
207 if (left_duration <= 0.0) {
208 left_duration = module->mac2phy_delay_;
209 }
210 force_cancel();
212 }
213
218 virtual void
220 {
222 start_time = NOW;
223 assert(left_duration > 0);
224 sched(left_duration);
229 }
230
234 virtual void
236 {
238 force_cancel();
239 }
240
246 virtual void
247 schedule(double val)
248 {
249 start_time = NOW;
250 left_duration = val;
252 resched(val);
253 }
254
260 bool
262 {
264 }
265
271 bool
276
282 bool
287
293 bool
298
304 bool
306 {
307 return (timer_status == isRunning() || timer_status == isFroozen());
308 }
309
313 void
315 {
316 counter = 0;
317 }
318
322 void
324 {
325 ++counter;
326 }
327
333 int
335 {
336 return counter;
337 }
338
344 double
346 {
347 return left_duration;
348 }
349
350 protected:
351 double start_time;
354 uwUFetch_AUV *module;
357 }; // END class uwUFetch_timer
358
367 {
368 public:
378
379 /*
380 * Destructor of uwUFetch_TRIGGER_timer
381 */
383 {
384 }
385
386 protected:
392 virtual void expire(Event *e);
393 }; // END class uwUFetch_TRIGGER_timer
394
403 {
404 public:
414
415 /*
416 * Destructor of uwUFetch_RTS_timer
417 */
419 {
420 }
421
422 protected:
428 virtual void expire(Event *e);
429 }; // END class UWUFetch_RTS_timer
430
439 {
440 public:
450
451 /*
452 * Destructor of uwUFetch_DATA_timer
453 */
455 {
456 }
457
458 protected:
464 virtual void expire(Event *e);
465 }; // END class UWUFetch_DATA_timer uwUFetch_FIRST_DATA_timer
466
480 {
481 public:
490
491 /*
492 * Destructor of uwUFetch_FIRST_DATA_timer
493 */
495 {
496 }
497
498 protected:
504 virtual void expire(Event *e);
505 }; // END class uwUFetch_FIRST_DATA_timer
506
507 /****************************************************************************
508 * GENERAL METHODS *
509 ****************************************************************************/
515 virtual void Phy2MacStartRx(const Packet *p);
516
523 virtual void Phy2MacStartRx_without(const Packet *p);
524
530 virtual void Phy2MacEndRx(Packet *p);
531
538 virtual void Phy2MacEndRx_without(Packet *p);
539
546 virtual void Mac2PhyStartTx(Packet *p);
547
555 virtual void Mac2PhyStartTx_without(Packet *p);
556
565 virtual void Phy2MacEndTx(const Packet *p);
566
576 virtual void Phy2MacEndTx_without(const Packet *p);
577
583 virtual void printStateInfo(double delay = 0);
584
589 virtual void initInfo();
590
594 virtual void waitForUser();
595
601 virtual void
603 {
604 last_reason = reason;
605 }
606
612 virtual void
614 {
616 curr_state = state;
617 }
618
619 /*****************************************************************************
620 * AUV METHODS *
621 *****************************************************************************/
625 virtual void stateIdle_AUV();
626
631 virtual void TriggerTOExpired();
632
637 virtual void state_TRIGGER_tx();
638
643 virtual void state_TRIGGER_tx_without();
644
648 virtual void TRIGGER_tx();
649
653 virtual void state_wait_RTS();
654
658 virtual void RTS_rx();
659
663 virtual void RtsTOExpired();
664
668 virtual void state_CTS_tx();
669
673 virtual void CTS_tx();
674
679 virtual void state_wait_first_DATA();
680
685 virtual void state_wait_first_DATA_without();
686
691 virtual void DATA_rx();
692
696 virtual void state_wait_DATA();
697
702 virtual void DataTOExpired();
703
710 virtual void DataTOExpired_first();
711
716 virtual void updateQueueRTS();
717
718 /*****************************************************************************
719 * METODI AUSILIARI *
720 *****************************************************************************/
728 virtual bool typeCommunication();
729
736 virtual double getDataTimerValue();
737
745
751 virtual double getRTT();
752
758 virtual void another_DATA_received();
759
760 /*****************************************************************************
761 * Metodi get & incr *
762 *****************************************************************************/
763
768 void
773
780 int
782 {
783 return n_TRIGGER_tx_by_AUV;
784 }
785
789 void
794
801 int
806
810 void
812 {
814 }
815
822 int
824 {
825 return n_RTS_rx_by_AUV;
826 }
827
831 void
836
843 int
848
852 void
857
864 int
869
873 void
875 {
877 }
878
884 int
886 {
887 return n_CTS_tx_by_AUV;
888 }
889
893 void
898
904 int
909
913 void
918
925 int
927 {
928 return n_DATA_rx_by_AUV;
929 }
930
934 void
939
946 int
951
955 void
960
967 int
972
973 /*****************************************************************************
974 * VARIABLES OF AUV NODE *
975 *****************************************************************************/
976 // TCL VARIABLES
977 double T_MIN_RTS;
979 double T_MAX_RTS;
981 double T_GUARD;
983 double T_RTS;
989 // TIMERS
1002 // GLOBAL VARIABLES THAT SHOULD BE NEVER RESET
1010 int N_RUN;
1059 double Trts;
1061 double Tcts;
1063 double Tdata;
1065 double RTT;
1072 int index;
1084 // VARIABLES THAT ENABLES OR NOT AN OPERATION
1094 // VARIABLES THAT SHOULD BE RESETED WHEN A CYCLE IS ENDED
1106 // PACKETS CREATED
1116 // STRUCTURES USED
1117 std::queue<Packet *> Q_data_AUV;
1119 std::queue<int> Q_rts_mac_HN;
1125 std::queue<double> Q_rts_backoff_time;
1129 // VARIABLES THAT INDICATE IN WHICH STATE THE NODE IS IN THAT MOMENT AND THE
1130 // REASON BECAUSE THE NODE PASS FROM A STATE TO ANOTHER ONE
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>
1151 // VARIABLES FOR DEBUG
1152 std::ofstream fout;
1155 std::ofstream out_file_logging;
1157 static bool initialized;
1162 static const int MAX_RTS_RX =
1163 100;
1165}; // END class UWUFetch_AUV
1166
1167#endif
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