37#ifndef UWEVOLOGICSS2CSMODEM_H
38#define UWEVOLOGICSS2CSMODEM_H
45#include <condition_variable>
112 virtual void recv(Packet *p);
123 virtual int command(
int argc,
const char *
const *argv);
165 virtual void startTx(Packet *p);
173 virtual void startRx(Packet *p);
180 virtual void endRx(Packet *p);
186 virtual void start();
Definition uwevologicss2cmodem.h:66
std::mutex status_m
Definition uwevologicss2cmodem.h:239
int n_rx_failed
Definition uwevologicss2cmodem.h:275
static uint MAX_N_STATUS_QUERIES
Definition uwevologicss2cmodem.h:291
bool initLUT_
Definition uwevologicss2cmodem.h:284
TransmissionMode tx_mode
Definition uwevologicss2cmodem.h:271
TransmissionState tx_status
Definition uwevologicss2cmodem.h:235
void setFailedTx(Packet *p)
Definition uwevologicss2cmodem.cpp:970
virtual void recv(Packet *p)
Definition uwevologicss2cmodem.cpp:118
std::atomic< bool > transmitting
Definition uwevologicss2cmodem.h:253
std::condition_variable status_cv
Definition uwevologicss2cmodem.h:245
std::atomic< bool > im_status_updated
Definition uwevologicss2cmodem.h:255
int pend_source_level
Definition uwevologicss2cmodem.h:276
std::condition_variable tx_status_cv
Definition uwevologicss2cmodem.h:247
void updateStatus(UwInterpreterS2C::Response cmd)
Definition uwevologicss2cmodem.cpp:729
void createRxPacket(Packet *p)
Definition uwevologicss2cmodem.cpp:977
std::thread rx_thread
Definition uwevologicss2cmodem.h:257
UwEvoLogicsS2CModem()
Definition uwevologicss2cmodem.cpp:77
std::mutex tx_queue_m
Definition uwevologicss2cmodem.h:243
virtual void transmittingData()
Definition uwevologicss2cmodem.cpp:648
virtual void initializeLUT()
Definition uwevologicss2cmodem.cpp:251
static const std::chrono::seconds WAIT_DELIVERY_BURST
Definition uwevologicss2cmodem.h:269
bool source_level_change
Definition uwevologicss2cmodem.h:277
virtual void stop()
Definition uwevologicss2cmodem.cpp:624
static const std::chrono::milliseconds MODEM_TIMEOUT
Definition uwevologicss2cmodem.h:263
bool ack_mode
Definition uwevologicss2cmodem.h:272
std::string rx_payload
Definition uwevologicss2cmodem.h:261
std::atomic< bool > receiving
Definition uwevologicss2cmodem.h:251
Config
Definition uwevologicss2cmodem.h:71
TransmissionMode
Definition uwevologicss2cmodem.h:85
TransmissionState
Definition uwevologicss2cmodem.h:91
virtual void startRx(Packet *p)
Definition uwevologicss2cmodem.cpp:576
std::condition_variable tx_queue_cv
Definition uwevologicss2cmodem.h:249
virtual void receivingData()
Definition uwevologicss2cmodem.cpp:673
virtual void endRx(Packet *p)
Definition uwevologicss2cmodem.cpp:585
static const double EPSILON_S
Definition uwevologicss2cmodem.h:288
char txdur_token_separator_
Definition uwevologicss2cmodem.h:283
virtual void start()
Definition uwevologicss2cmodem.cpp:592
double virtual_time_ref
Definition uwevologicss2cmodem.h:273
ModemState status
Definition uwevologicss2cmodem.h:233
virtual ~UwEvoLogicsS2CModem()
Definition uwevologicss2cmodem.cpp:112
TransmissionDurationLUT size2dur_
Definition uwevologicss2cmodem.h:281
int curr_source_level
Definition uwevologicss2cmodem.h:274
std::string txdur_file_name_
Definition uwevologicss2cmodem.h:282
virtual bool configure(Config cmd)
Definition uwevologicss2cmodem.cpp:402
static const std::chrono::milliseconds WAIT_DELIVERY_IM
Definition uwevologicss2cmodem.h:266
virtual double getTxDuration(Packet *p)
Definition uwevologicss2cmodem.cpp:386
virtual int command(int argc, const char *const *argv)
Definition uwevologicss2cmodem.cpp:162
std::unique_ptr< UwInterpreterS2C > p_interpreter
Definition uwevologicss2cmodem.h:231
std::mutex tx_status_m
Definition uwevologicss2cmodem.h:241
std::thread tx_thread
Definition uwevologicss2cmodem.h:259
virtual int recvSyncClMsg(ClMessage *m)
Definition uwevologicss2cmodem.cpp:313
std::unique_ptr< UwConnector > p_connector
Definition uwevologicss2cmodem.h:229
virtual void startTx(Packet *p)
Definition uwevologicss2cmodem.cpp:464
Response
Definition uwinterpreters2c.h:70
Generic class that provides a method to interface with the devices. Will be specialized for,...
ModemState
Definition uwevologicss2cmodem.h:63
std::map< int, double > TransmissionDurationLUT
Definition uwevologicss2cmodem.h:57
Header of the interepreter class: this class is used ot translate form DESERT software to/from EvoLog...
Header of the main class that implements the general interface between DESERT and real acoustic modem...