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);
95 const xbee::protobuf::Config& config_extension()
100 void update_active_hub(
int hub_id, goby::acomms::protobuf::ModemTransmission* out);
101 void set_active_hub_peer(
int hub_id);
103 bool read_hub_info_file(jaiabot::protobuf::HubInfo& hub_info);
104 bool write_hub_info_file(
const jaiabot::protobuf::HubInfo& hub_info);
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};
void handle_initiate_transmission(const goby::acomms::protobuf::ModemTransmission &m) override
void startup(const goby::acomms::protobuf::DriverConfig &cfg) override
extern ::PROTOBUF_NAMESPACE_ID::internal::ExtensionIdentifier< ::google::protobuf::MessageOptions, ::PROTOBUF_NAMESPACE_ID::internal::MessageTypeTraits< ::jaia::MessageOptions >, 11, false > msg
extern ::PROTOBUF_NAMESPACE_ID::internal::ExtensionIdentifier< ::goby::acomms::protobuf::DriverConfig, ::PROTOBUF_NAMESPACE_ID::internal::MessageTypeTraits< ::xbee::protobuf::Config >, 11, false > config
const char * goby_driver_name()
goby::acomms::ModemDriverBase * goby_make_driver()