DESERT 4.0.0
uwUFetch_NODE.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//
29
38#ifndef UWUFETCH_NODE_H_
39#define UWUFETCH_NODE_H_
40
41#include <cassert>
42#include <clmessage.h>
43#include <fstream>
44#include <iostream>
45#include <map>
46#include <mmac.h>
47#include <mphy.h>
48#include <ostream>
49#include <queue>
50#include <stdio.h>
51#include <string>
52#include <time.h>
53// #include "uwmphy_modem_cmn_hdr.h"
54
55#define UWFETCH_NODE_DROP_REASON_UNKNOWN_TYPE \
56 "DUT"
57#define UWFETCH_NODE_DROP_REASON_WRONG_RECEIVER \
58 "DWR"
59#define UWFETCH_NODE_DROP_REASON_CBEACON_AND_DATA_ALREADY_TX \
60 "DCDAT"
62#define UWFETCH_NODE_DROP_REASON_ERROR \
63 "DRE"
64#define UWUFETCH_NODE_DROP_REASON_BUFFER_FULL \
65 "DBF"
66#define UWUFETCH_NODE_DROP_REASON_NOT_ENABLE \
67 "DNE"
69#define UWUFETCH_NODE_DROP_REASON_NOT_MY_TURN \
70 "DNMT"
71#define UWUFETCH_NODE_DROP_CAN_NOT_RX_THIS_PCK \
72 "CNRP"
74extern packet_t
76extern packet_t PT_RTS_UFETCH;
77extern packet_t PT_CTS_UFETCH;
78extern packet_t PT_BEACON_UFETCH;
79extern packet_t PT_PROBE_UFETCH;
80extern packet_t PT_POLL_UFETCH;
81extern packet_t
88typedef struct probbed_node {
89 uint id_node_; // Id of the NODE
90 int n_pcks_NODE_want_tx_; // Number of packets that the NODE want to
91 // transmit at the HN
92 int mac_address_; // Mac Address of the NODE
93 double backoff_time_; // Back-off time chosen by the NODE before
94 // transmitting the PROBE
95
99 inline uint &
101 {
102 return (id_node_);
103 }
104
108 inline int &
110 {
112 }
113
117 inline double &
119 {
120 return backoff_time_;
121 }
122
126 inline int &
128 {
129 return mac_address_;
130 }
132
135class uwUFetch_NODE : public MMac
136{
137public:
142
146 virtual ~uwUFetch_NODE();
147
158 virtual int command(int argc, const char *const *argv);
159
167 virtual int crLayCommand(ClMessage *m);
168
169protected:
191
232 };
233
244
252
256 class uwUFetch_NODE_timer : public TimerHandler
257 {
258 public:
264 : TimerHandler()
265 , start_time(0.0)
266 , left_duration(0.0)
267 , counter(0)
268 , module(m)
270 {
271 assert(m != NULL);
272 }
273
278
282 virtual void
284 {
287 if (left_duration <= 0.0) {
288 left_duration = module->mac2phy_delay_;
289 }
290 force_cancel();
292 }
293
298 virtual void
300 {
302 start_time = NOW;
303 assert(left_duration > 0);
304 sched(left_duration);
309 }
310
314 virtual void
316 {
318 force_cancel();
319 }
320
326 virtual void
327 schedule(double val)
328 {
329 start_time = NOW;
330 left_duration = val;
332 resched(val);
333 }
334
340 bool
342 {
344 }
345
351 bool
356
362 bool
367
373 bool
378
384 bool
386 {
387 return (timer_status == isRunning() || timer_status == isFroozen());
388 }
389
393 void
395 {
396 counter = 0;
397 }
398
402 void
404 {
405 ++counter;
406 }
407
413 int
415 {
416 return counter;
417 }
418
424 double
426 {
427 return left_duration;
428 }
429
430 protected:
431 double start_time;
435 *module;
438 }; // END class uwUFetch_NODE_timer
439
450 {
451 public:
461
462 /*
463 * Destructor of uwUFetch_BEACON_timer
464 */
466
467 protected:
472 virtual void expire(Event *e);
473
474 }; // END class uwUFetch_BEACON_timer
475
484 {
485 public:
495
500 {
501 }
502
503 protected:
509 virtual void expire(Event *e);
510 }; // end class uwUFetch_BackOffTimer
511
519 {
520 public:
530
531 /*
532 * Destructor of uwUFetch_PROBE_timer
533 */
535
536 protected:
542 virtual void expire(Event *e);
543 }; // END class uwUFetch_PROBE_timer
544
555 {
556 public:
566
567 /*
568 * Destructor of uwUFetch_POLL_timer
569 */
571
572 protected:
578 virtual void expire(Event *e);
579 }; // END class uwUFetch_POLL_timer
580
589 {
590 public:
600
601 /*
602 * Destructor of uwUFetch_DATA_BEFORE_TX_timer class
603 */
605
606 protected:
612 virtual void expire(Event *e);
613 }; // END class uwUFetch_DATA_BEFORE_TX_timer
614
624 {
625 public:
635
636 /*
637 * Destructor of uwUFetch_DATA_timer class
638 */
640
641 protected:
647 virtual void expire(Event *e);
648 }; // END class uwUFetch_DATA_timer
649
659 {
660 public:
670
671 /*
672 * Destructor of uwUFetch_Beacon_timer class
673 */
675
676 protected:
682 virtual void expire(Event *e);
683
684 }; // END class uwUFetch_CBeacon_timer
685
694 {
695 public:
705
706 /*
707 * Destructor of UWUFetch_CTS_timer class
708 */
710
711 protected:
717 virtual void expire(Event *e);
718 }; // END class uwUFetch_CTS_timer
719
729 {
730 public:
740
741 /*
742 * Destructor of uwUFetch_TRIGGER_time class
743 */
745
746 protected:
752 virtual void expire(Event *e);
753 }; // END class uwUFetch_TRIGGER_timer
754
755 /******************************************************************************
756 * GENERAL METHODS *
757 ******************************************************************************/
758
764 virtual void Phy2MacStartRx(const Packet *p);
765
771 virtual void Phy2MacStartRx_HN(const Packet *p);
772
778 virtual void Phy2MacEndRx(Packet *p);
779
786 virtual void Phy2MacEndRx_HN_without(Packet *p);
787
793 virtual void Phy2MacEndRx_HN(Packet *p);
794
801 virtual void Mac2PhyStartTx(Packet *p);
802
809 virtual void Mac2PhyStartTx_HN(Packet *p);
810
819 virtual void Phy2MacEndTx(const Packet *p);
820
829 virtual void Phy2MacEndTx_HN(const Packet *p);
830
837 virtual void recvFromUpperLayers(Packet *p);
838
845 virtual void recvFromUpperLayers_HN(Packet *p);
846
852 virtual void printStateInfo(double delay = 0);
853
858 virtual void initInfo();
859
863 virtual void waitForUser();
864
871 virtual void
873 {
874 last_reason = reason;
875 }
876
877 /*
878 * Refresh the state of the protocol
879 *
880 * @param UWUFETCH_NODE_STATUS current state of the protocol
881 */
882 virtual void
884 {
886 curr_state = state;
887 }
888
889 /******************************************************************************
890 * SENSOR NODE METHODS *
891 ******************************************************************************/
892
896 virtual void stateIdle_NODE();
897
901 virtual void BEACON_rx();
902
906 virtual void BCKTOExpired();
907
911 virtual void state_PROBE_tx();
912
916 virtual void PROBE_tx();
917
922 virtual void state_wait_POLL();
923
929 virtual void PollTOExpired();
930
935 virtual void POLL_rx();
936
941 virtual void state_DATA_NODE_first_tx();
942
948 virtual void DataBeforeTxTOExpired();
949
954 virtual void state_DATA_NODE_tx();
955
960 virtual void state_DATA_NODE_finish_tx();
961
965 virtual void DATA_NODE_tx();
966
972 virtual void state_wait_CBEACON();
973
979 virtual void CBeaconTOExpired();
980
985 virtual void CBEACON_rx();
986
987 /****************************************************************************
988 * HEAD NODE METHODS *
989 ****************************************************************************/
990
994 virtual void stateIdle_HN();
995
1001 virtual void BeaconTxTOExpire();
1002
1007 virtual void state_BEACON_tx();
1008
1012 virtual void BEACON_tx();
1013
1019 virtual void state_wait_PROBE();
1020
1025 virtual void PROBE_rx();
1026
1032 virtual void state_wait_other_PROBE();
1033
1040 virtual void ProbeTOExpired();
1041
1046 virtual void state_POLL_tx();
1047
1051 virtual void POLL_tx();
1052
1058 virtual void state_wait_first_DATA();
1059
1065 virtual void state_wait_other_DATA();
1066
1072 virtual void DataTOExpired();
1073
1078 virtual void DATA_rx();
1079
1084 virtual void state_CBEACON_tx();
1085
1089 virtual void CBEACON_tx();
1090
1096 virtual void TRIGGER_rx();
1097
1103 virtual void TRIGGER_rx_without();
1104
1108 virtual void state_RTS_tx();
1109
1113 virtual void RTS_tx();
1114
1120 virtual void state_wait_CTS();
1121
1126 virtual void CtsTOExpired();
1127
1132 virtual void CTS_rx();
1133
1139 virtual void state_DATA_HN_first_tx();
1140
1146 virtual void state_DATA_HN_first_tx_without();
1147
1153 virtual void state_DATA_HN_tx();
1154
1160 virtual void state_DATA_HN_tx_without();
1161
1167 virtual void state_DATA_HN_finish_tx();
1168
1174 virtual void state_DATA_HN_finish_tx_without();
1175
1181 virtual void DATA_HN_tx();
1182
1188 virtual void DATA_HN_tx_without();
1189
1197 virtual void BCKTOExpired_HN();
1198
1206 virtual void BCKTOExpired_HN_without();
1207
1215 virtual void DataBeforeTxTOExpired_HN();
1216
1217 /******************************************************************************
1218 * METODI AUSILIARI *
1219 ******************************************************************************/
1225 virtual bool isHeadNode();
1226
1234 virtual bool typeCommunication();
1235
1242 virtual bool burstDATA();
1243
1249 virtual double choiceBackOffTimer();
1250
1256 virtual double choiceBackOffTimer_HN();
1257
1265 virtual double getDataTimerValue();
1266
1273
1280
1286 virtual double getRTT();
1287
1294 virtual void updateListProbbedNode();
1295
1296 /******************************************************************************
1297 * METODI get E incr *
1298 * ****************************************************************************/
1299
1300 /**************************
1301 * HEAD NODE *
1302 **************************/
1303
1308 void
1313
1320 int
1322 {
1323 return n_BEACON_pck_tx_by_HN;
1324 };
1325
1330 void
1335
1342 int
1347
1352 void
1354 {
1356 };
1357
1364 int
1366 {
1367 return n_PROBE_pck_rx_by_HN;
1368 };
1369
1374 void
1379
1386 int
1391
1396 void
1401
1408 int
1413
1418 void
1423
1430 int
1432 {
1433 return n_POLL_pck_tx_by_HN;
1434 };
1435
1440 void
1445
1452 int
1457
1462 void
1467
1474 int
1476 {
1477 return n_DATA_pck_rx_by_HN;
1478 };
1479
1484 void
1489
1496 int
1501
1506 void
1511
1518 int
1523
1528 void
1533
1540 int
1542 {
1544 };
1545
1550 void
1555
1562 int
1567
1572 void
1577
1584 int
1586 {
1588 };
1589
1594 void
1599
1606 int
1611
1616 void
1621
1628 int
1633
1638 void
1640 {
1642 };
1643
1650 int
1652 {
1653 return n_RTS_pck_tx_by_HN;
1654 };
1655
1660 void
1665
1672 int
1674 {
1676 };
1677
1682 void
1684 {
1686 };
1687
1694 int
1696 {
1697 return n_CTS_pck_rx_by_HN;
1698 };
1699
1704 void
1709
1716 int
1718 {
1720 };
1721
1726 void
1731
1738 int
1743
1748 void
1753
1760 int
1762 {
1763 return n_DATA_pck_tx_by_HN;
1764 };
1765
1770 void
1775
1782 int
1787
1788 /*********************************
1789 * SENSOR NODE *
1790 *********************************/
1791
1796 void
1801
1808 int
1813
1818 void
1823
1830 int
1835
1840 void
1845
1852 int
1857
1862 void
1867
1874 int
1876 {
1878 };
1879
1884 void
1889
1896 int
1901
1906 void
1911
1918 int
1920 {
1921 return n_POLL_pck_rx_by_NODE;
1922 };
1923
1928 void
1933
1940 int
1945
1950 void
1955
1962 int
1967
1972 void
1977
1984 int
1986 {
1987 return n_DATA_pck_tx_by_NODE;
1988 };
1989
1994 void
1999
2006 int
2011
2016 void
2021
2028 int
2033
2038 void
2043
2050 int
2055
2060 void
2065
2072 int
2077
2078 /****************************************************************************
2079 * SENSOR NODE VARIABLES *
2080 ****************************************************************************/
2081 // TCL variables
2083 double T_GUARD;
2087 double T_POLL;
2090 int N_RUN;
2100 // Timers
2108 // that the SN transmit
2109 // the successive DATA
2110 // pck to the HN */
2111 uwUFetch_CBeacon_timer CBEACON_timer; // Interval time in which SN is
2112 // enabled to receive CBEACON packet
2113 // from HN */
2114
2115 // Global Variables that should be never reset
2175 double Tprobe;
2177 double Tdata_NODE;
2180 double RTT;
2201 // Variables that should be reseted when a cycle is end
2225 // Variables that enable or not an operation
2237 // PACKETS create
2249 // Queue
2250 std::queue<Packet *> Q_data;
2252 /******************************************************************************
2253 * HEAD NODE VARIABLES *
2254 ******************************************************************************/
2255 // TCL variables
2270 double T_PROBE;
2273 int MAX_ALLOWED_CBEACON_TX; // Maximum number of CBEACON cycles that HN can
2274 // start after the transmission of a BEACON
2275 // packet. */
2276 int MAX_PCK_HN_WANT_RX_FROM_NODE; // Maximum number of DATA packets that HN
2277 // want to receive from a single SN during
2278 // a cycle BEACON-PROBE-POLL-DATA-CBEACON
2279 // */
2280 double T_CTS; // Interval time in which HN is enabled to receive a CTS
2281 // packet from AUV */
2289 // Timers
2301 // Global Variables that should be never reset
2392 double Tbeacon;
2394 double Tpoll;
2396 double Trts;
2398 double Tdata_HN;
2419 bool CTSrx;
2427 // Variables that should be reseted when a cycle is end
2461 // Variables that enable or not an operation
2481 // PACKETS create
2503 // QUEUE
2504 std::queue<Packet *> Q_data_HN;
2506 std::queue<int> Q_data_source_SN;
2509 std::queue<int> Q_probbed_mac_HN;
2512 std::queue<int>
2516 std::queue<double> Q_probbed_backoff_time;
2522 // EXTRA
2530 static bool initialized;
2536 // Mapping
2537 static std::map<UWUFETCH_NODE_STATUS, std::string>
2540 static std::map<UWUFETCH_NODE_STATUS_CHANGE, std::string>
2543 static std::map<UWUFETCH_NODE_PACKET_TYPE, std::string>
2546 static std::map<UWUFETCH_TIMER_STATUS, std::string>
2550 std::ofstream fout;
2553 std::ofstream out_file_logging;
2555};
2556#endif
Definition uwUFetch_NODE.h:450
virtual ~uwUFetch_BEACON_timer()
Definition uwUFetch_NODE.h:465
virtual void expire(Event *e)
Definition uwUFetch_NODE_HEADNODE.cpp:3574
uwUFetch_BEACON_timer(uwUFetch_NODE *m)
Definition uwUFetch_NODE.h:457
Definition uwUFetch_NODE.h:484
virtual void expire(Event *e)
Definition uwUFetch_NODE_SENSOR.cpp:2917
virtual ~uwUFetch_BackOffTimer()
Definition uwUFetch_NODE.h:499
uwUFetch_BackOffTimer(uwUFetch_NODE *m)
Definition uwUFetch_NODE.h:491
Definition uwUFetch_NODE.h:659
virtual void expire(Event *e)
Definition uwUFetch_NODE_SENSOR.cpp:2956
uwUFetch_CBeacon_timer(uwUFetch_NODE *m)
Definition uwUFetch_NODE.h:666
virtual ~uwUFetch_CBeacon_timer()
Definition uwUFetch_NODE.h:674
Definition uwUFetch_NODE.h:694
virtual ~uwUFetch_CTS_timer()
Definition uwUFetch_NODE.h:709
uwUFetch_CTS_timer(uwUFetch_NODE *m)
Definition uwUFetch_NODE.h:701
virtual void expire(Event *e)
Definition uwUFetch_NODE_HEADNODE.cpp:3614
Definition uwUFetch_NODE.h:589
virtual void expire(Event *e)
Definition uwUFetch_NODE_SENSOR.cpp:2943
virtual ~uwUFetch_DATA_BEFORE_TX_timer()
Definition uwUFetch_NODE.h:604
uwUFetch_DATA_BEFORE_TX_timer(uwUFetch_NODE *m)
Definition uwUFetch_NODE.h:596
Definition uwUFetch_NODE.h:624
uwUFetch_DATA_timer(uwUFetch_NODE *m)
Definition uwUFetch_NODE.h:631
virtual void expire(Event *e)
Definition uwUFetch_NODE_HEADNODE.cpp:3601
virtual ~uwUFetch_DATA_timer()
Definition uwUFetch_NODE.h:639
Definition uwUFetch_NODE.h:257
int getCounter()
Definition uwUFetch_NODE.h:414
virtual void freeze()
Definition uwUFetch_NODE.h:283
int counter
Definition uwUFetch_NODE.h:433
double left_duration
Definition uwUFetch_NODE.h:432
void resetCounter()
Definition uwUFetch_NODE.h:394
virtual ~uwUFetch_NODE_timer()
Definition uwUFetch_NODE.h:277
virtual void stop()
Definition uwUFetch_NODE.h:315
double getDuration()
Definition uwUFetch_NODE.h:425
virtual void unFreeze()
Definition uwUFetch_NODE.h:299
uwUFetch_NODE *UWUFETCH_TIMER_STATUS timer_status
Definition uwUFetch_NODE.h:436
void incrCounter()
Definition uwUFetch_NODE.h:403
bool isActive()
Definition uwUFetch_NODE.h:385
bool isRunning()
Definition uwUFetch_NODE.h:352
bool isExpired()
Definition uwUFetch_NODE.h:374
bool isIdle()
Definition uwUFetch_NODE.h:341
virtual void schedule(double val)
Definition uwUFetch_NODE.h:327
double start_time
Definition uwUFetch_NODE.h:431
uwUFetch_NODE_timer(uwUFetch_NODE *m)
Definition uwUFetch_NODE.h:263
bool isFroozen()
Definition uwUFetch_NODE.h:363
Definition uwUFetch_NODE.h:555
virtual void expire(Event *e)
Definition uwUFetch_NODE_SENSOR.cpp:2930
virtual ~uwUFetch_POLL_timer()
Definition uwUFetch_NODE.h:570
uwUFetch_POLL_timer(uwUFetch_NODE *m)
Definition uwUFetch_NODE.h:562
Definition uwUFetch_NODE.h:519
virtual void expire(Event *e)
Definition uwUFetch_NODE_HEADNODE.cpp:3588
virtual ~uwUFetch_PROBE_timer()
Definition uwUFetch_NODE.h:534
uwUFetch_PROBE_timer(uwUFetch_NODE *m)
Definition uwUFetch_NODE.h:526
Definition uwUFetch_NODE.h:729
uwUFetch_TRIGGER_timer(uwUFetch_NODE *m)
Definition uwUFetch_NODE.h:736
virtual ~uwUFetch_TRIGGER_timer()
Definition uwUFetch_NODE.h:744
Definition uwUFetch_NODE.h:136
Packet * curr_PROBE_NODE_pck_tx
Definition uwUFetch_NODE.h:2240
int N_RUN
Definition uwUFetch_NODE.h:2090
void incrTotalCBeaconPckRx_corrupted_by_NODE()
Definition uwUFetch_NODE.h:2061
std::queue< double > Q_probbed_backoff_time
Definition uwUFetch_NODE.h:2516
double rx_POLL_finish_time
Definition uwUFetch_NODE.h:2126
double rx_BEACON_finish_time
Definition uwUFetch_NODE.h:2118
int getCBeaconPckRx_by_NODE()
Definition uwUFetch_NODE.h:2029
uwUFetch_NODE()
Definition uwUFetch_NODE_SENSOR.cpp:81
bool rxCBEACONEnabled
Definition uwUFetch_NODE.h:2234
uwUFetch_CBeacon_timer CBEACON_timer
Definition uwUFetch_NODE.h:2111
int getTotalBeaconPckRx_by_NODE()
Definition uwUFetch_NODE.h:1831
double data_timeout
Definition uwUFetch_NODE.h:2390
double tx_POLL_finish_HN_time
Definition uwUFetch_NODE.h:2315
int n_POLL_pck_rx_by_NODE
Definition uwUFetch_NODE.h:2210
int n_tot_PROBE_pck_rx_by_HN
Definition uwUFetch_NODE.h:2349
void incrTotalDataPckRx_by_HN()
Definition uwUFetch_NODE.h:1485
void incrBeaconPckRx_by_NODE()
Definition uwUFetch_NODE.h:1797
virtual void state_BEACON_tx()
Definition uwUFetch_NODE_HEADNODE.cpp:2210
UWUFETCH_NODE_STATUS_CHANGE last_reason
Definition uwUFetch_NODE.h:2523
virtual void state_DATA_HN_finish_tx()
Definition uwUFetch_NODE_HEADNODE.cpp:2149
int getTotalPollPckTx_by_HN()
Definition uwUFetch_NODE.h:1453
double T_max_bck_DATA
Definition uwUFetch_NODE.h:2196
int getTotalCtsPckRx_corrupted_HN()
Definition uwUFetch_NODE.h:1739
virtual void state_DATA_NODE_finish_tx()
Definition uwUFetch_NODE_SENSOR.cpp:2341
void incrTotalBeaconPckRx_corrupted_by_NODE()
Definition uwUFetch_NODE.h:1841
double T_MIN_BACKOFF_PROBE
Definition uwUFetch_NODE.h:2264
int n_BEACON_pck_tx_by_HN
Definition uwUFetch_NODE.h:2428
double bck_before_tx_RTS
Definition uwUFetch_NODE.h:2402
virtual void state_DATA_HN_first_tx_without()
Definition uwUFetch_NODE_HEADNODE_mod_2.cpp:558
virtual void DataBeforeTxTOExpired_HN()
Definition uwUFetch_NODE_HEADNODE.cpp:2082
bool CTSrx
Definition uwUFetch_NODE.h:2419
virtual void CBEACON_tx()
Definition uwUFetch_NODE_HEADNODE.cpp:3383
virtual void BEACON_rx()
Definition uwUFetch_NODE_SENSOR.cpp:1787
void incrCBeaconPckRx_by_NODE()
Definition uwUFetch_NODE.h:2017
UWUFETCH_NODE_STATUS prev_state
Definition uwUFetch_NODE.h:2527
virtual bool burstDATA()
Definition uwUFetch_NODE_HEADNODE_mod_1.cpp:3115
double T_GUARD
Definition uwUFetch_NODE.h:2083
int getTotalTriggerPckRx_corrupted_HN()
Definition uwUFetch_NODE.h:1629
virtual void state_DATA_HN_finish_tx_without()
Definition uwUFetch_NODE_HEADNODE_mod_2.cpp:759
void incrDataPckTx_by_NODE()
Definition uwUFetch_NODE.h:1973
int n_tot_CTS_pck_rx_corr_by_HN
Definition uwUFetch_NODE.h:2378
virtual void Phy2MacEndTx_HN(const Packet *p)
Definition uwUFetch_NODE_HEADNODE.cpp:1107
int n_DATA_pck_tx_by_NODE
Definition uwUFetch_NODE.h:2213
int n_tot_DATA_pck_tx_by_HN
Definition uwUFetch_NODE.h:2381
Packet * curr_RTS_HN_pck_tx
Definition uwUFetch_NODE.h:2494
int MAX_POLLED_NODE
Definition uwUFetch_NODE.h:2282
virtual void Phy2MacStartRx_HN(const Packet *p)
Definition uwUFetch_NODE_HEADNODE.cpp:56
bool txDATAEnabledHN
Definition uwUFetch_NODE.h:2478
virtual double choiceBackOffTimer_HN()
Definition uwUFetch_NODE_HEADNODE.cpp:3413
int getBeaconPckRx_by_NODE()
Definition uwUFetch_NODE.h:1809
int getDataPckRx_by_HN()
Definition uwUFetch_NODE.h:1475
int getTotalProbePckRx_corrupted_HN()
Definition uwUFetch_NODE.h:1409
int n_tot_PROBE_pck_tx_by_NODE
Definition uwUFetch_NODE.h:2142
double T_POLL
Definition uwUFetch_NODE.h:2087
void incrProbePckRx_HN()
Definition uwUFetch_NODE.h:1353
double bck_before_tx_data
Definition uwUFetch_NODE.h:2199
virtual void stateIdle_HN()
Definition uwUFetch_NODE_HEADNODE.cpp:1283
double tx_DATA_finish_HN_time
Definition uwUFetch_NODE.h:2344
double T_PROBE
Definition uwUFetch_NODE.h:2270
UWUFETCH_TIMER_STATUS
Definition uwUFetch_NODE.h:246
@ UWUFETCH_TIMER_STATUS_FROZEN
Definition uwUFetch_NODE.h:249
@ UWUFETCH_TIMER_STATUS_IDLE
Definition uwUFetch_NODE.h:247
@ UWUFETCH_TIMER_STATUS_RUNNING
Definition uwUFetch_NODE.h:248
@ UWUFETCH_TIMER_STATUS_EXPIRED
Definition uwUFetch_NODE.h:250
static std::map< UWUFETCH_TIMER_STATUS, std::string > statusTimer
Definition uwUFetch_NODE.h:2547
virtual void BeaconTxTOExpire()
Definition uwUFetch_NODE_HEADNODE.cpp:1416
uwUFetch_BackOffTimer BCK_timer_data
Definition uwUFetch_NODE.h:2298
virtual void state_wait_CTS()
Definition uwUFetch_NODE_HEADNODE.cpp:1779
bool txDATAEnabled
Definition uwUFetch_NODE.h:2232
double tx_CBEACON_start_HN_time
Definition uwUFetch_NODE.h:2322
int num_pck_to_tx_by_NODE
Definition uwUFetch_NODE.h:2183
double tx_POLL_start_HN_time
Definition uwUFetch_NODE.h:2312
virtual int crLayCommand(ClMessage *m)
Definition uwUFetch_NODE_SENSOR.cpp:264
int MAX_ALLOWED_CBEACON_TX
Definition uwUFetch_NODE.h:2273
bool rxCTSEnabled
Definition uwUFetch_NODE.h:2476
Packet * curr_CBEACON_HN_pck_tx
Definition uwUFetch_NODE.h:2490
double Trts
Definition uwUFetch_NODE.h:2396
virtual void state_DATA_HN_first_tx()
Definition uwUFetch_NODE_HEADNODE.cpp:1989
virtual void DATA_rx()
Definition uwUFetch_NODE_HEADNODE.cpp:3053
virtual void BCKTOExpired_HN()
Definition uwUFetch_NODE_HEADNODE.cpp:1610
int getBeaconTx_by_HN()
Definition uwUFetch_NODE.h:1321
virtual void computeTxTime_HN(UWUFETCH_NODE_PACKET_TYPE tp)
Definition uwUFetch_NODE_HEADNODE.cpp:3512
virtual void BCKTOExpired()
Definition uwUFetch_NODE_SENSOR.cpp:1869
virtual void printStateInfo(double delay=0)
Definition uwUFetch_NODE_SENSOR.cpp:2977
virtual void ProbeTOExpired()
Definition uwUFetch_NODE_HEADNODE.cpp:2404
std::ofstream out_file_logging
Definition uwUFetch_NODE.h:2553
virtual void Phy2MacEndRx_HN(Packet *p)
Definition uwUFetch_NODE_HEADNODE.cpp:198
double tx_RTS_finish_HN_time
Definition uwUFetch_NODE.h:2336
double T_max_bck_probe_node
Definition uwUFetch_NODE.h:2165
virtual void Phy2MacEndRx_HN_without(Packet *p)
Definition uwUFetch_NODE_HEADNODE_mod_2.cpp:48
double rx_TRIGGER_start_HN_time
Definition uwUFetch_NODE.h:2328
double TIME_BETWEEN_2_TX_DATA_NODE_HN
Definition uwUFetch_NODE.h:2091
int n_CBEACON_pck_tx_by_HN
Definition uwUFetch_NODE.h:2444
virtual void state_wait_other_PROBE()
Definition uwUFetch_NODE_HEADNODE.cpp:2641
int n_tot_DATA_pck_rx_corr_by_HN
Definition uwUFetch_NODE.h:2360
virtual void BCKTOExpired_HN_without()
Definition uwUFetch_NODE_HEADNODE_mod_2.cpp:539
double TIME_BETWEEN_2_TX_DATA_HN_AUV
Definition uwUFetch_NODE.h:2285
virtual void updateListProbbedNode()
Definition uwUFetch_NODE_HEADNODE.cpp:3554
int getTriggerPckRx_HN()
Definition uwUFetch_NODE.h:1585
int mac_addr_HN_in_beacon
Definition uwUFetch_NODE.h:2171
virtual void DATA_HN_tx_without()
Definition uwUFetch_NODE_HEADNODE_mod_2.cpp:660
static bool initialized
Definition uwUFetch_NODE.h:2530
double rx_DATA_finish_HN_time
Definition uwUFetch_NODE.h:2320
int getTotalDataPckRx_by_HN()
Definition uwUFetch_NODE.h:1497
double T_max_bck_RTS
Definition uwUFetch_NODE.h:2407
int n_tot_POLL_pck_tx_by_HN
Definition uwUFetch_NODE.h:2355
int getTotalPollPckRx_by_NODE()
Definition uwUFetch_NODE.h:1941
void incrPollPckTx_by_HN()
Definition uwUFetch_NODE.h:1419
double T_min_bck_RTS
Definition uwUFetch_NODE.h:2404
void incrTotalTriggerPckRx_HN()
Definition uwUFetch_NODE.h:1595
int debugMio_
Definition uwUFetch_NODE.h:2089
int n_tot_RTS_pck_tx_by_HN
Definition uwUFetch_NODE.h:2373
void incrTotalDataPckRx_corrupted_by_HN()
Definition uwUFetch_NODE.h:1507
virtual void Mac2PhyStartTx_HN(Packet *p)
Definition uwUFetch_NODE_HEADNODE.cpp:984
bool txRTSEnabled
Definition uwUFetch_NODE.h:2474
virtual double getDataTimerValue()
Definition uwUFetch_NODE_HEADNODE.cpp:3453
void incrBeaconPckTx_by_HN()
Definition uwUFetch_NODE.h:1309
int n_tot_POLL_pck_rx_corr_by_NODE
Definition uwUFetch_NODE.h:2148
int getTotalCBeaconPckTx_by_HN()
Definition uwUFetch_NODE.h:1563
int getTotalDataPckTx_by_NODE()
Definition uwUFetch_NODE.h:2007
bool sectionCBeacon
Definition uwUFetch_NODE.h:2424
int number_data_pck_HN_rx_exact
Definition uwUFetch_NODE.h:2386
int getTotalTriggerPckRx_HN()
Definition uwUFetch_NODE.h:1607
virtual void refreshReason(UWUFETCH_NODE_STATUS_CHANGE reason)
Definition uwUFetch_NODE.h:872
int getTotalDataPckRx_corrupted_by_HN()
Definition uwUFetch_NODE.h:1519
int n_tot_POLL_pck_rx_by_NODE
Definition uwUFetch_NODE.h:2145
Packet * curr_TRIGGER_HN_pck_rx
Definition uwUFetch_NODE.h:2492
int mac_addr_HN_in_cbeacon
Definition uwUFetch_NODE.h:2191
Packet * curr_POLL_NODE_pck_rx
Definition uwUFetch_NODE.h:2242
int HEADNODE
Definition uwUFetch_NODE.h:2534
int MODE_COMM_HN_AUV
Definition uwUFetch_NODE.h:2094
int getTotalProbePckRx_HN()
Definition uwUFetch_NODE.h:1387
double rx_PROBE_start_HN_time
Definition uwUFetch_NODE.h:2308
bool txBEACONEnabled
Definition uwUFetch_NODE.h:2462
int mac_addr_AUV_in_trigger
Definition uwUFetch_NODE.h:2410
int getTotalBeaconPckRx_corrupted_by_NODE()
Definition uwUFetch_NODE.h:1853
int getPollPckTx_by_HN()
Definition uwUFetch_NODE.h:1431
Packet * curr_BEACON_HN_pck_tx
Definition uwUFetch_NODE.h:2482
virtual void Phy2MacEndRx(Packet *p)
Definition uwUFetch_NODE_SENSOR.cpp:696
void incrDataPckTx_by_HN()
Definition uwUFetch_NODE.h:1749
bool rxPROBEEnabled
Definition uwUFetch_NODE.h:2464
bool txPROBEEnabled
Definition uwUFetch_NODE.h:2228
void incrTotalPollPckRx_corrupted_by_NODE()
Definition uwUFetch_NODE.h:1951
virtual void state_DATA_HN_tx()
Definition uwUFetch_NODE_HEADNODE.cpp:2095
virtual void BEACON_tx()
Definition uwUFetch_NODE_HEADNODE.cpp:2332
int getDataPckTx_by_NODE()
Definition uwUFetch_NODE.h:1985
double T_CTS
Definition uwUFetch_NODE.h:2280
Packet * curr_DATA_NODE_pck_tx_HN
Definition uwUFetch_NODE.h:2500
int getTotalBeaconTx_by_HN()
Definition uwUFetch_NODE.h:1343
double tx_DATA_start_time
Definition uwUFetch_NODE.h:2128
int MAXIMUM_BUFFER_DATA_PCK_NODE
Definition uwUFetch_NODE.h:2085
virtual void DATA_NODE_tx()
Definition uwUFetch_NODE_SENSOR.cpp:2265
std::ofstream fout
Definition uwUFetch_NODE.h:2550
int n_tot_DATA_pck_rx_by_HN
Definition uwUFetch_NODE.h:2357
double T_MAX_BACKOFF_PROBE
Definition uwUFetch_NODE.h:2261
void incrTotalPollPckTx_by_HN()
Definition uwUFetch_NODE.h:1441
int n_BEACON_pck_rx_by_NODE
Definition uwUFetch_NODE.h:2202
double tx_BEACON_start_HN_time
Definition uwUFetch_NODE.h:2302
double rx_CTS_start_HN_time
Definition uwUFetch_NODE.h:2338
void incrDataPckRx_by_HN()
Definition uwUFetch_NODE.h:1463
bool txPOLLEnabled
Definition uwUFetch_NODE.h:2466
virtual void initInfo()
Definition uwUFetch_NODE_SENSOR.cpp:415
virtual void state_wait_PROBE()
Definition uwUFetch_NODE_HEADNODE.cpp:2349
double rx_CBEACON_start_time
Definition uwUFetch_NODE.h:2132
int pck_number_id
Definition uwUFetch_NODE.h:2389
virtual void Mac2PhyStartTx(Packet *p)
Definition uwUFetch_NODE_SENSOR.cpp:1610
std::queue< int > Q_probbed_mac_HN
Definition uwUFetch_NODE.h:2509
virtual void CBeaconTOExpired()
Definition uwUFetch_NODE_SENSOR.cpp:2448
bool rxTRIGGEREnabled
Definition uwUFetch_NODE.h:2472
int num_cbeacon_at_now_HN_tx
Definition uwUFetch_NODE.h:2188
int getTotalCBeaconPckRx_by_NODE()
Definition uwUFetch_NODE.h:2051
void incrTotalBeaconPckTx_by_HN()
Definition uwUFetch_NODE.h:1331
double rx_DATA_start_HN_time
Definition uwUFetch_NODE.h:2318
void incrTotalBeaconPckRx_by_NODE()
Definition uwUFetch_NODE.h:1819
double bck_before_tx_probe
Definition uwUFetch_NODE.h:2173
int n_CBEACON_pck_rx_by_NODE
Definition uwUFetch_NODE.h:2217
virtual void state_DATA_HN_tx_without()
Definition uwUFetch_NODE_HEADNODE_mod_2.cpp:677
double tx_RTS_start_HN_time
Definition uwUFetch_NODE.h:2334
double T_min_bck_probe_node
Definition uwUFetch_NODE.h:2162
virtual double getRTT()
Definition uwUFetch_NODE_HEADNODE.cpp:3539
virtual void state_wait_first_DATA()
Definition uwUFetch_NODE_HEADNODE.cpp:2814
void incrTotalTriggerPckRx_corrupted_HN()
Definition uwUFetch_NODE.h:1617
void incrRtsPckTx_by_HN()
Definition uwUFetch_NODE.h:1639
UWUFETCH_NODE_STATUS curr_state
Definition uwUFetch_NODE.h:2526
static std::map< UWUFETCH_NODE_PACKET_TYPE, std::string > packetType
Definition uwUFetch_NODE.h:2544
void incrTotalPollPckRx_by_NODE()
Definition uwUFetch_NODE.h:1929
int n_POLL_pck_tx_by_HN
Definition uwUFetch_NODE.h:2436
void incrTotalDataPckTx_by_HN()
Definition uwUFetch_NODE.h:1771
int mac_addr_HN_in_poll
Definition uwUFetch_NODE.h:2181
virtual void CTS_rx()
Definition uwUFetch_NODE_HEADNODE.cpp:1897
int getDataPckTx_by_HN()
Definition uwUFetch_NODE.h:1761
double T_min_bck_DATA
Definition uwUFetch_NODE.h:2193
uwUFetch_DATA_timer DATA_timer
Definition uwUFetch_NODE.h:2293
int getRtsPckTx_by_HN()
Definition uwUFetch_NODE.h:1651
int getTotalPollPckRx_corrupted_by_NODE()
Definition uwUFetch_NODE.h:1963
virtual void computeTxTime(UWUFETCH_NODE_PACKET_TYPE tp)
Definition uwUFetch_NODE_SENSOR.cpp:2843
virtual void DataTOExpired()
Definition uwUFetch_NODE_HEADNODE.cpp:2913
void incrTotalCtsPckRx_HN()
Definition uwUFetch_NODE.h:1705
virtual void DATA_HN_tx()
Definition uwUFetch_NODE_HEADNODE.cpp:2060
void incrProbePckTx_by_NODE()
Definition uwUFetch_NODE.h:1863
int max_pck_HN_can_tx
Definition uwUFetch_NODE.h:2416
double Tdata_HN
Definition uwUFetch_NODE.h:2398
int getTotalCBeaconPckRx_corrupted_by_NODE()
Definition uwUFetch_NODE.h:2073
Packet * curr_BEACON_NODE_pck_rx
Definition uwUFetch_NODE.h:2238
int n_tot_PROBE_pck_corr_rx_by_HN
Definition uwUFetch_NODE.h:2352
int getTotalCtsPckRx_HN()
Definition uwUFetch_NODE.h:1717
virtual void state_CBEACON_tx()
Definition uwUFetch_NODE_HEADNODE.cpp:3263
int n_PROBE_pck_rx_by_HN
Definition uwUFetch_NODE.h:2432
uwUFetch_BackOffTimer BCK_timer_probe
Definition uwUFetch_NODE.h:2101
int n_tot_CBEACON_pck_rx_by_NODE
Definition uwUFetch_NODE.h:2154
double tx_DATA_finish_time
Definition uwUFetch_NODE.h:2130
int getTotalDataPckTx_by_HN()
Definition uwUFetch_NODE.h:1783
void incrTriggerPckRx_HN()
Definition uwUFetch_NODE.h:1573
double Tbeacon
Definition uwUFetch_NODE.h:2392
virtual void PROBE_rx()
Definition uwUFetch_NODE_HEADNODE.cpp:2517
uwUFetch_BackOffTimer BCK_timer_rts
Definition uwUFetch_NODE.h:2295
uwUFetch_DATA_BEFORE_TX_timer DATA_BEFORE_TX_timer
Definition uwUFetch_NODE.h:2107
virtual void CBEACON_rx()
Definition uwUFetch_NODE_SENSOR.cpp:2481
void incrCBeaconPckTx_by_HN()
Definition uwUFetch_NODE.h:1529
double rx_POLL_start_time
Definition uwUFetch_NODE.h:2124
int n_CTS_pck_rx_by_HN
Definition uwUFetch_NODE.h:2454
virtual void state_PROBE_tx()
Definition uwUFetch_NODE_SENSOR.cpp:1895
virtual void state_wait_other_DATA()
Definition uwUFetch_NODE_HEADNODE.cpp:2877
bool rxPOLLEnabled
Definition uwUFetch_NODE.h:2230
virtual bool typeCommunication()
Definition uwUFetch_NODE_HEADNODE.cpp:3403
int n_tot_CBEACON_pck_tx_by_HN
Definition uwUFetch_NODE.h:2363
double rx_BEACON_start_time
Definition uwUFetch_NODE.h:2116
virtual void recvFromUpperLayers_HN(Packet *p)
Definition uwUFetch_NODE_HEADNODE.cpp:3481
int n_tot_DATA_pck_tx_by_NODE
Definition uwUFetch_NODE.h:2151
int n_TRIGGER_pck_rx_by_HN
Definition uwUFetch_NODE.h:2448
void incrTotalProbePckRx_HN()
Definition uwUFetch_NODE.h:1375
virtual void TRIGGER_rx_without()
Definition uwUFetch_NODE_HEADNODE_mod_2.cpp:409
int MAX_PAYLOAD
Definition uwUFetch_NODE.h:2082
virtual void PollTOExpired()
Definition uwUFetch_NODE_SENSOR.cpp:2097
virtual void recvFromUpperLayers(Packet *p)
Definition uwUFetch_NODE_SENSOR.cpp:2867
double tx_PROBE_start_time
Definition uwUFetch_NODE.h:2120
double Tdata_NODE_pck
Definition uwUFetch_NODE.h:2186
double Tdata_NODE
Definition uwUFetch_NODE.h:2177
int n_tot_BEACON_pck_rx_by_NODE
Definition uwUFetch_NODE.h:2136
void incrTotalCBeaconPckRx_by_NODE()
Definition uwUFetch_NODE.h:2039
double tx_BEACON_finish_HN_time
Definition uwUFetch_NODE.h:2305
virtual void state_wait_CBEACON()
Definition uwUFetch_NODE_SENSOR.cpp:2406
int mac_addr_NODE_polled
Definition uwUFetch_NODE.h:2383
virtual bool isHeadNode()
Definition uwUFetch_NODE_SENSOR.cpp:2820
uwUFetch_BEACON_timer BeaconBeforeTx_timer
Definition uwUFetch_NODE.h:2291
double tx_PROBE_finish_time
Definition uwUFetch_NODE.h:2122
UWUFETCH_NODE_PACKET_TYPE
Definition uwUFetch_NODE.h:235
@ UWUFETCH_NODE_PACKET_TYPE_CTS
Definition uwUFetch_NODE.h:242
@ UWUFETCH_NODE_PACKET_TYPE_PROBE
Definition uwUFetch_NODE.h:237
@ UWUFETCH_NODE_PACKET_TYPE_BEACON
Definition uwUFetch_NODE.h:239
@ UWUFETCH_NODE_PACKET_TYPE_RTS
Definition uwUFetch_NODE.h:241
@ UWUFETCH_NODE_PACKET_TYPE_DATA
Definition uwUFetch_NODE.h:236
@ UWUFETCH_NODE_PACKET_TYPE_POLL
Definition uwUFetch_NODE.h:238
@ UWUFETCH_NODE_PACKET_TYPE_TRIGGER
Definition uwUFetch_NODE.h:240
virtual double choiceBackOffTimer()
Definition uwUFetch_NODE_SENSOR.cpp:2830
int MODE_BURST_DATA
Definition uwUFetch_NODE.h:2097
virtual void POLL_tx()
Definition uwUFetch_NODE_HEADNODE.cpp:2794
void incrTotalDataPckTx_by_NODE()
Definition uwUFetch_NODE.h:1995
int n_DATA_pck_rx_by_HN
Definition uwUFetch_NODE.h:2440
virtual void TRIGGER_rx()
Definition uwUFetch_NODE_HEADNODE.cpp:1460
virtual void stateIdle_NODE()
Definition uwUFetch_NODE_SENSOR.cpp:1745
bool txRTSbeforeCBEACON
Definition uwUFetch_NODE.h:2421
double tx_DATA_start_HN_time
Definition uwUFetch_NODE.h:2342
virtual void Phy2MacStartRx(const Packet *p)
Definition uwUFetch_NODE_SENSOR.cpp:580
virtual ~uwUFetch_NODE()
Definition uwUFetch_NODE_SENSOR.cpp:272
Packet * curr_PROBE_HN_pck_rx
Definition uwUFetch_NODE.h:2484
uwUFetch_PROBE_timer PROBE_timer
Definition uwUFetch_NODE.h:2292
UWUFETCH_NODE_STATUS_CHANGE
Definition uwUFetch_NODE.h:193
@ UWUFETCH_NODE_STATUS_CHANGE_DATA_MAX_ALLOWED_PCK_RX_0_NODE_TO_POLL_NO_OTHER_CBEACON
Definition uwUFetch_NODE.h:223
@ UWUFETCH_NODE_STATUS_CHANGE_DATA_PCK_TX
Definition uwUFetch_NODE.h:204
@ UWUFETCH_NODE_STATUS_CHANGE_MAX_DATA_PCK_TX
Definition uwUFetch_NODE.h:203
@ UWUFETCH_NODE_STATUS_CHANGE_DATA_MAX_ALLOWED_PCK_RX_0_NODE_TO_POLL_YES_OTHER_CBEACON
Definition uwUFetch_NODE.h:224
@ UWUFETCH_NODE_STATUS_CHANGE_TRIGGER_RX
Definition uwUFetch_NODE.h:205
@ UWUFETCH_NODE_STATUS_CHANGE_DATA_RX
Definition uwUFetch_NODE.h:221
@ UWUFETCH_NODE_STATUS_CHANGE_PROBE_TX
Definition uwUFetch_NODE.h:199
@ UWFETCH_NODE_STATUS_CHANGE_CBEACON_RX_DATA_ALREADY_TX
Definition uwUFetch_NODE.h:202
@ UWUFETCH_NODE_STATUS_CHANGE_DATA_TO_EXPIRED_ANOTHER_NODE_TO_POLL
Definition uwUFetch_NODE.h:220
@ UWUFETCH_NODE_STATUS_CHANGE_TO_WAIT_POLL_EXPIRED
Definition uwUFetch_NODE.h:200
@ UWUFETCH_NODE_STATUS_CHANGE_CBEACON_ALLOWED_TX_0_PROBE_RX
Definition uwUFetch_NODE.h:213
@ UWUFETCH_NODE_STATUS_CHANGE_DATA_TO_EXPIRED_0_NODE_TO_POLL_YES_OTHER_CBEACON
Definition uwUFetch_NODE.h:219
@ UWUFETCH_NODE_STATUS_CHANGE_CBEACON_TX
Definition uwUFetch_NODE.h:210
@ UWUFETCH_NODE_STATUS_CHANGE_CBEACON_MAX_ALLOWED_TX
Definition uwUFetch_NODE.h:226
@ UWUFETCH_NODE_STATUS_CHANGE_HN_RX_TRIGGER_FROM_AUV_CORRUPTED
Definition uwUFetch_NODE.h:230
@ UWUFETCH_NODE_STATUS_CHANGE_RTS_TX
Definition uwUFetch_NODE.h:206
@ UWFETCH_NODE_STATUS_CHANGE_PACKET_UNKNOWN_TYPE
Definition uwUFetch_NODE.h:197
@ UWUFETCH_NODE_STATUS_CHANGE_PROBE_RX
Definition uwUFetch_NODE.h:211
@ UWUFETCH_NODE_STATUS_CHANGE_LAST_DATA_PCK_RX
Definition uwUFetch_NODE.h:222
@ UWUFETCH_NODE_STATUS_CHANGE_DATA_TO_EXPIRED
Definition uwUFetch_NODE.h:217
@ UWFETCH_NODE_STATUS_CHANGE_STATE_IDLE
Definition uwUFetch_NODE.h:194
@ UWUFETCH_NODE_STATUS_CHANGE_DATA_TO_EXPIRED_0_NODE_TO_POLL_NO_OTHER_CBEACON
Definition uwUFetch_NODE.h:218
@ UWUFETCH_NODE_STATUS_CHANGE_CBEACON_MAX_ALLOWED_TX_0_PROBE_RX
Definition uwUFetch_NODE.h:212
@ UWUFETCH_NODE_STATUS_CHANGE_POLL_TX
Definition uwUFetch_NODE.h:216
@ UWUFETCH_NODE_STATUS_CHANGE_POLL_RX
Definition uwUFetch_NODE.h:201
@ UWUFETCH_NODE_STATUS_CHANGE_DATA_MAX_ALLOWED_PCK_RX_YES_NODE_TO_POLL
Definition uwUFetch_NODE.h:225
@ UWUFETCH_NODE_STATUS_CHANGE_CTS_RX
Definition uwUFetch_NODE.h:208
@ UWUFETCH_NODE_STATUS_CHANGE_BEACON_RX
Definition uwUFetch_NODE.h:198
@ UWUFETCH_NODE_STATUS_CHANGE_BEACON_TO_EXPIRED
Definition uwUFetch_NODE.h:227
@ UWUFETCH_NODE_STATUS_CHANGE_TO_WAIT_CTS_EXPIRED
Definition uwUFetch_NODE.h:207
@ UWUFETCH_NODE_STATUS_CHANGE_TO_EXPIRED_AT_LEAST_1_PROBE_RX
Definition uwUFetch_NODE.h:215
@ UWUFETCH_NODE_STATUS_CHANGE_TRIGGER_RX_BUT_HN_NO_DATA_TO_TX
Definition uwUFetch_NODE.h:228
@ UWFETCH_NODE_STATUS_CHANGE_PACKET_FOR_ANOTHER_NODE
Definition uwUFetch_NODE.h:196
@ UWFETCH_NODE_STATUS_CHANGE_PACKET_ERROR
Definition uwUFetch_NODE.h:195
@ UWUFETCH_NODE_STATUS_CHANGE_BEACON_TX
Definition uwUFetch_NODE.h:209
@ UWUFETCH_NODE_STATUS_CHANGE_HN_FINISH_TX_DATA_PCK_TO_AUV_RETURN_CBEACON_TX
Definition uwUFetch_NODE.h:231
@ UWUFETCH_NODE_STATUS_CHANGE_HN_TX_ALL_DATA_TO_AUV
Definition uwUFetch_NODE.h:229
@ UWUFETCH_NODE_STATUS_CHANGE_MAX_PROBE_RX_PROBE_TO_NOT_EXPIRED
Definition uwUFetch_NODE.h:214
Packet * curr_CBEACON_NODE_pck_rx
Definition uwUFetch_NODE.h:2246
double Tpoll
Definition uwUFetch_NODE.h:2394
int getProbePckRx_HN()
Definition uwUFetch_NODE.h:1365
double rx_CBEACON_finish_time
Definition uwUFetch_NODE.h:2134
bool rxBEACONEnabled
Definition uwUFetch_NODE.h:2226
bool dataAlreadyTransmitted
Definition uwUFetch_NODE.h:2221
int getTotalRtsPckTx_by_HN()
Definition uwUFetch_NODE.h:1673
double rx_TRIGGER_finish_HN_time
Definition uwUFetch_NODE.h:2331
double Tprobe
Definition uwUFetch_NODE.h:2175
int MAX_PCK_HN_WANT_RX_FROM_NODE
Definition uwUFetch_NODE.h:2276
int getTotalProbePckTx_by_NODE()
Definition uwUFetch_NODE.h:1897
bool txCBEACONEnabled
Definition uwUFetch_NODE.h:2470
double RTT
Definition uwUFetch_NODE.h:2180
Packet * curr_POLL_HN_pck_tx
Definition uwUFetch_NODE.h:2486
int getCtsPckRx_HN()
Definition uwUFetch_NODE.h:1695
static std::map< UWUFETCH_NODE_STATUS_CHANGE, std::string > statusChange
Definition uwUFetch_NODE.h:2541
static std::map< UWUFETCH_NODE_STATUS, std::string > statusInfo
Definition uwUFetch_NODE.h:2538
int n_tot_CBEACON_pck_rx_corr_by_NODE
Definition uwUFetch_NODE.h:2158
int mac_addr_AUV_in_CTS
Definition uwUFetch_NODE.h:2412
int PRINT_TRANSITIONS_INT
Definition uwUFetch_NODE.h:2267
virtual void state_DATA_NODE_first_tx()
Definition uwUFetch_NODE_SENSOR.cpp:2226
void incrTotalProbePckRx_corrupted_HN()
Definition uwUFetch_NODE.h:1397
void incrTotalProbePckTx_by_NODE()
Definition uwUFetch_NODE.h:1885
virtual void state_POLL_tx()
Definition uwUFetch_NODE_HEADNODE.cpp:2686
Packet * curr_DATA_HN_pck_tx
Definition uwUFetch_NODE.h:2498
int getPollPckRx_by_NODE()
Definition uwUFetch_NODE.h:1919
double T_START_PROCEDURE_HN_NODE
Definition uwUFetch_NODE.h:2256
int n_tot_CTS_pck_rx_by_HN
Definition uwUFetch_NODE.h:2375
std::queue< int > Q_data_source_SN
Definition uwUFetch_NODE.h:2506
virtual void state_wait_POLL()
Definition uwUFetch_NODE_SENSOR.cpp:2048
std::queue< Packet * > Q_data
Definition uwUFetch_NODE.h:2250
virtual void CtsTOExpired()
Definition uwUFetch_NODE_HEADNODE.cpp:1832
virtual void state_RTS_tx()
Definition uwUFetch_NODE_HEADNODE.cpp:1635
virtual int command(int argc, const char *const *argv)
Definition uwUFetch_NODE_SENSOR.cpp:278
int max_data_HN_can_tx
Definition uwUFetch_NODE.h:2414
uwUFetch_POLL_timer POLL_timer
Definition uwUFetch_NODE.h:2105
int n_PROBE_pck_tx_by_NODE
Definition uwUFetch_NODE.h:2206
int n_tot_TRIGGER_pck_rx_by_HN
Definition uwUFetch_NODE.h:2366
virtual void PROBE_tx()
Definition uwUFetch_NODE_SENSOR.cpp:2029
int mac_addr_NODE_in_data
Definition uwUFetch_NODE.h:2400
std::queue< Packet * > Q_data_HN
Definition uwUFetch_NODE.h:2504
double Tdata_HN_pck
Definition uwUFetch_NODE.h:2418
int n_DATA_pck_tx_by_HN
Definition uwUFetch_NODE.h:2457
void incrTotalRtsPckTx_by_HN()
Definition uwUFetch_NODE.h:1661
uwUFetch_CTS_timer CTS_timer
Definition uwUFetch_NODE.h:2296
void incrPollPckRx_by_NODE()
Definition uwUFetch_NODE.h:1907
double rx_CTS_finish_HN_time
Definition uwUFetch_NODE.h:2340
int n_tot_TRIGGER_pck_rx_corr_by_HN
Definition uwUFetch_NODE.h:2369
std::queue< int > Q_probbed_n_pcks_NODE_want_tx_HN
Definition uwUFetch_NODE.h:2513
virtual void RTS_tx()
Definition uwUFetch_NODE_HEADNODE.cpp:1763
double rx_PROBE_finish_HN_time
Definition uwUFetch_NODE.h:2310
Packet * curr_DATA_HN_pck_rx
Definition uwUFetch_NODE.h:2488
double tx_CBEACON_finish_HN_time
Definition uwUFetch_NODE.h:2325
int n_RTS_pck_tx_by_HN
Definition uwUFetch_NODE.h:2451
virtual void waitForUser()
Definition uwUFetch_NODE_SENSOR.cpp:2969
void incrTotalCtsPckRx_corrupted_HN()
Definition uwUFetch_NODE.h:1727
Packet * curr_CTS_HN_pck_rx
Definition uwUFetch_NODE.h:2496
Packet * curr_DATA_NODE_pck_tx
Definition uwUFetch_NODE.h:2244
virtual void state_DATA_NODE_tx()
Definition uwUFetch_NODE_SENSOR.cpp:2301
void incrTotalCBeaconPckTx_by_HN()
Definition uwUFetch_NODE.h:1551
int getCBeaconPckTx_by_HN()
Definition uwUFetch_NODE.h:1541
virtual void POLL_rx()
Definition uwUFetch_NODE_SENSOR.cpp:2154
bool rxDATAEnabled
Definition uwUFetch_NODE.h:2468
bool print_transitions
Definition uwUFetch_NODE.h:2532
int getProbePckTx_by_NODE()
Definition uwUFetch_NODE.h:1875
virtual void refreshState(UWUFETCH_NODE_STATUS state)
Definition uwUFetch_NODE.h:883
int n_tot_BEACON_pck_tx_by_HN
Definition uwUFetch_NODE.h:2346
virtual void Phy2MacEndTx(const Packet *p)
Definition uwUFetch_NODE_SENSOR.cpp:1669
virtual void DataBeforeTxTOExpired()
Definition uwUFetch_NODE_SENSOR.cpp:2281
UWUFETCH_NODE_STATUS
Definition uwUFetch_NODE.h:171
@ UWUFETCH_NODE_STATUS_PROBE_RX
Definition uwUFetch_NODE.h:184
@ UWUFETCH_NODE_STATUS_WAIT_CBEACON_PACKET
Definition uwUFetch_NODE.h:188
@ UWUFETCH_NODE_STATUS_POLL_TX
Definition uwUFetch_NODE.h:185
@ UWUFETCH_NODE_STATUS_WAIT_CTS_PACKET
Definition uwUFetch_NODE.h:180
@ UWUFETCH_NODE_STATUS_CBEACON_RECEIVE
Definition uwUFetch_NODE.h:189
@ UWUFETCH_NODE_STATUS_TRIGGER_RECEIVE
Definition uwUFetch_NODE.h:178
@ UWUFETCH_NODE_STATUS_POLL_RECEIVE
Definition uwUFetch_NODE.h:176
@ UWUFETCH_NODE_STATUS_BEACON_RECEIVE
Definition uwUFetch_NODE.h:173
@ UWUFETCH_NODE_STATUS_CTS_RECEIVE
Definition uwUFetch_NODE.h:181
@ UWUFETCH_NODE_STATUS_WAIT_DATA_NODE
Definition uwUFetch_NODE.h:186
@ UWUFETCH_NODE_STATUS_WAIT_POLL_PACKET
Definition uwUFetch_NODE.h:175
@ UWUFETCH_NODE_STATUS_TRANSMIT_PROBE
Definition uwUFetch_NODE.h:174
@ UWUFETCH_NODE_STATUS_WAIT_PROBE_PACKET
Definition uwUFetch_NODE.h:183
@ UWUFETCH_NODE_STATUS_DATA_RX
Definition uwUFetch_NODE.h:187
@ UWUFETCH_NODE_STATUS_TRANSMIT_DATA
Definition uwUFetch_NODE.h:177
@ UWUFETCH_NODE_STATUS_TRANSMIT_BEACON
Definition uwUFetch_NODE.h:182
@ UWUFETCH_NODE_STATUS_IDLE
Definition uwUFetch_NODE.h:172
@ UWUFETCH_NODE_STATUS_RTS_TRANSMIT
Definition uwUFetch_NODE.h:179
void incrCtsPckRx_HN()
Definition uwUFetch_NODE.h:1683
int num_cbeacon_node_rx
Definition uwUFetch_NODE.h:2168
int n_tot_BEACON_pck_rx_corr_by_NODE
Definition uwUFetch_NODE.h:2139
Definition uwpolling_AUV.h:108
int mac_address_
Definition uwUFetch_NODE.h:92
int & n_pcks_NODE_want_tx()
Definition uwUFetch_NODE.h:109
double backoff_time_
Definition uwUFetch_NODE.h:93
int n_pcks_NODE_want_tx_
Definition uwUFetch_NODE.h:90
uint & Id_node()
Definition uwUFetch_NODE.h:100
int & mac_address()
Definition uwUFetch_NODE.h:127
double & backoff_time()
Definition uwUFetch_NODE.h:118
uint id_node_
Definition uwUFetch_NODE.h:89
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