25 #ifndef GOBY_ACOMMS_MODEMDRIVER_UDP_DRIVER_H
26 #define GOBY_ACOMMS_MODEMDRIVER_UDP_DRIVER_H
37 #include "goby/acomms/modemdriver/driver_base.h"
38 #include "goby/acomms/protobuf/driver_base.pb.h"
39 #include "goby/time/steady_clock.h"
64 class ModemTransmission;
79 void startup(
const goby::acomms::protobuf::DriverConfig& cfg)
override;
85 void start_send(
const goby::acomms::protobuf::ModemTransmission&
msg);
86 void send_complete(
const boost::system::error_code& error, std::size_t bytes_transferred);
88 void receive_complete(
const boost::system::error_code& error, std::size_t bytes_transferred);
89 void receive_message(
const goby::acomms::protobuf::ModemTransmission& m);
91 bool parse_modem_message(std::string in, goby::acomms::protobuf::ModemTransmission* out);
92 void serialize_modem_message(std::string* out,
93 const goby::acomms::protobuf::ModemTransmission& in);
100 void update_active_hub(
int hub_id, goby::acomms::protobuf::ModemTransmission* out);
101 void set_active_hub_peer(
int hub_id);
107 goby::acomms::protobuf::DriverConfig driver_cfg_;
112 std::set<unsigned> application_ack_ids_;
114 std::uint32_t next_frame_{0};
115 bool test_comms_{
false};
116 std::map<int32_t, goby::time::SteadyClock::time_point> send_time_{};
117 std::size_t number_of_bytes_to_send_{0};
119 bool have_active_hub_{
false};
120 int active_hub_id_{-1};
123 int hub_xbee_base_modem_id_{-1};
126 int hub_xbee_modem_id_{-1};