44#include <condition_variable>
74 virtual void recv(Packet *p);
102 virtual int command(
int argc,
const char *
const *argv);
110 virtual void startTx(Packet *p);
118 virtual void startRx(Packet *p);
125 virtual void endRx(Packet *p);
131 virtual void start();
153 virtual std::string
findCommand(std::vector<char>::iterator beg_it,
154 std::vector<char>::iterator end_it,
155 std::vector<char>::iterator &cmd_b,
156 std::vector<char>::iterator &cmd_e);
161 virtual bool parseCommand(std::vector<char>::iterator cmd_b,
162 std::vector<char>::iterator cmd_e, std::string &
rx_payload);
167 virtual std::string
buildSend(
const std::string &payload,
int dest);
Definition uwmodemcsa.h:53
virtual void endRx(Packet *p)
Definition uwmodemcsa.cpp:269
std::string rx_payload
Definition uwmodemcsa.h:201
virtual void startRx(Packet *p)
Definition uwmodemcsa.cpp:261
ModemState status
Definition uwmodemcsa.h:182
virtual bool parseCommand(std::vector< char >::iterator cmd_b, std::vector< char >::iterator cmd_e, std::string &rx_payload)
Definition uwmodemcsa.cpp:417
virtual std::string findCommand(std::vector< char >::iterator beg_it, std::vector< char >::iterator end_it, std::vector< char >::iterator &cmd_b, std::vector< char >::iterator &cmd_e)
Definition uwmodemcsa.cpp:394
static const size_t MAX_TX_STATUS_POLL
Definition uwmodemcsa.h:213
virtual void recv(Packet *p)
Definition uwmodemcsa.cpp:97
std::condition_variable status_cv
Definition uwmodemcsa.h:189
virtual int command(int argc, const char *const *argv)
Definition uwmodemcsa.cpp:146
virtual void receivingData()
Definition uwmodemcsa.cpp:353
std::atomic< bool > transmitting
Definition uwmodemcsa.h:195
virtual void start()
Definition uwmodemcsa.cpp:277
virtual void stop()
Definition uwmodemcsa.cpp:307
void startRealRx(const std::string &cmd)
Definition uwmodemcsa.cpp:449
virtual std::string buildSend(const std::string &payload, int dest)
Definition uwmodemcsa.cpp:248
static const std::chrono::milliseconds MODEM_TIMEOUT
Definition uwmodemcsa.h:207
virtual int recvSyncClMsg(ClMessage *m)
Definition uwmodemcsa.cpp:168
std::condition_variable tx_queue_cv
Definition uwmodemcsa.h:191
virtual double getTxDuration(Packet *p)
Definition uwmodemcsa.cpp:196
std::mutex tx_queue_m
Definition uwmodemcsa.h:187
std::atomic< bool > receiving
Definition uwmodemcsa.h:193
virtual void transmittingData()
Definition uwmodemcsa.cpp:328
void createRxPacket(Packet *p)
Definition uwmodemcsa.cpp:466
std::thread tx_thread
Definition uwmodemcsa.h:199
std::thread rx_thread
Definition uwmodemcsa.h:197
std::unique_ptr< UwConnector > p_connector
Definition uwmodemcsa.h:180
std::string del_e
Definition uwmodemcsa.h:205
virtual ~UwModemCSA()
Definition uwmodemcsa.cpp:91
virtual void startTx(Packet *p)
Definition uwmodemcsa.cpp:205
std::mutex status_m
Definition uwmodemcsa.h:185
static const double EPSILON_S
Definition uwmodemcsa.h:210
std::string del_b
Definition uwmodemcsa.h:203
UwModemCSA()
Definition uwmodemcsa.cpp:70
Generic class that provides a method to interface with the devices. Will be specialized for,...
ModemState
Definition uwevologicss2cmodem.h:63
Header of the main class that implements the general interface between DESERT and real acoustic modem...
ModemState
Definition uwmodemcsa.h:50