Goby3 3.5.1
2026.06.04
Loading...
Searching...
No Matches

provides an API to the WHOI Micro-Modem driver More...

#include <goby/acomms/modem_driver.h>

Inheritance diagram for goby::acomms::MMDriver:
goby::acomms::ModemDriverBase

Public Member Functions

 MMDriver ()
 Default constructor.
 ~MMDriver () override
 Destructor.
void startup (const protobuf::DriverConfig &cfg) override
 Starts the driver.
void update_cfg (const protobuf::DriverConfig &cfg) override
 Update configuration while running (not required to be implemented).
void shutdown () override
 Stops the driver.
void do_work () override
 See ModemDriverBase::do_work().
void handle_initiate_transmission (const protobuf::ModemTransmission &m) override
 See ModemDriverBase::handle_initiate_transmission().
int clk_mode ()
 Current clock mode of the modem, necessary for synchronous navigation.
bool is_started () const
void set_silent (bool silent)
void write_single_cfg (const std::string &s)
Public Member Functions inherited from goby::acomms::ModemDriverBase
virtual ~ModemDriverBase ()
 Public Destructor.
virtual void report (protobuf::ModemReport *report)
 Returns report including modem availability and signal quality (if known).
int driver_order ()
 Integer for the order in which this driver was started (first driver started is 1, second driver is 2, etc.).

Static Public Member Functions

static unsigned packet_frame_count (int rate)
static unsigned packet_size (int rate)
static std::string driver_name (const protobuf::DriverConfig &cfg)
 Unique driver name (e.g. UDP_MULTICAST::1 or my_driver_name::2).

Additional Inherited Members

boost::signals2::signal< void(const protobuf::ModemTransmission &message)> signal_receive
 Called when a binary data transmission is received from the modem.
boost::signals2::signal< void(const protobuf::ModemTransmission &message)> signal_transmit_result
 Called when a transmission is completed.
boost::signals2::signal< void(protobuf::ModemTransmission *msg)> signal_data_request
 Called when the modem or modem driver needs data to send. The returned data should be stored in ModemTransmission::frame.
boost::signals2::signal< void(protobuf::ModemTransmission *msg_request)> signal_modify_transmission
 Called before the modem driver begins processing a transmission. This allows a third party to modify the parameters of the transmission (such as destination or rate) on the fly.
boost::signals2::signal< void(const protobuf::ModemRaw &msg)> signal_raw_incoming
 Called after any message is received from the modem by the driver. Used by the MACManager for auto-discovery of vehicles. Also useful for higher level analysis and debugging of the transactions between the driver and the modem.
boost::signals2::signal< void(const protobuf::ModemRaw &msg)> signal_raw_outgoing
 Called after any message is sent from the driver to the modem. Useful for higher level analysis and debugging of the transactions between the driver and the modem.
Protected Member Functions inherited from goby::acomms::ModemDriverBase
 ModemDriverBase ()
 Constructor.
void modem_write (const std::string &out)
 write a line to the serial port.
bool modem_read (std::string *in)
 read a line from the serial port, including end-of-line character(s)
void modem_start (const protobuf::DriverConfig &cfg, bool modem_connection_expected=true)
 start the physical connection to the modem (serial port, TCP, etc.). must be called before ModemDriverBase::modem_read() or ModemDriverBase::modem_write()
void modem_close ()
 closes the serial port. Use modem_start to reopen the port.
const std::string & glog_out_group () const
const std::string & glog_in_group () const
util::LineBasedInterfacemodem ()
 use for direct access to the modem
static std::atomic< int > count_

Detailed Description

provides an API to the WHOI Micro-Modem driver

Definition at line 57 of file mm_driver.h.

Constructor & Destructor Documentation

◆ MMDriver()

goby::acomms::MMDriver::MMDriver ( )

Default constructor.

◆ ~MMDriver()

goby::acomms::MMDriver::~MMDriver ( )
override

Destructor.

Member Function Documentation

◆ clk_mode()

int goby::acomms::MMDriver::clk_mode ( )
inline

Current clock mode of the modem, necessary for synchronous navigation.

Definition at line 82 of file mm_driver.h.

◆ do_work()

void goby::acomms::MMDriver::do_work ( )
overridevirtual

◆ handle_initiate_transmission()

void goby::acomms::MMDriver::handle_initiate_transmission ( const protobuf::ModemTransmission & m)
overridevirtual

◆ is_started()

bool goby::acomms::MMDriver::is_started ( ) const
inline

Definition at line 84 of file mm_driver.h.

◆ packet_frame_count()

unsigned goby::acomms::MMDriver::packet_frame_count ( int rate)
inlinestatic

Definition at line 86 of file mm_driver.h.

◆ packet_size()

unsigned goby::acomms::MMDriver::packet_size ( int rate)
inlinestatic

Definition at line 88 of file mm_driver.h.

◆ set_silent()

void goby::acomms::MMDriver::set_silent ( bool silent)

◆ shutdown()

void goby::acomms::MMDriver::shutdown ( )
overridevirtual

Stops the driver.

Implements goby::acomms::ModemDriverBase.

◆ startup()

void goby::acomms::MMDriver::startup ( const protobuf::DriverConfig & cfg)
overridevirtual

Starts the driver.

Parameters
cfgConfiguration for the Micro-Modem driver. DriverConfig is defined in acomms_driver_base.proto, and various extensions specific to the WHOI Micro-Modem are defined in acomms_mm_driver.proto.

Implements goby::acomms::ModemDriverBase.

◆ update_cfg()

void goby::acomms::MMDriver::update_cfg ( const protobuf::DriverConfig & cfg)
overridevirtual

Update configuration while running (not required to be implemented).

Reimplemented from goby::acomms::ModemDriverBase.

◆ write_single_cfg()

void goby::acomms::MMDriver::write_single_cfg ( const std::string & s)

The documentation for this class was generated from the following file: