Goby Underwater Autonomy Project
Series: 1.1, revision: 163, released on 2013-02-06 14:23:27 -0500
|
Objects pertaining to acoustic communications (acomms) More...
Namespaces | |
namespace | protobuf |
Contains Google Protocol Buffers messages and helper functions. See specific .proto files for definition of the actual messages (e.g. modem_message.proto). | |
Classes | |
class | MACManager |
provides an API to the goby-acomms MAC library. More... | |
class | DCCLCodec |
provides an API to the Dynamic CCL Codec. More... | |
class | DCCLException |
Exception class for libdccl. More... | |
class | DCCLMessageVal |
defines a DCCL value More... | |
class | ABCDriver |
provides an API to the imaginary ABC modem (as an example how to write drivers) More... | |
class | ModemDriverBase |
provides an abstract base class for acoustic modem drivers. This is subclassed by the various drivers for different manufacturers' modems. More... | |
class | MMDriver |
provides an API to the WHOI Micro-Modem driver More... | |
class | QueueManager |
provides an API to the goby-acomms Queuing Library. More... | |
Typedefs | |
typedef boost::function< void(DCCLMessageVal &)> | AlgFunction1 |
boost::function for a function taking a single DCCLMessageVal reference. Used for algorithm callbacks. | |
typedef boost::function< void(DCCLMessageVal &, const std::vector < DCCLMessageVal > &)> | AlgFunction2 |
boost::function for a function taking a dccl::MessageVal reference, and the MessageVal of a second part of the message. Used for algorithm callbacks. | |
Enumerations | |
enum | DCCLHeaderPart { HEAD_CCL_ID = 0, HEAD_DCCL_ID = 1, HEAD_TIME = 2, HEAD_SRC_ID = 3, HEAD_DEST_ID = 4, HEAD_MULTIMESSAGE_FLAG = 5, HEAD_BROADCAST_FLAG = 6, HEAD_UNUSED = 7 } |
enum | DCCLHeaderBits { HEAD_CCL_ID_SIZE = 8, HEAD_DCCL_ID_SIZE = 9, HEAD_TIME_SIZE = 17, HEAD_SRC_ID_SIZE = 5, HEAD_DEST_ID_SIZE = 5, HEAD_FLAG_SIZE = 1, HEAD_UNUSED_SIZE = 2 } |
enum | DCCLType { dccl_static, dccl_bool, dccl_int, dccl_float, dccl_enum, dccl_string, dccl_hex } |
Enumeration of DCCL types used for sending messages. dccl_enum and dccl_string primarily map to cpp_string, dccl_bool to cpp_bool, dccl_int to cpp_long, dccl_float to cpp_double. More... | |
enum | DCCLCppType { cpp_notype, cpp_bool, cpp_string, cpp_long, cpp_double } |
Enumeration of C++ types used in DCCL. More... | |
enum | { POWER2_BITS_IN_BYTE = 3 } |
enum | { POWER2_NIBS_IN_BYTE = 1 } |
Functions | |
std::string | to_str (DCCLHeaderPart p) |
void | hex_decode (const std::string &in, std::string *out) |
std::string | hex_decode (const std::string &in) |
void | hex_encode (const std::string &in, std::string *out) |
std::string | hex_encode (const std::string &in) |
std::ostream & | operator<< (std::ostream &out, const google::protobuf::Message &msg) |
void | bind (ModemDriverBase &driver, QueueManager &queue_manager) |
binds the driver link-layer callbacks to the QueueManager | |
void | bind (MACManager &mac, ModemDriverBase &driver) |
void | bind (ModemDriverBase &driver, QueueManager &queue_manager, MACManager &mac) |
bind all three (shortcut to calling the other three bind functions) | |
template<typename Signal , typename Slot > | |
void | connect (Signal *signal, Slot slot) |
connect a signal to a function slot (non-member of a class) | |
template<typename Signal , typename Obj , typename A1 > | |
void | connect (Signal *signal, Obj *obj, void(Obj::*mem_func)(A1)) |
connect a signal to a member function with one argument | |
template<typename Signal , typename Obj , typename A1 , typename A2 > | |
void | connect (Signal *signal, Obj *obj, void(Obj::*mem_func)(A1, A2)) |
connect a signal to a member function with two arguments | |
template<typename Signal , typename Obj , typename A1 , typename A2 , typename A3 > | |
void | connect (Signal *signal, Obj *obj, void(Obj::*mem_func)(A1, A2, A3)) |
connect a signal to a member function with three arguments | |
template<typename Value > | |
std::ostream & | operator<< (std::ostream &out, const std::map< std::string, Value > &m) |
use this for displaying a human readable version | |
template<typename Value > | |
std::ostream & | operator<< (std::ostream &out, const std::multimap< std::string, Value > &m) |
std::ostream & | operator<< (std::ostream &out, const std::set< unsigned > &s) |
use this for displaying a human readable version of this STL object | |
std::ostream & | operator<< (std::ostream &out, const std::set< std::string > &s) |
use this for displaying a human readable version of this STL object | |
std::ostream & | operator<< (std::ostream &out, const DCCLCodec &d) |
outputs information about all available messages (same as std::string summary()) | |
unsigned | bits2bytes (unsigned bits) |
unsigned | bytes2bits (unsigned bytes) |
unsigned | bytes2nibs (unsigned bytes) |
unsigned | nibs2bytes (unsigned nibs) |
std::string | type_to_string (DCCLType type) |
std::string | type_to_string (DCCLCppType type) |
void | bitset2string (const boost::dynamic_bitset< unsigned char > &body_bits, std::string &body) |
void | string2bitset (boost::dynamic_bitset< unsigned char > &body_bits, const std::string &body) |
std::ostream & | operator<< (std::ostream &out, const DCCLMessage &message) |
std::ostream & | operator<< (std::ostream &out, const DCCLPublish &publish) |
std::ostream & | operator<< (std::ostream &os, const acomms::DCCLMessageVal &mv) |
std::ostream & | operator<< (std::ostream &os, const std::vector< acomms::DCCLMessageVal > &vm) |
std::ostream & | operator<< (std::ostream &out, const DCCLMessageVar &m) |
std::ostream & | operator<< (std::ostream &os, const Queue &oq) |
std::ostream & | operator<< (std::ostream &out, const QueueManager &d) |
outputs information about all available messages (same as std::string summary()) | |
Variables | |
const unsigned | BITS_IN_BYTE = 8 |
const unsigned | NIBS_IN_BYTE = 2 |
const int | BROADCAST_ID = 0 |
special modem id for the broadcast destination - no one is assigned this address. Analogous to 192.168.1.255 on a 192.168.1.0 subnet | |
const int | QUERY_DESTINATION_ID = -1 |
special modem id used internally to goby-acomms for indicating that the MAC layer (libamac) is agnostic to the next destination. The next destination is thus set by the data provider (typically libqueue). | |
const unsigned char | DCCL_CCL_HEADER = 32 |
const double | NaN = std::numeric_limits<double>::quiet_NaN() |
const unsigned | DCCL_NUM_HEADER_BYTES = 6 |
const unsigned | DCCL_NUM_HEADER_PARTS = 8 |
const std::string | DCCL_HEADER_NAMES [] |
const unsigned | MIN_ID = 1 |
const unsigned | MAX_ID = 1 << HEAD_DCCL_ID_SIZE |
const unsigned | MULTIMESSAGE_MASK = 1 << 7 |
const unsigned | BROADCAST_MASK = 1 << 6 |
const unsigned | VAR_ID_MASK = 0xFF ^ MULTIMESSAGE_MASK ^ BROADCAST_MASK |
const unsigned | USER_FRAME_NEXT_SIZE_BYTES = 1 |
const boost::posix_time::time_duration | ON_DEMAND_SKEW = boost::posix_time::seconds(1) |
Objects pertaining to acoustic communications (acomms)
typedef boost::function<void (DCCLMessageVal&)> goby::acomms::AlgFunction1 |
boost::function for a function taking a single DCCLMessageVal reference. Used for algorithm callbacks.
Think of this as a generalized version of a function pointer (void (*)(DCCLMessageVal&)). See http://www.boost.org/doc/libs/1_34_0/doc/html/function.html for more on boost:function.
Definition at line 36 of file message_algorithms.h.
typedef boost::function<void (DCCLMessageVal&, const std::vector<DCCLMessageVal>&)> goby::acomms::AlgFunction2 |
boost::function for a function taking a dccl::MessageVal reference, and the MessageVal of a second part of the message. Used for algorithm callbacks.
Think of this as a generalized version of a function pointer (void (*)(DCCLMessageVal&, const DCCLMessageVal&). See http://www.boost.org/doc/libs/1_34_0/doc/html/function.html for more on boost:function.
Definition at line 45 of file message_algorithms.h.
Enumeration of C++ types used in DCCL.
cpp_notype |
not one of the C++ types used in DCCL |
cpp_bool |
C++ bool |
cpp_string |
C++ std::string |
cpp_long |
C++ long |
cpp_double |
C++ double |
Definition at line 46 of file dccl_constants.h.
Enumeration of DCCL types used for sending messages. dccl_enum and dccl_string primarily map to cpp_string, dccl_bool to cpp_bool, dccl_int to cpp_long, dccl_float to cpp_double.
Definition at line 37 of file dccl_constants.h.
void goby::acomms::bind | ( | MACManager & | mac, |
ModemDriverBase & | driver | ||
) | [inline] |
const std::string goby::acomms::DCCL_HEADER_NAMES[] |
{ "_ccl_id", "_id", "_time", "_src_id", "_dest_id", "_multimessage_flag", "_broadcast_flag", "_unused", }
Definition at line 59 of file acomms_constants.h.