Goby3
3.1.5a
2024.05.23
|
#include <goby/acomms/modemdriver/benthos_atm900_driver.h>
Public Member Functions | |
BenthosATM900Driver () | |
void | startup (const protobuf::DriverConfig &cfg) override |
Starts the modem driver. Must be called before poll(). More... | |
void | shutdown () override |
Shuts down the modem driver. More... | |
void | do_work () override |
Allows the modem driver to do its work. More... | |
void | handle_initiate_transmission (const protobuf::ModemTransmission &m) override |
Virtual initiate_transmission method. Typically connected to MACManager::signal_initiate_transmission() using bind(). More... | |
Public Member Functions inherited from goby::acomms::ModemDriverBase | |
virtual void | update_cfg (const protobuf::DriverConfig &cfg) |
Update configuration while running (not required to be implemented) More... | |
virtual | ~ModemDriverBase () |
Public Destructor. More... | |
virtual void | report (protobuf::ModemReport *report) |
Returns report including modem availability and signal quality (if known) More... | |
int | driver_order () |
Integer for the order in which this driver was started (first driver started is 1, second driver is 2, etc.) More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from goby::acomms::ModemDriverBase | |
static std::string | driver_name (const protobuf::DriverConfig &cfg) |
Unique driver name (e.g. UDP_MULTICAST::1 or my_driver_name::2) More... | |
Public Attributes inherited from goby::acomms::ModemDriverBase | |
boost::signals2::signal< void(const protobuf::ModemTransmission &message)> | signal_receive |
Called when a binary data transmission is received from the modem. More... | |
boost::signals2::signal< void(const protobuf::ModemTransmission &message)> | signal_transmit_result |
Called when a transmission is completed. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
Protected Member Functions inherited from goby::acomms::ModemDriverBase | |
ModemDriverBase () | |
Constructor. More... | |
void | modem_write (const std::string &out) |
write a line to the serial port. More... | |
bool | modem_read (std::string *in) |
read a line from the serial port, including end-of-line character(s) More... | |
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() More... | |
void | modem_close () |
closes the serial port. Use modem_start to reopen the port. More... | |
const std::string & | glog_out_group () const |
const std::string & | glog_in_group () const |
util::LineBasedInterface & | modem () |
use for direct access to the modem More... | |
Static Protected Attributes inherited from goby::acomms::ModemDriverBase | |
static std::atomic< int > | count_ |
Definition at line 56 of file benthos_atm900_driver.h.
goby::acomms::BenthosATM900Driver::BenthosATM900Driver | ( | ) |
|
overridevirtual |
Allows the modem driver to do its work.
Should be called regularly to perform the work of the driver as the driver does not run in its own thread. This allows us to guarantee that no signals are called except inside this method. Does not block.
Implements goby::acomms::ModemDriverBase.
|
overridevirtual |
Virtual initiate_transmission method. Typically connected to MACManager::signal_initiate_transmission() using bind().
m | ModemTransmission (defined in acomms_modem_message.proto) containing the details of the transmission to be started. This may contain data frames. If not, data will be requested when the driver calls the data request signal (ModemDriverBase::signal_data_request) |
Implements goby::acomms::ModemDriverBase.
|
overridevirtual |
Shuts down the modem driver.
Implements goby::acomms::ModemDriverBase.
|
overridevirtual |
Starts the modem driver. Must be called before poll().
cfg | Startup configuration for the driver and modem. DriverConfig is defined in acomms_driver_base.proto. Derived classes can define extensions (see https://developers.google.com/protocol-buffers/docs/proto) to DriverConfig to handle modem specific configuration. |
Implements goby::acomms::ModemDriverBase.