40#ifndef Uwpolling_HDR_SINK_H
41#define Uwpolling_HDR_SINK_H
55#define UWPOLLING_SINK_DROP_REASON_BUFFER_FULL \
57#define UWPOLLING_SINK_DROP_REASON_ERROR "DERR"
58#define UWPOLLING_SINK_DROP_REASON_UNKNOWN_TYPE \
60#define UWPOLLING_SINK_DROP_REASON_WRONG_RECEIVER \
62#define UWPOLLING_SINK_DROP_REASON_WRONG_STATE \
64#define UWPOLLING_SINK_DROP_REASON_PACKET_NOT_FOR_ME \
66#define UWPOLLING_SINK_DROP_REASON_IMINLIST_NOT_POLLED \
69#define UWPOLLING_SINK_DROP_REASON_NOT_POLLED \
96 virtual int command(
int argc,
const char *
const *argv);
359 virtual void expire(Event *e);
390 virtual void expire(Event *e);
597 virtual void txAck();
630 inline unsigned long int
633 unsigned long int timestamp =
634 (
unsigned long int) (std::chrono::duration_cast<
635 std::chrono::milliseconds>(
636 std::chrono::system_clock::now().time_since_epoch())
703 static map<Uwpolling_SINK::UWPOLLING_SINK_STATUS, string>
705 static map<Uwpolling_SINK::UWPOLLING_SINK_REASON, string>
707 static map<Uwpolling_SINK::UWPOLLING_PKT_TYPE, string>
Definition uwpolling_SINK.h:336
virtual ~BackOffTimer()
Definition uwpolling_SINK.h:350
BackOffTimer(Uwpolling_SINK *m)
Definition uwpolling_SINK.h:342
virtual void expire(Event *e)
Definition uwpolling_SINK.cpp:193
Definition uwpolling_SINK.h:367
virtual ~Rx_Data_Timer()
Definition uwpolling_SINK.h:381
virtual void expire(Event *e)
Definition uwpolling_SINK.cpp:204
Rx_Data_Timer(Uwpolling_SINK *m)
Definition uwpolling_SINK.h:373
Definition uwpolling_SINK.h:154
virtual ~Uwpolling_SINK_Timer()
Definition uwpolling_SINK.h:174
Uwpolling_SINK_Timer(Uwpolling_SINK *m)
Definition uwpolling_SINK.h:160
bool isFrozen()
Definition uwpolling_SINK.h:265
double start_time
Definition uwpolling_SINK.h:320
bool isActive()
Definition uwpolling_SINK.h:275
virtual void unFreeze()
Definition uwpolling_SINK.h:198
bool isRunning()
Definition uwpolling_SINK.h:245
double getDuration()
Definition uwpolling_SINK.h:314
int getCounter()
Definition uwpolling_SINK.h:304
void incrCounter()
Definition uwpolling_SINK.h:294
int counter
Definition uwpolling_SINK.h:322
bool isExpired()
Definition uwpolling_SINK.h:255
virtual void freeze()
Definition uwpolling_SINK.h:182
virtual void schedule(double val)
Definition uwpolling_SINK.h:222
void resetCounter()
Definition uwpolling_SINK.h:285
double left_duration
Definition uwpolling_SINK.h:321
Uwpolling_SINK *UWPOLLING_TIMER_STATUS timer_status
Definition uwpolling_SINK.h:325
bool isIdle()
Definition uwpolling_SINK.h:235
virtual void stop()
Definition uwpolling_SINK.h:211
Definition uwpolling_SINK.h:76
int max_payload
Definition uwpolling_SINK.h:727
double BOffTime
Definition uwpolling_SINK.h:664
static map< Uwpolling_SINK::UWPOLLING_PKT_TYPE, string > pkt_type_info
Definition uwpolling_SINK.h:708
Packet * curr_data_pkt
Definition uwpolling_SINK.h:693
virtual void refreshReason(UWPOLLING_SINK_REASON reason)
Definition uwpolling_SINK.h:443
uint n_curr_rx_pkts
Definition uwpolling_SINK.h:675
virtual void stateWaitData()
Definition uwpolling_SINK.cpp:467
virtual void BackOffTimerExpired()
Definition uwpolling_SINK.cpp:343
UWPOLLING_PKT_TYPE
Definition uwpolling_SINK.h:118
@ UWPOLLING_DATA_PKT
Definition uwpolling_SINK.h:119
@ UWPOLLING_ACK_PKT
Definition uwpolling_SINK.h:123
@ UWPOLLING_TRIGGER_PKT
Definition uwpolling_SINK.h:121
@ UWPOLLING_POLL_PKT
Definition uwpolling_SINK.h:120
@ UWPOLLING_PROBE_PKT
Definition uwpolling_SINK.h:122
virtual void stateRxData()
Definition uwpolling_SINK.cpp:480
bool triggerEnabled
Definition uwpolling_SINK.h:658
void incrDuplicatedPkt()
Definition uwpolling_SINK.h:542
int n_run
Definition uwpolling_SINK.h:719
UWPOLLING_SINK_STATUS prev_state
Definition uwpolling_SINK.h:701
unsigned long int getEpoch()
Definition uwpolling_SINK.h:631
virtual void refreshState(UWPOLLING_SINK_STATUS state)
Definition uwpolling_SINK.h:453
void incrTriggerReceived()
Definition uwpolling_SINK.h:481
void incrTriggerDropped()
Definition uwpolling_SINK.h:490
virtual int crLayCommand(ClMessage *m)
Definition uwpolling_SINK.cpp:184
Packet * curr_trigger_pkt
Definition uwpolling_SINK.h:695
uint16_t expected_last_id
Definition uwpolling_SINK.h:682
uint sink_id
Definition uwpolling_SINK.h:648
virtual void incrAckSent()
Definition uwpolling_SINK.h:472
static bool initialized
Definition uwpolling_SINK.h:650
virtual double getBackOffTime()
Definition uwpolling_SINK.cpp:329
bool first_rx_pkt
Definition uwpolling_SINK.h:688
int print_stats
Definition uwpolling_SINK.h:717
int AUV_mac_addr
Definition uwpolling_SINK.h:666
int ack_enabled
Definition uwpolling_SINK.h:722
double T_guard
Definition uwpolling_SINK.h:726
virtual void initInfo()
Definition uwpolling_SINK.cpp:643
double T_data_gurad
Definition uwpolling_SINK.h:645
std::ofstream fout
Definition uwpolling_SINK.h:713
virtual void stateIdle()
Definition uwpolling_SINK.cpp:271
virtual void txAck()
Definition uwpolling_SINK.cpp:634
UWPOLLING_SINK_STATUS
Definition uwpolling_SINK.h:108
@ UWPOLLING_SINK_STATUS_WAIT_DATA
Definition uwpolling_SINK.h:112
@ UWPOLLING_SINK_STATUS_RX_DATA
Definition uwpolling_SINK.h:113
@ UWPOLLING_SINK_STATUS_TX_ACK
Definition uwpolling_SINK.h:114
@ UWPOLLING_SINK_STATUS_TX_PROBE
Definition uwpolling_SINK.h:111
@ UWPOLLING_SINK_STATUS_RX_TRIGGER
Definition uwpolling_SINK.h:110
@ UWPOLLING_SINK_STATUS_IDLE
Definition uwpolling_SINK.h:109
virtual void incrProbeSent()
Definition uwpolling_SINK.h:463
Packet * curr_ack_pkt
Definition uwpolling_SINK.h:696
virtual void Phy2MacEndTx(const Packet *p)
Definition uwpolling_SINK.cpp:454
virtual int command(int argc, const char *const *argv)
Definition uwpolling_SINK.cpp:150
Rx_Data_Timer rx_data_timer
Definition uwpolling_SINK.h:711
virtual void stateTxAck()
Definition uwpolling_SINK.cpp:621
static map< Uwpolling_SINK::UWPOLLING_SINK_STATUS, string > status_info
Definition uwpolling_SINK.h:704
int n_ack_sent
Definition uwpolling_SINK.h:673
virtual void stateRxTrigger()
Definition uwpolling_SINK.cpp:290
std::list< uint16_t > missing_id_list
Definition uwpolling_SINK.h:681
uint max_n_ack
Definition uwpolling_SINK.h:724
double T_in
Definition uwpolling_SINK.h:660
UWPOLLING_SINK_REASON
Definition uwpolling_SINK.h:127
@ UWPOLLING_SINK_REASON_RX_TRIGGER
Definition uwpolling_SINK.h:129
@ UWPOLLING_SINK_REASON_BACKOFF_TIMER_EXPIRED
Definition uwpolling_SINK.h:133
@ UWPOLLING_SINK_REASON_TX_PROBE
Definition uwpolling_SINK.h:131
@ UWPOLLING_SINK_REASON_WRONG_TYPE
Definition uwpolling_SINK.h:137
@ UWPOLLING_SINK_REASON_PKT_ERROR
Definition uwpolling_SINK.h:130
@ UWPOLLING_SINK_REASON_NOT_SET
Definition uwpolling_SINK.h:135
@ UWPOLLING_SINK_REASON_TX_ACK
Definition uwpolling_SINK.h:132
@ UWPOLLING_SINK_REASON_WRONG_STATE
Definition uwpolling_SINK.h:139
@ UWPOLLING_SINK_REASON_WRONG_RECEIVER
Definition uwpolling_SINK.h:138
@ UWPOLLING_SINK_REASON_RX_DATA_TIMER_EXPIRED
Definition uwpolling_SINK.h:134
@ UWPOLLING_SINK_REASON_MAX_DATA_RECEIVED
Definition uwpolling_SINK.h:136
@ UWPOLLING_SINK_REASON_RX_DATA
Definition uwpolling_SINK.h:128
int getProbeSent()
Definition uwpolling_SINK.h:500
Packet * curr_probe_pkt
Definition uwpolling_SINK.h:694
int getTriggerReceived()
Definition uwpolling_SINK.h:520
uint duplicate_pkts
Definition uwpolling_SINK.h:686
std::ofstream out_file_stats
Definition uwpolling_SINK.h:714
virtual void waitForUser()
Definition uwpolling_SINK.cpp:696
bool RxDataEnabled
Definition uwpolling_SINK.h:653
uint PROBE_uid
Definition uwpolling_SINK.h:691
UWPOLLING_SINK_REASON last_reason
Definition uwpolling_SINK.h:699
UWPOLLING_TIMER_STATUS
Definition uwpolling_SINK.h:143
@ UWPOLLING_IDLE
Definition uwpolling_SINK.h:144
@ UWPOLLING_RUNNING
Definition uwpolling_SINK.h:145
@ UWPOLLING_EXPIRED
Definition uwpolling_SINK.h:147
@ UWPOLLING_FROZEN
Definition uwpolling_SINK.h:146
int useAdaptiveTdata
Definition uwpolling_SINK.h:721
uint getDuplicatedPkt()
Definition uwpolling_SINK.h:536
virtual void addMissPkt2List(uint16_t n_pkts)
Definition uwpolling_SINK.cpp:607
UWPOLLING_SINK_STATUS curr_state
Definition uwpolling_SINK.h:700
uint16_t prev_expect_last_id
Definition uwpolling_SINK.h:684
int n_trigger_received
Definition uwpolling_SINK.h:670
virtual void RxDataTimerExpired()
Definition uwpolling_SINK.cpp:585
double backoff_tuner
Definition uwpolling_SINK.h:646
uint16_t last_rx
Definition uwpolling_SINK.h:678
uint16_t expected_id
Definition uwpolling_SINK.h:677
static map< Uwpolling_SINK::UWPOLLING_SINK_REASON, string > reason_info
Definition uwpolling_SINK.h:706
virtual void TxProbe()
Definition uwpolling_SINK.cpp:440
int modem_data_bit_rate
Definition uwpolling_SINK.h:728
virtual void stateTxProbe()
Definition uwpolling_SINK.cpp:358
int getAckSent()
Definition uwpolling_SINK.h:510
double T_data
Definition uwpolling_SINK.h:644
virtual ~Uwpolling_SINK()
Definition uwpolling_SINK.cpp:145
BackOffTimer backoff_timer
Definition uwpolling_SINK.h:710
int n_trigger_dropped
Definition uwpolling_SINK.h:671
Uwpolling_SINK()
Definition uwpolling_SINK.cpp:80
virtual void Phy2MacStartRx(const Packet *p)
Definition uwpolling_SINK.h:413
int sea_trial
Definition uwpolling_SINK.h:715
virtual void initPkt(UWPOLLING_PKT_TYPE pkt_type)
Definition uwpolling_SINK.cpp:379
int n_probe_sent
Definition uwpolling_SINK.h:668
double T_fin
Definition uwpolling_SINK.h:662
virtual void Phy2MacEndRx(Packet *p)
Definition uwpolling_SINK.cpp:215
virtual void Mac2PhyStartTx(Packet *p)
Definition uwpolling_SINK.cpp:448
int getTriggerDropped()
Definition uwpolling_SINK.h:530
bool send_ACK
Definition uwpolling_SINK.h:679
bool Triggered
Definition uwpolling_SINK.h:655
std::pair< int, int > counter
Definition uwinterference.h:53
Common structures and variables in the protocol.