Note: Goby version 1 (shown here) is now considered obsolete. Please use version 2 for new projects, and consider upgrading old projects.

Goby Underwater Autonomy Project  Series: 1.1, revision: 163, released on 2013-02-06 14:23:27 -0500
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
goby::acomms Namespace Reference

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)

Detailed Description

Objects pertaining to acoustic communications (acomms)


Typedef Documentation

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 Type Documentation

Enumeration of C++ types used in DCCL.

Enumerator:
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.

Enumerator:
dccl_static 

<static>

dccl_bool 

<bool>

dccl_int 

<int>

dccl_float 

<float>

dccl_enum 

<enum>

dccl_string 

<string>

dccl_hex 

<hex>

Definition at line 37 of file dccl_constants.h.


Function Documentation

void goby::acomms::bind ( MACManager &  mac,
ModemDriverBase &  driver 
) [inline]

binds the MAC initiate transmission callback to the driver and the driver parsed message callback to the MAC

Definition at line 53 of file bind.h.


Variable Documentation

const std::string goby::acomms::DCCL_HEADER_NAMES[]
Initial value:
 { "_ccl_id",
                                                   "_id",
                                                   "_time",
                                                   "_src_id",
                                                   "_dest_id",
                                                   "_multimessage_flag",
                                                   "_broadcast_flag",
                                                   "_unused",
        }

Definition at line 59 of file acomms_constants.h.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends