Home
        Goby v2 - gobysoft
         Contents
1.                                                     goby acomms user  7  gt    file     executable    eee y DCCL Protobuf   proto  Acomms Application  e Y g      F  fw NS  a oe is  Lo LAN  PA goby acomms PEN Y    Ne Ei        S4 al lib A   y      ES   library   da El      S deci Oo DCCLCodec            ce y voy      Nx  gt  iy ou E        X    a I    E   7 1 l  Sd    en      I  a 1    library     QueueManager       queue y    Pa P    ra wor ES    A    7    library     a       o MACManager    7  A amac Y at  i gra er    ee          MMDriver     QA   library   DriverBase       xi modemdriver                            Ag       Modem H    S  N    ardware   NZ               executable    Modem Firmware                            Figure 1  Basic overview of goby acomms libraries     For a more detailed model  see the UML models section     2 2  dccl  Encoding and decoding    The Dynamic Compact Control Language  DCCL  provides a structure for defining messages to be sent through  an acoustic modem  The messages are configured in Google Protocol Buffers and are intended to be easily recon   figurable  unlike the original CCL framework used in the REMUS vehicles and others  for information on CCL  see    http    acomms  whoi  edu ccl      Unlike the encoder   decoder provided with Google Protocol Buffers  each field  which could be a primitive type  like double  int32  string or an user defined embedded message like CTDMessage  of a DCCL message can be  encoded using a DCCL built in
2.                     Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 29 goby  acomms  ModemDriverBase Class Reference 154       Implemented in goby  acomms  MMDriver  goby  moos  BluefinCommsDriver  goby  moos  UFldDriver  and goby     acomms  ABCDriver     Examples     acomms modemdriver driver_simple driver_simple cpp     17 29 2 3 bool goby  acomms  ModemDriverBase  modem_ read   std  string x in   protected     read a line from the serial port  including end of line character s     Parameters       in   pointer to string to store line                Returns  true if a line was available  false if no line available  Definition at line 72 of file driver_base cpp   17 29 2 4 void goby  acomms  ModemDriverBase  modem_start   const protobuf  DriverConfig 4 cfg    protected     start the physical connection to the modem  serial port  TCP  etc    must be called before ModemDriverBase    modem_read   or ModemDriverBase  modem_write      Parameters       cfg   Configuration including the parameters for the physical connection   protobuf  DriverConfig is  defined in acomms_driver_base proto                  Exceptions       ModemDriverException   Problem opening the physical connection                 Definition at line 92 of file driver_base cpp   17 29 2 5 void goby  acomms  ModemDriverBase  modem_write   const std  string     out    protected     write a line to the serial port     Parameters        gt     out   reference to string to write  Must already includ
3.            delimiter   string used to split lines          Definition at line 32 of file serial_client cpp     The documentation for this class was generated from the following files       goby util linebasedcomms serial_client h  e src util linebasedcomms serial_client cpp    17 46 goby  util  TCPClient Class Reference    provides a basic TCP client for line by line text based communications to a remote TCP server   include  lt goby util linebasedcomms tcp_client h gt   Inherits goby  util  LineBasedClient lt  ASIOAsyncReadStream  gt         Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 47 goby  util  TCPServer Class Reference 182       Public Member Functions    e TCPClient  const std  string  amp server  unsigned port  const std  string  amp delimiter   r n   int retry_interval 10   create a TCPClient   e boost  asio  ip  tcp  socket  amp  socket      e std  string local_endpoint     string representation of the local endpoint  e g  192 168 1 105 54230   e std  string remote_endpoint     string representation of the remote endpoint   e g  192 168  1 106 50000    Friends       class TCPConnection     class LineBasedConnection lt  boost  asio  ip  tcp  socket  gt     Additional Inherited Members   17 46 1 Detailed Description   provides a basic TCP client for line by line text based communications to a remote TCP server  Definition at line 36 of file tcp_client h    17 46 2 Constructor  amp  Destructor Documentation    17 46 21 goby  util  TCPClient  TCP
4.           ModemTransmission    src  1   dest  2   rate  0   type  DATA  ack_requested  true       HO          Application or other  Goby Modules       modemdriver1                   initiate_transmission      l  l   gt        signal_modify_transmission          WHOI Micro Modem Firmware                signal_data_request if ModemTransmission  frame_size    lt  1         ModemTransmission     src  1   dest  2   rate  0   type  DATA   ack_requested  true   max_num_frames  1   max_frame_bytes  32   frame   55555555555555555555555555555555                   ModemTransmission     src  1   dest  2   rate  0   type  DATA   max_num_frames  1   max_frame_bytes  32   ack_requested  true   frame   55555555555555555555555555555555    micromodem protobuf transmit_stat       number_frames_expected  1  number_frames_sent  1  packet_type  FSK_MINI  number_bytes  0          micromodem protobuf transmit_stat       number_frames_sent  1  packet_type  FSK  number_bytes  32         S                  ModemTransmission     src  2   dest  1   time  1316033117000000   time_source  MODEM_TIME   type  ACK   acked_frame  0    micromodem protobuf receive_stat     mode  RECEIVE_GOOD       ti             NI    IS       1       requested data          CCCYC      CACYC   K HAS 1   CATXP  aa     r   CATXF    lt  A a A te 1  i CAXST   kK A o EE   l  CADRQ   E A SEMEN GPUS Ue eens     CCTXD  with buffered data           CATXD    Knn i    ie                        signal_transmit_result  includes both CAXST    
5.      Taking all this into account  we form the first message  named GoToCommand  in the file two_message proto  see    Two Message example     We choose a dccl   id of 125 to avoid conflicting with the message from Scenario 1  simple proto  anda dccl       max_bytes of 32 bytes to again allow sending in the WHOI Micro Modem rate 0 packet     Now  for the second message in two_message proto  We want to receive the vehicle   s present position and its  current health  which can either be  good    low_battery  or  abort   We make a similar table to before                          message variable name   description type bounds  nav_x current vehicle position integer  0  10000    meters east of the  datum   nav_y current vehicle position integer  0  10000    meters north of the  datum   health vehicle state enumeration HEALTH_GOOD  HEAL   TH_LOW_BATTERY  or  HEALTH_ABORT             The resulting message  can be seen under Two Message example  An example of how to use this message is given    under two_message cpp     You can run analyze_dccl to view more information on your messages      gt  analyze_dccl  path to two_message proto    When   ran the above command   got     read in  two_message proto      Begin DCCLCodec      2 messages loaded     Begin GoToCommand    Actual maximum size of message  18 bytes   144 bits  dccl id head  8   Allowed maximum size of message  32 bytes   256 bits     Begin Header        End Header        Begin Body     GoToCommand  required int32 destina
6.     Definition at line 171 of file decl_field_codec_default h     The documentation for this class was generated from the following files       goby acomms dccl dccl_field_codec_default h    src acomms dccl dccl_field_codec_default cpp    17 6 goby  acomms  DCCLDefaultBytesCodec Class Reference    Provides an fixed length byte string encoder      include  lt goby acomms dccl dccl_field_codec_default h gt           Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 7 goby  acomms  DCCLDefaultEnumCodec Class Reference 107       Inheritance diagram for goby  acomms  DCCLDefaultBytesCodec     goby  acomms  DCCLFieldCodecBase    goby  acomms  DCCLFieldCodec  Selector lt  std  string  std   string  gt     goby  acomms  DCCLlypedField  Codec lt  std  string  gt     goby  acomms  DCCLDefault  BytesCodec       Additional Inherited Members  17 6 1 Detailed Description    Provides an fixed length byte string encoder   Definition at line 202 of file dccl_field_codec_default h     The documentation for this class was generated from the following files       goby acomms dccl dccl_field_codec_default h    src acomms dccl dccl_field_codec_default cpp    17 7 goby  acomms  DCCLDefaultEnumCodec Class Reference    Provides an enum encoder  This converts the enumeration to an integer  based on the enumeration index  not its  value  and uses DCCLDefaultNumericFieldCodec to encode the integer      include  lt goby acomms dcecl dccl_field_codec_default h gt        Inheritance diagra
7.     type    ACK  signal_receive        Figure 5  FSK  rate 0  data transmission    PSK  rate 2 shown  others are similar  data t    ransmission    FSK    Ke  Always present     Often present      Occasionally present  adv       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    6 4 WHOI Micro Modem Driver  MMDriver    47               ModemTransmission    src  1   dest  2   rate  2   type  DATA  ack_requested  true  frame   1111      64 chars                   ModemTransmission         rate  2   type  DATA  ack_requested  true  max_num_frames  3  max_frame_bytes  64  frame   1111      64 chars   frame   2222      64 chars                       Application or other  Goby Modules             a         ModemTransmission    src  1   dest  2   rate  2   type  DATA  max_num_frames  3  max_frame_bytes  64  ack_requested  true  frame   1111       frame   2222       micromodem protobuf transmit_stat       packet_type  PSK  number_bytes  128                                  ModemTransmission     src  2   dest  1   time  1316033124000000   time_source  MODEM_TIME   type  ACK   acked_frame  0   acked_frame  1    micromodem protobuf receive_stat     mode  RECEIVE_GOOD    packet_type  PSK_MINI                      Figure 6  PSK  rate 2 shown  others are similar  data transmission    Narrowband transponder LBL ping    modemdriver1             initiate_transmission       signal_modify_transmission    l  l   gt           modified transmission    ignal_data_request if ModemTransmi
8.    Inheritance diagram for goby  acomms  DCCLDefaultldentifierCodec         goby  acomms  DCCLFieldCodecBase    goby  acomms  DCCLFieldCodec  Selector lt  uint32  uint32  gt         goby  acomms  DCCLlypedField  Codec lt  uint32  gt     goby  acomms  DCCLDefault  IdentifierCodec       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 8 goby  acomms  DCCLDefaultidentifierCodec Class Reference 109       Protected Member Functions    e virtual Bitset encode       Encode an empty field   e virtual Bitset encode  const uint32  amp wire_value     Encode a non empty field   e virtual uint82 decode  Bitset xbits     Decode a field  If the field is empty  i e  was encoded using the zero argument encode     throw DCCLNullValue   Exception to indicate this     e virtual unsigned size       Calculate the size  in bits  of an empty field   e virtual unsigned size  const uint32  amp wire_value     Calculate the size  in bits  of a non empty field   e virtual unsigned max_size       Calculate maximum size of the field in bits   e virtual unsigned min_size       Calculate minimum size of the field in bits   e virtual void validate       Validate a field  Use require   inside your overloaded validate   to assert requirements or throw DCCLExceptions  directly as needed     Additional Inherited Members   17 8 1 Detailed Description   Provides the default 1 byte or 2 byte DCCL ID codec   Definition at line 55 of file dccl_field_codec_default h   17 8 2 Member Function Documentat
9.    acknowledged receiving message starting with       typed_original_message telegram   substr 0 5               19 3 acomms dccl dccl_simple dccl_simple cpp  simple proto    import  goby acomms protobuf dccl_option_extensions proto      message Simple         see http   gobysoft org wiki DcclIdTable  option  dccl msg  id   124        if  for example  we want to use on the WHOI Micro Modem rate 0  option  dccl msg   max_bytes   32     required string telegram   1   dccl field   max_length 30      dccl_simple cpp       encodes decodes a string using the DCCL codec library     assumes prior knowledge of the message format  required fields      include  goby acomms dccl h     for DCCLCodec   include  simple pb h     for    Simple  protobuf message defined in simple proto   include  goby util binary h     for goby  util  hex_encode    using goby  acomms   operator lt  lt      int main       goby   acomms    DCCLCodecx  decl    goby   acomms   DCCLCodec   get           validate the Simple protobuf message type as a valid DCCL message type  dccl  gt validate lt Simple gt           read message content  in this case from the command line    Simple message    std  cout  lt  lt   input a string to send up to 10 characters     lt  lt  std  endl   getline std  cin   message mutable_telegram        std  cout  lt  lt   passing message to encoder  n   lt  lt  message  lt  lt  std  endl      encode the message to a byte string  std  string bytes     dccl  gt encode   amp bytes  message     
10.    max_repeat 4    repeated float float_default_repeat   102   dccl field   min 0    dccl  field   max 100    dccl field   precision 3    dccl field   max_repeat 4    repeated int32 int32_default_repeat   103   dccl field   min 0    dccl  field   max 100    dcecl field   max_repeat 4    repeated int64 int64_default_repeat   104   dccl field   min  100    dccl  field   max 100    dccl field   max_repeat 4    repeated uint32 uint32_default_repeat   105   dccl field   min 0    dcecl  field   max 100    dcecl  field   max_repeat 4    dccl  field   in_head true    repeated uint64 uint64_default_repeat   106   dccl field   min 0    dccl  field   max 100    dccl field   max_repeat 4    repeated sint32 sint32_default_repeat   107   dccl field   min  60    dcecl  field   max 100    dccl field   max_repeat 4    repeated sint64 sint64_default_repeat   108   dccl field   min  600    dccl  field   max 100    dcecl  field   max_repeat 4    repeated fixed32 fixed32_default_repeat   109   dccl field   min 0    decl field   max 100    dccl  field   max_repeat 4    repeated fixed64 fixed64_default_repeat   110   dccl field   min 0    dccl  field   max 100    dccl  field   max_repeat 4    repeated sfixed32 sfixed32_default_repeat   111   dccl field   min 0    dccl field   max 100    dccl  field   max_repeat 4    repeated sfixed64 sfixed64_default_repeat   112   dccl field   min  500    dccl  field   max 100    decl field   max_repeat 4    repeated bool bool_default_repeat   113   dccl field   m
11.   DCCLFieldCodecBase Class Reference 124       Parameters  wire_values   Should be set to the desired values to translate  field_values   Will be set to the converted wire_values                      Definition at line 271 of file dccl_field_codec h     17 13 2 23 void goby  acomms  DCCLFieldCodecBase  field_pre_encode   boost  any x wire_value  const boost  any  amp   field  value   inline     Pre encodes a non repeated  i e  optional or required  field by converting the FieldType representation  the Google  Protobuf representation  into the WireType representation  the type used in the encoded DCCL message   This  allows for type converting codecs     These are called typically by DCCLDefaultMessageCodec to start processing a new field  In this exan   code    message Foo   int32 bar   1  FooBar baz   2       Parameters       wire_value   Will be set to the converted field_value  field_value   Value to convert to the appropriate wire_value                   Definition at line 193 of file dccl_field_codec h     17 13 2 24 void goby  acomms  DCCLFieldCodecBase  field_pre_encode_repeated   std  vector lt  boost  any  gt  x wire_values   const std  vector lt  boost  any  gt  4 field_values    inline     Pre encodes a repeated field     Parameters    wire_values   Should be set to the converted field_values  field_values   Values to convert to the appropriate wire_values                      Definition at line 200 of file dccl_field_codec h     17 13 2 25 void goby  acomms  DCCLF
12.   F  7       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    2 7 UML models 9          clear   void clear_a    void clear_b    void clear_c       7  7    private   unsigned a_   std  string b_   RepeatedField lt double gt  c_     RepeatedField    std  vector    Clearly the  proto representation is more compact and amenable to easy modification  All the Protocol Buffers  messages used in goby acomms are placed in the goby  acomms  protobuf namespace for easy identification  This  doxygen documentation does not understand Protocol Buffers language so you will need to look at the source code  directly for the  proto  e g  acomms_modem_message proto      2 7 UML models    Model that gives the sequence for sending a message with goby acomms                                                                                                                    Application decl queue amac modemdriver WHOI Micro Modem Firmware  f push_message   l                         f    i I    initiate transmission message         i    1 l  i i i data_request message     j     i encode       encoded data  LI NA ee cies 5  i   requested data  I BO MA e a re E E A a a  i j   cycle init   CCCYC          gt       data request  SCADRQ    f I   A ea a Oe eT    i send data   CCTXD            gt   acknowledgement   CAACK     reirme  f i  type   ACK   receive message     1       i  i ack pop_message  5 i i                               Figure 2  UML model that gives the sequence of calls requir
13.   Parameters       cfg   Startup configuration for the driver and modem  DriverConfig is defined in acomms_driver   _base proto  Derived classes can define extensions  see http    code google    com apis protocolbuffers docs proto html extensions  to DriverConfig  to handle modem specific configuration                 Implements goby  acomms  ModemDriverBase   Definition at line 47 of file moos_ufield_sim_driver cpp     The documentation for this class was generated from the following files       goby moos moos_ufield_sim_driver h    src moos moos_ufield_sim_driver cpp    17 41 goby  pb  Application Class Reference    Base class provided for users to generate applications that participate in the Goby publish subscribe architecture    include  lt goby pb application h gt   Inherits goby  common  ZeroMQApplicationBase     Inherited by goby  acomms  Bridge  goby  acomms  FileTransfer  and goby  acomms  ModemDriver     Protected Types      typedef goby  common  Colors Colors    Protected Member Functions      template lt typename ProtoBufMessage  gt   void subscribe  boost  function lt  void const ProtoBufMessage  amp   gt  handler boost  function lt  void const  ProtoBufMessage  amp   gt     const std  string  amp group        Subscribe to a message  of any type derived from google  protobuf  Message     template lt typename ProtoBufMessage   class C  gt   void subscribe  void C   mem_func  const ProtoBufMessage  amp    C   obj  const std  string  amp group        Subscribe for 
14.   Parameters       name   Name to use for this codec  Corresponds to  goby field  dccl codec  name  in  proto file                 Returns  nothing  void   Return templates are used for template metaprogramming selection of the proper add   overload   Definition at line 159 of file dccl_field_codec_manager h   17 14 2 2 template lt class Codec  gt  static boost  disable_if lt  boost  mpl  and_ lt boost  is_base_of lt google  protobuf  Message   typename Codec  wire type  gt   boost  mpl  not_ lt boost  is_same lt google  protobuf  Message typename    Codec  wire type gt   gt   gt   void gt   type goby  acomms  DCCLFieldCodecManager  add   const std  string  amp  name     static     Add a new field codec  used for codecs operating on all types except statically generated Protobuf messages      Template Parameters       Codec   A child of DCCLFieldCodecBase                Parameters       name   Name to use for this codec  Corresponds to  goby field  dccl codec  name  in  proto file                 Returns  nothing  void   Return templates are used for template metaprogramming selection of the proper add   overload   17 14 2 3 template lt class Codec   google  protobuf  FieldDescriptor  Type type gt  static void  goby  acomms  DCCLFieldCodecManager  add   const std  string  amp  name    static   Add a new field codec only valid for a specific google  protobuf  FieldDescriptor  Type  This is useful if a given    codec is designed to work with only a specific Protobuf type that s
15.   QueueException    goby  common  ConfigException    goby  pb  Application    goby  transitional  DCCLMessageVal    goby  transitional  DCCLTransitionalCodec    goby  util  LineBasedinterface    140    111    110    128    129    126    141    143    142    145    146    146    150    95    148    167    168    156    161    162    163    164    165    166    114    155    162    170    172    176    178       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    13 Class Index 64       goby  util  TCPServer 181  goby  util  SerialClient 179  goby  util  TCPClient 180  Group 183  GroupSetter 183    13 Class Index    13 1 Class List    Here are the classes  structs  unions and interfaces with brief descriptions     boost  asio  time_traits lt  goby  common  GobyTime  gt     Time traits specialised for GobyTime 93  ChatCurses   Terminal GUI for a chat window  lower box to type and upper box to receive messages   Part of   the chat cpp example 94    goby  acomms  ABCDriver  API to the imaginary ABC modem  as an example how to write drivers  95    goby  acomms  DCCLCodec  API to the Dynamic CCL Codec 96    goby  acomms  DCCLDefaultBoolCodec  Provides a bool encoder  Uses 1 bit if field is required  2 bits if optional 104    goby  acomms  DCCLDefaultBytesCodec  Provides an fixed length byte string encoder 105    goby  acomms  DCCLDefaultEnumCodec  Provides an enum encoder  This converts the enumeration to an integer  based on the enumer   ation index  not its value  and 
16.   amp name   Add a new field codec only valid for a specific google  protobuf  FieldDescriptor  Type  This is useful if a given codec    is designed to work with only a specific Protobuf type that shares an underlying C   type  e g  Protobuf types bytes  and string     e static boost  shared_ptr   lt  DCCLFieldCodecBase  gt  find  const google  protobuf  FieldDescriptor  field     Find the codec for a given field  For embedded messages  prefers  goby field  dccl codec  inside field  over  goby    msg  dccl codec  inside embedded message    e static boost  shared_ptr   lt  DCCLFieldCodecBase  gt  find  const google  protobuf  Descriptor   desc  std  string name        Find the codec for a given base  or embedded  message     17 14 1 Detailed Description    Todo  tes  Make sanity check for newly added FieldCodecs    Definition at line 37 of file dccl_field_codec_manager h        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 14 goby  acomms  DCCLFieldCodecManager Class Reference 128       17 14 2 Member Function Documentation    17 14 21 template lt class Codec   google  protobuf  FieldDescriptor  Type type gt  void goby  acomms  DCCLFieldCodec   Manager  add   const std  string 8 name    static     Add a new field codec  used for codecs operating on statically generated Protobuf messages  that is  children of  google  protobuf  Message but not google  protobuf  Message itself      Template Parameters       Codec   A child of DCCLFieldCodecBase              
17.   amp out  const std  set lt  std  string  gt   amp s   use this for displaying a human readable version of this STL object  e std  ostream  amp  operator lt  lt   std  ostream  amp os  const DCCLMessageVal  amp mv   e std  ostream  amp  operator lt  lt   std  ostream  amp os  const std  vector lt  DCCLMessageVal  gt   amp vm     Binary encoding    e bool char_array2hex_string  const unsigned char xc  std  string  amp s  const unsigned int n   converts a char  byte  array into a hex string  e bool hex_string2char_array  unsigned char   c  const std  string  amp s  const unsigned int n   turns a string of hex chars ABCDEF into a character array reading each byte OxAB OxCD  OXEF  etc   std  string long2binary_string  unsigned long    unsigned short bits   return a string represented the binary value of 1 for bits number of bits which reads MSB   gt  LSB  std  string binary_string2hex_string  const std  string  amp bs   converts a binary string   1000101010101010   into a hex string   8AAA    std  string hex_string2binary_string  const std  string  amp bs   converts a boost  dynamic_bitset  similar to std  bitset but without compile time size requirements  into a hex string  template lt typename T  gt   bool hex_string2number  const std  string  amp s  T  amp t   converts a hex string   8AAA   into a dynamic_bitset  template lt typename T  gt   bool number2hex_string  std  string  amp s  const T  amp t  unsigned int width 2   converts a decimal number of type T into a hex string
18.   any  amp wire_value  0    Virtual method used to encode   virtual void any_decode  Bitset bits  boost  any  wire_value  0    Virtual method used to decode    virtual void any_pre_encode  boost  any  wire_value  const boost  any  amp field_value   Virtual method used to pre encode  convert from FieldType to Wire Type   The default implementation of this method  is for when Wire Type    Field Type and simply copies the field_value to the wire_value    virtual void any_post_decode  const boost  any  amp wire_value  boost  any xfield_value   Virtual method used to post decode  convert from Wire Type to FieldType   The default implementation of this method  is for when Wire Type    Field Type and simply copies the wire_value to the field_ value    virtual unsigned any_size  const boost  any  amp wire_value  0    Virtual method for calculating the size of a field  in bits     virtual void validate     Validate a field  Use require   inside your overloaded validate   to assert requirements or throw DCCLExceptions  directly as needed    virtual std  string info     Write field specific information  in addition to general information such as sizes that are automatically written by this  class for all fields    virtual unsigned max_size    0    Calculate maximum size of the field in bits   virtual unsigned min_size    0    Calculate minimum size of the field in bits   virtual void any_encode_repeated  Bitset   bits  const std  vector lt  boost  any  gt   amp wire_values   virtual voi
19.   e g  CTD samples  acoustic modem datagrams     e additional special commands  e g  buoyancy adjustment  activate deactivate sensors  low power mode  that  the backseat can command of the frontseat        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    8 1   FrontSeat 55       8 1 1 2 State charts    The state of iFrontSeat  as shown in the following diagram  is determined by a combination of the state of the  frontseat and the state of pHelmlvP  Only the state of the frontseat must be determined by each new driver  as the  state of pHelmlvP is determined by code shared by all the drivers     Helm iFrontSeat frontseat       Figure 13  State charts of the iFrontSeat interface and connected ends  pHelmlvP and frontseat     The state of the frontseat consists of two parallel state charts  command and data        Command state        FRONTSEAT_IDLE  required   The frontseat computer is alive and well  but is not running any mission   the vehicle is a standby mode         FRONTSEAT_ACCEPTING_COMMANDS  required   The frontseat is accepting the backseat com   mands         FRONTSEAT_NOT_CONNECTED  optional   No communication with the frontseat computer has been  established  or a connection has been lost   If there is no way to tell whether the frontseat is alive at any  given time  this state may not be implemented         FRONTSEAT_IN_ CONTROL  optional   The frontseat is running a mission and driving the vehicle but  not accepting commands from the backseat  If t
20.   e void decode  const std  string  amp bytes  google  protobuf  Message   msg  bool header_only false     Decode a DCCL message when the type is known at compile time     unsigned id_from_encoded  const std  string  amp bytes     Get the DCCL ID of an unknown encoded DCCL message     Alternative Dynamic Protobuf methods  including list of Message methods   Advanced     These methods are intended to be used when the Google Protobuf message types are not known at compile   time  and work with the Descriptor Reflection meta data introspection API provided by Google     e void validate  const google  protobuf  Descriptor   desc   An alterative form for validating messages for message types not known at compile time   dynamic     void validate_repeated  const std  list lt  const google  protobuf  Descriptor    gt   amp descs   Shortcut for validating multiple messages at once   void info  const google  protobuf  Descriptor   desc  std  ostream xos  const    An alterative form for getting information for messages for message types not known at compile time   dynamic     void info_repeated  const std  list lt  const google  protobuf  Descriptor x  gt   amp desc  std  ostream x os  const    Shortcut for getting information on multiple messages at once   unsigned id  const google  protobuf  Descriptor   desc  const    Provides the DCCL ID given a DCCL type   template lt typename GoogleProtobufMessagePointer  gt   unsigned size_repeated  const std  list lt  GoogleProtobufMessagePointe
21.   either bind the mo   dem driver to a goby  acomms  QueueManager  goby  acomms  bind goby  acomms  ModemDriverBase amp    goby  acomms  QueueManager amp   or connect custom function pointers or objects to the driver layer signals     e Virtual functions for starting the driver  goby  acomms  ModemDriverBase  startup   running the driver   goby  acomms  ModemDriverBase  do_work   and initiating the transmission of a message  goby  acomms     ModemDriverBase  handle_initiate_transmission   The handle_initiate_transmission slot is typically bound  to goby  acomms  MACManager  signal_initiate_transmission     6 1 1 Interacting with the goby  acomms  ModemDriverBase    To use the goby  acomms  ModemDriverBase  you need to create one of its implementations such as WHOI Micro   Modem Driver  MMDriver     goby   acomms    ModemDriverBasex  driver   new  goby   acomms    MMDriver        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    6 2 Protobuf Message goby  acomms  protobuf  ModemTransmission 33       You will also need to configure the driver  At the very least this involves a serial port  baud  and modem ID  integer  MAC address for the modem      goby   acomms    protobuf   DriverConfig cfg     cfg set_serial_port    dev ttyS0     cfg set_modem_id 3      Most modems will have specific other configuration that is required  For example the WHOI Micro Modem NVRAM  is set using three character strings followed by a number  This modem specific configuration is stored
22.   google  protobuf  FieldDescriptor  TYPE_SFIXED32  gt   goby  acomms  FromProtoType lt  google  protobuf     FieldDescriptor  TYPE_SFIXED64  gt   goby  acomms  FromProtoType lt  google  protobuf  FieldDescriptor  TYPE   _SINT32  gt   goby  acomms  FromProtoType lt  google  protobuf  FieldDescriptor  TYPE_SINT64  gt   goby  acomms     FromProtoType lt  google  protobuf  FieldDescriptor  TYPE_STRING  gt   goby  acomms  FromProtoType lt  google     protobuf  FieldDescriptor  TYPE_UINT32  gt   and goby  acomms  FromProtoType lt  google  protobuf  Field   Descriptor  TYPE_UINT64  gt      Public Member Functions  e virtual std  string as_str     string representation of the google  protobuf  FieldDescriptor  Type   17 26 1 Detailed Description    Provides various representations of a google  protobuf  FieldDescriptor  Type enumeration  Implementations are  provided for all enumerations     Definition at line 38 of file protobuf_cpp_type_helpers h     The documentation for this class was generated from the following file       goby acomms dccl protobuf_cpp_type_helpers h    17 27 goby  acomms  MACManager Class Reference    provides an API to the goby acomms MAC library  MACManager is essentially a std  list lt protobuf  Modem   Transmission gt  plus a timer        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 27 goby  acomms  MACManager Class Reference 148        include  lt goby acomms amac h gt     Inherits std  list lt  T  gt      Public Member Functions    
23.   if   driver       std  cout  lt  lt   Starting WHOI Micro Modem MMDriver   lt  lt  std  endl   driver   new goby  acomms   MMDriver      turn data quality factor message on      example of setting NVRAM configuration   cfg AddExtension  micromodem   protobuf  Config  nvram_cfg   DOF 1       goby   acomms   connect   amp driver  gt signal_receive     amp handle_data_receive       fi      2  Startup the driver  fi    driver  gt startup  cfg      fi     3  Initiate a transmission cycle with some data    ie    goby   acomms    protobuf  ModemTransmission transmit_message   transmit_message set_type  goby   acomms   protobuf   ModemTransmission   DATA     transmit_message set_src goby   util  as lt unsigned gt  our_id      transmit_message set_dest  goby   acomms     BROADCAST_ID   i  transmit_message set_rate 0      transmit_message add_frame   Hello  world      transmit_message set_ack_requested false      std  cout  lt  lt  transmit_message  lt  lt  std  endl     driver  gt handle_initiate_transmission    transmit_message             4  Run the driver           10 hz is good   int i   0    while  1    1    i   driver  gt do_work           send another transmission every 60 seconds  if   i   600        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    19 6 acomms queue queue_simple queue_simple cpp    195       driver  gt handle_initiate_transmission      transmit_message          in here you can initiate more transmissions as you want  usleep  100000            
24.   lt  command   ShortDebugString    lt  lt  std  endl             send_command_to_frontseat       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    8 1   FrontSeat 59           The method  send_data_to_frontseat  is called whenever   FrontSeat needs to send data to the frontseat     These data could include sensor readings from instruments that are directly connected to the backseat   such as a CTD or acoustic modem  Our bare bones example frontseat doesn t require any data from  the backseat  so we just leave an empty implementation here     void AbcFrontSeat  send_data_to_frontseat  const gpb  FrontSeatInterfaceData   amp   data         ABC driver doesn t have any data to sent to the frontseat       send_data_to_frontseat    The method  send_raw_to_frontseat  is called whenever an external application wants to directly control  the frontseat  This can be left blank  or post a warning to the glog  if there is no need  or desire  to allow  for direct control of the frontseat from external applications     The method  loop  is called regularly  at the AppTick of iFrontSeat  and is where you can read data from  the frontseat and do other regular work     void AbcFrontSeat  loop     1  check_connection_state     try_receive          if we haven   t gotten data for a while  set this boolean so that the     FrontSeatInterfaceBase class knows  if  goby_time lt double gt     gt  last_frontseat_data_time_   allowed_skew   frontseat_providing_data_   false        loop   
25.   perhaps     goby   acomms    protobuf   ModemTransmission slot   slot set_src 1    slot set_dest  goby   acomms    QUERY_DESTINATION_ID   i  slot set_rate 0    slot set_type  goby   acomms    protobuf   ModemTransmission   DATA     slot SetExtension goby  acomms  protobuf  slot_seconds  10    mac_cfg add_slot  slot      1  gt  1 0 wait 10      reuse slot   ot set_sre  3    ot set_dest  goby   acomms     BROADCAST_ID     ac_cfg add_slot  slot      3  gt 0 0 wait 10    3u00uo    a    ot set_rate  5    mac_cfg add_slot slot      3  gt 0 5 wait 10    slot set_src 4    slot set_rate  0    mac_cfg add_slot  slot      4  gt 0 0 wait 10          Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    6 goby acomms  modemdriver  Driver to interact with modem firmware  32       You can remove vehicles by a call to goby  acomms  MACManager  remove_slot or clear out the entire cycle  and start over with goby  acomms  MACManager  clear_all_slots     Then  for either MAC scheme  start the goby  acomms  MACManager running  goby  acomms  MACManager   startup with the goby  acomms  protobuf  MACConfig object   and call goby  acomms  MACManager  do_work    periodically  5 Hz is ok  10 Hz is better      You can modify the MAC scheme while MACManager is running  Simply use the std    list insert  push  pop   erase methods to changes slots  goby  acomms  protobuf  ModemTransmission objects   After any changes that  invalidate std  list iterators  insert  push  pop  erase   you must call
26.   protected     Fetchs the newest received message of this type   You must subscribe   for this type before using this method  Definition at line 113 of file application h     The documentation for this class was generated from the following files       goby pb application h  e src pb application cpp    17 42 goby  transitional  DCCLMessageVal Class Reference    defines a DCCL value     include  lt goby moos transitional message_val h gt     Public Types    e enum   MAX_DBL_PRECISION   15     Public Member Functions    Constructors Destructor    e DCCLMessageVal     emply  e DCCLMessageVal  const std  string  amp s     construct with string value  e DCCLMessageVal  const char xs     construct with charx value  e DCCLMessageVal  double d  int p MAX_DBL_PRECISION     construct with double value  optionally givig the precision of the double  number of decimal places  which is used  if a cast to std  string is required in the future   e DCCLMessageVal  long l     construct with long value  e DCCLMessageVal  int i     construct with int value  e DCCLMessageVal  float f     construct with float value    DCCLMessageVal  bool b     construct with bool value  e DCCLMessageVal  const std  vector lt  DCCLMessageVal  gt   amp vm     construct with vector    Setters    e void set  std  string sval   set the value with a string  overwrites previous value regardless of type   e void set  double dval  int precision MAX_DBL_PRECISION     set the value with a double  overwrites previous value 
27.   protobuf  ModemTransmission   amp request_msg   google  protobuf  Message   data_msg  gt  signal_data_on_demand  Forwards the data request to the application layer  This advanced feature is used when queue encode_on_   demand    true and allows for the application to provide data immediately before it is actually sent  for highly time  sensitive data        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 31 goby  acomms  QueueManager Class Reference 159         boost  signals2  signal lt  void protobuf  QueueSize  size  gt  signal_queue_size_change  Signals when any queue changes size  message is popped or pushed     Friends      class Queue    17 31 1 Detailed Description  provides an API to the goby acomms Queuing Library     See Also    acomms_queue proto and acomms_modem_message proto for definition of Google Protocol Buffers messages   namespace goby  acomms  protobuf      Examples     acomms chat chat cpp  and acomms queue queue_simple queue_simple cpp     Definition at line 52 of file queue_manager h     17 31 2 Member Function Documentation    17 31 2 1 template lt typename ProtobufMessage  gt  void goby  acomms  QueueManager  add_queue   const  protobuf  QueuedMessageEntry  amp  queue_cfg    inline     Add a DCCL queue for use with QueueManager  Note that the queue must be added before receiving messages  with QueueManager     Template Parameters       ProtobufMessage   Any Google Protobuf Message generated by protoc  i e  subclass of google  pro
28.   send this message to my buddy   message_out set_destination  buddy_id_    message_out set_source  my_id_      q_manager_ push_message  message_out       try    mm_driver_ do_work  j   mac_ do_work      q_manager_ do_work          catch std  runtime_error   amp  e         curses_ cleanup     std  cerr  lt  lt   exception while running     lt  lt  e what    lt  lt  std  endl   return 1          return 0          int startup_failure      1  std  cerr  lt  lt   usage  chat  dev tty_modem my_id buddy_id log_file   lt  lt     std  endl   return 1             void monitor_mac const goby  acomms   protobuf  ModemTransmission amp  mac_msg      if mac_msg src      my_id_   curses_ post_message   control  starting send to my buddy    else if  mac_msg src      buddy_id_   curses_ post_message   control  my buddy might be sending  to me now            void received_data const google   protobuf  Message amp  message_in      ChatMessage typed_message_in   typed_message_in CopyFrom message_in    curses_ post_message  typed_message_in source          Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    19 3 acomms dccl dccl_simple dccl_simple cpp 191       typed_message_in telegram           void received_ack  const goby  acomms   protobuf  ModemTransmission amp  ack_message   const google  protobuf  Message amp  original_message      ChatMessage typed_original_message   typed_original_message CopyFrom original_message      curses_ post_message    ack_message src     std  string 
29.   template lt typename T  gt   std  string number2hex_string  const T  amp t  unsigned int width 2   converts a decimal number of type T into a hex string assuming success    Variables      const unsigned DCCL_NUM_HEADER_BYTES   6    const unsigned DCCL_NUM_HEADER_PARTS   8    const std  string DCCL_HEADER_NAMES          Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    16 6 goby  transitional Namespace Reference 92       16 6 1 Detailed Description    Objects pertaining to transitioning from DCCLv1 to DCCLv2     16 6 2 Typedef Documentation    16 6 2 1 typedef boost  function lt void  DCCLMessageVal amp   gt  goby  transitional  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 amp     See http    www    boost  org doc libs 1_34_0 doc html function html for more on boost function     Definition at line 41 of file message_algorithms h     16 6 2 2 typedef boost  function lt void  DCCLMessageVal amp   const std  vector lt DCCLMessageVal gt   amp   gt   goby  transitional  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 amp   const DCCLMessage   Val amp    See http    www boost org doc libs 1_34_0 doc htm
30.  20      message GobyMessage2         option  dccl msg  id   5   option  dccl msg  max_bytes   32     optional bool bool_val   1     message GobyMessage3         option  dccl msg  id   6   option  dccl msg  max_bytes   32     optional string string_val   1   dccl field   max_length 10      See Also    dccl4 test cpp    3 5 6 DCCL Test5    dccl5 test proto    See Also    dccl5 test cpp       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    3 5 Example messages 21       3 5 7 DCCL Test6  dccl6 test proto    import  goby acomms protobuf dccl_option_extensions proto      message ShortIDMsg     option  dccl msg  id   2   option  dccl msg   max_bytes   1     message ShortIDMsgWithData     option  dccl msg  id   3   option  dccl msg  max_bytes   10        optional int32 in_head      1  dccl field   in_head true   dccl field   min 0   dccl field   max 100    optional int32 in_body   2         dccl field   in_head true   dccl field  min 0   dccl field   max 100    message LongIDMsg        H  a  Il    option  dccl msg   i 10000  option  dccl msg   max_bytes   2     message TooLongIDMsg      option  dccl msg  id   32768   option  dccl msg   max_bytes   32     message LongIDEdgeMsg       option  dccl msg  id   128   option  dccl msg  max_bytes   2     message ShortIDEdgeMsg     option  dccl msg  id   127     option  dccl msg   max_bytes   1      See Also  dccl6 test cpp    3 5 8 DCCL Test7  dccl7 test proto    import  goby acomms protobuf dccl_option_extensions proto    me
31.  22  goby util linebasedcomms h 22  goby util primitive_types h 22  goby util sci h 22   22       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    14 1 File List    75       goby util linebasedcomms connection h  goby util linebasedcomms interface h  goby util linebasedcomms nmea_sentence h  goby util linebasedcomms serial_client h  goby util linebasedcomms tcp_client h  goby util linebasedcomms tcp_server h  goby util protobuf linebasedcomms pb h  goby util protobuf linebasedcomms proto   goby util seawater depth h   goby util seawater pressure h   goby util seawater salinity h   goby util seawater swstate h  share examples acomms amac amac_simple amac_simple cpp  share examples acomms chat chat cpp  share examples acomms chat chat proto  share examples acomms chat chat_curses cpp  share examples acomms chat chat_curses h  share examples acomms dccl dccl_simple dccl_simple cpp  share examples acomms dccl dccl_simple simple proto  share examples acomms dccl two_message two_message cpp  share examples acomms dccl two_message two_message proto  share examples acomms modemdriver driver_simple driver_simple cpp  share examples acomms modemdriver whoi_ranging whoi_ranging cpp  share examples acomms queue encode_on_demand encode_on_demand cpp  share examples acomms queue encode_on_demand on_demand proto  share examples acomms queue multimessage multimessage cpp  share examples acomms queue queue_simple queue_simple cpp  share examples moos abc_frontseat_driver abc_fr
32.  91   dccl_hex  91   dccl_int  91   dccl_ static  91   dccl_string  91  goby  Exception  166  goby  acomms  82  goby  acomms  ABCDriver  95   do_work  95   handle_initiate_transmission  95   startup  96  goby  acomms  DCCLCodec  96   add_id_codec  99   decode  99   decode_repeated  100   encode  100   encode_repeated  100   id  101   id_from_encoded  101   info  102   info_all  102   load_shared_library_codecs  102   set_id_codec  102   size  102   size_repeated  103   validate  103   validate_repeated  104  goby  acomms  DCCLDefaultBoolCodec  104  goby  acomms  DCCLDefaultBytesCodec  105  goby  acomms  DCCLDefaultEnumCodec  106  goby  acomms  DCCLDefaultldentifierCodec  107   decode  108   encode  108  109   max_size  109   min_size  109   size  109  goby  acomms  DCCLDefaultMessageCodec  110  goby  acomms  DCCLDefaultNumericFieldCodec   decode  112   encode  112  goby  acomms  DCCLDefaultNumericFieldCodec lt    WireType  FieldType  gt   111   goby  acomms  DCCLDefaultStringCodec  113  goby  acomms  DCCLException  114  goby  acomms  DCCLFieldCodecBase  114   any_decode  118   any_encode  118   any_post_decode  118   any_pre_encode  118   any_size  119   base_decode  119   base_encode  119   base_info  119       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    INDEX    199       base_max_size  120  base_min_size  120  base_size  120  base validate  120  dccl_field_options  121  field_decode  121  field_decode_repeated  121  field_encode  121  field_encode_repea
33.  Definition at line 304 of file message_val cpp     17 42 2 12 void goby  transitional  DCCLMessageVal  set   double dval  int precision   MAX_DBL_PRECISION         set the value with a double  overwrites previous value regardless of type     Parameters       dval   values to set       precision   decimal places of precision to preserve if this is cast to a string                Definition at line 121 of file message_val cpp     The documentation for this class was generated from the following files       goby moos transitional message_val h    src moos transitional message_val cpp       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 43 goby  transitional  DCCLTransitionalCodec Class Reference 177       17 43 goby  transitional  DCCLTransitionalCodec Class Reference    provides an API to the Transitional Dynamic CCL Codec  looks like DCCLv1  but calls DCCLv2   Warning  this class  is for legacy support only  new applications should use DCCLCodec directly      include  lt goby acomms dccl h gt     Public Member Functions    template lt typename Key  gt    const   google  protobuf  Descriptor   descriptor  const Key  amp k     unsigned message_count      template lt typename Key  gt    unsigned get_repeat  const Key  amp k    e std  set lt  unsigned  gt  all_message_ids      std  set lt  std  string  gt  all_message_names     template lt typename Key  gt    std  map lt  std  string    std  string  gt  message_var_names  const Key  amp k  const  std  string i
34.  Exception class for libdccl   e class QueueManager    provides an API to the goby acomms Queuing Library     Typedefs    e typedef std  list    lt  QueuedMessage  gt   iterator messages_it  e typedef std  multimap    lt  unsigned  messages_it  gt    iterator waiting_for_ack_it    Enumerations    e enum   BYTE_MASK   7      Functions    e std  ostream  amp  operator lt  lt   std  ostream  amp out  const google  protobuf  Message  amp msg     void bind  ModemDriverBase  amp driver  QueueManager  amp queue_manager   binds the driver link layer callbacks to the QueueManager  e void bind  MACManager  amp mac  ModemDriverBase  amp driver   binds the MAC initiate transmission callback to the driver and the driver parsed message callback to the MAC  e void bind  QueueManager  amp queue_manager  RouteManager  amp route_manager     creates bindings for a RouteManager to control a particular queue  QueueManager     void bind  ModemDriverBase  amp driver  QueueManager  amp queue_manager  MACManager  amp mac   bind all three  shortcut to calling the other three bind functions   e template lt typename Signal   typename Slot  gt   void connect  Signal   signal  Slot slot   connect a signal to a slot  e g  function pointer   e template lt typename Signal   typename Obj   typename A1  gt   void connect  Signal   signal  Obj  obj  void Obj   mem_func  A1    connect a signal to a member function with one argument  e template lt typename Signal   typename Obj   typename A1   typename A2  gt   v
35.  Get lt i gt Type where Type is the corresponding google  protobuf  FieldDescriptor  Cpp Type   See  http   code google com apis protocolbuffers docs reference cpp google    protobuf message html Reflection      Definition at line 193 of file protobuf_cpp_type_helpers h        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 25 goby  acomms  FromProtoCustomMessage lt  CustomMessage  gt  Class Template Reference 146       17 24 23 boost  any goby  acomms  FromProtoCppTypeBase  get_value   const google  protobuf  FieldDescriptor x field   const google  protobuf  Message     msg   inline     Get a given field s value from the provided message     Parameters       field   Field to get value for        msg   Message to get value from                 Returns    boost  any containing the value  The type is usually the type returned by google  protobuf  Reflection    Get lt i gt Type where Type is the corresponding google  protobuf  FieldDescriptor  Cpp Type   See  http   code google com apis protocolbuffers docs reference cpp google    protobuf message html Reflection      Definition at line 171 of file protobuf_cpp_type_helpers h     17 24 2 4 void goby  acomms  FromProtoCppTypeBase  set_value   const google  protobuf  FieldDescriptor x field   google  protobuf  Message    msg  boost  any value   inline     Set a given field   s value in the provided message     Parameters       field   Field to set value for        msg   Message to set value in        value   boo
36.  Goby v2 by Doxygen    5 goby acomms  amac  Medium Access Control  30       import  goby acomms protobuf dccl_option_extensions proto      message GobyMessage     option  dccl msg  id   4   option  dccl msg   max_bytes   32        one byte  required int32 telegram   1   dccl field   min 0    dccl  field   max 255      See Also    queued test cpp    5 goby acomms  amac  Medium Access Control     Table of Contents for amac       Supported MAC schemes    e Interacting with the goby  acomms  MACManager    Return to goby acomms  An overview of Acoustic Communications Library     5 1 Supported MAC schemes    The Medium Access Control schemes provided by amac are based on Time Division Multiple Access  TDMA   where different communicators share the same bandwidth but transmit at different times to avoid conflicts  Time  is divided into slots and each vehicle is given a slot to transmit on  The set of slots comprising all the vehicles is  referred to here as a cycle  which repeats itself when it reaches the end  MACManager is implemented as a timer  and a std  list of goby  acomms  protobuf  ModemTransmission objects  This allows you to use amac to create a  TDMA cycle for any type of transmission  data  ping  LBL  etc   that your modem supports     The two variations on this scheme provided by amac are     1  Decentralized  Each vehicle initiates its own transmission at the start of its slot   goby  acomms  protobuf  M   AC_FIXED_DECENTRALIZED   Slots are set at launch and can be up
37.  Google Protocol Buffers    Google Protocol Buffers are used as a convenient way of generating data structures  basic classes with  accessors  mutators   They can also be serialized efficiently  though this is not generally used within goby acomms   Protocol buffers messages are defined in  proto files that have a C like syntax     message MyMessage     optional uint32 a   1   required string b  repeated double c    mon  wn    The identifier  optional  means a proper MyMessage object may or may not contain that field   required  means  that a proper MyMessage always contains such a field   repeated  means a MyMessage can contain a vector  of this field  0 to n entries   The sequence number    1  must be unique for each field and determines the  serialized format on the wire  For our purposes it is otherwise insignificant  See http    code google    com apis protocolbuffers docs proto html for full details        The  proto file is pre compiled into a C   class that is loosely speaking  see http    code google    com apis protocolbuffers docs reference cpp generated html for precise details            class MyMessage   public google   protobuf   Message     public   MyMessage           set   void set_a unsigned a     void set_b const std  string   amp  b    void add_c double c         get   unsigned a      std  string b      double c int index     const RepeatedField lt double gt  amp  c       RepeatedField    std  vector       has   bool has_a    bool has_b    int c_size     
38.  Now  the final task is to call the appropriate signals in FrontSeatInterfaceBase upon receipt of data and  responses to commands  The signals are called just like normal functions with the corresponding signatures   These signals  except signal_raw_to_frontseat  are typically called in response to data received in the loop    method     signal_data_from_frontseat  Call when a navigation solution is received from the frontseat  This may  have to be merged from several messages  which is why goby  moos  protobuf  NodeStatus has the   _time_lag fields  These fields can be used to indicate the offset of certain fields from the timestamp on  the message  You can use the FrontSeatInterfaceBase  compute_missing to compute the loocal fix  X   Y  Z  from the global fix  latitude  longitude  depth  or vice versa     signal_command_response  Call when the frontseat acknowledges a command  if the command re   quest includes response_requested    true  Include the success or failure of the command  and an  error code  with description  if applicable     signal_raw_from_frontseat  Call when a raw message  e g   CMD RESULT Ok   is received from the  frontseat  This is for logging and debug purposes     signal_raw_to_frontseat  Call when a raw message  e g   CMD HEADING 260 SPEED 1 5 DEPTH    100   is send to the frontseat  This is for logging and debug purposes     For testing the ABC driver to see how it functions  you will need to run    abc_frontseat_simulator 54321    where 54321 is th
39.  Simple         see http   gobysoft org wiki DcclIdTable   option  dccl msg  id   124        if  for example  we want to use on the WHOI Micro Modem rate 0  option  dccl msg   max_bytes   32     required string telegram   1   dccl field   max_length 30      See Also    dccl_simple cpp       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    3 5 Example messages    16       3 5 2 Two Message example  two_message proto    import  goby acomms protobuf dccl_option_extensions proto    message GoToCommand     option  dccl msg  id   125   option  dccl msg  max_bytes   32   required int32 destination   1   dccl field   max 31    decl field   min 0    dccl field   precision 0    optional string type   2   dccl field   static_value  goto     dccl field   codec  _static        dcecl  field   max 10000     dccl  field   min 0     dcecl  field   precision 0    required int32 goto_y   4   dccl field   max 10000           required int32 goto_x   3    dccl field   min 0   dccl field   precision 0    required bool lights_on   5   required string new_instructions   6   dccl field   max_length 10    required double goto_speed   7   dccl field   max 3    dccl field   min 0    dccl field   precision 2         message VehicleStatus     option  dccl msg  id   126   option  dccl msg   max_bytes   32   required double nav_x   1   dccl field   max 10000     dcecl  field   min 0     decl  field   precision 1    required double nav_y   2   dccl field   max 10000     dccl field   min 0     d
40.  Verbosity    quiet     bool is_ gui     is there an attached stream with Verbosity    gui  ncurses GUI     void enable_gui     e logger  Verbosity highest_verbosity       void group_name  const std  string  amp s     current group name  last insertion of group     into the stream   e void set_die flag  bool b    exit on error at the next call to sync    e void set_verbosity_depth  logger  Verbosity depth     void add_group  const std  string  amp name  Group g     add a new group    std  string color2esc_code  Colors  Color color     TODO tes   unnecessary   e void refresh       refresh the display  does nothing if lis_gui       17 36 1 Detailed Description   Class derived from std  stringbuf that allows us to insert things before the stream and control output  This is the  string buffer used by goby  common  FlexOstream for the Goby Logger  glogger    Definition at line 75 of file flex_ostreambuf h     The documentation for this class was generated from the following files       goby common logger flex_ostreambuf h    src common logger flex_ostreambuf cpp    17 37 goby  common  TermColor Class Reference    Converts between string  escape code  and enumeration representations of the terminal colors      include  lt goby common logger term_color h gt     Static Public Member Functions    e static Colors  Color from_str  const std  string  amp s   Color enumeration from string  e g   blue    gt  blue    e static std  string str_from_col  const Colors  Color  amp c   String fro
41.  amp wire_value  0  Encode a repeated field   e virtual std  vector lt  WireType  gt  decode_repeated  Bitset   bits  0  Decode a repeated field   e virtual unsigned size_repeated  const std  vector lt  WireType  gt   amp wire_values  0  Give the size of a repeated field   e virtual unsigned max_size_repeated    0  Give the max size of a repeated field   e virtual unsigned min_size_repeated    0  Give the min size of a repeated field   e virtual Bitset encode     Encode an empty field   e virtual Bitset encode  const WireType  amp wire_value   Encode a non empty field   e virtual WireType decode  Bitset xbits        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 17 goby  acomms  DCCLRepeatedTypedFieldCodec lt  WireType  FieldType  gt  Class Template  Reference 133       Decode a field  If the field is empty  i e  was encoded using the zero argument encode     throw DCCLNullValue   Exception to indicate this     e virtual unsigned size       Calculate the size  in bits  of an empty field   e virtual unsigned size  const WireType  amp wire_value     Calculate the size  in bits  of a non empty field   e virtual unsigned max_size       Calculate maximum size of the field in bits   e virtual unsigned min_size       Calculate minimum size of the field in bits     Additional Inherited Members  17 17 1 Detailed Description    template  lt typename WireType  typename FieldType   WireType gt class goby  acomms  DCCLRepeatedTypedFieldCodec lt  Wire   Type  FieldType 
42.  any get_value  const google  protobuf  Message  amp msg   Get the value of the entire base message  only works for CPPTYPE_MESSAGE     boost  any get_repeated_value  const google  protobuf  FieldDescriptor field  const google  protobuf     Message  amp msg  int index   Get the value of a repeated field at a given index   e void set_value  const google  protobuf  FieldDescriptor   field  google  protobuf  Message   msg  boost  any  value   Set a given field   s value in the provided message   e void set_value  google  protobuf  Message   msg  boost  any value   Set the value of the entire base message  only works for CPPTYPE_MESSAGE   e void add_value  const google  protobuf  FieldDescriptor   field  google  protobuf  Message   msg  boost  any  value        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 24 goby  acomms  FromProtoCppTypeBase Class Reference 145       Add a new entry for a repeated field to the back    e virtual void _set_ value  const google  protobuf  FieldDescriptor   field  google  protobuf  Message  msg   boost  any value    e virtual void _add_value  const google  protobuf  FieldDescriptor   field  google  protobuf  Message   msg   boost  any value    e virtual boost  any _get_repeated_value  const google  protobuf  FieldDescriptor field  const google     protobuf  Message  amp msg  int index    e virtual boost  any _get_value  const google  protobuf  FieldDescriptor field  const google  protobuf     Message  amp msg     17 24 1 Detail
43.  as Protobuf  extensions to goby  acomms  protobuf  DriverConfig  such as micromodem  protobuf  Config  If we were using the  WHOI Micro Modem and wanted to add an NVRAM configuration value we could write    cfg AddExtension  micromodem   protobuf   Config   nvram_cfg   DOF 1       We need to connect any signals we are interested in  At a minimum this is goby  acomms  ModemDriverBase   usignal_receive     goby   acomms  connect   amp driver  gt signal_receive     amp handle_data_receive       where handle_data_receive has the signature     void handle_data_receive  const goby  acomms   protobuf   ModemTransmission amp   data_msg       Next  we start up the driver with our configuration     driver  gt startup  cfg      We need to call goby  acomms  ModemDriverBase  do_work   on some reasonable frequency  greater than 5 Hz   10 Hz is probably good   Whenever we need to transmit something  we can either directly call goby  acomms     ModemDriverBase  handle_initiate_transmission or connect goby  acomms  MACManager to do so for us on some  TDMA cycle     6 2 Protobuf Message goby  acomms  protobuf  ModemTransmission    The goby  acomms  protobuf  ModemTransmission message is used for all outgoing  sending  and incoming  receiv   ing  messages  The message itself only contains the subset of modem functionality that every modem is expected  to support  point to point transmission of datagrams      All other functionality is provided by extensions to ModemTransmission such as those 
44.  be used along with a string identifier     Template Parameters       DCCLTypedFieldCodec   Uint32          Subclass of DCCLTypedFieldCodec lt uint32 gt   gt  that implements encoding   decoding of  DCCL IDs       Parameters             identifier   a name to give this DCCL ID codec for later use when setting it           Definition at line 360 of file dccl h     17 4 2 2 void goby  acomms  DCCLCodec  decode   const std  string  amp  bytes  google  protobuf  Message x msg  bool    header_only   false      Decode a DCCL message when the type is known at compile time                                   Parameters  bytes   encoded message to decode  must already have been validated   msg   Pointer to any Google Protobuf Message generated by protoc  i e  subclass of google      protobuf  Message   The decoded message will be written here   Exceptions  DCCLException   if message cannot be decoded   Examples     acomms dccl dccl_simple dccl_simple cpp  and acomms dccl two_message two_message cpp     Definition at line 215 of file dccl cpp     17 4 2 3 template lt typename GoogleProtobufMessagePointer  gt  GoogleProtobufMessagePointer  goby  acomms  DCCLCodec  decode   const std  string  amp  bytes  bool header_only  false    inline     An alterative form for decoding messages for message types not known at compile time   dynamic       Template Parameters       GoogleProtobufMessage           Pointer    anything that acts like a pointer  has operator  to a google  protobuf  Message  s
45.  by line text based communications to a one or more remote TCP clients  Definition at line 52 of file tcp_server h    17 47 2 Constructor  amp  Destructor Documentation    17 47 21  goby  util  TCPServer  TCPServer   unsigned port  const std  string  amp  delimiter   r n     inline   create a TCP server    Parameters       port   port of the server  use 50000  to avoid problems with special system ports              delimiter   string used to split lines          Definition at line 59 of file tcp_server h     The documentation for this class was generated from the following files       goby util linebasedcomms tcp_server h       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 48 Group Class Reference 184       e src util linebasedcomms tcp_server cpp    17 48 Group Class Reference    Defines a group of messages to be sent to the Goby logger  For Verbosity    verbose streams  all entries appear  interleaved  but each group is offset with a different color  For Verbosity    gui streams  all groups have a separate  subwindow      include  lt goby common logger logger_manipulators h gt     Public Member Functions    e Group  const std  string  amp name     const std  string  amp description     goby  common  Colors  Color  color goby  common  Colors  nocolor     Getters    e std  string name    const  Name of this group  used in the group manipulator   e std  string description    const  Human readable description of this group     goby  common  Colors  Color c
46.  called at 5 Hz or more   in pAcommsHandler  it is called on the MOOS AppTick   Here s where you want to read the modem    incoming stream     void goby  acomms   ABCDriver   do_work         std  string in    while  modem_read   amp in          std  map lt std  string  std  string gt  parsed        breaks    in    RECV TO 3  FROM  6 HEX ABCD015910        into    parsed      KEY   gt  RECV    TO   gt  3    FROM   gt  6     HEX   gt  ABCD015910   try       boost  trim in      get whitespace off from either end    parse_in in   amp parsed         let others know about the raw feed  protobuf  ModemRaw raw    raw set_raw in    ModemDriverBase  signal_raw_incoming raw      protobuf    ModemTransmission msg   msg set_src  goby   util  as lt int32 gt  parsed  FROM       msg set_dest  goby   util  as lt int32 gt   parsed  TO       msg set_time  goby    common   goby_time lt uint 64 gt    O      glog is DEBUG1   amp  amp  glog  lt  lt  group  modem_in    lt  lt  in  lt  lt   std  endl     if parsed  KEY       RECV        msg set_type  protobuf   ModemTransmission   DATA     msg add_frame  hex_decode  parsed   HEX       glog is DEBUG1   amp  amp  glog  lt  lt  group  modem_in    lt  lt      received     lt  lt  msg  lt  lt  std  endl        else if  parsed  KEY       ACKN        msg set_type  protobuf   ModemTransmission   ACK           ModemDriverBase  signal_receive  msg           catch  std   exceptiont e          glog is  WARN   amp  amp  glog  lt  lt   Bad line     lt  lt  in  lt  
47.  common logger logger_manipulators h    src common logger logger_manipulators cpp    18 File Documentation    18 1 goby moos moos_protobuf_helpers h File Reference    Helpers for MOOS applications for serializing and parsed Google Protocol buffers messages      include  lt limits gt     include  lt boost format  hpp gt     include  lt boost regex hpp gt     include  lt google protobuf io printer h gt    include  lt google protobuf io tokenizer h gt    include  goby common logger flex_ostream h    include  goby util as h     include  goby util binary h     include  goby util dynamic_protobuf_manager h    include  goby moos moos_string h     include  goby util primitive_types h     include  goby moos transitional message_algorithms h    include  goby moos transitional message_val h    include  goby moos protobuf translator pb h   Include dependency graph for moos_protobuf_helpers h                                                                                         This graph shows which files directly or indirectly include this file        gobyimoosimoos_protobuf  _helpers h    src appsimoos pAcommsHandler  IpAcommsHander cpp                         goby moas moos_translator h srcimoosfiaison_commander cpp      sre moosfiaison_scope cpp             srcimoos moos_bluefin  _driver cpp                                           goby apps moos ifrontSeat     fiFrontSeat    goby apps moos ptansiator     src testimoos transiatorl  th IpTranslat    eest cpp                         
48.  configuration good  Starting modem      lt  lt  std  endl   ModemDriverBase   modem_start  driver_cfg_         set your local modem id  MAC address       std  stringstream raw   raw  lt  lt   CONF MAC    lt  lt  driver_cfg_ modem_id    lt  lt    r n    signal_and_write raw str           now set our special configuration values     std  stringstream raw   raw  lt  lt   CONF FOO    lt  lt  driver_cfg_ GetExtension    ABCDriverConfig  enable_foo   lt  lt    r n    signal_and_write raw str        std  stringstream raw   raw  lt  lt   CONF BAR    lt  lt  driver_cfg_ GetExtension    ABCDriverConfig  enable_bar   lt  lt    r n    signal_and_write raw str              startup    At shutdown   you should make yourself ready to startup   again if necessary and stop the modem     void goby  acomms   ABCDriver    shutdown            put the modem in a low power state       ModemDriverBase   modem_close            shutdown    handle_initiate_transmission   is called when you are expected to initiate a transmission  lt may contain  data  in the ModemTransmission  frame field   If not  you are required to request data using the goby    acomms  ModemDriverBase  signal_data_request signal  Once you have data  you are responsible  for sending it    think a bit of code will make this clearer     void goby  acomms   ABCDriver  handle_initiate_transmission   const protobuf  ModemTransmission amp  orig_msg         copy so we can modify  protobuf   ModemTransmission msg   orig_msg        rate   ca
49.  cpp 2   src moos liaison_commander cpp 22  src moos liaison_geodesy cpp 2   src moos liaison_scope cpp 2   src moos modem_id_convert cpp 22  src moos moos_bluefin_driver cpp 22  src moos moos_geodesy cpp 2   src moos moos _liaison_load cpp 22  src moos moos_node cpp 2   src moos moos_translator cpp 2   src moos moos_ufield_sim_driver cpp 22  src moos frontseat frontseat cpp 2   src moos frontseat bluefin bluefin cpp 22  src moos frontseat bluefin bluefin_incoming cpp 22   22       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen       src test  acomms queue4 test cpp    14 1 File List 78  src moos transitional message cpp 2   src moos transitional message_algorithms cpp 2   src moos transitional message_publish cpp 2   src moos transitional message_val cpp 2   src moos transitional message_var cpp 2   src moos transitional message_var_float cpp 2   src moos transitional message_xml_callbacks cpp 2   src moos transitional queue_xml_callbacks cpp 2   src pb application cpp 22  src pb iridium_driver cpp 22  src pb iridium_driver_fsm cpp 22  src pb pb_modem_driver cpp 22  src pb protobuf_node cpp 2   src pb rudics_packet cpp 2   src test  acomms amact test cpp 2   src test acomms bitset1 test cpp 2   src test  acomms dccl1 test cpp 2   src test  acomms dccl10 test cpp 2   src test  acomms dccl2 test cpp 2   src test  acomms dccl3 test cpp 2   src test  acomms dccl4 test cpp 2   src test  acomms dccl6 test cpp 2   src test  acomms dccl7 test cpp 2   src test  acomms d
50.  current UTC time as seconds and fractional seconds since 1970 01 01 00 00 00   template lt  gt   boost  posix_time  ptime goby_time lt  boost  posix_time  ptime  gt      template lt  gt   std  string goby_time lt  std  string  gt      Returns current UTC time as a human readable string   std  string goby_time_as_string  const boost  posix_time  ptime  amp t goby_time     Simple string representation of goby_time    std  string goby_file_timestamp     ISO string representation of goby_time    boost  posix_time  ptime time_t2ptime  std  time_t t   convert to ptime from time_t from time h  whole seconds since UNIX   std  time_t ptime2time_t  boost  posix_time  ptime t   convert from ptime to time_t from time h  whole seconds since UNIX   double time_duration2double  boost  posix_time  time_duration time_of_day     time duration to double number of seconds  good to the microsecond    Detailed Description    Utility objects for performing functions such as logging  non acoustic communication  ethernet   serial   time  scien   tific  string manipulation  etc        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    16 4 goby  common  tcolor Namespace Reference 89       16 4 goby  common  tcolor Namespace Reference    Contains functions for adding color to Terminal window streams     Functions    e std  ostream  amp  add_escape_code  std  ostream  amp os  const std  string  amp esc_code   e std  ostream     red  std  ostream  amp os     All text following this manipula
51.  defines a DCCL value   Definition at line 38 of file message_val h   17 42 2 Member Function Documentation    17 42 2 1 bool goby  transitional  DCCLMessageVal  get   std  string  amp  s   const    extract as std  string  all reasonable casts are done     Parameters       s   std  string to store value in          Returns    successfully extracted  and if necessary successfully cast to this type     Definition at line 129 of file message_val cpp        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen       17 42 goby  transitional  DCCLMessageVal Class Reference 175       17 42 2 2 bool goby  transitional  DCCLMessageVal  get   bool  amp  b   const    extract as bool  all reasonable casts are done     Parameters       b   bool to store value in                Returns    successfully extracted  and if necessary successfully cast to this type     Definition at line 160 of file message_val cpp   17 42 2 3 bool goby  transitional  DCCLMessageVal  get   long  amp  t   const    extract as long  all reasonable casts are done     Parameters            long to store value in                Returns    successfully extracted  and if necessary successfully cast to this type     Definition at line 192 of file message_val cpp   17 42 2 4 bool goby  transitional  DCCLMessageVal  get   double  amp  d   const    extract as double  all reasonable casts are done     Parameters       d   double to store value in                Returns    successfully extracted  and if necessary succ
52.  ee Re ee A 149  17 28 2 Member Function Documentation         a a aoaaa a a 150  17 29goby  acomms  ModemDriverBase Class Reference      ooo a 150  17291 Detailed Description  lt  oc too s gcosa moit oa areon mm e a ee eee a 152  17 29 2 Member Function Documentation         a a o aooaa a 152  11293 Member Data DOCUINGNIANON       s s a sa s aeos ad g eee AR d a ee Re 154  17 30goby  acomms  QueueException Class Reference      ooo a 155  17 301 Detailed Descnplhon s pa scie saoi mce A A A 155  17 31 goby  acomms  QueueManager Class Reference    oaoa a 156  17911 Detailed Deschpioh   lt    gore ad A d e p a 158  17 31 2 Member Function Documentation         a a aooaa a 158  1731 3 Member Data Documentation        lt  se ce a e swa aa sa pd taa ee ew ee 160  17 32goby  common  Colors Struct Reference             a 161  17321 Detaled Descriptio  oo moe ke e aioe a A aka A A a dB 161  17 33goby  common  ConfigException Class Reference      ooo a 162  17 33 1 Detailed Descriplion   gt s sa  c sup bon ra RA a e EUa d a ae da aa 162       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    CONTENTS vi       17 34goby  common  FlexNCurses Class Reference       2 2    0 0       ee ee 162  1734 1 Detailed DESCAQUOT   lt   e Re a A RR A ea E A 163  17 35goby  common  FlexOstream Class Reference       a a a 163  17 391 Detailed Descnplhon 2  ac hae ba Bae a E a RG ee EER a 164  17 35 2 Member Function Documentation co  co    2    a 164  17 36goby  common  FlexOStreamBuf Clas
53.  effectively bypasses the queue and forwards  the modem   s data request to the application layer  Use this for sending highly time sensitive data which  needs to be encoded immediately prior to sending  Set the encode_on_demand option to true for that  particular Protobuf message  and if desired change the on_demand_skew_seconds   You must also  connect a slot that will be executed each time data is requested to the signal goby  acomms  Queue   Manager  signal_data_on_demand        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    4 4 Example messages 28       4 3 3 Operation    At this point the goby  acomms  QueueManager is ready to use  At the application layer  new messages are pushed  to the queues for sending using goby  acomms  QueueManager  push_message  Each queue is identified by its  DCCL  Protobuf  name     At the driver layer  messages are requested using goby  acomms  QueueManager  handle_modem_data_request  and incoming messages  including acknowledgments  are published using goby  acomms  QueueManager  handle   _modem_receive  If using the goby acomms drivers  i e  some class derived from goby  acomms  ModemDriver   Base   simply call goby  acomms  bind  ModemDriverBase amp   QueueManager amp   and these methods  slots  will be  invoked automatically from the proper driver signals     You must run goby  acomms  QueueManager  do_work   regularly  faster than 1 Hz  10 Hertz is good  to process  expired messages  goby  acomms  QueueManager  signal_
54.  get information on  Use google  protobuf  Message  GetDescriptor   or My   ProtobufType  descriptor   to get this object           part       the part of the Message to act on        Definition at line 289 of file dccl_field_codec cpp     17 13 2 9 void goby  acomms  DCCLFieldCodecBase  base_max_size   unsigned x bit_size  const google  protobuf  Descriptor    desc  MessageHandler  MessagePart part      Calculate the maximum size of a message given its Descriptor alone  no data     Parameters       bit_size    Pointer to unsigned integer to store calculated maximum size in bits        desc    Descriptor to calculate the maximum size of  Use google  protobuf  Message  GetDescriptor    or MyProtobufType  descriptor   to get this object           part       part of the Message       Definition at line 202 of file dccl_field_codec cpp     17 13 2 10 void goby  acomms  DCCLFieldCodecBase  base_min_size   unsigned x bit_size  const google  protobuf  Descriptor  x desc  MessageHandler  MessagePart part      Calculate the minimum size of a message given its Descriptor alone  no data     Parameters       bit_size    Pointer to unsigned integer to store calculated minimum size in bits        desc    Descriptor to calculate the minimum size of  Use google  protobuf  Message  GetDescriptor    or MyProtobufType  descriptor   to get this object           part       part of the Message       Definition at line 232 of file dccl_field_codec cpp     17 13 2 11    void goby  acomms  DCCLFieldC
55.  goby   acomms    protobuf   ModemTransmission   DRIVER_SPECIFIC     mac back     SetExtension  micromodem   protobuf  type   micromodem   protobuf    MICROMODEM_REMUS_LBL_RANGING     7       must call update after manipulating MACManager before calling do_work  again   mac update           Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    19 2 acomms chat chat cpp    188           Jf 6  Run it        for  77      mac do_work     usleep  100000          return 0          void init_transmission const goby  acomms   protobuf   ModemTransmission amp  msg          std  cout  lt  lt   starting transmission with these values     lt  lt  msg  lt  lt     std  endl     19 2 acomms chat chat cpp       usage  connect two modems and then run      gt  chat  dev tty_modem_A 1 2 log_file_A      gt  chat  dev tty_modem_B 2 1 log_file_B       type into a window and hit enter to send a message        and sent on a fixed rotating cycle   include  lt iostream gt      include  goby acomms dccl h    include  goby acomms queue h    include  goby acomms modem_driver h    include  goby acomms amac h    include  goby acomms bind h    include  goby util as h     include  goby common time h    include  chat pb h      include  lt boost lexical_cast hpp gt         include  chat_curses h     using goby  util  as   using goby  common  goby_time     int startup_failure       void received_data const google   protobuf   Message amp      void received_ack  const goby  acomms   protobuf  ModemTran
56.  goby  acomms  DCCLDefaultBytesCodec Class Reference            o      e        105  16 1 Detailed Pesci  lt   s roca oet ra A e AR A ee A 106  17 7 goby  acomms  DCCLDefaultEnumCodec Class Reference         0    o    e        106  17 221 Detailed Desctetion coos a cc 50862 ae eb ees RA A 107  17 8 goby  acomms  DCCLDefaultldentifierCodec Class Reference            0            107  1761 Detailed Desc  s oa 0084608 Pee Path baer Peete 108  17 8 2 Member Function Documentation              e    e    eee es 108  17 9 goby  acomms  DCCLDefaultMessageCodec Class Reference          0    a 110  118 1 Detailed Descrpll  n   ss  e a e a ete 110    17 10goby  acomms  DCCLDefaultNumericFieldCodec lt  WireType  FieldType  gt  Class Template Reference1 11    17 10 1 Detailed Description  lt   lt  a ee oso error bee ad ede be hw 112  17 10 2 Member Function Documentation          0    0  a ee 112  17 11 goby  acomms  DCCLDefaultStringCodec Class Reference            o    e        113  12 111 Detailed DSscretion i soes gee ai ER hE ak E a eae wale Wek 113  17 12goby  acomms  DCCLException Class Reference               0000     eee eee 114  1121 Detaled Descriptio csm ee ee A a hak Se RA he ee dh ae 114  17 13goby  acomms  DCCLFieldCodecBase Class Reference                                    114  11 131 Detailed Descrption     os so L222 BRAG BRE SG ewe ra a da A 118  17 13 2 Member Function Documentation       2 2      e        a 118  17 14goby  acomms  DCCLFieldCodecManager Class Referenc
57.  goby  acomms  MACManager  update   before  the next call to goby  acomms  MACManager  do_work       See amac_simple cpp for a basic complete example     6 goby acomms  modemdriver  Driver to interact with modem firmware     Table of contents for modemdriver       Abstract class  ModemDriverBase    Protobuf Message goby  acomms  protobuf  ModemTransmission  e Writing a new driver    e WHOI Micro Modem Driver  MMDriver    Return to goby acomms  An overview of Acoustic Communications Library     6 1 Abstract class  ModemDriverBase    goby  acomms  ModemDriverBase defines the core functionality for an acoustic modem  It provides      A serial or serial like  over TCP  reader writer  This is an instantiation of an appropriate derivative of  the goby  util  LineBasedInterface class which reads the physical interface  serial or TCP  to the acous   tic modem  The data  assumed to be ASCII lines offset by a delimiter such as NMEA0183 or the Hayes  command set  AT   are read into a buffer for use by the goby  acomms  ModemDriverBase derived class   e g  goby  acomms  MMDriver   The type of interface is configured using a goby  acomms  protobuf  Driver   Config  The modem is accessed by the derived class using goby  acomms  ModemDriverBase  modem   _ start  goby  acomms  ModemDriverBase  modem_read  goby  acomms  ModemDriverBase  modem_write   and goby  acomms  ModemDriverBase  modem_close     e Signals to be called at the appropriate time by the derived class  At the application layer
58.  gt     Base class for  repeated   multiple value  static typed  no boost  any  field encoders decoders  Most user defined  variable length codecs will start with this class  Use DCCLTypedFixedFieldCodec if your codec is fixed length   always uses the same number of bits on the wire   Use DCCLTypedFieldCodec if your fields are always singular    optional  or  required    Singular fields are default implemented in this codec by calls to the equivalent repeated  function with an empty or single valued vector     Template Parameters       WireType   the type used for the encode and decode functions  This can be any C   type  and is  often the same as FieldType  unless a type conversion should be performed  The reason  for using a different Wire Type and Field Type should be clear from the DCCLDefaultEnum   Codec which uses DCCLDefaultNumericFieldCodec to do all the numerical encoding    decoding while DCCLDefaultEnumCodec does the type conversion  pre_encode   and  post_decode           Field Type   the type used in the Google Protobuf message that is exposed to the end user DCCL   Codec  decode    DCCLCodec  encode    etc  functions                 Definition at line 199 of file dccl_field_codec_typed h     17 17 2 Member Function Documentation    17 17 21 template lt typename WireType  typename FieldType   WireType gt  virtual WireType goby  acomms  D   CCLRepeatedTypedFieldCodec lt  WireType  FieldType  gt   decode   Bitset x bits    inline     virtual     Decode a field  If 
59.  in the child class       include  lt goby acomms dccl dccl_field_codec_typed h gt        Inheritance diagram for goby  acomms  DCCLFieldCodecSelector lt  WireType  FieldType  typename boost  disable   _if lt  boost  is_same lt  WireType  FieldType  gt   gt   type  gt      goby  acomms  DCCLFieldCodecBase    goby  acomms  DCCLFieldCodec   Selector lt  Wire Type  FieldType    typename boost  disable_if    lt  boost  is same lt  Wrelype  FieldType   gt   gt itype  gt        Protected Member Functions    e virtual WireType pre_encode  const FieldType  amp field_value  0    Convert from the FieldType representation  used in the Google Protobuf message  to the WireType representation   used with encode   and decode    i e   on the wire       e virtual FieldType post_decode  const WireType  amp wire_value  0    Convert from the WireType representation  used with encode   and decode    i e   on the wire   to the FieldType  representation  used in the Google Protobuf message      Additional Inherited Members  17 16 1 Detailed Description    template lt typename WireType  typename FieldType gt class goby  acomms  DCCLFieldCodecSelector lt  WireType  FieldType   typename boost  disable_if lt  boost  is_same lt  WireType  FieldType  gt   gt   type  gt     If WireType    FieldType  adds some more pure virtual methods to handle the type conversions  pre_encode   and  post_decode     If WireType    FieldType this class is not inherited and this pure virtual methods do not exist  and  thus 
60.  lt  goby  uint32  goby  uint32  gt  128  goby  acomms  DCCLTypedFieldCodec lt  goby  uint32  goby  uint32  gt  137  goby  acomms  DCCLTypedFixedFieldCodec lt  goby  uint32  gt  140  goby  acomms  DCCLFieldCodecSelector lt  int32  const google  protobuf  EnumValue   Descriptor     gt  128  goby  acomms  DCCLTypedFieldCodec lt  int32  const google  protobuf  EnumValue   Descriptor    gt  137  goby  acomms  DCCLTypedFixedFieldCodec lt  int32  const google  protobuf  Enum   ValueDescriptor x  gt  140  goby  acomms  DCCLDefaultNumericFieldCodec lt  int32  const google  protobuf     EnumValueDescriptor x  gt  111  goby  acomms  DCCLDefaultEnumCodec 106  goby  acomms  DCCLFieldCodecSelector lt  int32  TimeType  gt  128  goby  acomms  DCCLTypedFieldCodec lt  int32  TimeType  gt  137  goby  acomms  DCCLTypedFixedFieldCodec lt  int32  TimeType  gt  140  goby  acomms  DCCLDefaultNumericFieldCodec lt  int32  TimeType  gt  111  goby  acomms  DCCLTimeCodec lt  TimeType  gt  135       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    12 1 Class Hierarchy 62       goby  acomms  DCCLFieldCodecSelector lt  Model  value_type  const google  protobuf  Enum   ValueDescriptor x  gt  128    goby  acomms  DCCLTypedFieldCodec lt   Model  value type  const google  protobuf     EnumValueDescriptor x  gt  137    goby  acomms  DCCLRepeatedTypedFieldCodec lt  Model  value_type  const google       protobuf  EnumValueDescriptor    gt  130  goby  acomms  DCCLFieldCodecSelector lt  Model  value_
61.  moos_translator h 22  goby moos moos_ufield_sim_driver h 22  goby moos frontseat frontseat h 22  goby moos frontseat frontseat_exception h 22  goby moos frontseat bluefin bluefin h 22  goby moos frontseat bluefin bluefin pb h 22  goby moos frontseat bluefin bluefin proto 22  goby moos frontseat bluefin bluefin_config pb h 22   22    goby moos frontseat bluefin bluefin_config proto       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen       goby moos transitional message_val h    14 1 File List 72  goby moos protobuf bluefin_driver pb h 22  goby moos protobuf bluefin_driver proto 22  goby moos protobuf ctd_sample pb h 22  goby moos protobuf ctd_sample proto 2   goby moos protobuf desired_course pb h 22  goby moos protobuf desired_course proto 2   goby moos protobuf frontseat pb h 22  goby moos protobuf frontseat proto 2   goby moos protobuf frontseat_config pb h 22  goby moos protobuf frontseat_config proto 22  goby moos protobuf goby_moos_app pb h 22  goby moos protobuf goby_moos_app proto 2   goby moos protobuf liaison_config pb h 22  goby moos protobuf liaison_config proto 22  goby moos protobuf modem_id_lookup pb h 22  goby moos protobuf modem_id_lookup proto 2   goby moos protobuf node_status pb h 2   goby moos protobuf node_status proto 2   goby moos protobuf pAcommsHandler_config pb h 22  goby moos protobuf pAcommsHandler_config proto 22  goby moos protobuf transitional pb h 22  goby moos protobuf transitional proto 22  goby moos protobuf translator pb h 2
62.  or   slotting   Networks with multiple frequency bands will have to employ a different MAC scheme or augment amac  for the frequency division multiple access  FDMA  scenario     The Goby AMAC provides two basic types of TDMA     e Decentralized  Each node initiates its own transaction at the appropriate time in the TDMA cycle  This requires  reasonably well synchronized clocks  any skew must be included in the time of the slot as a guard  so skews  of less than 0 1 seconds are generally acceptable       e Centralized  also called  polling    For legacy support   polling  is also provided  This is a TDMA enforced by  a central computer  the  poller      The  poller  sends a request for data from a list of nodes in sequential order   The advantage of polling is that synchronous clocks are not needed and the MAC scheme can be changed  on short notice by the topside operator  Clearly this only works with modem hardware capable of third party  mediation of transmission  such as the WHOI Micro Modem      Detailed documentation for goby acomms  amac  Medium Access Control      2 6 Software concepts used in goby acomms  2 6 1 Signal   Slot model for asynchronous events    The layers of goby acomms use a signal   slot system for asynchronous events such as receipt of an acoustic  message  Each signal can be connected  goby  acomms  connect    to one or more slots  which are functions or  member functions matching the signature of the signal  When the signal is emitted  the slots are 
63.  or user defined encoder  This allows the codecs to be matched to the data s physical  origins and thus make the most of the limited throughput available by making very small encoded messages     Detailed documentation for goby acomms  DCCL  Dynamic Compact Control Language      2 3 queue  Priority based message queuing    The goby acomms queuing  queue  component interacts with both the application level process and the modem    driver process that talks directly to the modem     On the application side  queue provides the ability for the application level process to push DCCL messages to  various queues and receive messages from a remote sender that correspond to messages in the same queue  e g   you have a queue for STATUS_MESSAGE that you can push messages to you and also receive other STATUS_   MESSAGEs on   The push feature is called by the application level process and received messages are signaled    to all previous bound slots  see Signal   Slot model for asynchronous events         Generated on Wed Mar 26 2014 01 41 49 for Goby    v2 by Doxygen             2 4 modemdriver  Modem driver 7       On the driver side  queue provides the modem driver with data upon request  It chooses the data to send based  on dynamic priorities  and several other configuration parameters   It will also pack as many messages from the  user into a single frame from the modem as possible using the DCCLCodec s repeated encoding functionality  Note   however  that queue will not split a use
64.  proto html extensions  to DriverContfig  to handle modem specific configuration                 Implements goby  acomms  ModemDriverBase   Definition at line 54 of file moos_bluefin_driver cpp     The documentation for this class was generated from the following files       goby moos moos_bluefin_driver h    src moos moos_bluefin_driver cpp    17 40 goby  moos  UFidDriver Class Reference    provides an simulator driver to the uUFldNodeComms MOOS module  http    oceanai mit edu moos ivp pmwiki pmwi  php n Modules  UF1dNodeComms     include  lt goby moos moos_ufield_sim_driver h gt        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 40 goby  moos  UFIdDriver Class Reference 170       Inheritance diagram for goby  moos  UFldDriver        goby  acomms  ModemDriverBase       goby  moos  UFldDriver       Public Member Functions    e void startup  const goby  acomms  protobuf  DriverConfig  amp cfg     Starts the modem driver  Must be called before poll     e void shutdown       Shuts down the modem driver   e void do_work       Allows the modem driver to do its work   e void handle_initiate_transmission  const goby  acomms  protobuf  ModemTransmission gm     Virtual initiate_transmission method  Typically connected to MACManager  signal_initiate_transmission   using  bind       Additional Inherited Members  17 40 1 Detailed Description    provides an simulator driver to the uUFldNodeComms MOOS module  http    oceanai mit edu moos ivp pmwiki pmwi  php n Module
65.  protobuf  Message   root_message     e static MessageHandler  MessagePart part       the part of the message currently being encoded  head or body    17 13 1 Detailed Description    Provides a base class for defining DCCL field encoders   decoders  Most users will use the DCCLTypedFieldCodec  or its children  e g  DCCLTypedFixedFieldCodec  instead of directly inheriting from this class     Definition at line 55 of file dccl_field_codec h     17 13 2 Member Function Documentation    17 13 2 1 virtual void goby  acomms  DCCLFieldCodecBase  any decode   Bitset x bits  boost  any   wire_value     protected    pure virtual     Virtual method used to decode     Parameters       bits   Bitset containing bits to decode  This will initially contain min_size   bits  If you need more bits   call get_more_bits   with the number of bits required  This bits will be consumed from the bit  pool and placed in bits              wire_value   Place to store decoded value  as FieldType           17 13 2 2 virtual void goby  acomms  DCCLFieldCodecBase  any_encode   Bitset x bits  const boost  any  amp  wire_value     protected    pure virtual     Virtual method used to encode     Parameters       bits   Bitset to store encoded bits  Bits is just the bits from the current operation  unlike base_   encode   and field_encode   where bits are added to the most significant end               wire_value   Value to encode  WireType           17 13 2 3 virtual void goby  acomms  DCCLFieldCodecBase  any _p
66.  push                 Examples     acomms chat chat cpp  and acomms queue queue_simple queue_simple cpp     Definition at line 132 of file queue_manager cpp     17 31 3 Member Data Documentation    17 31 3 1  boost  signals2  signal lt void  const protobuf  ModemTransmission amp  ack_msg  const google  protobuf  Message amp   orig_msg  gt  goby  acomms  QueueManager  signal_ack    Signals when acknowledgment of proper message receipt has been received  This is only sent for queues with  queue ack    true with an explicit destination  ModemMessageBase  dest      0     Parameters       ack_msg   a message containing details of the acknowledgment and the acknowledged transmission    protobuf  ModemMsgAck is defined in acomms_modem_message proto                 Examples     acomms chat chat cpp     Definition at line 191 of file queue_manager h     17 31 3 2  boost  signals2  signal lt void  const protobuf  ModemTransmission amp  request_msg  google  protobuf  Messagex  data_msg  gt  goby  acomms  QueueManager  signal_data_on_demand    Forwards the data request to the application layer  This advanced feature is used when queue encode_on_demand       true and allows for the application to provide data immediately before it is actually sent  for highly time sensitive  data     Parameters       request_msg   the details of the requested data   protobuf  ModemDataRequest is defined in acomms_   modem_message proto              data_msg   pointer to store the supplied data  The messag
67.  push_back  slot      3  gt  1 0 wait 10    a    ot set_rate 5    mac push_back  slot      3  gt  1 5 wait 10       slot set_src  4     slot set_rate 0     mac push_back  slot      4  gt  1 0 wait 10   mac update      important   call update   after any modifying changes to  the MACManager underlying std   list                      goby  acomms  protobuf  MAC_POLLED  On the vehicles  you do not need to run the goby  acomms  MAC   Manager at all  or simply give it the  do nothing  goby  acomms  protobuf  MAC_NONE type  All the MAC  is done on the topside  the centralized poller   On the poller  you need to manually set up a list of vehicles  to be polled by adding an goby  acomms  protobuf  Slot  in the initial goby  acomms  protobuf  MACConfig  object or at runtime via goby  acomms  MACManager  add_slot  for each vehicle to be polled  You can poll  the same vehicle multiple times  just add more goby  acomms  protobuf  Slot objects corresponding to that  vehicle  Each slot has a source  destination  rate  type  data or ping  not yet implemented    and length  in  seconds   If the source is the poller  you can set the destination to goby  acomms  QUERY_DESTINATION   _ID    1  to let queue determine the next destination  based on the highest priority message to send   All  goby  acomms  protobuf  Slot objects for vehicles must have a specified destination  the goby  acomms  BR   OADCAST_ID is a good choice or the id of the poller   For example        poll ourselves  for commands
68.  std  cout  lt  lt   received hexadecimal string     lt  lt  goby  util  hex_encode    bytes   lt  lt  std  endl     message Clear  j       input contents right back to decoder   std  cout  lt  lt   passed hexadecimal string to decoder     lt  lt   goby   util  hex_encode  bytes   lt  lt  std  endl     dccl  gt decode  bytes   amp message       std  cout  lt  lt   received message    lt  lt  message  lt  lt  std  endl     return 0        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    19 4 acomms dccl two_message two_    message cpp    192       19 4 acomms dccl two message two message cpp    two_message proto    import  goby acomms protobuf dccl_option_extensions proto      message GoToCommand      option  dccl msg  id   125   option  dccl msg   max_bytes   32     required int32 destination   1   dccl field   max 31    dccl  field   min 0    dccl field   precision 0    optional string type   2   dccl field   static_value  goto      required int32 goto_x   3   dccl    decl    decl   required int32 goto_y   4   dccl    decl    decl   required bool lights_on   5   required string new_instructions        dccl field   codec  _static          field   max 10000   field   min 0    field   precision 0    field   max 10000   field   min 0    field   precision 0        6   dccl field   max_length 10      required double goto_speed   7   dccl field   max 3    dccl  field   min 0    dccl field   precision 2      message VehicleStatus      option  dccl msg  id   126   opti
69.  std  string  std goby  acomms  DCCLIypedField goby  acomms  DCCLDefault  y  e     string  gt  Codec lt  std  string  gt  BytesCodec  goby  acomms  DCCLFeldCodec goby  acomms  DCCLypedField  Le   Selector lt  T  T  gt  Codec lt  T  T gt                 goby  acomms  DCCLIypedField    goby  acomms  DCCLFieldCodec    Codec lt  uint32  gt     Selector lt  uint32  uint32  gt                 goby  acomms  DCCLFieldCodec goby  acomms  DCCLypedField  Selector lt  uint64  uint64  gt  Codec lt  uint32  uint32  gt                 goby  acomms  DCCLFieldCodec goby  acomms  DCCLiypedField  Selector lt  WireType  FieldType  gt  Codec lt  uint64  uint64  gt                 goby  acomms  DCCLDefault goby  acomms  DCCLIypedField  MessageCodec Codec lt  WireType  FieldType  gt                          goby  acomms  DCCLFieldCodec  Selector lt  WreType  FieldType   Enable  gt                 goby  acomms  DCCLFeldCodec   Selector lt  WireType  FieldType    typename boost  disable_if    lt  boost is_same lt  WireType  FieldType   gt   gt  type  gt              Public Member Functions  Constructor  Destructor    e DCCLFieldCodecBase     e virtual  DCCLFieldCodecBase       Base message functions    These are called typically by DCCLCodec to start processing a new message  In this example  Foo    code    message Foo   int32 bar   1  FooBar baz   2       e void base_encode  Bitset bits  const google  protobuf  Message  amp msg  MessageHandler  MessagePart  part   Encode this part  body or head  of 
70.  the following file        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 39 goby  moos  BluefinCommsDriver Class Reference 168         goby common exception h    17 39 goby  moos  BluefinCommsDriver Class Reference   provides a driver for the Bluefin Huxley communications infrastructure  initially uses SonarDyne as underlying hard   ware     include  lt goby moos moos_bluefin_driver h gt     Inheritance diagram for goby  moos  BluefinCommsDriver        goby  acomms  ModemDriverBase    goby  moos  BluefinComms  Driver    Public Member Functions    e BluefinCommsDriver  goby  acomms  MACManager  mac   e void startup  const goby  acomms  protobuf  DriverConfig  amp cfg     Starts the modem driver  Must be called before poll     e void shutdown       Shuts down the modem driver     void do_work       Allows the modem driver to do its work   e void handle_initiate_transmission  const goby  acomms  protobuf  ModemTransmission gm     Virtual initiate_transmission method  Typically connected to MACManager  signal_initiate_transmission   using  bind       Additional Inherited Members  17 39 1 Detailed Description    provides a driver for the Bluefin Huxley communications infrastructure  initially uses SonarDyne as underlying hard   ware     Definition at line 47 of file moos_bluefin_driver h   17 39 2 Member Function Documentation    17 39 2 1 void goby  moos  BluefinCommsDriver  do_work     virtual     Allows the modem driver to do its work        Generated on We
71.  typename FieldType   WireType gt  virtual unsigned goby  acomms     DCCLRepeatedTypedFieldCodec lt  WireType  FieldType  gt   max_size     inline     virtual     Calculate maximum size of the field in bits   Returns    Maximum size of this field  in bits      Implements goby  acomms  DCCLFieldCodecBase     Definition at line 263 of file dccl_field_codec_typed h     17 17 2 5 template lt typename WireType  typename FieldType   WireType gt  virtual unsigned goby  acomms     DCCLRepeatedTypedFieldCodec lt  WireType  FieldType  gt   min size      inline     virtual     Calculate minimum size of the field in bits   Returns    Minimum size of this field  in bits      Implements goby  acomms  DCCLFieldCodecBase     Definition at line 266 of file dccl_field_codec_typed h   17 17 2 6 template lt typename WireType  typename FieldType   WireType gt  virtual unsigned goby  acomms     DCCLRepeatedTypedFieldCodec lt  WireType  FieldType  gt   size     inline       virtual     Calculate the size  in bits  of an empty field        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 18 goby  acomms  DCCLStaticCodec lt  T  gt  Class Template Reference 135       Returns    the size  in bits  of the empty field   Implements goby  acomms  DCCLTypedFieldCodec lt  WireType  Field Type  gt    Definition at line 253 of file dccl_field_codec_typed h     17 17 2 7 template lt typename WireType  typename FieldType   WireType gt  virtual unsigned goby  acomms  DCCL   RepeatedTypedFieldCod
72.  util linebasedcomms tcp_client cpp 2    22       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    15 1 API classes for the Dynamic Compact Control Language  includes writing custom encoders   80       15 1 API classes for the Dynamic Compact Control Language  includes writing custom encoders      Collaboration diagram for API classes for the Dynamic Compact Control Language  includes writing custom  encoders       API classes for the API classes for the    a i x major components of  Dynamic Compact Control _goby  acomms  DCCLCodec       the Goby Acomms acoustic    Language  includes writing    communications libra  custom encoders   y     DCCL  Queue  AMAC  ModemDriver         Classes      class goby  acomms  DCCLTypedFixedFieldCodec lt  WireType  FieldType  gt     Base class for static typed field encoders decoders that use a fixed number of bits on the wire regardless of the  value of the field  Use DCCL TypedFieldCodec if your encoder is variable length  See DCCL TypedFieldCodec for an  explanation of the template parameters  Field Type and Wire Type        class goby  acomms  DCCLTypedFieldCodec lt  WireType  FieldType  gt   Base class for static typed  no boost  any  field encoders decoders  Most user defined variable length codecs will    start with this class  Use DCCL TypedFixedFieldCodec if your codec is fixed length  always uses the same number of  bits on the wire      class goby  acomms  DCCLRepeatedTypedFieldCodec lt  WireType  FieldType  gt    Ba
73.  v2 by Doxygen    17 29 goby  acomms  ModemDriverBase Class Reference 151       17 28 2 Member Function Documentation  17 28 2 1 void goby  acomms  MMDriver  startup   const protobuf  DriverConfig  amp  cfg    virtual   Starts the driver     Parameters       cfg   Configuration 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     Examples     acomms chat chat cpp     Definition at line 80 of file mm_driver cpp     The documentation for this class was generated from the following files       goby acomms modemdriver mm_driver h    src acomms modemdriver mm_driver cpp    17 29 goby  acomms  ModemDriverBase Class Reference    provides an abstract base class for acoustic modem drivers  This is subclassed by the various drivers for different  manufacturers    modems      include  lt goby acomms modem_driver h gt     Inheritance diagram for goby  acomms  ModemDriverBase     goby  acomms  ABCDriver  goby  acomms  MMDriver    goby  moos  BluefinComms  Driver    goby  moos  UFldDriver            goby  acomms  ModemDriverBase    Public Member Functions    e virtual  ModemDriverBase       Public Destructor     Control       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 29 goby  acomms  ModemDriverBase Class Reference 152       e virtual void startup  const protobuf  DriverConfig  a
74. 000         hh ll Fh oil Fh 00    H  oO       Fh I    H  oO          14   dccl field   max_length 8         deccl field   max_length 9        17      dccl  field   min  100   ield   max 126    ield   precision 2    ield   in_head true     dccl  field   min  20   ield   max 150    ield   precision 3     dccl  field   min  20   field   max 3000     dccl field   min  710   field   max 3000    25   dccl field   min 0   field   max 3000    26   dccl field  min 5   field   max 3000    27   dccl field   min  60   field   max 3000    28   dccl field   min  70     Mh FH HDN    Fh Fh                     29   dccl field   min 0        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    3 5 Example messages    18                                   deccl field   max 400    required fixed64 fixed64_default_required   30   dccl field   min 0    dccl field   max 3000    required sfixed32 sfixed32_default_required   31   dccl field   min 11    dccl  field   max 3000    required sfixed64 sfixed64_default_required   32   dccl field   min  120    dccl  field   max 3000    required bool bool_default_required   33   required string string_default_required   34   dccl field   max_length 8    required bytes bytes_default_required   35   dccl field   max_length 9    required Enuml enum_default_required   36   required EmbeddedMsgl msg_default_required   37   repeated double double_default_repeat   101   dccl field   min 0    dccl  field   max 100    dccl field   precision 3    dcecl  field
75. 1 49 for Goby v2 by Doxygen    17 12 goby  acomms  DCCLException Class Reference    115        length of following string  1 byte   string  0 255 bytes    Definition at line 184 of file dccl_field_codec_default h     The documentation for this class was generated from the following files       goby acomms dccl dccl_field_codec_default h    src acomms dccl dccl_field_codec_default cpp    17 12 goby  acomms  DCCLException Class Reference    Exception class for libdccl    include  lt goby acomms dccl dccl_exception h gt     Inheritance diagram for goby  acomms  DCCLException         goby  Exception    goby  acomms  DCCLException    Public Member Functions    e DCCLException  const std  string  amp s     17 12 1 Detailed Description    Exception class for libdccl   Definition at line 35 of file dccl_exception h     The documentation for this class was generated from the following file       goby acomms dccl dccl_exception h    17 13 goby  acomms  DCCLFieldCodecBase Class Reference    Provides a base class for defining DCCL field encoders   decoders  Most users will use the DCCLTypedFieldCodec    or its children  e g  DCCLTypedFixedFieldCodec  instead of directly inheriting from this class      include  lt goby acomms dccl dccl_field_codec h gt        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 13 goby  acomms  DCCLFieldCodecBase Class Reference    116       Inheritance diagram for goby  acomms  DCCLFieldCodecBase        goby  acomms  DCCLFieldCodec  Selecto
76. 1 Designing a message  o o co g be ke o a Bee ee ee 9  Se IDCOLIPMOIOBUPORUONS cns o ca ee EO ee eG he a bee Baws 12  3  interacting with ihe DOCLCodec     o saas be we eR a daa 13  OM ENGO  o o erona cak e mok a a e a e eee eee ed 14  a Exampe messages caia A a rd dA 14  3 5 1 Minimal functional DCCL Message                   ee 14  3 5 2 Two Message example      ccsa oe sa correrse rd e a a ea 15    3 5 3 DCCL Test2 showing an embedded message encoded by a custom  non default  codec    18    geet o II 18  goo BOOL TES  cisnes vi ia Aa PE SAS Sots 19  306 DOCU TS  ima ll eee A a Ra AA oS 19  See  DEOL ANA ae Se Ga 20  das  DOOL TST   rrp acd Bae we aes  Sate  Ysa BES a ed ee O da 20  Set DUCL Testes a  age se Gp es ws Boar ah Do ig we Sper A Eth A Bares eG 21       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen       CONTENTS ii  Sa lO DOOL TES seek bee Pee vee GR REEL ERE ER ee RR a eed Aw 21   4 goby acomms  queue  Message Priority Queuing  22  4 1 Understanding dynamic priority queuing       2    a 22  4 2  Queuing Prolobut QUOS    co ek eae aa g Bok we a be ee Pek ae we eS 23  4 3 Interacting with the QueueManager             00  26  431 instantiate and CONQUE     so s eee ee ee ae ee ea ke we ha Or eS 26   4 3 2 Signals and  application layer  slots            0  0 00002 eee ee eee 26   Aso AAA 27   dA Example messages  oce da i a ee a eo ee Be a es ee 27  4 4 1 Minimal functional DCCL   Queue message        o    e    e    e      o  27   HAD E iiae iak e b
77. 11 of file dccl cpp     17 4 2 17 void goby  acomms  DCCLCodec  validate_repeated   const std  list lt  const google  protobuf  Descriptor x  gt   amp   descs      Shortcut for validating multiple messages at once                                   Exceptions  DCCLException   if message s  are invalid   Parameters  descs   list of Google Protobuf  Descriptors  to validate  See Also    test acomms dccl4 test cpp and test acomms dccl4 test proto    Definition at line 424 of file dccl cpp     The documentation for this class was generated from the following files       goby acomms dccl dccl h    src acomms dccl dccl cpp    17 5 goby  acomms  DCCLDefaultBoolCodec Class Reference    Provides a bool encoder  Uses 1 bit if field is requirea  2 bits if optional     include  lt goby acomms dccl dccl_field_codec_default h gt           Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 6 goby  acomms  DCCLDefaultBytesCodec Class Reference    106       Inheritance diagram for goby  acomms  DCCLDefaultBoolCodec     goby  acomms  DCCLFieldCodecBase          goby  acomms  DCCLFieldCodec  Selector lt  bool  bool  gt     goby  acomms  DCCLlypedField  Codec lt  bool  bool  gt     goby  acomms  DCCLlypedFixed  FieldCodec lt  bool  gt     goby  acomms  DCCLDefault  BoolCodec    Additional Inherited Members  17 5 1 Detailed Description    Provides a bool encoder  Uses 1 bit if field is required  2 bits if optional   presence bit  0 bits if required  1 bit if optional   value  1 bit
78. 13 2 6 void goby  acomms  DCCLFieldCodecBase  base decode   Bitset    bits  google  protobuf  Message    msg   MessageHandler  MessagePart part      Decode part of a message     Parameters       bits   Pointer to a Bitset containing bits to decode  The least significant bits will be consumed first   Any bits not consumed will remain in bits after this method returns        msg   DCCL Message to merge the decoded result into              part   part of the Message to decode          Definition at line 130 of file dccl_field_codec cpp     17 13 2 7 void goby  acomms  DCCLFieldCodecBase  base_encode   Bitset    bits  const google  protobuf  Message  amp  msg   MessageHandler  MessagePart part      Encode this part  body or head  of the base message     Parameters       bits   pointer to a Bitset where all bits will be pushed on to the most significant end        msg   DCCL Message to encode             part   Part of the message to encode          Definition at line 45 of file dccl_field_codec cpp     17 13 2 8 void goby  acomms  DCCLFieldCodecBase  base_info   std  ostream x os  const google  protobuf  Descriptor     desc  MessageHandler  MessagePart part      Get human readable information  size of fields  etc   about this part of the DCCL message        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 13 goby  acomms  DCCLFieldCodecBase Class Reference    121       Parameters       OS    Pointer to stream to store this information       desc    Descriptor to
79. 2  goby moos protobuf translator proto 22  goby moos protobuf ufield_sim_driver pb h 22  goby moos protobuf ufield_sim_driver proto 22  goby moos transitional dccl_constants h 2   goby moos transitional dccl_transitional h 22  goby moos transitional message h 22  goby moos transitional message_algorithms h 22  goby moos transitional message_publish h 22   22       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen       goby pb protobuf iridium_driver pb h    14 1 File List 73  goby moos transitional message_var h 22  goby moos transitional message_var_bool h 22  goby moos transitional message_var_enum h 22  goby moos transitional message_var_float h 22  goby moos transitional message_var_head h 22  goby moos transitional message_var_hex h 22  goby moos transitional message_var_int h 22  goby moos transitional message_var_static h 2   goby moos transitional message_var_string h 22  goby moos transitional message_xml_callbacks h 2   goby moos transitional queue_xml_callbacks h 22  goby moos transitional xml message_schema xsd h 2   goby moos transitional xml tags h 22  goby moos transitional xml xerces_strings h 22  goby moos transitional xml xml_parser h 22  goby pb application h 22  goby pb iridium_driver h 22  goby pb iridium_driver_fsm h 22  goby pb pb_modem_driver h 22  goby pb protobuf_node h 22  goby pb protobuf_pubsub_node wrapper h 22  goby pb rudics_packet h 22  goby pb subscription h 22  goby pb protobuf config pb h 22  goby pb protobuf config proto 22  go
80. 52  modem_read  153  modem _start  153  modem_write  153  signal_data_request  154  signal_modify_transmission  154  signal_raw_incoming  154  signal_raw_outgoing  154  signal_receive  154  signal_transmit_result  155  startup  153  goby  acomms  QueueException  155  goby  acomms  QueueManager  156  add_queue  158  flush_queue  158  handle_modem_data_request  158  handle_modem_receive  159  info  159  info_all  159  push_message  159  signal_ack  160  signal_data_on_demand  160  signal_expire  160  signal_queue_size_change  160  signal_receive  161  goby  common  85  goby  common  Colors  161  goby  common  ConfigException  162  goby  common  FlexNCurses  162  goby  common  FlexOStreamBuf  164  goby  common  FlexOstream  163  add_group  164  goby  common  TermColor  165  goby  common  tcolor  88  add_escape_code  88  goby  moos  BluefinCommsDriver  167  do_work  167  handle_initiate_transmission  168  startup  168  goby  moos  UFldDriver  168  do_work  169  handle_initiate_transmission  169  startup  170  goby  pb  89  goby  pb  Application  170  Application  171  subscribe  171  zeromq_service  171  goby  transitional  89  AlgFunction1  91       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    INDEX    200       AlgFunction2  91  char_array2hex_string  92  DCCL_HEADER_NAMES  93  DCCLCppType  91  DCCLType  91  hex_string2binary_string  92  hex_string2number  92  number2hex_string  92  goby  transitional  DCCLMessageVal  172  get  173  174  operator bool  174  o
81. 7 45 goby  util  SerialClient Class Reference 180       Protected Member Functions    e virtual void do_start    0  e virtual void do_write  const protobuf  Datagram  amp line  0  e virtual void do_close  const boost  system  error_code  amp error  0  e void set_active  bool active   e std  string  amp  delimiter     e std  deque   lt  goby  util  protobuf  Datagram  gt   amp  in     e boost  mutex  amp  in_mutex       Protected Attributes  e std  string delimiter_    boost  asio  io_service io_service__    e std  deque lt  protobuf  Datagram  gt  in_    boost  mutex in_mutex_    Friends       class LineBasedConnection    17 44 1 Detailed Description    basic interface class for all the derived serial  and networking mimics  line based nodes  serial  tcp  udp  etc      Definition at line 48 of file interface h     17 44 2 Member Function Documentation       17 44 2 1 bool goby  util  LineBasedinterface  readline   std  string    s  AccessOrder order   OLDEST_FIRST     inline     returns string line  including delimiter     Returns    true if data was read  false if no data to read    Definition at line 68 of file interface h     The documentation for this class was generated from the following files     e goby util linebasedcomms interface h  e src util linebasedcomms interface cpp    17 45 goby  util  SerialClient Class Reference   provides a basic client for line by line text based communications over a 8N1 tty  such as an RS 232 serial link   without flow control    includ
82. 9 of file dccl_field_codec_fixed h     The documentation for this class was generated from the following file       goby acomms dccl dccl_field_codec_fixed h    17 22 goby  acomms  DCCLTypeHelper Class Reference    Provides FromProtoTypeBase and FromProtoCppTypeBase type identification helper classes for various represen   tations of the underlying field      include  lt goby acomms dccl dccl_type_helper h gt     Static Public Member Functions    e static boost  shared_ptr   lt  FromProtoTypeBase  gt  find  google  protobuf  FieldDescriptor  Type type   e static boost  shared_ptr   lt  FromProtoCppTypeBase  gt  find  const google  protobuf  FieldDescriptor   field   e static boost  shared_ptr   lt  FromProtoCppTypeBase  gt  find  const google  protobuf  Descriptor xdesc   e static boost  shared_ptr   lt  goby  acomms  FromProtoCppTypeBase  gt  find  google  protobuf  FieldDescriptor  CppType cpptype   const std  string  amp type_name        Friends      class DCCLFieldCodecManager  e template lt typename T  gt   void boost  checked_delete  T x     17 22 1 Detailed Description   Provides FromProtoTypeBase and FromProtoCppTypeBase type identification helper classes for various represen   tations of the underlying field    Definition at line 45 of file dccl_type_helper h     The documentation for this class was generated from the following files        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 23 goby  acomms  FromProtoCppType lt  google  protobuf  Field
83. CACFG TAT  if sent   Coen ee   CCPNT                 SNPNT    type    MICROMODEN    a kej    Always present  req  Often present  typ  Occasionally present  advan      NARROWBAND_LBL_  RANGING  signal_receive       Figure 7  Narrowband transponder LBL ping    REMUS transponder LBL ping       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    6 4 WHOI Micro Modem Driver  MMDriver    49            ModemTransmission     src  1   type  MICROMODEM_REMUS_LBL_RANGING    micromodem protobuf remus_lbl     Ibl_max_range  1000                             ModemTransmission     src  1   time  1316033104000000   time_source  MODEM_TIME   type  MICROMODEM_REMUS_LBL_RANGING    micromodem protobuf ranging_reply     one_way_travel_time  0 3216  one_way_travel_time  0 4920  one_way_travel_time  0 1541  one_way_travel_time  0 1226                              Application or other  Goby Modules                   ig a    ae    n WHOI Micro Modem Fi  modemdriver1 1                initiate_transmission l          signal_modify_transmission              l  E eF  1 modified transmission     CCCFG TAT  if needed            CACFG TAT  if sent    a e     l  CCPDT l    i     gt    l  SNPDT i   E A o teat eae     i          SNTTA    type    MICROMODEM_REMUS_LBL_RANGING  signal_receive              Figure 8  REMUS transponder LBL ping    User mini packet 13 bit data transmission    Key   Always present  required usag  Often present  typical usage  Occasionally present  advanced or spe       Gene
84. Client   const std  string  amp  server  unsigned port  const std  string  amp  delimiter      r n    int retry_interval 10      create a TCPClient    Parameters       server   domain name or IP address of the remote server       port   port of the remote server             delimiter   string used to split lines          Definition at line 29 of file tcp_client cpp     The documentation for this class was generated from the following files       goby util linebasedcomms tcp_client h  e src util linebasedcomms tcp_client cpp    17 47 goby  util   TCPServer Class Reference    provides a basic TCP server for line by line text based communications to a one or more remote TCP clients     include  lt goby util linebasedcomms tcp_server h gt        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 47 goby  util  TCPServer Class Reference 183       Inheritance diagram for goby  util  TCPServer         goby  util  LineBasedinterface    goby  util  TCPServer    Public Member Functions    e TCPServer  unsigned port  const std  string  amp delimiter   r n    create a TCP server  e std  string local_endpoint     string representation of the local endpoint  e g  192 168 1 105 54230  e const std  set   lt  boost  shared_ptr   lt  TCPConnection  gt   gt   amp  connections     Friends  e class TCPConnection       class LineBasedConnection lt  boost  asio  ip  tcp  socket  gt     Additional Inherited Members   17 47 1 Detailed Description   provides a basic TCP server for line
85. Constructors Destructor    e MACManager       Default constructor      MACManager       Control    void startup  const protobuf  MACConfig  amp cfg     Starts the MAC with given configuration   void restart       Restarts the MAC with original configuration   void shutdown      Shutdown the MAC   void do_work       Allows the MAC timer to do its work  Does not block  If you prefer more control you can directly control the  underlying boost  asio  io_service  get_io_service    instead of using this function  This function is equivalent to  get_io_service   poll       void update     You must call this after any change to the underlying list that would invalidate iterators or change the size  insert   push_back  erase  etc      bool running       Modem Signals      boost  signals2  signal lt  void const  protobuf  ModemTransmission  amp m  gt  signal_initiate_transmission    Signals when it is time for this platform to begin transmission of an acoustic message at the start of its TDMA slot   Typically connected to ModemDriverBase  handle_initiate_transmission   using bind         unsigned cycle_count        double cycle_duration        boost  asio  io_service     get_io_service        const std  string     glog_mac_group    const    Additional Inherited Members  17 27 1 Detailed Description    provides an API to the goby acomms MAC library  MACManager is essentially a std  list lt protobuf  Modem   Transmission gt  plus a timer     See Also    acomms_amac proto and acomms_modem
86. DCCLCodec    DCCL Protobuf Options  e Encryption    e Example messages    Return to goby acomms  An overview of Acoustic Communications Library     3 1 Designing a message    DCCL uses the Google Protocol Buffers  Protobuf  language to define messages  DCCL specific components are  defined as extensions to the Protobuf language message and field options  You should familiarize yourself with  basic Protobuf using before reading the rest of this document  see Google Protocol Buffers and http    code     google com apis protocolbuffers docs overview html        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    3 1 Designing a message 11       Scenario 1  Send a string command to a vehicle     We need to send an ASCII string command to an underwater vehicle  We thus make a Protobuf message with a  single string field  let s call it  telegram   to hold our command     message Simple       required string telegram   1          The    1  indicates that this is the first field on the wire in our DCCL message  All fields must have a unique index   but otherwise these index values are not particularly important   required  means a valid  Simple  message always  contains something for  telegram   could be an empty string      To turn this Protobuf message into a DCCL message  we need to add a few options  All the options are defined in  acomms_option_extensions proto so we include that     import  goby common protobuf option_extensions proto      message Simple     require
87. DCCLFieldCodecBase  this_descriptor       inline    static     Returns the Descriptor  message schema meta data  for the immediate parent Message     for    code    message Foo   int32 bar   1  FooBar baz   2    returns Descriptor for Foo if this_field      0 returns Descriptor for  Foo if this_field      FieldDescriptor for bar returns Descriptor for FooBar if this_field      FieldDescriptor for baz    Definition at line 99 of file dccl_field_codec h   17 13 2 34 const google  protobuf  FieldDescriptor   goby  acomms  DCCLFieldCodecBase  this_field   const  inline   Returns the FieldDescriptor  field schema meta data  for this field   Returns  FieldDescriptor for the current field or 0 if this codec is encoding the base message   Definition at line 83 of file dccl_field_codec h     17 13 2 35 google  protobuf  FieldDescriptor  CppType goby  acomms  DCCLFieldCodecBase  wire type     const   inline     the C   type used  on the wire   This is the type visible after pre_encode and before post_decode functions are  called    The wire type allows codecs to make type changes  e g  from string to integer  before reusing another codec that  knows how to encode that wire type  e g  DCCLDefaultNumericFieldCodec    Returns    the C   type used to encode and decode  See http    code google com apis protocolbuffers docs refer  protobuf descriptor html FieldDescriptor CppType details                   Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 14 goby  acomms  DCCL
88. Descriptor  CPPTYPE_MESSAGE  gt   Class Template Reference 143         goby acomms dccl dccl_type_helper h  e src acomms dccl dccl_type_helper cpp    17 23 goby  acomms  FromProtoCppType lt  google  protobuf  FieldDescriptor  CPPTYPE_MESSAGE  gt   Class Template Reference    Implements FromProtoCppTypeBase for CPPTYPE_MESSAGE using the dynamic google  protobuf  Message as  the underlying class      include  lt goby acomms dccl protobuf_cpp_type_helpers h gt     Inheritance diagram for goby  acomms  FromProtoCppType lt  google  protobuf  FieldDescriptor  CPPT YPE_MESS   AGE  gt      goby  acomms  FromProtoCpp  TypeBase    goby  acomms  FromProtoCpp   Type lt  google  protobuf     FieldDescriptor  CPPTYPE  _MESSAGE  gt     goby  acomms  FromProtoCustom  Message lt  CustomMessage  gt        Public Types   e typedef const   google  protobuf  Message   const_type   e typedef google  protobuf  Message   mutable_type  Public Member Functions   e std  string as_str      string representation   Protected Member Functions    e virtual boost  any _get_value  const google  protobuf  FieldDescriptor field  const google  protobuf     Message  amp msg        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 24 goby  acomms  FromProtoCppTypeBase Class Reference 144       e virtual boost  any _get_repeated_ value  const google  protobuf  FieldDescriptor field  const google     protobuf  Message  amp msg  int index    e virtual void _set_value  const google  protobuf  FieldDes
89. Destructor Documentation            o         e    e         176  17 43 3 Member Function Documentation           0 00  e    o    177  17 44goby  util  LineBasedInterface Class Reference           o      eee eee e       178  1744 1 Detailed Descriptio    lt  s o a A IR A a 179  17 44 2 Member Function Documentation     oaaao 02 eee ee ees 179  17 45goby  util  SerialClient Class Reference      oaoa ee 179  1745 1 Detailed DESIGN i eo o   os aio d acs aioe noa oe eRe adoi i 180  17 45 2 Constructor  amp  Destructor Documentation         a aa ea a 180  17 46goby  util  TCPClient Class Reference             a 180  17 46 1 Detailed Description occiso A 181  17 46 2 Constructor  amp  Destructor Documentation             o        e      e       181  17 47goby  util  TCPServer Class Reference          o      e              eo    181  17 471 Detailed Desorption   o nn ee eb ee PRL AEA aa bd E de wee 182  17 47 2 Constructor  amp  Destructor Documentation           o    o    e      e       182       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    1 Goby Underwater Autonomy Project 1       17 48Group Class Reference               ee 183  11421 Detailed DESCAQUOT   lt  o soe sa ee ek A A 183  17 49GroupSetter Class Reference                   a 183  1749 1 Detailed Description  lt  pa  o racs poca Re ae ee ke ee a ee eae 184   18 File Documentation 184  18 1 goby moos moos_protobuf_helpers h File Reference                 lt  lt                 184  18141 Detailed Descen
90. FG    NVRAM setting stored internally         CACLK    Checked against system clock and if skew is  unacceptable another  CCCLK will be sent         CADRQ    Data request is anticipated from the  CCCYC or   CACYC and buffered  Thus it is not translated into  any of the Protobuf messages        Control Computer to Modem   CC          CCTXD          SRC    goby  acomms  protobuf  ModemTransmission src    DEST    goby  acomms  protobuf  ModemTransmission dest    A   goby  acomms  protobuf  ModemTransmission    ack_requested     HH   HH   goby  acomms  hex_encode goby     acomms  protobuf  ModemTransmission frame n     which n is an integer 0 1 2     corresponding to the  Goby frame that this  CCTXD belongs to        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen       6 4 WHOI Micro Modem Driver  MMDriver    42           CCCYC          Augment the ModemTransmission   goby  acomms  protobuf  ModemTransmission max_   frame_bytes     32 for Packet Type    0  64 for  Packet Type    2  256 for Packet Type    3 or 5  goby  acomms  protobuf  ModemTransmission max_   num_frames     1 for Packet Type    0  3 for Packet  Type    2  2 for Packet Type    3 or 8 for Packet Type  If ADR1    modem ID and frame_size    lt   max_frame_size    buffer data for later  CADRQ by  passing the ModemTransmission to  signal_data_request   CMD   0  deprecated field    ADR1    goby  acomms  protobuf  ModemTransmission src    ADR2    goby  acomms  protobuf  ModemTransmission dest    Packet Typ
91. FieldCodec   132  133   goby  acomms  DCCLTypedFieldCodec  138   encode_repeated  goby  acomms  DCCLCodec  100    field_decode  goby  acomms  DCCLFieldCodecBase  121  field_decode_repeated  goby  acomms  DCCLFieldCodecBase  121  field_encode  goby  acomms  DCCLFieldCodecBase  121  field_encode_repeated  goby  acomms  DCCLFieldCodecBase  121  field_info  goby  acomms  DCCLFieldCodecBase  122  field_max_size  goby  acomms  DCCLFieldCodecBase  122  field_min_size  goby  acomms  DCCLFieldCodecBase  122  field_post_decode  goby  acomms  DCCLFieldCodecBase  122  field_post_decode_repeated  goby  acomms  DCCLFieldCodecBase  122  field_pre_encode  goby  acomms  DCCLFieldCodecBase  123  field_pre_encode_repeated  goby  acomms  DCCLFieldCodecBase  123  field_size  goby  acomms  DCCLFieldCodecBase  123  field_size_repeated  goby  acomms  DCCLFieldCodecBase  123  field_type  goby  acomms  DCCLFieldCodecBase  124  field_validate  goby  acomms  DCCLFieldCodecBase  124  find  goby  acomms  DCCLFieldCodecManager  127  flush_queue  goby  acomms  QueueManager  158    get   goby  transitional  DCCLMessageVal  173  174  get_repeat   goby  transitional  DCCLTransitionalCodec  177  get_repeated_value   goby  acomms  FromProtoCppTypeBase  144  get_value   goby  acomms  FromProtoCppTypeBase  144  goby  80   run  82  goby moos moos_protobuf_helpers h  184  goby  transitional   cpp_bool  91   cpp_double  91    cpp_long  91   cpp_notype  91   cpp_string  91   dccl_bool  91   dccl_enum  91   dccl_float 
92. FieldCodecManager Class Reference 127       Definition at line 77 of file dccl_field_codec h     The documentation for this class was generated from the following files       goby acomms dccl dccl_field_codec h    src acomms dccl dccl_field_codec cpp    17 14 goby  acomms  DCCLFieldCodecManager Class Reference     include  lt goby acomms dccl dccl_field_codec_manager h gt        Static Public Member Functions      template lt class Codec  gt   static boost  enable_if   lt  boost  mpl  and_   lt  boost  is_base_of   lt  google  protobuf  Message   typename Codec  wire_type  gt     boost  mpl  not_   lt  boost  is_same   lt  google  protobuf  Message   typename Codec  wire_type  gt    gt   gt   void  gt   type add  const std  string  amp name   Add a new field codec  used for codecs operating on statically generated Protobuf messages  that is  children of  google   protobuf  Message but not google   protobuf  Message itself    e template lt class Codec  gt   static boost  disable_if   lt  boost  mpl  and_   lt  boost  is_base_of   lt  google  protobuf  Message   typename Codec  wire_type  gt     boost  mpl  not_   lt  boost  is_same   lt  google  protobuf  Message   typename Codec  wire_type  gt    gt   gt   void  gt   type add  const std  string  amp name   Add a new field codec  used for codecs operating on all types except statically generated Protobuf messages      template lt class Codec   google  protobuf  FieldDescriptor  Type type gt   static void add  const std  string
93. Goby v2    Generated by Doxygen 1 8 1 2    Wed Mar 26 2014 01 42 06    CONTENTS i       Contents  1 Goby Underwater Autonomy Project 1  A  IROSQUICHE   bee bee PATER SESS OH ERE ETRE Lives 1  1 2  Developer Mantal ooo Sa a A ne Fe A me Ge Se ee A RR 1  ee IPUBNGADIONS   a A A aa a A A A A 1  1 4 Download and Install GODY    lt  is s sos sc mox s o    o    1  LS  BOING EXamHPES oo a a ee a A BAe a aaea a Boe a a e a eee E E 2  Be AUS  24 ouda maed ar aa a e e G i 2  2 goby acomms  An overview of Acoustic Communications Library 2  20 QUECASAS G 2  2 1 1 Acoustic Communications are slow           o    e    e    e    3  2 1 2 Efficiency to make messages small is good            o    a 4  2 1 3 Total throughput unrealistic  prioritize data         lt   s eao aoso eee ee ee ee 4  2 1 4 Despite all this  simplicity is good         a aoa aoaaa 4  215 Component model seu e p ed iaie de aa oo eee AA E E 4  22 deck Encodinganddecoding    cui a eee hee PL e ee es 5  2 3 queue  Priority based message queuing     aooaa a e e  eo    5  2 4 modemdriver  Modem driver  lt     ea ssa careca ea neede ritare yrt aite 6  2 5 amac  Medium Access Control  MAC     aoaaa ee 6  2 6 Software concepts used in goby acomMmmS       s aoso s oao o e e e ee ee 6  2 6 1 Signal   Slot model for asynchronous events       ooo e a a 6  26 2 Google Protocol Butlers o is a  i acei iee ci Son apana E ai aaa i a AE A 7  ea UMTON  oo oir A A o A a a ae ok A 8  3 goby acomms  DCCL  Dynamic Compact Control Language  9  3
94. HELM_ERROR    INTERFACE_STANDBY    HELM_DRIVE       INTERFACE_FRONTSEAT_ERR   OR          INTERFACE_STANDBY        if ERROR_FRONTSEAT_NOT_   CONNECTED   IFRONTSEAT_NOT_CONNECT   ED       if ERROR_FRONTSEAT_NOT_   PROVIDING_DATA   frontseat_providing_data    true           8 1 1 3 Example    ABC    driver    We will show you how to a write a new driver by example  To do so  we have created a simple frontseat simulator    abc_frontseat_simulator   that is intended to represent the real vehicle frontseat control system  The full source    code for this example is given at       examples moos abc_frontseat_driver abc_frontseat_driver h      examples moos abc_frontseat_driver abc_frontseat_driver cpp      examples moos abc_frontseat_driver abc_frontseat_driver_config proto    A complete production driver is provided by BluefinFrontSeat for the Bluefin Robotics AUVs that conform to  the Bluefin Standard Payload Interface version 1 8 and newer     The transport for the ABC frontseat is TCP  the simulator  frontseat  listens on a given port and the driver  connects to that machine and port  The wire protocol is a simple ascii line based protocol where lines are  terminated by carriage return and newline   lt CR gt  lt NL gt  or   r n    Each message has a name  key   followed  by a number of comma delimited  colon separated fields        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    8 1    iFrontSeat    57                                     Key Description Directio
95. Namespaces      namespace goby  The global namespace for the Goby project        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    19 Example Documentation 186       Functions    e std  map lt  int  std  string  gt  goby  moos  run_serialize_algorithms  const google  protobuf  Message  amp in   const google  protobuf  RepeatedPtrField lt  protobuf  TranslatorEntry  PublishSerializer  Algorithm  gt   amp algo     rithms    e std  string goby  moos  strip_name_from_enum  const std  string  amp enum_value  const std  string  amp field_   name    e std  string goby  moos  add_name_to_enum  const std  string  amp enum_value  const std  string  amp field_   name     e void serialize_for_moos  std  string   out  const google  protobuf  Message  amp msg     Converts the Google Protocol Buffers message msg into a suitable  human readable  string out for sending via  MOOS     e void parse_for_moos  const std  string  amp in  google  protobuf  Message  msg     Parses the string in to Google Protocol Buffers message msg  All errors are written to the goby  util  glogger     e boost  shared_ptr   lt  google  protobuf  Message  gt  dynamic_parse_for_moos  const std  string  amp in     Variables      const std  string goby  moos  MAGIC_PROTOBUF_HEADER     PB     18 1 1 Detailed Description   Helpers for MOOS applications for serializing and parsed Google Protocol buffers messages   Definition in file moos_protobuf_helpers h    18 1 2 Function Documentation    18 1 2 1 void par
96. PR          goby  acomms  protobuf  ModemTransmission time      goby  common  goby_time lt uint64 gt     goby  acomms  protobuf  ModemTransmission dest      SRC  SRC and DEST flipped to be SRC and DEST  of  CCMPC   goby  acomms  protobuf  ModemTransmission src      DEST  goby  acomms  protobuf  ModemTransmission type      MICROMODEM_TWO_WAY_PING    in extension micromodem  protobuf  ranging_reply   micromodem  protobuf  RangingReply one_way_   travel_time 0    Travel Time          Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    6 4 WHOI Micro Modem Driver  MMDriver    40           CAMPA    goby  acomms  protobuf  ModemTransmission time      goby  common  goby_time lt uint64 gt     goby  acomms  protobuf  ModemTransmission src      SRC  goby  acomms  protobuf  ModemTransmission dest      DEST  goby  acomms  protobuf  ModemTransmission type      MICROMODEM_TWO_WAY_PING        SNTTA          goby  acomms  protobuf  ModemTransmission time      hhmmsss ss  converted to microseconds since  1970 01 01 00 00 00 UTC   goby  acomms  protobuf  ModemTransmission time_   source     goby  acomms  protobuf   MODEM_TIME  goby  acomms  protobuf  ModemTransmission type      goby  acomms  protobuf  MICROMODEM_REMUS   _LBL_RANGING or  goby  acomms  protobuf  MICROMODEM_NARROW   BAND_LBL_RANGING  depending on which LBL  type was last initiated   goby  acomms  protobuf  ModemTransmission src      modem ID    in extension micromodem  protobuf  ranging_reply   micromodem  protobuf  R
97. User selectable bit rates    The steps to writing a new driver include     e Fully understand the basic usage of the new acoustic modem manually using minicom or other terminal  emulator  Have a copy of the modem software interface manual handy     e Figure out what type of configuration the modem will need  For example  the WHOI Micro Modem is config   ured using string values  e g   SNV 1    Extend goby  acomms  protobuf  DriverConfig to accomodate these  configuration options  You will need to claim a group of extension field numbers that do not overlap with  any of the drivers  The WHOI Micro Modem driver goby  acomms  MMDriver uses extension field numbers  1000 1100  see mm_driver proto   You can read more about extensions in the official Google Protobuf  documentation here  http   code google com apis protocolbuffers docs proto    html extensions     For example  if   was writing a new driver for the ABC Modem that needs to be configured using a few boolean  flags    might create a new message abc_driver proto     import  goby acomms protobuf driver_base proto      load up message  DriverBaseConfig    message ABCDriverConfig     extend goby acomms protobuf DriverConfig     optional bool enable_foo  optional bool enable_bar          true     false       1201   default  1202   default    make a note in driver_base proto claiming extension numbers 1201 and 1202  and others you may expect to  need in the future   Extension field numbers can go up to 536 870 911 so don   t w
98. VehicleStatus   HEALTH_ABORT       std  cout  lt  lt    lt  lt    lt  lt      passing values to encoder  n   command  lt  lt    n   status  lt  lt  std  endl     std  string bytes2  bytes3   dccl encode   amp bytes2  command    dccl encode   amp bytes3  status      std  cout  lt  lt    lt  lt    lt  lt     std  cout  lt  lt    lt  lt    lt  lt      received hexadecimal string for message 2  GoToCommand        goby   util  hex_encode  bytes2    std  endl     received hexadecimal string for message 3  VehicleStatus      goby   util   hex_encode  bytes3    std  endl     command Clear     status Clear       std  cout  lt  lt    lt  lt    lt  lt     std  cout  lt  lt    lt  lt    lt  lt      passed hexadecimal string for message 2 to decoder       goby   util  hex_encode  bytes2    std  endl     passed hexadecimal string for message 3 to decoder     goby   util  hex_encode  bytes3    std  endl     dccl decode  bytes2   amp command     dccl decode  bytes3   amp status       std  cout  lt  lt    lt  lt    lt  lt     return 0      received values  n   command  lt  lt    n   status  lt  lt  std  endl     19 5 acomms modemdriver driver_simple driver_simple cpp    te       Usage  WHOI Micro Modem   run      gt  driver_simple  dev tty_of_modem_A 1    fy        wait a few seconds    le        gt  driver_simple  dev tty_of_modem_B 2           be careful of    collisions if you start them at the same time  this is why    libamac exists         Usage  example ABCModem   run       gt  driver_
99. Verbosity       gui streams  all groups have a separate subwindow 183  GroupSetter  Helper class for enabling the group std  string  manipulator 183  14 File Index  14 1 File List    Here is a list of all documented files with brief descriptions     goby acomms h 22  goby util h 22  goby version h 22  goby acomms acomms_constants h 22  goby acomms acomms_helpers h 22  goby acomms amac h 22  goby acomms bind h 22  goby acomms connect h 22  goby acomms dccl h 22  goby acomms modem_driver h 22  goby acomms queue h 22  goby acomms route h 22  goby acomms amac mac_manager h 22  goby acomms dccl dccl h 22       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen       goby acomms protobuf ccl_extensions proto    14 1 File List 68  goby acomms dccl dccl_bitset h 22  goby acomms dccl dccl_ccl_compatibility h 22  goby acomms dccl dccl_common h 22  goby acomms dccl dccl_exception h 22  goby acomms dccl dccl_field_codec h 22  goby acomms dccl dccl_field_codec_arithmetic h 22  goby acomms dccl dccl_field_codec_default h 22  goby acomms dccl dccl_field_codec_default_message h 22  goby acomms dccl dccl_field_codec_fixed h 22  goby acomms dccl dccl_field_codec_helpers h 22  goby acomms dccl dccl_field_codec_manager h 22  goby acomms dccl dccl_field_codec_typed h 2   goby acomms dccl dccl_type_helper h 22  goby acomms dccl protobuf_cpp_type_helpers h 22  goby acomms dccl WhoiUtil h 22  goby acomms modemdriver abc_driver h 22  goby acomms modemdriver driver_base h 22  goby acomms mod
100. WreType   FieldType  gt        goby  acomms  DCCLIypedFixed  FieldCodec lt  WreType  FieldType  gt                       Public Types    e typedef WireType wire_type    typedef FieldType field_type    Public Member Functions    e virtual Bitset encode    0    Encode an empty field   e virtual Bitset encode  const WireType  amp wire_value  0    Encode a non empty field   e virtual WireType decode  Bitset  bits  0    Decode a field  If the field is empty  i e  was encoded using the zero argument encode     throw DCCLNullValue   Exception to indicate this   e virtual unsigned size    0    Calculate the size  in bits  of an empty field   e virtual unsigned size  const WireType  amp wire_value  0    Calculate the size  in bits  of a non empty field     Additional Inherited Members  17 20 1 Detailed Description    template  lt typename WireType  typename FieldType   WireType gt class goby  acomms  DCCLTypedFieldCodec lt  WireType  Field   Type  gt     Base class for static typed  no boost  any  field encoders decoders  Most user defined variable length codecs will  start with this class  Use DCCLTypedFixedFieldCodec if your codec is fixed length  always uses the same number  of bits on the wire         Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 20 goby  acomms  DCCLTypedFieldCodec lt  WireType  FieldType  gt  Class Template Reference 139       Template Parameters       Wire Type    the type used for the encode and decode functions  This can be any C   type  
101. _extensions proto  as messages DCCLFieldOptions and DCCL     MessageOptions      DCCL message options                          name type default description   id uint32 required A unique ID for each  DCCL message   max_bytes uint32 required Maximum allowed size in  bytes for the encoded  message   codec string  _default  Name of the codec to    use for encoding the  base message  add  more codecs with goby     acomms  DCCLField   CodecManager  add          DCCL field options                             name type default required for description  codecs   codec string  default  optional Name of the codec  to use for encoding  this field   omit bool false optional Omit this field from  all DCCL encoding   has_field   will be  false on receipt           Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    4     3 3 Interacting with the DCCLCodec 14          in_head bool false optional Set true for fields in  the header  will not  be encrypted   rather will be used  to create the  encrytion IV            precision int32 0 goby  acomms  D  Number of decimal  CCLDefault  digits of precision  NumericField  to keep  can be  Codec  double  negative    float    min double 0 goby  acomms  D  Minimum value that  CCLDefault  can be encoded in  NumericField  this field     Codec  double   float  int32  uint32   int64  uint64   fixed32  fixed64   sfixed32  sfixed64        max double 0 goby  acomms  D  Maximum value  CCLDefault  that can be  NumericField  encoded in this  Codec  d
102. _message proto for definition of Google Protocol Buffers messages   namespace goby  acomms  protobuf      Examples     acomms amac amac_simple amac_simple cpp  and acomms chat chat cpp     Definition at line 56 of file mac_manager h        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 28 goby  acomms  MMDriver Class Reference 149       17 27 2 Member Function Documentation    17 27 2 1 void goby  acomms  MACManager  startup   const protobuf  MACConfig  amp  cfg      Starts the MAC with given configuration     Parameters       cfg   Initial configuration values  protobuf  MACConfig defined in acomms_amac proto                 Examples     acomms amac amac_simple amac_simple cpp  and acomms chat chat cpp     Definition at line 74 of file mac_manager cpp     17 27 3 Member Data Documentation    17 27 3 1  boost  signals2  signal lt void  const protobuf  ModemTransmission amp  m  gt  goby  acomms  MACManager  signal_   initiate_transmission    Signals when it is time for this platform to begin transmission of an acoustic message at the start of its TDMA slot   Typically connected to ModemDriverBase  handle_initiate_transmission   using bind       Parameters       m   a message containing details of the transmission to be initated   protobuf  ModemMsgBase  defined in acomms_modem_message proto                 Examples     acomms amac amac_simple amac_simple cpp  and acomms chat chat cpp     Definition at line 98 of file mac_manager h     The documentation for 
103. _modem_message proto     Definition at line 95 of file driver_base h     17 29 3 2  boost  signals2  signal lt void  protobuf  ModemTransmissionx msg_request  gt  goby  acomms  ModemDriverBase    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     You may connect one or more slots  a function or member function  to this signal to handle data requests  Use the  goby  acomms  connect family of functions to do this  This signal will only be called during a call to poll  Modem   Transmission is defined in acomms_modem_message proto     Definition at line 101 of file driver_base h     17 29 3 3  boost  signals2  signal lt void  const protobuf  ModemRaw amp  msg  gt  goby  acomms  ModemDriverBase  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     If desired  you should connect one or more slots  a function or member function  to this signal to listen on incoming  transactions  Use the goby  acomms  connect family of functions to do this  This signal will only be called during a  call to poll  ModemRaw is defined in acomms_modem_message proto     Definition at line 108 of file driver_base h     17 29 3 4 boost  signals2  
104. _optional   decl   optional sfixed32 sfixed32_default_optional   dicey   optional sfixed64 sfixed64_default_optiona   decl           optional bool bool_default_optional   13     o    ptional string string_default_optional    ptional bytes bytes_default_optional   15    o    optional Enuml enum_default_optional   16        optional EmbeddedMsgl msg_default_optional    required double double_default_required     decl    decl    deol   required float float_default_required   22  t  sel     dccl   required int32 int32_default_required   23   decl   required int64 int64 default_required   24   deol   required uint32 uint32_default_required     dccl   required uint64 uint64_default_required     decl   required sint32 sint32_default_required     decl   required sint64 sint64_default_required     dcc          required fixed32 fixed32_default_required     field   max 3000         deccl field   min  100   field   max 126   field   precision 2      field   in_head true       dccl  field   min  20   field   max 150    field   precision 3     dccl  field   min  20   field   max 3000     dccl field   min  710   field   max 3000    5   dccl field   min 0   field   max 3000    6   dccl field   min 5   field   max 3000    7   decl field   min  60        field   max 3000     dcecl  field   min  70    ield   max 3000    9   dccl field   min 0     ield   max 400    LO   dccl field   min 0   1d   max 3000    11   decl field   min 11   ld   max 3000    l   12   dccl field   min  12   field   max 3
105. a single byte of  the message    You may now send this message through whatever channel you would like     To decode a message  stored in bytes as a byte string   simply pass bytes as a reference along with pointers to  the Protobuf message to store the results     message Clear      dccl  gt decode  bytes   amp message       For line by line interaction with the goby  acomms  DCCLCodec and for advanced use  investigate the code exam   ples given in the Examples column of this table     3 4 Encryption    Encryption of all messages can be enabled by providing a secret passphrase to the goby  acomms  protobuf  DC   CLConfig object passed to goby  acomms  DCCLCodec  set_cfg    All parties to the communication must have the  same secret key     DCCL provides AES  Rijndael  encryption for the body of the message  The header  which is sent in plain text  is  hashed to form an initialization vector  IV   and the passphrase is hashed using SHA 256 to form the cipher key   You will want to make sure the header  designate fields for the header with  goby  field   dccl in_head    true  is anonce by including a constantly changing value such as time     AES is considered secure and is used for United States top secret information     3 5 Example messages    This section provides a listing of DCCL example Protobuf messages used in the code examples and unit tests     3 5 1 Minimal functional DCCL message  simple proto    import  goby acomms protobuf dccl_option_extensions proto    message
106. a type using a class member function as the handler     common  ZeroMQService  amp  zeromq_service       Fetchs the newest received message of this type     Constructors   Destructor    e Application  google  protobuf  Message   cfg 0        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 41 goby  pb  Application Class Reference 172       e virtual     Application       Publish   Subscribe    e void publish  const google  protobuf  Message  amp msg  const std  string  amp group        Additional Inherited Members   17 41 1 Detailed Description   Base class provided for users to generate applications that participate in the Goby publish subscribe architecture   Definition at line 47 of file application h    17 41 2 Constructor  amp  Destructor Documentation    17 41 21 goby  pb  Application  Application   google  protobuf  Message   cfg 0    protected     Parameters       cfg   pointer to object derived from google  protobuf  Message that defines the configuration for  this Application  This constructor will use the Description of cfg to read the command line  parameters and configuration file  if given  and use these values to populate cfg  cfg must  be a static member of the subclass or global object since member objects will be constructed  after the Application constructor is called                 Definition at line 40 of file application cpp     17 41 3 Member Function Documentation  17 41 3 1 template lt typename ProtoBufMessage  gt  void goby  pb  Ap
107. and is  often the same as FieldType  unless a type conversion should be performed  The reason  for using a different Wire Type and Field Type should be clear from the DCCLDefaultEnum   Codec which uses DCCLDefaultNumericFieldCodec to do all the numerical encoding    decoding while DCCLDefaultEnumCodec does the type conversion  pre_encode   and  post_decode           Field Type    the type used in the Google Protobuf message that is exposed to the end user DCCL           Codec  decode    DCCLCodec  encode    etc  functions           Definition at line 105 of file dccl_field_codec_typed h     17 20 2 Member Function Documentation    17 20 2 1 template lt typename WireType  typename FieldType   WireType gt  virtual WireType goby  acomms     DCCLTypedFieldCodec lt  WireType  FieldType  gt   decode   Bitset   bits    pure  virtual     Decode a field  If the field is empty  i e  was encoded using the zero argument encode     throw DCCLNullValue   Exception to indicate this     Parameters       bits   Bits to use for decoding                 Returns    the decoded value     Implemented in goby  acomms  DCCLRepeatedTypedFieldCodec lt  WireType  FieldType  gt   goby  acomms  D   CCLRepeatedTypedFieldCodec lt  Model  value_type  FieldType  gt   goby  acomms  DCCLRepeatedTypedField   Codec lt  Model  value_type  const google  protobuf  EnumValueDescriptor x  gt   goby  acomms  DCCLRepeated   TypedFieldCodec lt  goby  int32  gt   goby  acomms  DCCLDefaultNumericFieldCodec lt  WireType  F
108. angingReply one_way_   travel_time 0    TA  micromodem  protobuf  RangingReply one_way_   travel_time 1    TB  micromodem  protobuf  RangingReply one_way_   travel_time 2    TC  micromodem  protobuf  RangingReply one_way_   travel_time 3    TD       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen       6 4 WHOI Micro Modem Driver  MMDriver    41           CAXST    maps onto extension  micromodem  protobuf  transmit_stat of type  micromodem  protobuf  TransmitStatistics  The two   CAXST messages  CYC and data  for a rate 0  FH FSK transmission are grouped and reported at  once         CACST    maps onto extension  micromodem  protobuf  receive_stat of type  micromodem  protobuf  ReceiveStatistics  The two   CACST messages for a rate O FH FSK transmission  are grouped and reported at once  Note that this  message contains the one way time of flight for  synchronous ranging  used instead of  CATOA    Also sets  which will overwrite goby_time   set  previously    goby  acomms  protobuf  ModemTransmission time      TOA time  converted to microseconds since  1970 01 01 00 00 00 UTC   goby  acomms  protobuf  ModemTransmission time_   source     goby  acomms  protobuf   MODEM_TIME        CAREV    Not translated into any of the modem_message proto  messages  Monitored to detect excessive clock skew   between Micro Modem clock and system clock  or  reboot  INIT         CAERR    Not translated into any of the modem_message proto  messages  Reported to goby  glog         CAC
109. apis protocolbuffers docs reference  protobuf descriptor html FieldDescriptor Type details    Definition at line 72 of file dccl_field_codec h     17 13 2 28 void goby  acomms  DCCLFieldCodecBase  field_validate   bool x b  const google  protobuf  FieldDescriptor x field       Validate this field  checking that all required option extensions are set  e g   goby field  dccl max and  goby    field  dccl min for arithmetic codecs     Parameters       b   Currently unused  will be set to false   field   Protobuf descriptor to the field  Set to 0 for base message                    Exceptions       DCCLException   If field is invalid                Definition at line 278 of file dccl_field_codec cpp   17 13 2 29 std  string goby  acomms  DCCLFieldCodecBase  info     protected    virtual     Write field specific information  in addition to general information such as sizes that are automatically written by this  class for all fields     Returns  string containing information to display   Definition at line 365 of file dccl_field_codec cpp   17 13 2 30 virtual unsigned goby  acomms  DCCLFieldCodecBase  max_size     protected    pure virtual   Calculate maximum size of the field in bits   Returns    Maximum size of this field  in bits      Implemented in goby  acomms  DCCLRepeatedTypedFieldCodec lt  WireType  FieldType  gt   goby  acomms  DCCL   RepeatedTypedFieldCodec lt  Model  value_type  FieldType  gt   goby  acomms  DCCLRepeatedTypedFieldCodec lt   Model  value_type  const googl
110. arameters       identifier          name of this special DCCL ID codec that matches the identifier used when registering with  add_id_codec             Definition at line 370 of file dccl h        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen       17 4 goby  acomms  DCCLCodec Class Reference 104       17 4 2 13 unsigned goby  acomms  DCCLCodec  size   const google  protobuf  Message  amp  msg      Provides the encoded size  in bytes  of msg  This is useful if you need to know the size of a message before  encoding it  encoding it is generally much more expensive than calling this method     Parameters       msg   Google Protobuf message with DCCL extensions for which the encoded size is requested                Returns  Encoded  using DCCL  size in bytes  Definition at line 361 of file dccl cpp     17 4 2 14 template lt typename GoogleProtobufMessagePointer  gt  unsigned goby  acomms  DCCLCodec  size_repeated   const  std  list lt  GoogleProtobufMessagePointer  gt   amp  msgs    inline     Returns the encoded size of multiple messages at once  sum of all sizes   You must use this method  instead of    N calls to size  where N is msgs size    to get the size of messages encoded using encode_repeated as repeated  encoding may be more efficient  in terms of the encoded message size  than N calls of encode     Template Parameters       GoogleProtobufMessage    anything that acts like a pointer  has operator  to a google  protobuf  Message  smart  Pointer   pointer
111. ary   tackle the extremely rate limited acoustic  networking problem  This library was designed with four modules that can operate independently for a de   veloper looking integrate a specific component  e g  just encoding decoding  without committing to the entire  goby acomms stack     goby util  Overview of Utility Libraries   provide utility functions for tasks such as logging  scientific calcula   tions  string parsing  and serial device i o  Goby also relies on the boost libraries http     www boost      org  for many utility tasks to fill in areas where the C   Standard Library is insufficient or unelegant     goby moos  An overview of the Goby MOOS interoperability library   classes  applications  e g  pAcomms   Handler and iFrontSeat   and functions for interoperating between Goby and the MOOS middleware        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    1 3 Publications 2       1 3 Publications    T  Schneider and H  Schmidt  The Dynamic Compact Control Language  A Compact  Marshalling Scheme for Acoustic Communications  IEEE OCEANS 10   Sydney     e T  Schneider and H  Schmidt  Goby Acomms  A modular acoustic networking framework  for short range marine vehicle communication  Unpublished working paper     T  Schneider and H  Schmidt  Goby Acomms version 2  extensible marshalling   queuing  and link layer interfacing for acoustic telemetry  9th IFAC Con   ference on Manoeuvring and Control of Marine Craft 12   Arenzano  Italy     T  Schneider  Ad
112. 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     Definition at line 116 of file abc_driver cpp        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 4 goby  acomms  DCCLCodec Class Reference 97       17 3 2 2 void goby  acomms  ABCDriver  handle_initiate transmission   const protobuf  ModemTransmission 4 m     virtual     Virtual initiate_transmission method  Typically connected to MACManager  signal_initiate_transmission   using  bind       Parameters       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     Definition at line 79 of file abc_driver cpp   17 3 2 3 void goby  acomms  ABCDriver  startup   const protobuf  DriverConfig  amp  cfg   virtual     Starts the modem driver  Must be called before poll       Parameters       cfg   Startup configuration for the driver and modem  DriverConfig is defined in acomms_driver   _base proto  Derived classes can define extensions  see http    code google     com apis protocolbuffers docs proto html extensions  to DriverConfig  to handle modem specific configuration                 Implements goby  ac
113. ation for this class was generated from the following files       share examples acomms chat chat_curses h    share examples acomms chat chat_curses cpp       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 3 goby  acomms  ABCDriver Class Reference 96       17 3 goby  acomms  ABCDriver Class Reference    provides an API to the imaginary ABC modem  as an example how to write drivers    include  lt goby acomms modemdriver abc_driver h gt     Inheritance diagram for goby  acomms  ABCDriver         goby  acomms  ModemDriverBase    goby  acomms  ABCDriver    Public Member Functions    e void startup  const protobuf  DriverConfig  amp cfg     Starts the modem driver  Must be called before poll     e void shutdown       Shuts down the modem driver   e void do_work     Allows the modem driver to do its work   e void handle_initiate_transmission  const protobuf  ModemTransmission  amp m     Virtual initiate_transmission method  Typically connected to MACManager  signal_initiate_transmission   using  bind       Additional Inherited Members  17 3 1 Detailed Description    provides an API to the imaginary ABC modem  as an example how to write drivers   Examples     acomms modemdriver driver_simple driver_simple cpp     Definition at line 41 of file abc_driver h     17 3 2 Member Function Documentation    17 3 2 1 void goby  acomms  ABCDriver  do_work     virtual     Allows the modem driver to do its work     Should be called regularly to perform the work of the driver 
114. ax_repeat 4    repeated string string_default_repeat   114   dccl field   max_length 4   dccl field   max_repeat 4    repeated bytes bytes_default_repeat   115   dccl field   max_length 4   dccl field   max_repeat 4    repeated Enuml enum_default_repeat   116   dccl field   max_repeat 4    repeated EmbeddedMsgl msg_default_repeat   117   dccl field   max_repeat 4      See Also    dccl1 test cpp       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    3 5 Example messages    19       3 5 3 DCCL Test2 showing an embedded message encoded by a custom  non default  codec    dccl2 test proto    import  goby acomms protobuf dccl_option_extensions proto      message CustomMsg     option  dccl msg  id   3   option  dccl msg   max_bytes   256   option  dccl msg  codec    custom_codec      optional uint32 a   1   optional bool b   2     message CustomMsg2     option  dccl msg  id   4   option  dccl msg   max_bytes   256     optional CustomMsg msg   1   repeated int32 c   3   dccl field   max 100    dccl field   min 0    dccl field   max_repeat 4    dccl field   codec  int32_test_codec       See Also    dccl2 test cpp    3 5 4 DCCL Test3    dccl3 test proto    import  goby common protobuf option_extensions proto    import  goby acomms protobuf dccl_option_extensions proto    import  goby test acomms dccl3 header proto      message GobyMessage     option  dccl msg  id   4   option  dccl msg   max_bytes   32     required string telegram      1   decl field   max_length 10    r
115. b Namespace Reference               eee ee 89  1631  Detailed Descmwiont  2 240 4 PAS ee Pea a Sh ere PB ee Rade G 89  16 6 goby  transitional Namespace Reference               0000 eee ee 89  1661 Detailed Description    624528404 bee ee Yee SR a ew ee e 91  16 6 2 Typedef Documentation      s  lt s s s  sa sa eee eae ee ee ee 91  16 6 3 Enumeration Type Documentation            0   00000 eee ee 91  16 6 4 Function Documentation  lt    lt       s dobe aud ne bed ee bebe eee be hee 92  1665 Variable DOCUMPBATADOR  2  c c 28s var ke aeev bhi deed peewee eed ewe 93  17 Class Documentation 93  17 1 boost  asio  time_traits lt  goby  common  GobyTime  gt  Struct Template Reference           93  TACI Doral IBESCAQUOT aseos cd Ra Sle ede dae A 94  17 2 ChatCurses Class Reference                   e    94  12210 Detailed DesceHion es es  so bebe e AA da AE 94  17 3 goby  acomms  ABCDriver Class Reference                     eee eee eee 95  17 3 4 Detailed Deschiphoni is iaa PN or ee ae ae OS 95       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    CONTENTS iv       17 3 2 Member Function Documentation              e            e    es 95  17 4 goby  acomms  DCCLCodec Class Reference          o    e      eee ee 96  1741 Detaled Descrmption cota da e e 98  17 4 2 Member Function Documentation              e            e    eo    99  17 5 goby  acomms  DCCLDefaultBoolCodec Class Reference           0    a 104  17 5 1 Detailed Description 2 20    same ee ee ewe 105  17 6
116. by  acomms  DCCLFieldCodecBase  field_encode_repeated   Bitset x bits  const std  vector lt  boost  any  gt       field_values  const google  protobuf  FieldDescriptor x field      Encode a repeated field     Parameters       bits    Pointer to bitset to store encoded bits  Bits are added to the most significant end of bits       field_values    Values to encode  FieldType           field       Protobuf descriptor to the field  Set to 0 for base message           Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen                17 13 goby  acomms  DCCLFieldCodecBase Class Reference 123       Definition at line 76 of file dccl_field_codec cpp     17 13 2 18 void goby  acomms  DCCLFieldCodecBase  field_info   std  ostream x os  const google  protobuf  FieldDescriptor  x field      Write human readable information about the field and its bounds to the provided stream     Parameters       os   Stream to write info to              field   Protobuf descriptor to the field  Set to 0 for base message           Definition at line 303 of file dccl_field_codec cpp     17 13 2 19 void goby  acomms  DCCLFieldCodecBase  field_max_size   unsigned   bit_size  const  google  protobuf  FieldDescriptor x field      Calculate the upper bound on this field   s size  in bits     Parameters       bit_size   Location to add calculated maximum bit size to  Be sure to zero bit_size if you want only  the size of this field              field   Protobuf descriptor to the field  Set to O for ba
117. by pb protobuf database_request pb h 22  goby pb protobuf database_request proto 2   goby pb protobuf header pb h 22  goby pb protobuf header proto 22  goby pb protobuf interprocess_notification pb h 22  goby pb protobuf interprocess_notification proto 2    22       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen       goby util linebasedcomms client_base h    14 1 File List 74  goby pb protobuf iridium_driver proto 22  goby pb protobuf pb_modem_driver pb h 22  goby pb protobuf pb_modem_driver proto 22  goby pb protobuf rudics_shore pb h 22  goby pb protobuf rudics_shore proto 22  goby test acomms dccl1 test proto 22  goby test acomms dccl10 test proto 2   goby test acomms dccl2 test proto 22  goby test acomms dccl3 header proto 22  goby test acomms dccl3 test proto 2   goby test acomms dccl4 test proto 22  goby test acomms dccl6 test proto 2   goby test acomms dccl7 test proto 22  goby test acomms dccl8 test proto 2   goby test acomms dccl9 test proto 2   goby test acomms driver_tester driver_tester h 22  goby test acomms mmdriver2 test_config proto 22  goby test acomms queue1 test proto 2   goby test acomms queue5 test proto 2   goby test acomms queue6 test proto 2   goby test acomms route1 test proto 2   goby test moos translator1 basic_node_report proto 2   goby test util dynamic_protobuf test_a proto 2   goby test util dynamic_protobuf test_b proto 2   goby util as h 22  goby util base_convert h 22  goby util binary h 22  goby util dynamic_protobuf_manager h
118. c apps acomms abc_modem_simulator abc_modem_simulator cpp 22  src apps acomms analyze_dccl analyze_dccl cpp 2   src apps acomms goby_bridge bridge cpp 2   src apps acomms goby _file_transfer file_transfer cpp 22  src apps acomms goby_modemdriver modemdriver cpp 22  src apps acomms goby_rudics_shore goby_rudics_shore cpp 2   src apps acomms goby_store_server goby_store_server cpp 2   src apps common liaison liaison cpp 22  src apps common liaison liaison_home cpp 22  src apps common liaison liaison_wt_thread cpp 2   src apps moos abc_frontseat_simulator abc_frontseat_simulator cpp 22   22       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen       src moos transitional dccl_transitional cpp    14 1 File List 77  src apps moos iFrontSeat iFrontSeat cpp 2   src apps moos iFrontSeat legacy_translator cpp 2   src apps moos moos_gateway_g moos_gateway cpp 2   src apps moos pAcommsHandler pAcommsHandler cpp 2   src apps moos pAcommsHandler pAcommsHandlerMain cpp 22  src apps moos pTranslator pTranslator cpp 22  src apps moos pTranslator pTranslatorMain cpp 22  src apps util serial2tcp_server serial2tcp_server cpp 2   src common application_base cpp 2   src common configuration_reader cpp 2   src common time cpp 22  src common zeromq_service cpp 2   src common logger flex_ncurses cpp 2   src common logger flex_ostream cpp 2   src common logger flex_ostreambuf cpp 2   src common logger logger_manipulators cpp 2   src common logger term_color cpp 2   src moos goby_moos_app
119. called in order they  were connected  To ensure synchronous behavior and thread safety throughout goby acomms  signals are only  emitted during a call to a given components API class do_work method  i e  goby  acomms  ModemDriverBase   udo_work    goby  acomms  QueueManager  do_work    goby  acomms  MACManager  do_work        For example  if   want to receive data from queue    need to connect to the signal QueueManager  signal_receive   Thus    need to define a function or class method with the same signature     void receive_data const google   protobuf   Message amp  msg         Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    2 6 Software concepts used in goby acomms 8       At startup    then connect the signal to the slot     goby   acomms   connect   amp q_manager signal_receive     amp receive_data      If instead    was using a member function such as    class MyApplication     public   void receive_data  const google  protobuf  Message amp  msg              would call connect  probably in the constructor for MyApplication  passing the pointer to the class     MyApplication   MyApplication        goby   acomms   connect   amp q_ manager signal_receive    this   amp MyApplication  receive_data      The Boost Signals library is used without modification  so for details see http   www boost     org doc libs 1_46_0 doc html signals html  Member function binding is provided by Boost  Bind http    www boost org doc libs 1_46_0 libs bind bind html       2 6 2
120. can be omitted in the child class      Definition at line 44 of file dccl_field_codec_typed h     17 16 2 Member Function Documentation       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 17 goby  acomms  DCCLRepeatedTypedFieldCodec lt  WireType  FieldType  gt  Class Template  Reference 131       17 16 21 template lt typename WireType   typename FieldType  gt  virtual FieldType goby  acomms  DCCLFieldCodec   Selector lt  WireType  FieldType  typename boost  disable_if lt  boost  is_same lt  WireType  FieldType  gt   gt   type   gt   post_decode   const WireType     wire value    protected    pure virtual     Convert from the WireType representation  used with encode   and decode    i e   on the wire   to the FieldType  representation  used in the Google Protobuf message      Parameters       wire_value   Value to convert                Returns    Converted value    17 16 2 2 template lt typename WireType   typename FieldType  gt  virtual WireType goby  acomms  DCCLFieldCodec   Selector lt  WireType  FieldType  typename boost  disable_if lt  boost  is_same lt  WireType  FieldType  gt   gt   type   gt   pre_encode   const FieldType     field_value    protected    pure virtual     Convert from the FieldType representation  used in the Google Protobuf message  to the Wire Type representation   used with encode   and decode    i e   on the wire       Parameters       field_value   Value to convert                Returns    Converted value    The documentation 
121. ccl8 test cpp 2   src test  acomms dccl9 test cpp 2   src test  acomms driver_tester driver_tester cpp 22  src test 1acomms mmdriver1 test cpp 22  src test  acomms mmdriver2 test cpp 22  src test 1acomms queue1 test cpp 2   src test  acomms queue2 test cpp 2   src test acomms queue3 test cpp 2    22       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen       src util linebasedcomms tcp_server cpp    15 Module Documentation    15 Module Documentation 79  src test  acomms queue5 test cpp 2   src test acomms queue6 test cpp 2   src test  acomms route1 test cpp 2   src test  acomms udpdriver1 test cpp 22  src test acomms udpdriver2 test cpp 22  src test common log test cpp 2   src test common zero_mqg_node1 test cpp 2   src test common zero_mg_node2 test cpp 2   src test common zero_mq_node3 test cpp 2   src test common zero_mq_node4 test cpp 2   src test moos transitional1 test cpp 22  src test moos translator1 test cpp 2   src test pb iridiumdriver1 test cpp 22  src test pb pbdriver1 test cpp 22  src test util as as cpp 2   src test util base255 base255 cpp 2   src test util dynamic_protobuf dynamic_protobuf cpp 2   src test util hex_codec hex_codec cpp 22  src test util nmea nmea cpp 22  src test util salinity salinity cpp 22  src test util sci sci cpp 22  src test util time time cpp 22  src util dynamic_protobuf_manager cpp 2   src util linebasedcomms interface cpp 2   src util linebasedcomms nmea_sentence cpp 2   src util linebasedcomms serial_client cpp 2   src
122. cecl  field   precision 1    required HealthEnum health    enum HealthEnum     HEALTH_GOOD   0   HEALTH_LOW_BATTERY   1   HEALTH_ABORT   2     See Also    two_message cpp    Test1 showing all Protobuf types  using default codecs    dccl1 test proto    import  goby acomms protobuf dccl_option_extensions proto      enum Enuml         ENUM_A   1   ENUM_B   2   ENUM_C   3     message EmbeddedMsgl     optional double val   1   dccl field   min 0    dccl  field   max 126    dccl field   precision 3    optional EmbeddedMsg2 msg   2        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    3 5 Example messages    17       message EmbeddedMsg2     optional double val   1       dccl field   min 0    dccl  field   max 126        dccl field   precision 2    optional string sval   2   dccl field   max_length 10      optional Enuml enum_default   3     message TestMsg         o    ption  dccl msg  id   2   ption  dccl msg   max_bytes   512     o       test default enc dec  optional double double_default_optional     decl    decl    dec  optional float float_default_optional   2   decl    decis  optional int32 int32_default_optional   3   decl   optional int64 int64_default_optional   4   dice   optional uint32 uint32_default_optional     decl   optional uint64 uint64_default_optional     decl   optional sint32 sint32_default_optional     decl   optional sint64 sint64_default_optional     decl   optional fixed32 fixed32_default_optional   decl   optional fixed64 fixed64_default
123. cific statically generated Protobuf class   Definition at line 566 of file protobuf_cpp_type_helpers h     The documentation for this class was generated from the following file       goby acomms dccl protobuf_cpp_type_helpers h    17 26 goby  acomms  FromProtoTypeBase Class Reference    Provides various representations of a google  protobuf  FieldDescriptor  Type enumeration  Implementations are  provided for all enumerations      include  lt goby acomms dccl protobuf_cpp_type_helpers h gt     Inherited by goby  acomms  FromProtoType lt  google  protobuf  FieldDescriptor  TYPE_BOOL  gt   goby  acomms     FromProtoType lt   google  protobuf  FieldDescriptor  TYPE_BYTES  gt   goby  acomms  FromProtoType lt   google  protobuf  FieldDescriptor  TYPE_DOUBLE  gt   goby  acomms  FromProtoType lt  google  protobuf  Field   Descriptor  TYPE_ENUM  gt   goby  acomms  FromProtoType lt  google  protobuf  FieldDescriptor  T YPE_FIXE   D32  gt   goby  acomms  FromProtoType lt  google  protobuf  FieldDescriptor  TYPE_FIXED64  gt   goby  acomms     FromProtoType lt  google  protobuf  FieldDescriptor  TYPE_FLOAT  gt   goby  acomms  FromProtoType lt  google     protobuf  FieldDescriptor  TYPE_GROUP  gt   goby  acomms  FromProtoType lt  google  protobuf  FieldDescriptor      TYPE_INT32  gt   goby  acomms  FromProtoType lt  google  protobuf  FieldDescriptor  TYPE_INT64  gt   goby     acomms  FromProtoType lt  google  protobuf  FieldDescriptor  TYPE_MESSAGE  gt   goby  acomms  FromProto   Type lt
124. comms protobuf route pb h 22  goby acomms protobuf route proto 2   goby acomms protobuf store_server pb h 22  goby acomms protobuf store_server proto 2   goby acomms protobuf udp_driver pb h 22  goby acomms protobuf udp_driver proto 22  goby acomms queue queue h 22  goby acomms queue queue_constants h 2   goby acomms queue queue_exception h 22  goby acomms queue queue_manager h 22  goby acomms route route h 22  goby apps acomms goby_bridge bridge_config proto 22  goby apps acomms goby _file_transfer file_transfer_config proto 2    22       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen       goby common protobuf liaison_config proto    14 1 File List 70  goby apps acomms goby_rudics_shore goby_rudics_shore_config proto 2   goby apps acomms goby_store_server goby_store_server_config proto 2   goby apps common liaison liaison h 22  goby apps common liaison liaison_home h 22  goby apps common liaison liaison_wt_thread h 22  goby apps moos iFrontSeat iFrontSeat h 22  goby apps moos iFrontSeat legacy_translator h 22  goby apps moos moos_gateway_g moos_gateway_config proto 2   goby apps moos pAcommsHandler pAcommsHandler h 22  goby apps moos pTranslator pTranslator h 22  goby apps moos pTranslator pTranslator_config proto 22  goby common application_base h 22  goby common configuration_reader h 22  goby common core_constants h 22  goby common core_helpers h 22  goby common exception h 22  goby common liaison_container h 22  goby common logger h 22  goby common node_in
125. criptor   field  google  protobuf  Message  msg   boost  any value    e virtual void _add_value  const google  protobuf  FieldDescriptor   field  google  protobuf  Message   msg   boost  any value     17 23 1 Detailed Description  template  lt   gt class goby  acomms  FromProtoCppType lt  google  protobuf  FieldDescriptor  CPPTYPE_MESSAGE  gt     Implements FromProtoCppTypeBase for CPPTYPE_MESSAGE using the dynamic google  protobuf  Message as  the underlying class   Definition at line 496 of file protobuf_cpp_type_helpers h     The documentation for this class was generated from the following file       goby acomms dccl protobuf_cpp_type_helpers h    17 24 goby  acomms  FromProtoCppTypeBase Class Reference   Provides various representations of a google  protobuf  FieldDescriptor  CppType enumeration  and ways to access  the google  protobuf  Reflection object for a given type     include  lt goby acomms dccl protobuf_cpp_type_helpers h gt     Inheritance diagram for goby  acomms  FromProtoCppTypeBase                       goby  acomms  FromProtoCpp  goby  acomms  FromProtoCpp Type lt  google  protobuf goby  acomms  FromProtoCustom  TypeBase  FieldDescriptor  CPPTYPE Message lt  CustomMessage  gt   _MESSAGE  gt        Public Member Functions    e virtual std  string as_str     string representation  e boost  any get_value  const google  protobuf  FieldDescriptor field  const google  protobuf  Message   amp msg   Get a given field   s value from the provided message     boost 
126. d Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 40 goby  moos  UFldDriver Class Reference 169       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     Definition at line 188 of file moos_bluefin_driver cpp     17 39 2 2 void goby  moos  BluefinCommsDriver  handle_initiate transmission   const goby  acomms  protobuf  Modem   Transmission amp m   virtual     Virtual initiate_transmission method  Typically connected to MACManager  signal_initiate_transmission   using  bind       Parameters       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     Definition at line 100 of file moos_bluefin_driver cpp     17 39 2 3 void goby  moos  BluefinCommsDriver  startup   const goby  acomms  protobuf  DriverConfig  amp  cfg     virtual     Starts the modem driver  Must be called before poll       Parameters       cfg   Startup configuration for the driver and modem  DriverConfig is defined in acomms_driver   _base proto  Derived classes can define extensions  see http   code google       com apis protocolbuffers docs
127. d any_decode_repeated  Bitset   repeated_bits  std  vector lt  boost  any  gt  xfield_values   virtual void any_pre_encode_repeated  std  vector lt  boost  any  gt   wire_values  const std  vector lt  boost   any  gt   amp field_values   virtual void any_post_decode_repeated  const std  vector lt  boost  any  gt   amp wire_values  std  vector lt  boost   any  gt  x field_values   virtual unsigned any_size_repeated  const std  vector lt  boost  any  gt   amp wire_values   virtual unsigned max_size_repeated     virtual unsigned min_size_repeated       Friends    class DCCLFieldCodecManager    Information Methods    std  string name    const    the name of the codec used to identifier it in the  proto custom option extension  google  protobuf  FieldDescriptor  Type field_type    const    the type exposed to the user in the original and decoded Protobuf messages  google  protobuf  FieldDescriptor  CppType wire_type    const  the C   type used  on the wire   This is the type visible after pre_encode and before post_decode functions are  called   const  google  protobuf  FieldDescriptor x this_field    const       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 13 goby  acomms  DCCLFieldCodecBase Class Reference 119       Returns the FieldDescriptor  field schema meta data  for this field   e static const  google  protobuf  Descriptor   this_descriptor     Returns the Descriptor  message schema meta data  for the immediate parent Message   e static const  google 
128. d by Goby 89  goby  transitional  Objects pertaining to transitioning from DCCLv1 to DCCLv2 89  12 Class Index  12 1 Class Hierarchy  This inheritance list is sorted roughly  but not completely  alphabetically   boost  asio  time_traits lt  goby  common  GobyTime  gt  93  ChatCurses 94  goby  acomms  DCCLCodec 96  goby  acomms  DCCLFieldCodecBase 114       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen       12 1 Class Hierarchy 61  goby  acomms  DCCLFieldCodecSelector lt  bool  bool  gt  128  goby  acomms  DCCLTypedFieldCodec lt  bool  bool  gt  137  goby  acomms  DCCLTypedFixedFieldCodec lt  bool  gt  140  goby  acomms  DCCLDefaultBoolCodec 104  goby  acomms  DCCLFieldCodecSelector lt  CustomMsg  CustomMsg  gt  128  goby  acomms  DCCLTypedFieldCodec lt  CustomMsg  CustomMsg  gt  137  goby  acomms  DCCLTypedFixedFieldCodec lt  CustomMsg  gt  140  goby  acomms  DCCLFieldCodecSelector lt  double  double  gt  128  goby  acomms  DCCLTypedFieldCodec lt  double  double  gt  137  goby  acomms  DCCLTypedFixedFieldCodec lt  double  gt  140  goby  acomms  DCCLFieldCodecSelector lt  float  float  gt  128  goby  acomms  DCCLTypedFieldCodec lt  float  float  gt  137  goby  acomms  DCCLTypedFixedFieldCodec lt  float  gt  140  goby  acomms  DCCLFieldCodecSelector lt  goby  int32  goby  int32  gt  128  goby  acomms  DCCLTypedFieldCodec lt  goby  int32  goby  int32  gt  137  goby  acomms  DCCLRepeatedTypedFieldCodec lt  goby  int32  gt  130  goby  acomms  DCCLFieldCodecSelector
129. d string telegram   1          At a minimum we must give a unique ID for our DCCL message and a maximum number of bytes we allow the  message to be before throwing an exception when it is loaded  This allows us to ensure that we are not creating  messages larger than we can send with the physical hardware  We want to have the ability to use the lowest rate  WHOI Micro Modem message size  so we pick max_bytes to be 32  We are testing so we ll use an id of 124  See  http   gobysoft org wiki DcclIdTabl1le for a list of the assigned DCCL IDs        After these additions we have     import  goby common protobuf option_extensions proto      message Simple       option  dccl msg  id   124   option  dccl msg  max_bytes   32     required string telegram   1          Finally  we need to pick an encoder decoder  codec  for each field in our message  DCCL comes with defaults for  all the Protobuf types  So if we don   t specifically list a codec for a given field  the default is used  The default  string   codec is goby  acomms  DCCLDefaultStringCodec and is variable length  It uses one byte to list the length of the  string and then up to 255 bytes to hold the contents  To ensure we stay within our bounds for the entire message    goby msg   dccl max_bytes   32   we have to give a maximum allowed length for a string when using  the DCCLDefaultStringCodec    goby  field   dccl max_length      import  goby acomms protobuf dccl_option_extensions proto    message Simple         see http   g
130. d2name  unsigned id      unsigned name2id  const std  string  amp name      std  vector lt  DCCLMessage  gt   amp  messages       Constructors Destructor    e DCCLTransitionalCodec       Instantiate optionally with a ostream logger  for human readable output   e  DCCLTransitionalCodec       destructor    Initialization Methods     These methods are intended to be called before doing any work with the class  However  they may be called at  any time as desired     e void convert_to_v2_representation  pAcommsHandlerConfig  cfg     17 43 1 Detailed Description    provides an API to the Transitional Dynamic CCL Codec  looks like DCCLv1  but calls DCCLv2   Warning  this class  is for legacy support only  new applications should use DCCLCodec directly     See Also    transitional proto and acomms_modem_message proto for definition of Google Protocol Buffers messages   namespace goby  transitional  protobuf      Definition at line 99 of file dccl_transitional h     17 43 2 Constructor  amp  Destructor Documentation    17 43 21 goby  transitional  DCCLTransitionalCodec  DCCLTransitionalCodec        Instantiate optionally with a ostream logger  for human readable output     Parameters       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 43 goby  transitional  DCCLTransitionalCodec Class Reference 178          log   std  ostream object or FlexOstream to capture all humanly readable runtime and debug infor   mation  optional                  Definition at line 46 of f
131. dated using the std    1ist insert   push  pop  erase  etc  Each vehicle can have more than one slot in the cycle  The cycles must agree across  all platforms  the network designer is responsible for this  Most of the time you will want to use this mode     2  Centralized Polling  goby  acomms  protobuf  MAC_POLLED on the master  goby  acomms  protobuf  MA   C_NONE on all other nodes   The TDMA cycle is set up and operated by a centralized master modem    poller    which is usually the modem connected to the vehicle operator   s topside  The poller initiates each  transmission and thus the vehicles are not required to maintain synchronous clocks  This mode requires  third party initiation of transmissions to function     5 2 Interacting with the goby  acomms  MACManager    To use the goby  acomms  MACManager  you need to instantiate it     goby  acomms  MACManager mac     Then you need to provide a callback  or  slot   not to be confused with a TDMA slot  for initiated transmissions  for the signal goby  acomms  MACManager  signal_initiate_transmission  This signal will be called when the goby    acomms  MACManager determines it is time to send a message  If using modemdriver  simply call goby   uacomms  bind goby  acomms  MACManager amp   goby  acomms  ModemDriverBase amp   to bind this callback to the  modem driver        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    5 2 Interacting with the goby  acomms  MACManager 31       Next you need to decide which t
132. delete driver   return 0          ff     5  Post the received data  El  void handle_data_receive const goby  acomms   protobuf    ModemTransmission amp   data_msg      std  cout  lt  lt   got a message     lt  lt  data_msg  lt  lt  std  endl          19 6 acomms queue queue_simple queue_simple cpp    simple proto    import     goby acomms protobuf dccl_option_extensions proto      message Simple            see http   gobysoft org wiki DcclIdTable  option       if    r    option    required string telegram   1   dccl field   max_length 30       dccl msg   id   124     for example  we want to use on the WHOI Micro Modem rate 0     dccl msg   max_bytes   32     queue_simple cpp       queues a single message from the DCCL library     include   include   include   include   include     goby acomms queue h    goby acomms connect h    simple pb h    goby util binary h    lt iostream gt     using goby  acomms   operator lt  lt      void received_data const google   protobuf  Message amp  msg      int main          Vi      Hib    1     Initialize the QueueManager    goby   acomms    QueueManager q_ manager        our modem id  arbitrary  but must be unique in the network   const int our_id   1     goby   acomms    protobuf   QueueManagerConfig cfg   cfg set_modem_id our_id     cfg add_message_entry    gt set_protobuf_name   Simple     q_manager set_cfg cfg         set up the callback to handle received DCCL messages  goby   acomms   connect   amp q_manager signal_receive    r    ie  A
133. e           o    o         126  1141 Detaled Descriptio soci A Re a As Ra AA A ek 126  17 14 2 Member Function Documentation               e      e       ore 127    17 15goby  acomms  DCCLFieldCodecSelector lt  WireType  FieldType  Enable  gt  Class Template Refer     ODOT A Ba es 128  1715 1 Detailed DOSCRBUION eses a a a a ee 128  17 16goby  acomms  DCCLFieldCodecSelector lt  WireType  FieldType  typename boost  disable_if lt   boost  is_same lt  WireType  FieldType  gt   gt   type  gt  Class Template Reference             129  1716 Detailed Descrion  s ogai   bide bee aw eae bb Pk  de ee eS 129  17 16 2 Member Function Documentation     1 2 2 2    e    eee a es 129    17 17goby  acomms  DCCLRepeatedTypedFieldCodec lt  WireType  FieldType  gt  Class Template Reference130     7 47 1 Detailed Desorption css tasa ee eo a a a a ae 132  17 17 2 Member Function Documentation           0  e    a es 132  17 18goby  acomms  DCCLStaticCodec lt  T  gt  Class Template Reference                  134  1718 1 Detailed Description     ca c ciccone RP pe ee ee eA RP ae he R 135       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    CONTENTS v       17 19goby  acomms  DCCLTimeCodec lt  TimeType  gt  Class Template Reference              135  1719 1 Detailed DOSCQUOT  02 ora RA RRA RR Oe Bo a 136  17 20goby  acomms  DCCLTypedFieldCodec lt  WireType  FieldType  gt  Class Template Reference      137  17 20 1 Detailed Descriplhon  s ab bee a a Re Ree a eG Ra 137  17 20 2 Member Fu
134. e    goby  acomms  protobuf  ModemTransmission rate    ACK   if ADR1    modem ID then goby  acomms     protobuf  ModemTransmission ack_requested   else  4   Nframes   goby  acomms  protobuf  Modem   Transmission max_num_frames            Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    6 4 WHOI Micro Modem Driver  MMDriver    43           CCCLK    Not translated from any of the modem_message proto  messages   taken from the system time using the  boost  date_time library         CCCFG    Not translated from any of the modem_message proto  messages   taken from values passed to the  extension micromodem  protobuf  Config  nvram_cfg  of goby  acomms  protobuf  DriverConfig   If the  extension  micromodem  protobuf  Config  reset_nvram is set to  true   CCCFG ALL O will be sent before any other   CCCFG values          CCCFQ    Not translated from any of the modem_message proto  messages   CCCFQ ALL sent at startup         CCMPC    protobuf  MICROMODEM_TWO_WAY_PING     goby  acomms  protobuf  ModemTransmission type    SRC    goby  acomms  protobuf  ModemTransmission src    DEST    goby  acomms  protobuf  ModemTransmission dest          CCPDT          protobuf  MICROMODEM_REMUS_LBL_RANGING  goby  acomms  protobuf  ModemTransmission type    micromodem  protobuf  REMUSLBLParams type  used to determine the parameters of the LBL ping   The object provided with configuration   micromodem  protobuf  Config  remus_lbl  is merged  with the object provided with the ModemTran
135. e  119  DCCLFieldCodecBase  119  DCCLFieldCodecBase  119  DCCLFieldCodecBase  120  DCCLFieldCodecBase  120    DCCLFieldCodecBase  120    char_array2hex_string    goby  transitional  92  ChatCurses  94  cpp_bool   goby  transitional  91  cpp_double   goby  transitional  91  cpp_long   goby  transitional  91  cpp_notype   goby  transitional  91  cpp_string   goby  transitional  91    DCCL_HEADER_NAMES  goby  transitional  93  DCCLCppType  goby  transitional  91  DCCLTransitionalCodec  goby  transitional  DCCLTransitionalCodec  176  DCCLType  goby  transitional  91  dccl_bool  goby  transitional  91  dccl_enum  goby  transitional  91  dccl_float  goby  transitional  91  dccl_hex  goby  transitional  91  dccl_int  goby  transitional  91  dccl_static  goby  transitional  91  decl_string  goby  transitional  91  dccl_field_options  goby  acomms  DCCLFieldCodecBase  121  decode  goby  acomms    goby  acomms    goby  acomms    112  goby  acomms    132  goby  acomms    decode_repeated  goby  acomms    do_work  goby  acomms  ABCDriver  95  goby  acomms  ModemDriverBase  152  goby  moos  BluefinCommsDriver  167  goby  moos  UFldDriver  169    DCCLCodec  99  DCCLDefaultldentifierCodec  108  DCCLDefaultNumericFieldCodec   DCCLRepeatedTypedFieldCodec   DCCLTypedFieldCodec  138    DCCLCodec  100    encode  goby  acomms  DCCLCodec  100    INDEX    198       goby  acomms  DCCLDefaultldentifierCodec  108   109   goby  acomms  DCCLDefaultNumericFieldCodec   112   goby  acomms  DCCLRepeatedTyped
136. e  QueueManager       destructor    Initialization Methods  These methods are intended to be called before doing any work with the class       void set_cfg  const protobuf  QueueManagerConfig  amp cfg   Set  and overwrite completely if present  the current configuration   protobuf  QueueManagerContig defined in  acomms_queue proto   e void merge_cfg  const protobuf  QueueManagerConfig  amp cfg   Set  and merge  repeat  fields  the current configuration   protobuf  QueueManagerContfig defined in acomms_   queue proto   e template lt typename ProtobufMessage  gt   void add_queue  const protobuf  QueuedMessageEntry  amp queue_cfg   Add a DCCL queue for use with QueueManager  Note that the queue must be added before receiving messages  with QueueManager   e void add_queue  const google  protobuf  Descriptor  desc  const protobuf  QueuedMessageEntry   amp queue_cfg   Alternative method for adding Queues when using Dynamic Protobuf Messages     Application level Push Receive Methods    These methods are the primary higher level interface to the QueueManager  From here you can push messages  and set the callbacks to use on received messages       void push_message  const google  protobuf  Message  amp new_message   Push a message  and add the queue if it does not exist   e void push_message  const google  protobuf  Message  amp new_message  const protobuf  Queued   MessageMeta x meta   e void flush_queue  const protobuf  QueueFlush  amp flush     Flush  delete all messages in  a que
137. e  lt goby util linebasedcomms serial_client h gt    Inherits goby  util  LineBasedClient lt  ASIOAsyncReadStream  gt         Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 46 goby  util  TCPClient Class Reference 181       Public Member Functions    e SerialClient  const std  string  amp name     unsigned baud 9600  const std  string  amp delimiter   r n    create a serial client  e void set_name  const std  string  amp name     set serial port name  e g    dev ttySO   e void set_baud  unsigned baud     baud rate  e g  4800  e std  string name    const    serial port name  e g    dev ttySO     unsigned baud    const    baud rate  e g  4800    boost  asio  serial_port  amp  socket     e std  string local_endpoint      our serial port  e g    dev ttyUSB1     std  string remote_endpoint       who knows where the serial port goes    empty string   Additional Inherited Members  17 45 1 Detailed Description    provides a basic client for line by line text based communications over a 8N1 tty  such as an RS 232 serial link   without flow control    Definition at line 37 of file serial_client h     17 45 2 Constructor  amp  Destructor Documentation    17 45 21  goby  util  SerialClient  SerialClient   const std  string  amp  name        unsigned baud   9600  const std  string      delimiter      r n       create a serial client    Parameters       name   name of the serial connection  e g    dev ttyS0         baud   baud rate of the serial connection  e g  9600   
138. e  protobuf  EnumValueDescriptor x  gt   goby  acomms  DCCLRepeatedTypedField   Codec lt  goby  int32  gt   and goby  acomms  DCCLDefaultldentifierCodec     17 13 2 31 virtual unsigned goby  acomms  DCCLFieldCodecBase  min_size     protected    pure virtual     Calculate minimum size of the field in bits        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 13 goby  acomms  DCCLFieldCodecBase Class Reference 126       Returns    Minimum size of this field  in bits      Implemented in goby  acomms  DCCLRepeatedTypedFieldCodec lt  WireType  FieldType  gt   goby  acomms  DCCL   RepeatedTypedFieldCodec lt  Model  value_type  FieldType  gt   goby  acomms  DCCLRepeatedTypedFieldCodec lt   Model  value_type  const google  protobuf  EnumValueDescriptor x  gt   goby  acomms  DCCLRepeatedTypedField   Codec lt  goby  int32  gt   and goby  acomms  DCCLDefaultldentifierCodec     17 13 2 32 void goby  acomms  DCCLFieldCodecBase  require   bool b  const std  string  amp  description    inline     protected     Essentially an assertion to be used in the validate   virtual method     Parameters       b   Boolean to assert  if true  execution continues  if false an exception is thrown   description   Debugging description for this assertion  will be appended to the exception                    Exceptions       DCCLException   Thrown if lb                Definition at line 323 of file dccl_field_codec h     17 13 2 33 static const google  protobuf  Descriptorx goby  acomms  
139. e any end of line character s                  Definition at line 60 of file driver_base cpp     17 29 2 6 virtual void goby  acomms  ModemDriverBase  startup   const protobuf  DriverConfig  amp  cfg    pure  virtual     Starts the modem driver  Must be called before poll       Parameters       cfg   Startup configuration for the driver and modem  DriverConfig is defined in acomms_driver   _base proto  Derived classes can define extensions  see http    code google       com apis protocolbuffers docs proto html extensions  to DriverContfig  to handle modem specific configuration                    Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 29 goby  acomms  ModemDriverBase Class Reference 155       Implemented in goby  acomms  MMDriver  goby  moos  BluefinCommsDriver  goby  moos  UFldDriver  and goby     acomms  ABCDriver     Examples     acomms modemdriver driver_simple driver_simple cpp     17 29 3 Member Data Documentation    17 29 3 1  boost  signals2  signal lt void  protobuf  ModemTransmission  msg  gt  goby  acomms  ModemDriverBase  signal_   data request    Called when the modem or modem driver needs data to send  The returned data should be stored in Modem   Transmission  frame     You should connect one or more slots  a function or member function  to this signal to handle data requests  Use  the goby  acomms  connect family of functions to do this  This signal will only be called during a call to poll  Modem   Transmission is defined in acomms
140. e is of the type for this queue           Definition at line 208 of file queue_manager h     17 31 3 3  boost  signals2  signal lt void  const google  protobuf  Message amp  orig_msg  gt  goby  acomms  QueueManager    signal_expire    Signals when a message is expires  exceeds its time to live or ttl  before being sent  if queue ack    false  or before  being acknowledged  if queue ack    true      Parameters       expire_msg   the expired transmission   protobuf  ModemDataExpire is defined in acomms_modem_   message proto                 Definition at line 201 of file queue_manager h        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 32 goby  common  Colors Struct Reference 162       17 31 3 4 boost  signals2  signal lt void  protobuf  QueueSize size  gt  goby  acomms  QueueManager  signal_queue_size    change    Signals when any queue changes size  message is popped or pushed     Parameters       size   message containing the queue that changed size and its new size  protobuf  QueueSize is  defined in acomms_queue proto                  Definition at line 213 of file queue_manager h     17 31 3 5 boost  signals2  signal lt void  const google  protobuf  Message amp  msg   gt  goby  acomms  QueueManager  signal_   receive    Signals when a DCCL message is received     Parameters       msg   the received transmission                 Examples     acomms chat chat cpp  and acomms queue queue_simple queue_simple cpp     Definition at line 196 of file queue_
141. e of the last send  from this queue  and ft  is the ttl option   Essentially  a message  with low ttl will become  effective quickly again  after a sent message  the  priority line grows faster    See Understanding  dynamic priority queuing  for further discussion              Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    4 2 Queuing Protobuf Options    26          encode_on_demand bool    false     Advanced  enable  on demand encoding  where rather than  queueing data  the data  request is forwarded up  to the application level  via the signal  goby  acomms  Queue   Manager  signal_data_   on_demand       on_demand_skew_  double  seconds              Advanced  if  encode_on_demand     true  this sets the number  of seconds before data  encoded on demand are  considering stale and  thus must be demanded  again with the signal  goby  acomms  Queue   Manager  signal_data_   on_demand  Setting this  to 0 is unadvisable as it  will cause many calls to  goby  acomms  Queue   Manager  signal_data_   on_demand and thus  waste CPU cycles  needlessly encoding              Queue Role options  Queue needs to know how to address a message  the source ID and destination ID  as well  as the time the message was generated  This information either read from the fields of the of the DCCL message   setting  FIELD _VALUE  or is statically configured  setting  STATIC   In the latter case  the configuration value   static_value  is set and used for every DCCL message of this typ
142. e port for the simulator to listen on   Then  run iFrontSeat in a MOOS community with pHelmlvP with the following configuration     ProcessConfig   iFrontSeat_bluefin              common      verbosity  DEBUG1      abc_config       optional   tcp_address   localhost     required   tcp_port  54321    optional   default 54321   start   lat  44 0888889 lon  9 84861111 duration  600         You can change the start position as desired        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen       9 Todo List 60  9 Todo List  Class goby  acomms  DCCLFieldCodecManager   tes  Make sanity check for newly added FieldCodecs  10 Module Index  10 1 Modules  Here is a list of all modules   API classes for the Dynamic Compact Control Language  includes writing custom encoders   79  API classes for the major components of the Goby Acomms acoustic communications library  D   CCL  Queue  AMAC  ModemDriver   79  11 Namespace Index  11 1 Namespace List  Here is a list of all documented namespaces with brief descriptions   goby  The global namespace for the Goby project 80  goby  acomms  Objects pertaining to acoustic communications  acomms  82  goby  common  Utility objects for performing functions such as logging  non acoustic communication  ethernet    serial   time  scientific  string manipulation  etc 85  goby  common  tcolor  Contains functions for adding color to Terminal window streams 88  goby  pb  Contains objects relating to the core publish   subscribe architecture provide
143. e sent when the  channel quality is high  but important messages are not swamped by low priority data  In contrast  TCP IP considers  all packets equally  Packets made from a spam email are given the same consideration as a high priority email from  the President  This is a trade off in efficiency versus simplicity that makes sense for EM networking  but does not  for acoustic communications     2 1 4 Despite all this  simplicity is good    The  law of diminishing returns  means that at some point  if we try to optimize excessively  we will end up making  the system more complex without substantial gain  Thus  goby acomms makes some concessions for the sake of  simplicity     e Numerical message fields are bounded by powers of 10  rather than 2  Humans deal much better with decimal  than binary     e User data splitting  and subsequent stitching  is not done  This is a key component of TCP IP  but with the  number of dropped packets one can expect with acomms  at the moment this does not seem like a good idea   The user is expected to provide data that is smaller or equal to the packet size of the physical layer  e g  32    256 bytes for the WHOI Micro Modem      2 1 5 Component model    A relatively simple component model for the goby acomms library showing the interface classes         Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    2 2 dccl  Encoding and decoding                                                                                                
144. e that gets queued by this QueueManager     In the former case  the default   you can tag a given field of a DCCL message to a particular  role   This takes the  place of a fixed transport layer header that protocols such as UDP use  The fields used in a given role can be  anywhere within the message  The field is identified by its name  in the configuration value  field    Submessage  fields can be used by separating the field names by periods       until the child is a primitive type  e g  uint32         RoleType    allowed field types    description       SOURCE_ID    All integer types  uint32  int32     uint64  int64          The value in this field is used to  represent the sending address   similar to an IP address  of the  message        DESTINATION_ID    All integer types  uint32  int32     uint64  int64          The value in this field is used to  represent the destination address   similar to an IP address  of the  message  0 is reserved to indicate  broadcast        TIMESTAMP          uint64 or double       The value in this field is used as  the timestamp of the message  If  the type is double  it must be  seconds  and fractional seconds   since the UNIX epoch  1970 01 01  midnight UTC   If it is a uint64  it  must be microseconds since the  UNIX epoch  This field used for  expiring messages that exceed  their ttl and thus must  in general   be set and correct              Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    4 3 Interacting with the Que
145. ec lt  WireType  FieldType  gt   size   const WireType 4 wire value    inline     virtual     Calculate the size  in bits  of a non empty field     Parameters       wire_value   Value to use when calculating the size of the field  If calculating the size requires encoding  the field completely  cache the encoded value for a likely future call to encode   for the same  wire_value                 Returns    the size  in bits  of the field     Implements goby  acomms  DCCLTypedFieldCodec lt  WireType  Field Type  gt    Definition at line 260 of file dccl_field_codec_typed h     The documentation for this class was generated from the following file       goby acomms dccl dccl_field_codec_typed h    17 18 goby  acomms  DCCLStaticCodec lt  T  gt  Class Template Reference    Placeholder codec that takes no space on the wire  0 bits       include  lt goby acomms dccl dccl_field_codec_default h gt           Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 19 goby  acomms  DCCLTimeCodec lt  TimeType  gt  Class Template Reference 136       Inheritance diagram for goby  acomms  DCCLStaticCodec lt  T  gt      goby  acomms  DCCLFieldCodecBase           goby  acomms  DCCLFieldCodec  Selector lt  T  T gt     goby  acomms  DCCLlypedField  Codec lt  T  T gt     goby  acomms  DCCLTypedFixed  FieldCodec lt  T  gt     goby  acomms  DCCLStatic  Codec lt  T  gt     Additional Inherited Members  17 18 1 Detailed Description  template lt typename T gt class goby  acomms  DCCLStaticC
146. ect is an extension to  the Google Protobuf message  iFrontSeatConfig   For the ABC frontseat driver  we use the abc_frontseat_   driver_config proto file to define the configuration     import  goby moos protobuf frontseat_config proto    import  goby common protobuf option_extensions proto      message ABCFrontSeatConfig     required string tcp_address   1   optional uint32 tcp _ port   2  default   54321    message StartParams     required double lat  required double lon       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    8 1   FrontSeat 58       required int32 duration   3      required StartParams start   3        extend iFrontSeatConfig      optional ABCFrontSeatConfig abc_config   1001        In this case  we need to know what IP address and TCP port the abc_frontseat_simulator is listening on  and  the starting position of the simulator     Next  you should fill out the virtual methods of FrontSeatInterfaceBase       The method  frontseat_state  reports the driver s belief of the frontseat command state  see State  charts    goby   moos  protobuf  FrontSeatState AbcFrontSeat  frontseat_state   const       return frontseat_state_        frontseat_state    In this case  we set the value of frontseat_status_ based on the received  CTRL  messages     if  parsed  KEY       CTRL       if  parsed  STATE       PAYLOAD    frontseat_state_   gpb  FRONTSEAT_ACCEPTING_COMMANDS   else if  parsed  STATE       AUV    frontseat_state_   gpb   FRONTSEAT_IN_CONTROL   
147. ed Description    Provides various representations of a google  protobuf  FieldDescriptor  CppType enumeration  and ways to access  the google  protobuf  Reflection object for a given type     Definition at line 158 of file protobuf_cpp_type_helpers h   17 24 2 Member Function Documentation    17 24 2 1 void goby  acomms  FromProtoCppTypeBase  add_value   const google  protobuf  FieldDescriptor x field   google  protobuf  Message    msg  boost  any value   inline     Add a new entry for a repeated field to the back     Parameters       msg   Message to set value in                 Returns    boost  any containing the value  The type is usually the type returned by google  protobuf  Reflection     Add lt i gt Type where Type is the corresponding google  protobuf  FieldDescriptor  Cpp Type   See  http   code google com apis protocolbuffers docs reference cpp google    protobuf message html Reflection      Definition at line 229 of file protobuf_cpp_type_helpers h     17 24 2 2 boost  any goby  acomms  FromProtoCppTypeBase  get_repeated_value   const google  protobuf  FieldDescriptor    field  const google  protobuf  Message  amp  msg  int index   inline     Get the value of a repeated field at a given index                          Parameters  field   Field to get value for   msg   Message to get value from   index   Index of the repeated array to get value for   Returns    boost  any containing the value  The type is usually the type returned by google  protobuf  Reflection   
148. ed in sending a message using goby acomms  The  WHOI Micro Modem is used as example firmware but the specific modemdriver firmware interaction will depend on  the acoustic modem used     Model that shows the commands needed to start and keep goby acomms running        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    3 goby acomms  DCCL  Dynamic Compact Control Language  10                      Application libdccl libqueue libamac libmodemdriver                                                    l  l    bind  modem  DriverBase amp   queue  QueueManager amp   amac  MACManager amp           connect   slots to QueueManager signals                                                                                        l  l  i  l l    l                set_cfg          t  gt  l l l  l set_cfg          H    gt    1      startup         gt      i l startup   i l  l l  gt   l l do_work   E  A   i do_work   run DriverBase  do_work      i i   at at least 5 Hz  gt     do_work   i    I  i  gt   do_work     i  j T T  gt   do_work        do_work   r run MACManager  do_work   and  i         QueueManager  do_work   at at least 1 Hz  i   do_work    L fi 1    gt i  l l do_work   l i  L fi   i     i i do_work                l l l i    Figure 3  UML model that illustrates the set of commands needed to start up goby acomms and keep it running     3 goby acomms  DCCL  Dynamic Compact Control Language     Table of contents for libdccl     e Designing a message    e Interacting with the 
149. edhead goebbet eee td tbea Pewee eta Ge 4 27   4 4 3 Test2  Test3  Test4 2    ee 28   ABA TOSS eset woe ee ee OR ee ee wee ee te RA 28   5 goby acomms  amac  Medium Access Control  29  5 1 Supported MAC schemes       226658   ne ee bee eee Re eee eed ees 29  5 2 Interacting with the goby  acomms  MACManager              000 eee ee ee ee 29   6 goby acomms  modemdriver  Driver to interact with modem firmware  31  6 1 Abstract class  ModemDriverBase                         31  6 1 1 Interacting with the goby  acomms  ModemDriverBase                     31   6 2 Protobuf Message goby  acomms  protobuf  ModemTransmission           o           32   Gnd VEN anew GNIVEN osas os s ak ee Roe A RA Be Awa RR E fa 32  6 4 WHOI Micro Modem Driver  MMDriver        2    2 2 ee ee 36  6 4 1 Supported Functionality   lt        lt  ss eee ede eee ee dura eee rdw  36   6 4 2 Micro Modem NMEA to Goby ModemTransmission mapping                  36   6 4 3 Sequence diagrams for various Micro Modem features using Goby               44   7 goby util  Overview of Utility Libraries 50  8 goby moos  An overview of the Goby MOOS interoperability library 53  Gl   e o o 6 he he He be eb eth so bE AER a aeaa eA wd onde ee oS 4 53  8 1 1 Writing a new driver for iFrontSeat    2    2    0            e    2       53   9 Todo List 59  10 Module Index 59  TOT Modules ie iaa dead ee e Pe a de rr e a 59   11 Namespace Index 59  TET o AENA 59   12 Class Index 59       Generated on Wed Mar 26 2014 01 41 49 for Goby 
150. else  frontseat_state_   gpb  FRONTSEAT_IDLE         The method  frontseat_providing_data  reports the frontseat   s data state  see State charts   lt must  return true if the frontseat is providing data to the driver reasonably often  where reasonable is defined  by the driver   Here we set the class member variable  frontseat_providing_data_  to true each time we  get a  NAV  message  and then false if we have had no  NAV  messages in the last 10 seconds     bool AbcFrontSeat  frontseat_providing_data   const  i   return frontseat_providing_data_        frontseat_providing_data        The method  send_command_to_frontseat  is called whenever iFrontSeat needs to send a command  to the frontseat  This command typically contains a desired heading  speed  and depth  but could alter   natively contain a special command defined via an extension to the goby  moos  protobuf  Command   Request message     void AbcFrontSeat  send_command_to_frontseat  const gpb  CommandRequest amp  command        if  command has_desired_course         std  stringstream cmd_ss   const goby  moos  protobuf  DesiredCourse amp  desired_course   command   desired_course     cmd_ss  lt  lt   CMD     lt  lt   HEADING    lt  lt  desired_course heading    lt  lt        lt  lt   SPEED    lt  lt  desired_course speed    lt  lt        lt  lt   DEPTH    lt  lt  desired_course depth       write cmd_ss str      last_request_   command      else  1  glog is VERBOSE   amp  amp  glog  lt  lt   Unhandled command     lt
151. emdriver driver_exception h 22  goby acomms modemdriver mm_driver h 22  goby acomms modemdriver udp_driver h 22  goby acomms protobuf abc_driver pb h 22  goby acomms protobuf abc_driver proto 22  goby acomms protobuf amac pb h 22  goby acomms protobuf amac proto 22  goby acomms protobuf amac_config pb h 22  goby acomms protobuf amac_config proto 22  goby acomms protobuf arithmetic_extensions pb h 22  goby acomms protobuf arithmetic_extensions proto 2   goby acomms protobuf ccl pb h 22  goby acomms protobuf ccl proto 2   goby acomms protobuf ccl_extensions pb h 22   22       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen       goby apps acomms goby_modemdriver modemdriver_config proto    14 1 File List 69  goby acomms protobuf dccl pb h 22  goby acomms protobuf dccl proto 2   goby acomms protobuf dccl_option_extensions pb h 22  goby acomms protobuf dccl_option_extensions proto 2   goby acomms protobuf driver_base pb h 22  goby acomms protobuf driver_base proto 2   goby acomms protobuf file_transfer pb h 22  goby acomms protobuf file_transfer proto 22  goby acomms protobuf manipulator pb h 22  goby acomms protobuf manipulator proto 2   goby acomms protobuf mm_driver pb h 22  goby acomms protobuf mm_driver proto 22  goby acomms protobuf modem_message pb h 2   goby acomms protobuf modem_message proto 2   goby acomms protobuf network_ack pb h 22  goby acomms protobuf network_ack proto 22  goby acomms protobuf queue pb h 22  goby acomms protobuf queue proto 2   goby a
152. equired Header header   2     protobuf header proto    import  goby common protobuf option_extensions proto    import  goby acomms protobuf dccl_option_extensions proto         required fields will be filled in for you by ApplicationBase     if you choose not to do so yourself  message Header            result of goby  util  as lt std  string gt  goby_time        e g   2002 01 20 23 59 59 000   required string time   10   dccl field   codec  _time         Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    3 5 Example messages 20        dccl field   in_head true              source   Pe   required string source_platform   11   dccl field   codec  _platform lt   gt modem_id     dccl field   in_head true     optional string source_app   12   dccl field   omit true              destination   ff   enum PublishDestination   PUBLISH_SELF   1  PUBLISH_OTHER   2  PUBLISH_ALL   3      optional PublishDestination dest_type   13  default   PUBLISH_SELF   dccl field   in_head true      optional string dest_platform   14   dccl field   codec  _platform lt      gt modem_id     dcecl  field   in_head true      required if dest_type    other    See Also    dccl3 test cpp    3 5 5 DCCL Test4    dccl4 test proto    import  goby acomms protobuf dccl_option_extensions proto    import  goby test acomms dccl3 header proto      message GobyMessagel         option  dccl msg  id   4   option  dccl msg   max_bytes   32     optional int32 int32_val   1   dccl field  min 0   dccl field   max
153. er_  mac_                 Initiate DCCL  libdccl    fy   goby   acomms   protobuf   DCCLConfig dccl_cfg     dccl_  gt validate lt ChatMessage gt         fi      Initiate queue manager  libqueue         goby   acomms   protobuf   QueueManagerConfig q_manager_cfg    q_manager_cfg set_modem_id  my_id_     goby  acomms    protobuf    QueuedMessageEntryx  q_entry   q_manager_cfg   add_message_entry       q_entry  gt set_protobuf_name   ChatMessage           goby   acomms    protobuf   QueuedMessageEntry  Rolex src_role   q_entry  gt   add_role      src_role  gt set_type  goby   acomms   protobuf   QueuedMessageEntry    SOURCE_ID      src_role  gt set_field  source       goby   acomms    protobuf    QueuedMessageEntry  Rolex dest_role   q_entry  gt   add_role      dest_role  gt set_type    goby   acomms   protobuf    QueuedMessageEntry   DESTINATION_ID     dest_role  gt set_field  destination       goby   acomms   connect   amp q_manager_ signal_receive     amp received_data      goby   acomms    connect   amp q_manager_ signal_ack     amp received_ack               Initiate modem driver  libmodemdriver    Ke   goby   acomms   protobuf  DriverConfig driver_cfg   driver_cfg set_modem_id my_id_    driver_cfg set_serial_port  serial_port         tt     Initiate medium access control  libamac   ee  goby   acomms   protobuf  MACConfig mac_cfg   mac_cfg set_type  goby   acomms   protobuf   MAC_FIXED_DECENTRALIZED     mac_cfg set_modem_id my_id_     goby   acomms    connect   amp mac_   s
154. espace Reference    83         const std  string VERSION_STRING    2 0 5 rc1     const std  string VERSION_DATE    2014 03 25     Logger      common  FlexOstream glog  Access the Goby logger through this object     16 1 1 Detailed Description    The global namespace for the Goby project  All objects related to the Goby Underwater Autonomy Project     16 1 2 Function Documentation    16 1 2 1 template lt typename App  gt  int goby  run   int argc  char x argv        Run a Goby application derived from MinimalApplicationBase  blocks caller until MinimalApplicationBase   _ run                     returns   Parameters  argc   same as int main int argc  charx argv   argv   same as int main int argc  charx argv   Returns    same as int main int argc  charx argv     Definition at line 109 of file application_base h     16 2 goby  acomms Namespace Reference    Objects pertaining to acoustic communications  acomms     Classes    e class MACManager    provides an API to the goby acomms MAC library  MACManager is essentially a std  list lt protobuf  Modem     Transmission gt  plus a timer     class DCCLCodec   provides an API to the Dynamic CCL Codec   e class DCCLException   Exception class for libdccl     class DCCLFieldCodecBase    Provides a base class for defining DCCL field encoders   decoders  Most users will use the DCCL TypedFieldCodec    or its children  e g  DCCL TypedFixedFieldCodec  instead of directly inheriting from this class     class DCCLDefaultldentifierCodec  Provide
155. essfully cast to this type     Definition at line 231 of file message_val cpp   17 42 2 5 goby  transitional  DCCLMessageVal  operator bool     const  allows statements of the form    bool b   DCCLMessageVal   1       Definition at line 278 of file message_val cpp   17 42 2 6 goby  transitional  DCCLMessageVal  operator double     const  allows statements of the form    double d   DCCLMessageVal   3 23       Definition at line 270 of file message_val cpp        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 42 goby  transitional  DCCLMessageVal Class Reference 176       17 42 2 7 goby  transitional  DCCLMessageVal  operator float     const  allows statements of the form    float f   DCCLMessageVal   3 5       Definition at line 309 of file message_val cpp   17 42 2 8 goby  transitional  DCCLMessageVal  operator int     const  allows statements of the form    int i   DCCLMessageVal  2      Definition at line 299 of file message_val cpp   17 42 2 9 goby  transitional  DCCLMessageVal  operator long     const  allows statements of the form    long 1   DCCLMessageVal  5      Definition at line 292 of file message_val cpp    17 42 2 10 goby  transitional  DCCLMessageVal  operator std  string     const  allows statements of the form   std  string s   DCCLMessageVal  3     Definition at line 285 of file message_val cpp    17 42 2 11  goby  transitional  DCCLMessageVal  operator unsigned     const  allows statements of the form   unsigned u   DCCLMessageVal  2     
156. est proto  Definition at line 297 of file decl h   17 4 2 7 template lt typename ProtobufMessage  gt  unsigned goby  acomms  DCCLCodec  id    const  inline     Gives the DCCL id  defined by the custom message option extension   goby msg  dccl id  in the  proto file   This ID  is used on the wire to unique identify incoming message types     Template Parameters       ProtobufMessage   Any Google Protobuf Message generated by protoc  i e  subclass of google  protobuf     Message                 Definition at line 164 of file decl h   17 4 2 8 unsigned goby  acomms  DCCLCodec  id_from_encoded   const std  string  amp  bytes      Get the DCCL ID of an unknown encoded DCCL message     You can use this method along with id   to handle multiple types of known  static  incoming DCCL me   code    unsigned dccl_id   codec  gt id_from_encoded bytes   if dccl_id    codec  gt id lt MyProtobufType1  gt       MyProtobuf   Type1 msg_out1  codec  gt decode bytes   amp msg_ out     else if dccl_id    codec  gt id lt MyProtobufType2 gt       My   ProtobufType2 msg_out2  codec  gt decode bytes   amp msg_out2        Parameters       bytes   encoded message to get the DCCL ID of                   Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 4 goby  acomms  DCCLCodec Class Reference 103       Returns    DCCL ID    See Also    test acomms dccl8 test cpp and test acomms dccl8 test proto    Definition at line 197    of file dccl cpp     17 4 2 9 template lt typename ProtobufMessa
157. eueManager  159    readline   goby  util  LineBasedInterface  179  require   goby  acomms  DCCLFieldCodecBase  125  run   goby  82    SerialClient   goby  util  SerialClient  180  serialize_for_moos   moos_protobuf_helpers h  185  set   goby  transitional  DCCLMessageVal  175  set_id_codec   goby  acomms  DCCLCodec  102  set_value   goby  acomms  FromProtoCppTypeBase  145  signal_ack   goby  acomms  QueueManager  160  signal_data_on_demand   goby  acomms  QueueManager  160  signal_data_request   goby  acomms  ModemDriverBase  154  signal_expire   goby  acomms  QueueManager  160  signal_initiate_transmission   goby  acomms  MACManager  148  signal_modify_transmission   goby  acomms  ModemDriverBase  154  signal_queue_size_change   goby  acomms  QueueManager  160  signal_raw_incoming   goby  acomms  ModemDriverBase  154  signal_raw_outgoing   goby  acomms  ModemDriverBase  154  signal_receive   goby  acomms  ModemDriverBase  154   goby  acomms  QueueManager  161  signal_transmit_result   goby  acomms  ModemDriverBase  155  size   goby  acomms  DCCLCodec  102   goby  acomms  DCCLDefaultldentifierCodec  109   goby  acomms  DCCLRepeatedTypedFieldCodec    133  134   goby  acomms  DCCL TypedFieldCodec  139  size_repeated   goby  acomms  DCCLCodec  103  startup    goby  acomms  ABCDriver  96  goby  acomms  MACManager  148  goby  acomms  MMDriver  150  goby  acomms  ModemDriverBase  153  goby  moos  BluefinCommsDriver  168  goby  moos  UFldDriver  170   subscribe  goby  pb  Applicatio
158. expire   All other signals are emitted in response to a  driver level signal  and thus are called during a call to goby  acomms  ModemDriverBase  do_work   if using the  Goby modemdriver      See queue_simple cpp for a basic complete example     4 4 Example messages    This section provides a listing of queue example Protobuf messages used in the code examples and unit tests     4 4 1 Minimal functional DCCL   Queue message  simple proto    import  goby acomms protobuf dccl_option_extensions proto    message Simple         see http   gobysoft org wiki DcclIdTable   option  dccl msg  id   124        if  for example  we want to use on the WHOI Micro Modem rate 0  option  dccl msg   max_bytes   32     required string telegram   1   dccl field   max_length 30      4 4 2 Testi  queue1 test proto    import  goby acomms protobuf dccl_option_extensions proto      message TestMsg         o    ption  dccl msg  id   2   ption  dccl msg   max_bytes   32     o           test default enc dec   ptional double double_default_optional   1   dccl field   min  100    dcecl  field   max 126    decl field   precision 2    dccl  field   in_head true     optional float float_default_optional   2   dccl field   min  20     dccl field   max 150     dccl field   precision 3      o          Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    4 4 Example messages 29       See Also    queue1 test cpp    4 4 3 Test2  Test3  Test4  dccl3 test proto    import  goby common protobuf option_extensi
159. f bits on the wire  137    goby  acomms  DCCLTypedFixedFieldCodec lt  WireType  FieldType  gt   Base class for static typed field encoders decoders that use a fixed number of bits on the wire  regardless of the value of the field  Use DCCLTypedFieldCodec if your encoder is variable  length  See DCCLTypedFieldCodec for an explanation of the template parameters  Field Type  and WireType  140    goby  acomms  DCCLTypeHelper  Provides FromProtoTypeBase and FromProtoCppTypeBase type identification helper classes  for various representations of the underlying field 141    goby  acomms  FromProtoCppType lt  google  protobuf  FieldDescriptor  CPPTYPE_MESSAGE  gt   Implements FromProtoCppTypeBase for CPPTYPE_MESSAGE using the dynamic google     protobuf  Message as the underlying class 142    goby  acomms  FromProtoCppTypeBase  Provides various representations of a google  protobuf  FieldDescriptor  CppType enumera   tion  and ways to access the google   protobuf  Reflection object for a given type 143    goby  acomms  FromProtoCustomMessage lt  CustomMessage  gt   Implements FromProtoCppTypeBase for CPPTYPE_MESSAGE using a specific statically gen   erated Protobuf class 145       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    13 1 Class List 66       goby  acomms  FromProtoTypeBase  Provides various representations of a google  protobuf  FieldDescriptor  Type enumeration   Implementations are provided for all enumerations 146    goby  acomms  MACManager  API to the g
160. f the  value of the field  Use DCCL TypedFieldCodec if your encoder is variable length  See DCCL TypedFieldCodec for an  explanation of the template parameters  FieldType and Wire Type     e class DCCLFieldCodecManager     class DCCLFieldCodecSelector    if Wire Type    FieldType  we don t have to add any more virtual methods for converting between them   e class DCCLFieldCodecSelector lt  WireType  FieldType  typename boost  disable_if lt  boost  is_same lt  Wire   Type  FieldType  gt   gt   type  gt   If WireType    FieldType  adds some more pure virtual methods to handle the type conversions  pre_encode   and    post_decode     If WireType    FieldType this class is not inherited and this pure virtual methods do not exist  and  thus can be omitted in the child class        class DCCLTypedFieldCodec  Base class for static typed  no boost  any  field encoders decoders  Most user defined variable length codecs will    start with this class  Use DCCL TypedFixedFieldCodec if your codec is fixed length  always uses the same number of  bits on the wire       class DCCLRepeatedTypedFieldCodec   Base class for  repeated   multiple value  static typed  no boost  any  field encoders decoders  Most user defined  variable length codecs will start with this class  Use DCCL TypedFixedFieldCodec if your codec is fixed length  always  uses the same number of bits on the wire   Use DCCL TypedFieldCodec if your fields are always singular   optional   or  required    Singular fields are defau
161. figure with a few slots   fy   goby  acomms   protobuf   MACConfig cfg    cfg set_modem_id 1     cfg set_type  goby   acomms    protobuf   MAC_FIXED_DECENTRALIZED    goby   acomms    protobuf   ModemTransmissionx  slot   cfg add_slot      slot  gt set_src  1     slot  gt set_rate 0     slot  gt set_type  goby   acomms   protobuf   ModemTransmission   DATA    slot  gt set_slot_seconds  5              3  Set up the callback  fy       give a callback to use for actually initiating the transmission  this  would be bound to goby  acomms   ModemDriverBase   initiate_transmission if using  libmodemdriver    goby   acomms  connect   amp mac   signal_initiate_transmission   amp init_transmission       fil     4  Let it run for a bit alone in the world  th  mac startup  cfg    for unsigned i   1  i  lt  150    i      mac do_work      usleep  100000                 5  Add some slots  modem ids 2  amp  3  and LBL ping from 1   remember   MACManager is a std  list lt goby  acomms   protobuf    ModemTransmission gt  at heart           one way we can do this   goby   acomms    protobuf  ModemTransmission new_slot   new_slot set_src 2     new_slot set_rate 0    new_slot set_type  goby   acomms    protobuf  ModemTransmission   DATA     new_slot set_slot_seconds  5      mac push_back  new_slot          another way  mac resize mac size   1    mac back     CopyFrom mac front      mac back     set_src 3      mac resize mac size   1    mac back     CopyFrom mac front       mac back     set_type   
162. for this class was generated from the following file       goby acomms dccl dccl_field_codec_typed h    17 17 goby  acomms  DCCLRepeatedTypedFieldCodec lt  WireType  FieldType  gt  Class Template Refer   ence    Base class for  repeated   multiple value  static typed  no boost  any  field encoders decoders  Most user defined  variable length codecs will start with this class  Use DCCLTypedFixedFieldCodec if your codec is fixed length   always uses the same number of bits on the wire   Use DCCLTypedFieldCodec if your fields are always singular    optional  or  required    Singular fields are default implemented in this codec by calls to the equivalent repeated  function with an empty or single valued vector      include  lt goby acomms dccl dccl_field_codec_typed h gt           Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 17 goby  acomms  DCCLRepeatedTypedFieldCodec lt  WireType  FieldType  gt  Class Template  Reference 132       Inheritance diagram for goby  acomms  DCCLRepeatedTypedFieldCodec lt  Wire Type  Field Type  gt      goby  acomms  DCCLFieldCodecBase    goby  acomms  DCCLFieldCodec  Selector lt  Wire Type  FieldType  gt     goby  acomms  DCCLlypedField  Codec lt  WireType  Field Type  gt     goby  acomms  DCCLRepeated  TypedFieldCodec lt  WireType   FieldType  gt        Public Types    e typedef WireType wire_type    typedef FieldType field_type    Public Member Functions    e virtual Bitset encode_repeated  const std  vector lt  WireType  gt  
163. for this class was generated from the following files       goby acomms dccl dccl_field_codec_default h    src acomms dccl dccl_field_codec_default cpp    17 9 goby  acomms  DCCLDefaultMessageCodec Class Reference    Provides the default codec for encoding a base Google Protobuf message or an embedded message by calling the  appropriate field codecs for every field      include  lt goby acomms dccl dccl_field_codec_default_message h gt        Inheritance diagram for goby  acomms  DCCLDefaultMessageCodec          goby  acomms  DCCLFieldCodecBase    goby  acomms  DCCLDefault  MessageCodec    Additional Inherited Members  17 9 1 Detailed Description    Provides the default codec for encoding a base Google Protobuf message or an embedded message by calling the  appropriate field codecs for every field     Definition at line 38 of file dccl_field_codec_default_message h        The documentation for this class was generated from the following files       goby acomms dccl dccl_field_codec_default_message h    src acomms dccl dccl_field_codec_default_message cpp             Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 10 goby  acomms  DCCLDefaultNumericFieldCodec lt  WireType  FieldType  gt  Class Template  Reference 112       17 10 goby  acomms  DCCLDefaultNumericFieldCodec lt  WireType  FieldType  gt  Class Template Refer   ence    Provides a basic bounded arbitrary length numeric  double  float  uint82  uint64  int32  int64  encoder      include  lt goby acom
164. frastructure  initially uses SonarDyne as un   derlying hardware  167    goby  moos  UFldDriver  Simulator driver to the uFldNodeComms MOOS module  http   oceanai mit    edu moos ivp pmwiki pmwiki php n Modules UF1dNodeComms 168    goby  pb  Application  Base class provided for users to generate applications that participate in the Goby publish    subscribe architecture 170    goby  transitional  DCCLMessageVal  Defines a DCCL value 172       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    14 File Index 67       goby  transitional  DCCLTransitionalCodec  API to the Transitional Dynamic CCL Codec  looks like DCCLv1  but calls DCCLv2   Warning   this class is for legacy support only  new applications should use DCCLCodec directly 176    goby  util  LineBasedinterface  Basic interface class for all the derived serial  and networking mimics  line based nodes  serial   tcp  udp  etc   178    goby  util  SerialClient  Basic client for line by line text based communications over a 8N1 tty  such as an RS 232 serial  link  without flow control 179    goby  util  TCPClient  Basic TCP client for line by line text based communications to a remote TCP server 180    goby  util  TCPServer  Basic TCP server for line by line text based communications to a one or more remote TCP  clients 181    Group  Defines a group of messages to be sent to the Goby logger  For Verbosity    verbose streams   all entries appear interleaved  but each group is offset with a different color  For 
165. g one of the classes inheriting ModemDriverBase  this method should be bound and passed to ModemDriver   Base  signal_receive     Parameters  message   The received ModemMessage                    Examples     acomms queue queue_simple queue_simple cpp     Definition at line 529 of file queue_manager cpp     17 31 2 5 template lt typename ProtobufMessage  gt  void goby  acomms  QueueManager  info   std  ostream   os   const   inline     Writes a human readable summary  including DCCLCodec info  of the queue for the provided DCCL type to the  stream provided     Template Parameters       ProtobufMessage   Any Google Protobuf Message generated by protoc  i e  subclass of google  protobuf     Message                 Parameters       os   Pointer to a stream to write this information                Definition at line 149 of file queue_manager h   17 31 2 6 void goby  acomms  QueueManager  info_all   std  ostream   os   const    Writes a human readable summary  including DCCLCodec info  of all loaded queues     Parameters       os   Pointer to a stream to write this information                Definition at line 176 of file queue_manager cpp        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 31 goby  acomms  QueueManager Class Reference 161       17 31 2 7 void goby  acomms  QueueManager  push_message   const google  protobuf  Message     new_message      Push a message  and add the queue if it does not exist     Parameters       new_message   DCCL message to
166. ge  gt  void goby  acomms  DCCLCodec  info   std  ostream   os   const     inline     Writes a human readable summary  including field sizes  of the provided DCCL type to the stream provided     Template Parameters          ProtobufMessage   Any Google Protobuf Message generated by protoc  i e  subclass of google  protobuf       Message           Parameters       OS          Pointer to a stream to write this information          Definition at line 152 of file dccl h     17 4 2 10 void goby  acomms  DCCLCodec  info_all   std  ostream   os   const    Writes a human readable summary  including field sizes  of all the loaded  validated  DCCL types     Parameters       OS          Pointer to a stream to write this information          Definition at line 533 of file decl cpp     17 4 2 11 void goby  acomms  DCCLCodec  load_shared_library_codecs   void x di_handle      Load any codecs present in the given shared library handle     Codecs must be loaded within the shared library using a C function  declared extern  C     called  goby_dccl_load   with the signature void goby_dccl_load goby  acomms  DCCLCodec codec     Definition at line 492 of file dccl cpp     17 4 2 12 void goby  acomms  DCCLCodec  set_id_codec   const std  string  amp  identifier   inline     Sets the DCCL id codec currently in use     The DCCL ID codec will be set and used for all relevant calls to encode  decode  etc  until this method is called  again with a different identifier or reset_id_codec is called     P
167. hares an underlying C   type  e g  Protobuf  types bytes and string     Template Parameters       Codec   A child of DCCLFieldCodecBase             type   The google  protobuf  FieldDescriptor  Type enumeration that this codec works on           Parameters       name   Name to use for this codec  Corresponds to  goby field  dccl codec  name  in  proto file                    Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 15 goby  acomms  DCCLFieldCodecSelector lt  WireType  FieldType  Enable  gt  Class Template  Reference 129       17 14 2 4 static boost  shared_ptr lt  DCCLFieldCodecBase gt  goby  acomms  DCCLFieldCodecManager  find   const  google  protobuf  Descriptor x desc  std  string name        inline    static     Find the codec for a given base  or embedded  message     Parameters       desc   Message descriptor to find codec for       name   Codec name  used for embedded messages to prefer the codec listed as a field option   Omit  for finding the codec of a base message  one that is not embedded                  Definition at line 94 of file dccl_field_codec_manager h     The documentation for this class was generated from the following files       goby acomms dccl dccl_field_codec_manager h    src acomms dccl dccl_field_codec_manager cpp    17 15 goby  acomms  DCCLFieldCodecSelector lt  WireType  FieldType  Enable  gt  Class Template Refer   ence    if WireType    FieldType  we don t have to add any more virtual methods for converting between 
168. he frontseat never runs missions without backseat  control  this state may not be implemented       Data state  not diagrammed above         frontseat_providing_data    true  The frontseat is providing all required data  What is required is deter   mined by the specific driver  but at a minimum is the navigation solution         frontseat_providing_data    false  The frontseat is not providing all required data     The state transitions for the iFrontSeat interface states are  using the names as defined in the enumerations in  moos protobuf frontseat proto        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    8 1   FrontSeat    56          From    To    Action       Start    INTERFACE_STANDBY    Configuration Read       INTERFACE_STANDBY    INTERFACE_LISTEN    frontseat_providing_data    true       INTERFACE_LISTEN    INTERFACE_COMMAND    FRONTSEAT_ACCEPTING_CO   MMANDS  amp  amp   HELM_DRIVE       INTERFACE_COMMAND    INTERFACE_LISTEN     FRONTSEAT_IN_CONTROL     FRONTSEAT_IDLE   amp  amp   HELM_DRIVE       INTERFACE_COMMAND    INTERFACE_HELM_ERROR    HELM_NOT_RUNNING     HELM_PARK       INTERFACE_LISTEN     INTERFACE_COMMAND    INTERFACE_HELM_ERROR    HELM_PARK    if  nhelm_enabled   HELM_NOT_RUNNING  after  timeout        INTERFACE_LISTEN     INTERFACE_COMMAND    INTERFACE_FS_ERROR    FRONTSEAT_NOT_CONNECTE   D    frontseat_providing_data     false       INTERFACE_STANDBY    INTERFACE_FS_ERROR    FRONTSEAT_NOT_CONNECTE   D  after  timeout        INTERFACE_
169. hen a message is sent to goby  acomms  BROADCAST_ID  0   it should be broadcast if the modem sup   ports such functionality  Otherwise  the driver should throw an goby  acomms  ModemDriverException indi   cating that it does not support broadcast allowing the user to reconfigure their MAC   addressing scheme     6 4 WHOI Micro Modem Driver  MMDriver  6 4 1 Supported Functionality    The goby  acomms  MMDriver extends the goby  acomms  ModemDriverBase for the WHO  Micro Modem acoustic  modem  It is tested to work with revision 0 94 0 00 of the Micro Modem firmware  but is known to work with older  firmware  at least 0 92 0 85   It is likely to work properly with newer firmware  and any problems while using newer  Micro Modem firmware should be filed as abug in Goby  The following features of the WHOI Micro Modem are  implemented  which comprise the majority of the Micro Modem functionality       FSK  rate 0  data transmission    PSK  rates 1 2 3 4 5  data transmission       Narrowband transponder LBL ping    REMUS transponder LBL ping    User mini packet 13 bit data transmission    e Two way ping    See the UML diagrams for a graphical diagram of using Goby for each of these features     6 4 2 Micro Modem NMEA to Goby ModemTransmission mapping    Mapping between modem_message proto and mm_driver proto messages and NMEA fields  see http      acomms  whoi edu documents uModem 20Software 20Interface 20Guide pdf for N   MEA fields of the WHOI Micro Modem      Modem to Control Comp
170. i         amp     Bs    received_data       Push a message to a queue       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    19 6 acomms queue queue_simple queue_simple cpp    196            te  E  pif       let s make a message to store in the queue  Simple msg    msg set_telegram  hello all      q_manager push_message  msg      std  cout  lt  lt   1  pushing message to queue 1     lt  lt  msg  lt  lt  std  endl        see what our QueueManager contains    std  cout  lt  lt   2     lt  lt  q_manager  lt  lt  std  endl    ee      3  Create a loopback to simulate the Link Layer  libmodemdriver  amp  modem  firmware          std  cout  lt  lt   3  executing loopback  simulating sending a message to  ourselves over the modem link    lt  lt  std  endl        pretend the modem is requesting data of up to 32 bytes  goby  acomms   protobuf    ModemTransmission request_msg     request_msg set_max_frame_bytes  32    request_msg set_max_num_frames  1         q_manager handle_modem_data_request   amp request_msg       std  cout  lt  lt   4  requesting data  got     lt  lt  request_msg  lt  lt  std  endl   std  cout  lt  lt    tdata as hex     lt  lt  goby  util  hex_encode  request_msg  frame    0    lt  lt  std  endl             4  Pass the received message to the QueueManager  same as outgoing  message          q_manager handle_modem_receive  request_msg       return 0     5  Do something with the received message    void received_data const google   protobuf  Message a
171. ieldCodecBase  field_size   unsigned x bit size  const boost  any  amp  field_value  const  google  protobuf  FieldDescriptor x field      Calculate the size of a field     Parameters       bit_size   Location to add calculated bit size to  Be sure to zero bit_size if you want only the size of  this field   field_value   Value calculate size of  FieldType    field   Protobuf descriptor to the field  Set to O for base message                       Definition at line 102 of file dccl_field_codec cpp     17 13 2 26 void goby  acomms  DCCLFieldCodecBase  field_size_repeated   unsigned   bit_size  const std  vector lt   boost  any  gt      wire_values  const google  protobuf  FieldDescriptor x field      Calculate the size of a repeated field     Parameters       bit_size   Location to add calculated bit size to  Be sure to zero bit_size if you want only the size of  this field                    Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 13 goby  acomms  DCCLFieldCodecBase Class Reference 125          field_values   Values to calculate size of  Field Type   field   Protobuf descriptor to the field  Set to O for base message                    Definition at line 115 of file dccl_field_codec cpp   17 13 2 27 google  protobuf  FieldDescriptor  Type goby  acomms  DCCLFieldCodecBase  field_type   const  inline   the type exposed to the user in the original and decoded Protobuf messages    Returns    the Google Protobuf message type  See http    code google com 
172. ieldType  gt    goby  acomms  DCCLDefaultNumericFieldCodec lt  uint32  gt   goby  acomms  DCCLDefaultNumericFieldCodec lt   int32  const google  protobuf  EnumValueDescriptor x  gt   goby  acomms  DCCLDefaultNumericFieldCodec lt  int32   TimeType  gt   and goby  acomms  DCCLDefaultldentifierCodec     17 20 2 2 template lt typename WireType  typename FieldType   WireType gt  virtual Bitset goby    racomms  DCCLTypedFieldCodec lt  WireType  FieldType  gt   encode     pure  virtual     Encode an empty field     Returns    Bits represented the encoded field     Implemented in goby  acomms  DCCLRepeatedTypedFieldCodec lt  WireType  FieldType  gt   goby  acomms  D   CCLRepeatedTypedFieldCodec lt  Model  value_type  FieldType  gt   goby  acomms  DCCLRepeatedTypedField   Codec lt  Model  value_type  const google  protobuf  EnumValueDescriptor x  gt   goby  acomms  DCCLRepeated   TypedFieldCodec lt  goby  int32  gt   goby  acomms  DCCLDefaultNumericFieldCodec lt  WireType  FieldType  gt    goby  acomms  DCCLDefaultNumericFieldCodec lt  uint32  gt   goby  acomms  DCCLDefaultNumericFieldCodec lt   int32  const google  protobuf  EnumValueDescriptor x  gt   goby  acomms  DCCLDefaultNumericFieldCodec lt  int32   TimeType  gt   and goby  acomms  DCCLDefaultidentifierCodec        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 20 goby  acomms  DCCLTypedFieldCodec lt  WireType  FieldType  gt  Class Template Reference 140       17 20 2 3 template lt typename WireType  typena
173. ignal_initiate_transmission   amp monitor_mac          goby   acomms    protobuf   ModemTransmission my_slot   my_slot set_src my_id_     my_slot set_dest  buddy_id_     my_slot set_rate 0     my_slot set_slot_seconds  12     my_slot set_type  goby   acomms    protobuf  ModemTransmission   DATA          goby   acomms   protobuf  ModemTransmission buddy_slot   buddy_slot set_src  buddy_id_      buddy_slot set_dest  my_id_     buddy_slot set_rate 0     buddy_slot set_slot_seconds  12    buddy_slot set_type  goby   acomms   protobuf    ModemTransmission  DATA         if my_id_  lt  buddy_id_   1       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    19 2 acomms chat chat cpp    190       mac_cfg add_slot      gt CopyFrom  my_slot    mac_cfg add_slot      gt CopyFrom  buddy_slot      else    mac_cfg add_slot      gt CopyFrom buddy_slot     mac_cfg add_slot      gt CopyFrom my_slot                  Start up everything   El   try      dccl_  gt set_cfg decl_cfg     q_manager_ set_cfg q_manager_cfg     mac_ startup  mac_cfg    mm_driver_ startup  driver_cfg              catch std  runtime_error   amp  e        std  cerr  lt  lt   exception at startup     lt  lt  e what    lt  lt  std  endl   return startup_failure       curses_ set_modem_id my_id_     curses_ startup          ve      Loop until terminated  CTRL C        for   7        std  string line   curses_ run_input  line      if  line empty          ChatMessage message_out   message_out set_telegram  line       
174. ile dccl_transitional cpp     17 43 3 Member Function Documentation    17 43 3 1  std  set lt unsigned gt  goby  transitional  DCCLTransitionalCodec  all_message_ids      Returns    set of all message ids loaded    17 43 3 2  std  set lt std  string gt  goby  transitional  DCCLTransitionalCodec  all message_names  _    Returns    set of all message names loaded    17 43 3 3 template lt typename Key  gt  unsigned goby  transitional  DCCLTransitionalCodec  get_repeat   const Key  amp  k     inline     Returns    repeat value  number of copies of the message per encode     Definition at line 134 of file dccl_transitional h     17 43 3 4 std  string goby  transitional  DCCLTransitionalCodec  id2name   unsigned id    inline     Parameters       id   message id                Returns  name of message  Definition at line 148 of file dccl_transitional h   17 43 3 5 unsigned goby  transitional  DCCLTransitionalCodec  message_count     inline     how many message are loaded     Returns    number of messages loaded    Definition at line 130 of file dccl_transitional h     17 43 3 6 template lt typename Key  gt  std  map lt std  string  std  string gt  goby  transitional  DCCLTransitionalCodec  message   _var_names   const Key  amp  k   const  inline     Returns    map of names to DCCL types needed to encode a given message    Definition at line 143 of file dccl_transitional h        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 44 goby  util  LineBasedinterface Clas
175. in 0    dccl field   max 0x0F    dcecl field   in_head true     required uint32 user   3   dccl field   min 0      dccl field   max 0x0F    dccl field   in_head true      message MiniAbort       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    4 goby acomms  queue  Message Priority Queuing  23       option  dccl msg  id   1000003   option  dccl msg  max_bytes   2     required uint32 user   1   dccl field   min 0    dccl field   max 0x03FF    dcecl field   in_head true         message NormalDCCL     option  dccl msg  id   1   option  dccl msg  max_bytes   32     dccl field   min 0   dccl field   max OxFFFF    dccl field   min 0   dccl field   max 0xFFFF      required int32 a   1            required int32 b   2          See Also    dccl9 test cpp    4 goby acomms  queue  Message Priority Queuing     Table of Contents for queue     e Understanding dynamic priority queuing    Queuing Protobuf Options  e Interacting with the QueueManager        Instantiate and configure      Signals and  application layer  slots        Operation    Return to goby acomms  An overview of Acoustic Communications Library     4 1 Understanding dynamic priority queuing    Each queue has a base value   Vpase  and a time to live   ttl  that create the priority   P t   at any given time   t       t   tast      P t    Voase itl    where tast is the time of the last send from this queue     This means for every queue  the user has control over two variables   Vpase and ttl   Vase is intended t
176. in mm_driver proto for  the WHOI Micro Modem  These extensions provide access to additional features of the WHOI Micro Modem  such  as LBL ranging  two way pings  and comprehensive receive statistics      By making use of the Protobuf extensions in this way  Goby can both support unique features of a given modem  while at that same time remaining general and agnostic to which modem is used when the features are shared   primarily data transfer      6 3 Writing a new driver    All of goby acomms is designed to be agnostic of which physical modem is used  Different modems can be sup   ported by subclassing goby  acomms  ModemDriverBase  You should check that a driver for your modem does not  yet exist before attempting to create your own     These are the requirements of the acoustic modem       it communicates using a line based text duplex connection using either serial or TCP  either client or server    NMEA0183 and AT  Hayes  protocols fulfill this requirement  for example        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    6 3 Writing a new driver 34       e itis capable of sending and verifying the accuracy  using a cyclic redundancy check or similar error checking   of fixed size datagrams  note that modems capable of variable sized datagrams also fit into this category      Optionally  it can also support      Acoustic acknowledgment of proper message receipt     Ranging to another acoustic modem or LBL beacons using time of flight measurements       
177. ing and goby  acomms  DCCL  dccl_simple cpp  decoding Codec two_message cpp  chat cpp  Session Not used  sessions are  established passively   Transport queue  Priority based goby  acomms  Queue  queue_simple cpp  message queuing Manager chat cpp  Network Does not yet exist  All  transmissions are  considered single hop   currently  Addressing  routing over multiple  hops is an open and  pressing research  problem   Data Link modemdriver  Modem classes derived from driver_simple cpp  driver goby  acomms  Modem  chat cpp  DriverBase  e g   goby  acomms  MM   Driver  amac  Medium Access goby  acomms  MAC  amac_simple cpp  Control  MAC  Manager chat cpp  Physical Not part of Goby Modem Firmware  e g   WHOI Micro Modem  Firmware  NMEA 0183  on RS 232   see  Interface Guide   2 1 1 Acoustic Communications are slow       Do not take the previous analogy too literally  some things we are doing here for acoustic communications  here   after  acomms  are unconventional from the approach of networking on electromagnetic carriers  hereafter  EM  networking   The difference is a vast spread in the expected throughput of a standard internet hardware carrier and  acoustic communications  For example  an optical fiber can put through greater than 10 Tbps over greater than 100  km  whereas the WHOI acoustic Micro Modem can  at best  do 5000 bps over several km  This is a difference of  thirteen orders of magnitude for the bit rate distance product     2 1 2 Efficiency to make messages small 
178. int64  gt  140  goby  acomms  DCCLFieldCodecSelector lt  WireType  FieldType  gt  128  goby  acomms  DCCLTypedFieldCodec lt  WireType  FieldType  gt  137  goby  acomms  DCCLRepeatedTypedFieldCodec lt  WireType  FieldType  gt  130       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    12 1 Class Hierarchy    63       goby      acomms  DCCLTypedFixedFieldCodec lt  WireType  Field Type  gt     goby  acomms  DCCLDefaultNumericFieldCodec lt  WireType  Field Type  gt     goby  acomms  DCCLDefaultMessageCodec    goby  acomms  DCCLFieldCodecSelector lt  WireType  Field Type  Enable  gt     goby  acomms  DCCLFieldCodecSelector lt  WireType  FieldType  typename boost  disable_if lt   boost  is_same lt  WireType  FieldType  gt   gt   type  gt     goby  acomms    goby  acomms    goby  acomms      goby  acomms  FromProtoCppType lt  google  protobuf  FieldDescriptor  CPPTYPE_MESSAG     E gt     DCCLFieldCodecManager  DCCLTypeHelper    FromProtoCppTypeBase    goby  acomms  FromProtoCustomMessage lt  CustomMessage  gt     goby  acomms    goby  acomms      goby  acomms      FromProtoTypeBase  MACManager    ModemDriverBase    goby  acomms  ABCDriver    goby  acomms  MMDriver    goby  moos     goby  moos     goby  acomms   goby  common   goby  common   goby  common   goby  common     goby  common     goby  Exception     BluefinCommsDriver   UFldDriver   QueueManager   Colors    FlexNCurses   FlexOstream   FlexOStreamBuf     TermColor    goby  acomms  DCCLException    goby  acomms
179. ion       ack    bool    true    Whether an acoustic  acknowledgment should  be requested for  messages sent from this  queue        blackout_time    uint32    Minimum number of  seconds allowed  between sending  messages from this  queue        max_queue       uint32             Allowed size of the  queue before overflow  If  newest_first is true  the  oldest elements are  removed upon overflow   else the newest elements  are  the queue blocks   0  is a special value  signifying infinity  no  maximum            Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    4 2 Queuing Protobuf Options    25          newest first    bool    true     true FILO  false FIFO   whether to send newest  messages in the queue  first  FILO  or not  FIFO         ttl    int32    1800    the time in seconds a  message lives after its  creation before being  discarded  This  time to live also factors  into the growth in priority  of a queue  see  value_base for the main  discussion on this  O is a  special value indicating  infinite life  i e  ttl   O is  effectively the same as ttl      00        value_base          double          base priority value for  this message queue   priorities are calculated  on a request for data by  the modem  to send a  message   The queue  with the highest priority   and isn t in blackout  is  chosen  The actual  priority   P  is calculated  by P t    Voase    as   where Vpase is the value  set here     is the current  time  in seconds   tjast iS  the tim
180. ion    178 21 goby  uint32 goby  acomms  DCCLDefaultldentifierCodec  decode   Bitset x bits    protected     virtual     Decode a field  If the field is empty  i e  was encoded using the zero argument encode     throw DCCLNullValue   Exception to indicate this     Parameters       bits   Bits to use for decoding                 Returns    the decoded value   Implements goby  acomms  DCCLTypedFieldCodec lt  uint32  gt    Definition at line 63 of file dccl_field_codec_default cpp   17 8 2 2 goby  acomms  Bitset goby  acomms  DCCLDefaultldentifierCodec  encode     protected    virtual     Encode an empty field        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 8 goby  acomms  DCCLDefaultidentifierCodec Class Reference 110       Returns    Bits represented the encoded field   Implements goby  acomms  DCCLTypedFieldCodec lt  uint32  gt    Definition at line 40 of file dccl_field_codec_default cpp     17 8 2 3 goby  acomms  Bitset goby  acomms  DCCLDefaultldentifierCodec  encode   const uint32 4 wire_value     protected    virtual     Encode a non empty field     Parameters       wire_value   Value to encode                 Returns    Bits represented the encoded field   Implements goby  acomms  DCCLTypedFieldCodec lt  uint32  gt    Definition at line 45 of file dccl_field_codec_default cpp   17 8 2 4 unsigned goby  acomms  DCCLDefaultidentifierCodec  max_size     protected    virtual   Calculate maximum size of the field in bits   Returns  Maximum size of th
181. ional  hex_string2binary_string   const std  string  amp  bs    inline     converts a boost  dynamic_bitset  similar to std  bitset but without compile time size requirements  into a hex string  converts a hex string   8AAA   into a binary string   1000101010101010    only works on whole byte string  even number of nibbles     Definition at line 244 of file dccl_constants h   16 6 4 3 template lt typename T  gt  bool goby  transitional  hex_string2number   const std  string     s  T  amp  t      converts a hex string   8AAA   into a dynamic_bitset    attempts to convert a hex string into a numerical representation  of type T     Returns  true if conversion succeeds  false otherwise  Definition at line 275 of file dccl_constants h     16 6 4 4 template lt typename T  gt  bool goby  transitional  number2hex_string   std  string     s  const T  amp  t  unsigned int width   2      converts a decimal number of type T into a hex string                         Parameters  s   string reference to store result in  t   decimal number to convert  wiath   desired width  in characters  of return string  Width should be twice the number of bytes  Returns    true if successful  false otherwise    Definition at line 290 of file dccl_constants h   16 6 4 5 template lt typename T  gt  std  string goby  transitional  number2hex_string   const T  amp  t  unsigned int width  2      converts a decimal number of type T into a hex string assuming success    Parameters            decimal number to co
182. ireType 4 wire_value    pure  virtual     Calculate the size  in bits  of a non empty field     Parameters       wire_value   Value to use when calculating the size of the field  If calculating the size requires encoding  the field completely  cache the encoded value for a likely future call to encode   for the same  wire_value                    Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 21 goby  acomms  DCCLTypedFixedFieldCodec lt  WireType  FieldType  gt  Class Template Referenc  41       Returns    the size  in bits  of the field     Implemented in goby  acomms  DCCLRepeatedTypedFieldCodec lt  WireType  FieldType  gt   goby  acomms  DCCL   RepeatedTypedFieldCodec lt  Model  value_type  FieldType  gt   goby  acomms  DCCLRepeatedTypedFieldCodec lt   Model  value_type  const google  protobuf  EnumValueDescriptor x  gt   goby  acomms  DCCLRepeatedTypedField   Codec lt  goby  int32  gt   and goby  acomms  DCCLDefaultldentifierCodec     The documentation for this class was generated from the following file       goby acomms dccl dccl_field_codec_typed h    17 21 goby  acomms  DCCLTypedFixedFieldCodec lt  WireType  FieldType  gt  Class Template Reference    Base class for static typed field encoders decoders that use a fixed number of bits on the wire regardless of the  value of the field  Use DCCLTypedFieldCodec if your encoder is variable length  See DCCLTypedFieldCodec for  an explanation of the template parameters  FieldType and WireType          incl
183. is field  in bits    Implements goby  acomms  DCCLFieldCodecBase   Definition at line 103 of file dccl_field_codec_default cpp   17 8 2 5 unsigned goby  acomms  DCCLDefaultidentifierCodec  min_size     protected    virtual   Calculate minimum size of the field in bits   Returns  Minimum size of this field  in bits    Implements goby  acomms  DCCLFieldCodecBase   Definition at line 108 of file dccl_field_codec_default cpp   17 8 2 6 unsigned goby  acomms  DCCLDefaultldentifierCodec  size     protected    virtual   Calculate the size  in bits  of an empty field   Returns  the size  in bits  of the empty field   Implements goby  acomms  DCCLTypedFieldCodec lt  uint32  gt    Definition at line 82 of file dccl_field_codec_default cpp     17 8 2 7 unsigned goby  acomms  DCCLDefaultidentifierCodec  size   const uint32  amp  wire_value    protected     virtual     Calculate the size  in bits  of a non empty field        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 9 goby  acomms  DCCLDefaultMessageCodec Class Reference 111       Parameters       wire_value   Value to use when calculating the size of the field  If calculating the size requires encoding  the field completely  cache the encoded value for a likely future call to encode   for the same  wire_value                 Returns    the size  in bits  of the field     Implements goby  acomms  DCCLTypedFieldCodec lt  uint32  gt    Definition at line 87 of file dccl_field_codec_default cpp     The documentation 
184. is good    Extremely low throughput means that essentially every efficiency in bit packing messages to the smallest size  possible is desirable  The traditional approach of layering  e g  TCP IP  creates inefficiencies as each layer wraps  the message of the higher layer with its own header  See RFC3439 section 3   Layering Considered Harmful    for an interesting discussion of this issue http    tools ietf org html rfc3439 page    7  Thus  the   layers  of goby acomms are more tightly interrelated than TCP IP  for example  Higher layers depend on lower  layers to carry out functions such as error checking and do nat replicate this functionality        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    2 1 Quick Start 5       2 1 3 Total throughput unrealistic  prioritize data    The second major difference stemming from this bandwidth constraint is that total throughput is often an unrealistic  goal  The quality of the acoustic channel varies widely from place to place  and even from hour to hour as changes  in the sea affect propagation of sound  This means that it is also difficult to predict what one   s throughput will be at  any given time     These two considerations manifest themselves in the goby acomms design as a priority based queuing system  for the transport layer  Messages are placed in different queues based on their priority  which is determined by  the designer of the message   This means that the channel is always utilized  low priority data ar
185. ity on fields that a set in both objects     Ftx   micromodem  protobuf  NarrowBandLBL   Params  transmit_freq     Ttx   micromodem  protobuf  NarrowBandLBL   Params  transmit_ping_ms     Trx   micromodem  protobuf  NarrowBandLBL   Params  receive_ping_ms     Timeout   micromodem  protobuf  NarrowBandLBL   Params  lbl_max_range   m x2  1500 m s x  1000  ms s   micromodem  protobuf  NarrowBandLBL   Params  turnaround_ms     FA   micromodem  protobuf  NarrowBandLBL   Params  receive_freq 0  or 0 if receive_freq_size    lt   4   FB   micromodem  protobuf  NarrowBandLBL   Params  receive_freq 1  or O if receive_freq_size    lt   2   FC   micromodem  protobuf  NarrowBandLBL   Params  receive_freq 2  or 0 if receive_freq_size    lt   3   FD   micromodem  protobuf  NarrowBandLBL   Params  receive_freq 3  or 0 if receive_freq_size    lt   4   Tflag   micromodem  protobuf  NarrowBandLBL   Params  transmit_flag            Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    6 4 WHOI Micro Modem Driver  MMDriver    45           CCMUC          SRC    goby  acomms  protobuf  ModemTransmission src    DEST    goby  acomms  protobuf  ModemTransmission dest    HHHH   goby  acomms  hex_encode goby  acomms     protobuf  ModemTransmission frame 0    amp  Ox1F          6 4 3 Sequence diagrams for various Micro Modem features using Goby    FSK  rate 0  data transmission       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    6 4 WHOI Micro Modem Driver  MMDriver    46     
186. l function html for more on  boost function     Definition at line 50 of file message_algorithms h     16 6 3 Enumeration Type Documentation    16 6 3 1 enum goby  transitional  DCCLCppType  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 59 of file dccl_constants h   16 6 3 2 enum goby  transitional  DCCLType    Enumeration of DCCL types used for sending messages  dccl_enum and dccl_string primarily map to cpp_string   dccl_bool to cpp_bool  decl_int to cpp_long  dccl_float to cpp_double     Enumerator     dccl_static tag_static  dccl_bool tag_bool  dccl_int tag_int  dcecl_float tag_float  dccl_enum tag_enum  dccl_string tag_string  dccl_hex tag_hex    Definition at line 50 of file dccl_constants h        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    16 6 goby  transitional Namespace Reference 93       16 6 4 Function Documentation    16 6 4 1 bool goby  transitional  char_array2hex_string   const unsigned char x c  std  string  amp  s  const unsigned int n     inline     converts a char  byte  array into a hex string    Parameters       c   pointer to array of char       n    reference to string to put char into as hex             n   length of c the first two hex chars in s are the 0 index in c          Definition at line 173 of file dccl_constants h   16 6 4 2 std  string goby  transit
187. lt  std  endl   glog is  WARN   amp  amp  glog  lt  lt   Exception     lt  lt  e what    lt  lt   std  endl              do_work    Add your driver header to goby src acomms modem_driver h    Modify driver_simple cpp to work with your new driver     Add your driver to the pAcommsHandler_config proto DriverType enumeration     Add your driver to the pAcommsHandler cpp driver object creation        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    6 4 WHOI Micro Modem Driver  MMDriver 37       The full ABC Modem example driver exists in acomms modemdriver abc_driver h and acomms modemdriver abc_   driver cpp  A simulator for the ABC Modem exists that uses TCP to mimic a very basic set of modem commands   send data and acknowledgment   To use the ABC Modem using the driver_simple example  run this set of com   mands  socat is available in most package managers or at http   www  dest unreach org socat       1  run abc_modem_simulator running on same port  as TCP server     gt  abc_modem_simulator 54321   2  create fake tty terminals connected to TCP as client to port 54321   gt  socat  d  d  v pty raw echo 0  link  tmp ttyFAKE1 TCP localhost 54321   gt  socat  d  d  v pty raw echo 0 link  tmp ttyFAKE2 TCP localhost 54321  3  start up driver_simple    gt  driver_simple  tmp ttyFAKE1 1 ABCDriver      wait a few seconds to avoid collisions    gt  driver_simple  tmp ttyFAKE2 2 ABCDriver    Notes     e See goby  acomms  MMDriver for an example real implementation     e W
188. lt implemented in this codec by calls to the equivalent repeated function with  an empty or single valued vector        class DCCLTypeHelper  Provides FromProtoTypeBase and FromProtoCppTypeBase type identification helper classes for various representa   tions of the underlying field    e class FromProtoTypeBase  Provides various representations of a google  protobuf  FieldDescriptor   Type enumeration  Implementations are pro   vided for all enumerations    e class FromProtoCppTypeBase  Provides various representations of a google  protobuf  FieldDescriptor  Cpp Type enumeration  and ways to access  the google  protobuf  Reflection object for a given type      class FromProtoCppType lt  google  protobuf  FieldDescriptor  CPPTYPE_MESSAGE  gt   Implements FromProtoCpp TypeBase for CPPTYPE_MESSAGE using the dynamic google  protobuf  Message as the  underlying class    e class FromProtoCustomMessage    Implements FromProtoCppTypeBase for CPPTYPE_MESSAGE using a specific statically generated Protobuf class   e class ABCDriver   provides an API to the imaginary ABC modem  as an example how to write drivers   e class ModemDriverBase       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    16 2 goby  acomms Namespace Reference 85       provides an abstract base class for acoustic modem drivers  This is subclassed by the various drivers for different  manufacturers    modems        class MMDriver    provides an API to the WHO  Micro Modem driver  e class QueueException   
189. m color enumeration  e g  red   gt   red     e static Colors  Color from_esc_code  const std  string  amp s        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 38 goby  Exception Class Reference 167       Color enumeration from escape code  e g   133 31m    gt  red   e static std  string esc_code_from_col  const Colors  Color  amp c     Escape code from color enumeration  e g  red   gt   133 31m    e static std  string esc_code_from_str  const std  string  amp s     Escape code from string  e g   red    gt    33 31m      Friends      template lt typename T  gt   void boost  checked_delete  T x     17 37 1 Detailed Description    Converts between string  escape code  and enumeration representations of the terminal colors   Definition at line 139 of file term_color h     The documentation for this class was generated from the following files       goby common logger term_color h  e src common logger term_color cpp    17 38 goby  Exception Class Reference    simple exception class for goby applications   include  lt goby common exception h gt     Inheritance diagram for goby  Exception     goby  acomms  DCCLException    goby  acomms  QueueException             goby  Exception       goby  common  ConfigException       Public Member Functions      Exception  const std  string  amp s     17 38 1 Detailed Description    simple exception class for goby applications  Definition at line 35 of file exception h     The documentation for this class was generated from
190. m for goby  acomms  DCCLDefaultEnumCodec                    goby  acomms DCCLReldCodec    goby acomms DCCLypedFixed  goby acomms  DCCLReldCodecBase  g    Selector lt  int32  const google fa    Codec int32  const google be Fieldcodec lt  int32  const       gobyacomme DCCLypedField  i   lt  int32  const google 7  protobuf  EnumValueDescriptor    gt   protobuf  EnumValueDescriptor    gt  google  protobuf  EnumValue Descriptor    gt                                                           Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 8 goby  acomms  DCCLDefaultidentifierCodec Class Reference 108       Public Member Functions     int32 pre_encode  const google  protobuf  EnumValueDescriptor   const  amp field_value       const  google  protobuf  EnumValueDescriptor x post_decode  const int32  amp wire_value     Additional Inherited Members  17 7 1 Detailed Description    Provides an enum encoder  This converts the enumeration to an integer  based on the enumeration index  not its  value  and uses DCCLDefaultNumericFieldCodec to encode the integer   Definition at line 216 of file dccl_field_codec_default h     The documentation for this class was generated from the following files       goby acomms dccl dccl_field_codec_default h    src acomms dccl dccl_field_codec_default cpp  17 8 goby  acomms  DCCLDefaultidentifierCodec Class Reference    Provides the default 1 byte or 2 byte DCCL ID codec      include  lt goby acomms dccl dccl_field_codec_default h gt     
191. manager h     The documentation for this class was generated from the following files       goby acomms queue queue_manager h    src acomms queue queue_manager cpp    17 32 goby  common  Colors Struct Reference    Represents the eight available terminal colors  and bold variants      include  lt goby common logger term_color h gt     Public Types      enum Color    nocolor  red  It_red  green   It_green  yellow  It_yellow  blue   It_blue  magenta  It_magenta  cyan   It_cyan  white  It_white      The eight terminal colors  and bold or  light  variants   17 32 1 Detailed Description    Represents the eight available terminal colors  and bold variants   Definition at line 125 of file term_color h     The documentation for this struct was generated from the following file       goby common logger term_color h       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 33 goby  common  ConfigException Class Reference 163       17 33 goby  common  ConfigException Class Reference    indicates a problem with the runtime command line or  cfg file configuration  or    help was given    include  lt goby common configuration_reader h gt     Inheritance diagram for goby  common  ConfigException         goby  Exception    goby  common  ConfigException    Public Member Functions      ConfigException  const std  string  amp s   e void set_error  bool b     bool error       17 33 1 Detailed Description    indicates a problem with the runtime command line or  cfg file configuratio
192. mart  pointers like boost  shared_ptr included        Parameters             bytes   the byte string returned by encode          Exceptions       DCCLException          if message cannot be decoded          Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen                17 4 goby  acomms  DCCLCodec Class Reference 101       Returns    pointer to decoded message  a google  protobuf  Message   You are responsible for deleting the memory used  by this pointer  This message can be examined using the Google Reflection Descriptor API     Definition at line 274 of file dccl h     17 4 2 4 template lt typename GoogleProtobufMessagePointer  gt  std  list lt GoogleProtobufMessagePointer gt   goby  acomms  DCCLCodec  decode_repeated   const std  string     orig_bytes    inline     Decode multiple messages at once  Messages encoded using encode_repeated must be decoded using decode_   repeated     Parameters             orig_bytes   string of bytes produced by encoded_repeated          Template Parameters       GoogleProtobufMessage    anything that acts like a pointer  has operator  to a google  protobuf  Message  smart  Pointer   pointers like boost  shared_ptr included                 Exceptions       DCCLException   if message s  cannot be decoded                 Returns    list of pointers to the decoded messages  you are responsible for deleting these pointers when done with them     See Also  test acomms dccl4 test cpp and test acomms dccl4 test proto  Definition at li
193. me  ptime unix_microsec2ptime  uint64 given_time   convert to boost date_time ptime from the number of microseconds since 1 1 1970 0 00 UTC   UNIX Time    good to  the microsecond     boost  posix_time  ptime nmea_time2ptime  const std  string  amp mt        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    16 3    goby  common Namespace Reference 88       Variables    Time    16 3 1    const int BITS_IN_UINT32   32   const int BITS_IN_BYTE   8   const std  string esc_red    133 31m   const std  string esc_It_red    133 91m   const std  string esc_green     33 32m   const std  string esc_It_green     33 92m   const std  string esc_yellow     33 33m   const std  string esc_It_yellow     33 93m   const std  string esc_blue     33 34m   const std  string esc_It_blue     33 94m   const std  string esc_magenta     33 35m   const std  string esc_It_magenta     33 95m   const std  string esc_cyan     33 36m   const std  string esc_It_cyan     33 96m   const std  string esc_white    133 37m   const std  string esc_It_white     33 97m   const std  string esc_nocolor     33 0m     boost  function0 lt  uint64  gt  goby_time_function  int goby_time_warp_factor   1  template lt typename ReturnType  gt   ReturnType goby_time     Returns current UTC time as a boost  posix_time  ptime   template lt  gt   uint64 goby_time lt  uint64  gt      Returns current UTC time as integer microseconds since 1970 01 01 00 00 00   template lt  gt   double goby_time lt  double  gt      Returns
194. me FieldType   WireType gt  virtual Bitset goby  acomms  DC   CLTypedFieldCodec lt  WireType  FieldType  gt   encode   const WireType  amp  wire_value    pure  virtual     Encode a non empty field     Parameters       wire_value   Value to encode                 Returns    Bits represented the encoded field     Implemented in goby  acomms  DCCLRepeatedTypedFieldCodec lt  WireType  FieldType  gt   goby  acomms  D   CCLRepeatedTypedFieldCodec lt  Model  value_type  FieldType  gt   goby  acomms  DCCLRepeatedTypedField   Codec lt  Model  value_type  const google  protobuf  EnumValueDescriptor x  gt   goby  acomms  DCCLRepeated   TypedFieldCodec lt  goby  int32  gt   goby  acomms  DCCLDefaultNumericFieldCodec lt  WireType  FieldType  gt    goby  acomms  DCCLDefaultNumericFieldCodec lt  uint32  gt   goby  acomms  DCCLDefaultNumericFieldCodec lt   int32  const google  protobuf  EnumValueDescriptor x  gt   goby  acomms  DCCLDefaultNumericFieldCodec lt  int32   TimeType  gt   and goby  acomms  DCCLDefaultidentifierCodec     17 20 2 4 template lt typename WireType  typename FieldType   WireType gt  virtual unsigned  goby  acomms  DCCLTypedFieldCodec lt  WireType  FieldType  gt   size     pure virtual     Calculate the size  in bits  of an empty field     Returns    the size  in bits  of the empty field     Implemented in goby  acomms  DCCLRepeatedTypedFieldCodec lt  WireType  FieldType  gt   goby  acomms  DCCL   RepeatedTypedFieldCodec lt  Model  value_type  FieldType  gt   goby  acomm
195. ment  amp env    e std  ostream  amp  operator lt  lt   std  ostream  amp out  const google  protobuf  Message  amp msg   provides stream output operator for Google Protocol Buffers Message     void merge_app_base_cfg  AppBaseConfig  base_cfg  const boost  program_options  variables_map  amp var    _map    e std  string liaison_internal_publish_socket_name      e std  string liaison_internal_subscribe_socket_name        std  ostream 8 operator lt  lt   FlexOstream  amp out  char c      std  ostream  amp  operator lt  lt   FlexOstream  amp out  signed char c    e std  ostream  amp  operator lt  lt   FlexOstream  amp out  unsigned char c      std  ostream 8 operator lt  lt   FlexOstream  amp out  const char  s      std  ostream  amp  operator lt  lt   FlexOstream  amp out  const signed char xs      std  ostream 8 operator lt  lt   FlexOstream  amp out  const unsigned char xs    e double ptime2unix_double  boost  posix_time  ptime given_time     E A A eee     convert from boost date_time ptime to the number of seconds  including fractional  since 1 1 1970 0 00 UTC   UNIX  Time       boost  posix_time  ptime unix_double2ptime  double given_time   convert to boost date_time ptime from the number of seconds  including fractional  since 1 1 1970 0 00 UTC   UNIX  Time    good to the microsecond     uint64 ptime2unix_microsec  boost  posix_time  ptime given_time   convert from boost date_time ptime to the number of microseconds since 1 1 1970 0 00 UTC   UNIX Time     e boost  posix_ti
196. messages  same as info_all   void serialize_rudics_packet  std  string bytes  std  string   rudics_pkt   void parse_rudics_packet  std  string   bytes  std  string rudics_pkt   std  string uint32_to_byte_string  uint32_t i   uint32_t byte_string_to_uint32  std  string s     Acoustic MAC Library callback function type definitions      std  ostream 8 operator lt  lt   std  ostream  amp os  const MACManager  amp mac     Variables    16 2 1    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 ona  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  amac  is agnostic to the next  destination  The next destination is thus set by the data provider  typically queue     const int QUERY_SOURCE_ID    1   const unsigned char DCCL_CCL_HEADER   32   const unsigned MULTIMESSAGE_MASK   1  lt  lt  7   const unsigned BROADCAST_MASK  1  lt  lt  6   const unsigned VAR_ID_MASK   OxFF   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     16 3    goby  common Namespace Reference    Utility objects for performing functions such as logging  non acoustic comm
197. modem drivers  This is subclassed by the various drivers for different  manufacturers    modems     See Also    acomms_driver_base proto and acomms_modem_message proto for definition of Google Protocol Buffers  messages  namespace goby  acomms  protobuf      Examples     acomms modemdriver driver_simple driver_simple cpp     Definition at line 46 of file driver_base h     17 29 2 Member Function Documentation    17 29 21 virtual void goby  acomms  ModemDriverBase  do_work     pure virtual     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     Implemented in goby  acomms  MMDriver  goby  moos  BluefinCommsDriver  goby  moos  UFldDriver  and goby     acomms  ABCDriver     Examples     acomms modemdriver driver_simple driver_simple cpp     17 29 2 2 virtual void goby  acomms  ModemDriverBase  handle_initiate transmission   const protobuf  ModemTransmission  amp   m   pure virtual     Virtual initiate_transmission method  Typically connected to MACManager  signal_initiate_transmission   using  bind       Parameters       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
198. mp  msg               std  cout  lt  lt   5  received message     lt  lt  msg  lt  lt  std  endl        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    Index    API classes for the Dynamic Compact Control Language   includes writing custom encoders    79  API classes for the major components of the Goby    Acomms acoustic communications library  D   CCL  Queue  AMAC  ModemDriver    79  add  goby  acomms  DCCLFieldCodecManager  127  add_escape_code  goby  common  tcolor  88  add_group  goby  common  FlexOstream  164  add_id_codec  goby  acomms  DCCLCodec  99  add_queue  goby  acomms  QueueManager  158  add_value  goby  acomms  FromProtoCppTypeBase  144  AlgFunction1  goby  transitional  91  AlgFunction2  goby  transitional  91  all_message_ids  goby  transitional  DCCLTransitionalCodec  177  all_message_names  goby  transitional  DCCLTransitionalCodec  177  any_decode  goby  acomms  DCCLFieldCodecBase  118  any_encode  goby  acomms  DCCLFieldCodecBase  118  any_post_decode  goby  acomms  DCCLFieldCodecBase  118  any_pre_encode  goby  acomms  DCCLFieldCodecBase  118  any_size  goby  acomms  DCCLFieldCodecBase  119  Application  goby  pb  Application  171    base_decode  goby  acomms    base_encode  goby  acomms    base_info  goby  acomms    base_max_size  goby  acomms    base_min_size  goby  acomms    base_size  goby  acomms    base validate  goby  acomms  DCCLFieldCodecBase  120  boost  asio  time_traits lt  goby  common  GobyTime  gt    93    DCCLFieldCodecBas
199. mp cfg  0  Starts the modem driver  Must be called before poll      e virtual void shutdown    0  Shuts down the modem driver    e virtual void do_work    0  Allows the modem driver to do its work     MAC Slots    e virtual void handle_initiate_transmission  const protobuf  ModemTransmission  amp m  0    Virtual initiate_transmission method  Typically connected to MACManager  signal_initiate_transmission   using  bind       Public Attributes  MAC   Queue Signals      boost  signals2  signal lt  void const  protobuf  ModemTransmission   amp message  gt  signal_receive  Called when a binary data transmission is received from the modem     boost  signals2  signal lt  void const  protobuf  ModemTransmission   amp message  gt  signal_transmit_result  Called when a transmission is completed     boost  signals2  signal lt  void protobuf  ModemTransmission   msg  gt  signal_data_request  Called when the modem or modem driver needs data to send  The returned data should be stored in Modem   Transmission   frame   e boost  signals2  signal lt  void protobuf  ModemTransmission   msg_request  gt  signal_modify_transmission  Called before the modem driver begins processing a transmission  This allows a third party to modify the parame   ters of the transmission  such as destination or rate  on the fly   e boost  signals2  signal lt  void const  protobuf  ModemRaw  amp msg  gt  signal_raw_incoming  Called after any message is received from the modem by the driver  Used by the MACManager fo
200. ms dccl dccl_field_codec_default h gt        Inheritance diagram for goby  acomms  DCCLDefaultNumericFieldCodec lt  WireType  FieldType  gt      goby  acomms  DCCLFieldCodecBase    goby  acomms  DCCLFieldCodec  Selector lt  Wire Type  FieldType  gt     goby  acomms  DCCLlypedField  Codec lt  WireType  Field Type  gt     goby  acomms  DCCLlypedFixed  FieldCodec lt  WireType  FieldType  gt     goby  acomms  DCCLDefault  NumericFieldCodec lt  WireType   FieldType  gt        Protected Member Functions    virtual double max     virtual double min     virtual double precision     virtual void validate       Validate a field  Use require   inside your overloaded validate   to assert requirements or throw DCCLExceptions  directly as needed     Bitset encode       Encode an empty field   virtual Bitset encode  const WireType  amp value     Encode a non empty field   virtual WireType decode  Bitset xbits        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 10 goby  acomms  DCCLDefaultNumericFieldCodec lt  WireType  FieldType  gt  Class Template  Reference 113       Decode a field  If the field is empty  i e  was encoded using the zero argument encode     throw DCCLNullValue   Exception to indicate this       unsigned size     The size of the encoded message in bits  Use DCCLTypedFieldCodec if the size depends on the data     Additional Inherited Members    17 10 1 Detailed Description    template lt typename WireType  typename FieldType   WireType gt class goby  ac
201. msg_ string  const google  protobuf  Descriptor  desc   int modem_id       The current modem ID  MAC address  of this node   protobuf  QueuedMessageMeta meta_from_msg  const google  protobuf  Message  amp msg     Public Attributes      boost  signals2  signal lt  void protobuf  QueuedMessageMeta   meta  const  google  protobuf  Message   amp data_msg  int modem_id  gt  signal_out_route    Used by a router to change next hop destination  in meta   e boost  signals2  signal lt  void const  protobuf  QueuedMessageMeta   amp meta  const  google  protobuf  Message   amp data_msg  int modem_id  gt  signal_in_route    Used by a router to intercept messages and requeue them if desired     Application Signals    e boost  signals2  signal lt  void const  protobuf  ModemTransmission   amp ack_msg  const  google  protobuf  Message   amp orig_msg  gt  signal_ack  Signals when acknowledgment of proper message receipt has been received  This is only sent for queues with  queue ack    true with an explicit destination  ModemMessageBase  dest      0   e boost  signals2  signal lt  void const  google  protobuf  Message  amp msg   gt  signal_receive  Signals when a DCCL message is received     boost  signals2  signal lt  void const  google  protobuf  Message   amp orig_msg  gt  signal_expire  Signals when a message is expires  exceeds its time to live or ttl  before being sent  if queue ack    false  or  before being acknowledged  if queue ack    true    e boost  signals2  signal lt  void const
202. n  171    TCPClient  goby  util   TCPClient  181  TCPServer  goby  util   TCPServer  182  this_descriptor  goby  acomms  DCCLFieldCodecBase  125  this_field  goby  acomms  DCCLFieldCodecBase  125    validate  goby  acomms  DCCLCodec  103  validate_repeated  goby  acomms  DCCLCodec  104    wire_type  goby  acomms  DCCLFieldCodecBase  125    zeromq_service  goby  pb  Application  171       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    
203. n  or    help was given   Definition at line 55 of file configuration_reader h     The documentation for this class was generated from the following file       goby common configuration_reader h    17 34 goby  common  FlexNCurses Class Reference    Enables the Verbosity    gui mode of the Goby logger and displays an NCurses gui for the logger content      include  lt goby common logger flex_ncurses h gt     Public Member Functions    Constructors   Destructor       FlexNCurses     e  FlexNCurses       Initialization    e void startup     e void add_win  const Group xtitle     Use       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 35 goby  common  FlexOstream Class Reference 164       e void insert  boost  posix_time  ptime t  const std  string  amp s  Group  g   Add a string to the gui     Utility    e size_t panel_from_group  Group  g   e void recalculate_win      e void cleanup      e void alive  bool alive     User Input Thread    e void run_input     run in its own thread to take input from the user    17 34 1 Detailed Description    Enables the Verbosity    gui mode of the Goby logger and displays an NCurses gui for the logger content   Definition at line 44 of file flex_ncurses h     The documentation for this class was generated from the following files       goby common logger flex_ncurses h  e src common logger flex_ncurses cpp    17 35 goby  common  FlexOstream Class Reference    Forms the basis of the Goby logger  std  ostream derived class fo
204. n Format Example   relative to  frontseat    START Simulator Receive START LAT  START LAT 42    initialization latitude decimal 1234 LON  72 D   message degrees  LON  URATION 600    longitude  decimal  degrees  DURAT   ION  simulation  duration seconds    CTRL Frontseat state Transmit CTRL STATE  P    CTRL STATE PA   message AYLOAD  if YLOAD   backseat control   or IDLE    NAV Navigation Transmit NAV LAT  latitude NAV LAT 42    message decimal 1234 LON  72    generated from degrees  LON  5435 DEPTH   very primitive  longitude  200  HEADING   dynamics model decimal  223 SPEED 1 4   depth 8 heading degrees  DEPTH   changes are  depth in  instantaneous  meters   HEADIN    G  heading in  degrees  SPEED    speed in   m s    CMD Desired course Receive CMD HEADING  CMD HEADING   command from  desired heading  260 SPEED 1    backseat in degrees  SPE  5 DEPTH 100   ED  desired  speed in m s  DE   PTH  desired  depth in m    CMD Reponse to last Transmit CMD RESULT  O    CMD RESULT OK  CMD K or   ERROR              Your driver will be  at a minimum  a C linkage function  frontseat_    The C function is used by iFrontSeat to load your driver     extern  C          driver_load  and a subclass of FrontSeat   InterfaceBase  It should be compiled into a shared library   so on Linux      FrontSeatInterfaceBasex frontseat_driver_load iFrontSeatConfigx  cfg          return new AbcFrontSeat   cfg           First you should decide what configuration your driver will accept  Your configuration obj
205. n be 0  lowest   1  2  3  4  or 5  lowest   Map these  integers onto real bit rates     in a meaningful way  on the WHOI Micro Modem 0    80 bps  5    5000  bps    glog is DEBUG1   amp  amp  glog  lt  lt  group  modem_out    lt  lt   We were asked to  transmit from     lt  lt  msg src    lt  lt    to    lt  lt  msg dest      lt  lt    at bitrate code    lt  lt  msg rate    lt  lt  std  endl        let s say ABC modem uses 500 byte packet  msg set_max_frame_bytes 500         no data given to us  let s ask for some  if msg frame_size      0   ModemDriverBase  signal_data_request  4msg       glog is DEBUG1   amp  amp  glog  lt  lt  group  modem_out    lt  lt   Sending these  data now     lt  lt  msg frame 0   lt  lt  std  endl        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    6 3 Writing a new driver    36          let s say we can send at three bitrates with ABC modem  map these onto  0 5  const unsigned BITRATE        100  1000  10000  10000  10000  10000         I m making up a syntax for the wire protocol     std   stringstream raw   raw  lt  lt   SEND TO    lt  lt  msg dest       lt  lt    FROM    lt  lt  msg src      lt  lt    HEX    lt  lt  hex_encode  msg frame  0       lt  lt    BITRATE    lt  lt  BITRATE  msg rate       lt  lt    ACK  TRUE     lt  lt    r n         let anyone who is interested know  signal_and_write raw str           handle_initiate_ transmission        Finally  you can use do_work   to do continuous work  You can count on it being
206. nction Documentation            0    0  eee ee es 138    17 21 goby  acomms  DCCLTypedFixedFieldCodec lt  WireType  FieldType  gt  Class Template Reference   140    1721 1 Detaled Descriphon es  is be RG ee Ae oe ER De eee ee A 141  17 22goby  acomms  DCCLTypeHelper Class Reference         0    o      e        eee 141  11221 Detailed DOSCOQUON isso o a A eS 141  17 23g0by  acomms  FromProtoCppType lt  google  protobuf  FieldDescriptor  CPPTYPE_MESSAGE  gt   Class Template Reference            ee ee 142  172341 Detailed Description o  osora cdon e684 060 be bbe ee bee e a ee db ewe 143  17 24goby  acomms  FromProtoCppTypeBase Class Reference           0    o    e        143  17 241 Detailed Desorption    lt  ae e sa aoi aceti a A Se a 144  17 24 2 Member Function Documentation         a a aooaa a 144  17 25goby  acomms  FromProtoCustomMessage lt  CustomMessage  gt  Class Template Reference     145  1725 1 Detailed DOScrpl  N  24 044 e o a de e bh eo a e a eed pws 146  17 26goby  acomms  FromProtoTypeBase Class Reference      o oo a 146  11 261 Detailed Deschpto  lt   s sor roe dare am aw ai A A RR ee a 146  17 27goby  acomms  MACManager Class Reference    aaao a 146  17271 Detailed Deschplhon ie s 22308 wae a e a e n A A 147  17 27 2 Member Function Documentation             a 148  17 27 3 Member Data Documentation    lt   lt c e cara a rrea cams e p oe ee 148  17 28goby  acomms  MMDriver Class Reference        aoaaa ee 148  17 28 1 Detailed Description   ocd sasak e oa o a ee
207. ne 318 of file dccl h     17 4 2 5 void goby  acomms  DCCLCodec  encode   std  string    bytes  const google  protobuf  Message  amp  msg  bool  header_only   false      Encodes a DCCL message                                      Parameters  bytes   Pointer to byte string to store encoded msg  msg   Message to encode  must already have been validated   Exceptions  DCCLException   if message cannot be encoded   Examples     acomms dccl dccl_simple dccl_simple cpp  and acomms dccl two_message two_message cpp     Definition at line 112 of file dccl cpp        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 4 goby  acomms  DCCLCodec Class Reference 102       17 4 2 6 template lt typename GoogleProtobufMessagePointer  gt  std  string goby  acomms  DCCLCodec  encode_repeated    const std  list lt  GoogleProtobufMessagePointer  gt  4 msgs    inline     Encode multiple messages at once  In general this is more efficient  i e  produces smaller messages  than calling  encode repeatedly     Template Parameters       GoogleProtobufMessage    anything that acts like a pointer  has operator  to a google  protobuf  Message  smart  Pointer   pointers like boost  shared_ ptr included                                               Parameters   msgs   list of DCCL messages to encode  Exceptions   DCCLException   if message s  cannot be encoded   Returns    string containing bytes that represent the encoded message    See Also  test acomms dccl4 test cpp and test acomms dccl4 t
208. nst short  amp val    e std  ostream  amp  operator lt  lt   const unsigned short  amp val    e std  ostream     operator lt  lt   const int  amp val    e std  ostream 8 operator lt  lt   const unsigned int  amp val    e std  ostream  amp  operator lt  lt   const long  amp val    e std  ostream  amp  operator lt  lt   const unsigned long  amp val    e std  ostream     operator lt  lt   const float  amp val    e std  ostream     operator lt  lt   const double  amp val    e std  ostream 8 operator lt  lt   const long double  amp val      std  ostream     operator lt  lt   std  streambuf  sb    e std  ostream  amp  operator lt  lt   std  ios     pf  std  i0s  amp      e std  ostream  amp  operator lt  lt   std  ios_base  amp    pf  std  ios_base  amp       Friends    e template lt typename T  gt   void boost  checked_delete  T     e std  ostream  amp  operator lt  lt   FlexOstream  amp out  char c     std  ostream 8 operator lt  lt   FlexOstream  amp out  signed char c   e std  ostream  amp  operator lt  lt   FlexOstream  amp out  unsigned char c     std  ostream 8 operator lt  lt   FlexOstream  amp out  const char xs     std  ostream 8 operator lt  lt   FlexOstream  amp out  const signed char xs     std  ostream 8 operator lt  lt   FlexOstream  amp out  const unsigned char xs     SA    17 35 1 Detailed Description    Forms the basis of the Goby logger  std  ostream derived class for holding the FlexOStreamBuf     Definition at line 54 of file flex_ostream h     17 35 2 Member F
209. nvert             width   desired width  in characters  of return string  Width should be twice the number of bytes             Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 Class Documentation    94       Returns    hex string    Definition at line 303 of file dccl_constants h     16 6 5 Variable Documentation    16 6 5 1 const std  string goby  transitional  DCCL_HEADER_NAMES      Initial value   t t pgi  ia     iq     time   W_sreond    _dest_id       _multimessage_flag       _broadcast_flag     _unused      Definition at line 137 of file dccl_constants h     17 Class Documentation    17 1 boost  asio  time_traits lt  goby  common  GobyTime  gt  Struct Template Reference    Time traits specialised for GobyTime      include  lt goby common time h gt     Public Types      typedef boost  posix_time  ptime time_type  The time type       typedef  boost  posix_time  time_duration duration_type    The duration type     Static Public Member Functions    e static time_type now     Get the current time    e static time_type add  const time_type  amp t  const duration_type  amp d   Add a duration to a time    e static duration_type subtract  const time_type  amp t1  const time_type  amp t2   Subtract one time from another    e static bool less_than  const time_type  amp t1  const time_type  amp t2   Test whether one time is less than another    e static   boost  posix_time  time_duration to_posix_duration  const duration_type  amp d    Convert to POSIX duration t
210. o capture  how important the message type is in general  Higher base values mean the message is of higher importance   The ttl governs the number of seconds the message lives from creation until it is destroyed by queue  The ttl  also factors into the priority calculation since all things being equal  same Vpase   it is preferable to send more time  sensitive messages first  So in these two parameters  the user can capture both overall value  i e  Vpase  and latency  tolerance   ttl  of the message queue     The following graph illustrates the priority growth over time of three queues with different ttl and Vigse  A message  is sent every 100 seconds and the queue that is chosen is marked on the graph        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    4 2 Queuing Protobuf O    ptions    24       priority             V    03 AY    meg eg SV     0 2      0 05                  1  ttl  1000    base       base  2 ttl  2000       base  1 ttl  3000                      Figure 4  Graph of the growth of queueing priorities for qu          100 seconds from the  queue with the highest priority  numbered on the graph      4 2 Queuing Protobuf Options    800 900 1000    eue for three different queues  A message is sent every    This section gives an overview of the queue configuration options available  The full list is available in queue proto   as messages goby  acomms  protobuf  QueuedMessageEntry      Queue message options        name    type    default    descript
211. oby acomms MAC library  MACManager is essentially a std  list lt protobuf  Modem   Transmission gt  plus a timer 146    goby  acomms  MMDriver  API to the WHOI Micro Modem driver 148    goby  acomms  ModemDriverBase  Abstract base class for acoustic modem drivers  This is subclassed by the various drivers for  different manufacturers    modems 150    goby  acomms  QueueException  Exception class for libdccl 155    goby  acomms  QueueManager  API to the goby acomms Queuing Library 156    goby  common  Colors  Represents the eight available terminal colors  and bold variants  161    goby  common  ConfigException  Indicates a problem with the runtime command line or  cfg file configuration  or    help was  given  162    goby  common  FlexNCurses  Enables the Verbosity    gui mode of the Goby logger and displays an NCurses gui for the  logger content 162    goby  common  FlexOstream  Forms the basis of the Goby logger  std  ostream derived class for holding the FlexOStreamBuf 163    goby  common  FlexOStreamBuf  Class derived from std  stringbuf that allows us to insert things before the stream and control  output  This is the string buffer used by goby  common  FlexOstream for the Goby Logger   glogger  164    goby  common  TermColor  Converts between string  escape code  and enumeration representations of the terminal colors 165    goby  Exception  Simple exception class for goby applications 166    goby  moos  BluefinCommsDriver  Driver for the Bluefin Huxley communications in
212. obysoft org wiki DcclIdTable   option  dccl msg  id   124        if  for example  we want to use on the WHOI Micro Modem rate 0  option  dccl msg  max_bytes   32     required string telegram   1   dccl field   max_length 30      See dccl_simple cpp for an example of how to use this message     Scenario 2  Send a more realistic command and receive a status message from the vehicle        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    3 1 Designing a message    12       We want to be able to command our vehicle  to which we have assigned an ID number of  2   to go to a specific  point on a local XY grid  meters from some known latitude   longitude   but no more than 10 kilometers from the  datum  We also want to be able to turn the lights on or off  and send a short string for other new instructions  Finally   we need to be able to command a speed  Our vehicle can move no faster than 3 m s  but its control is precise  enough to handle hundredths of a m s  wow   It   s probably easiest to make a table with our conditions                                   message variable name   description type bounds   destination id number of the vehicle int32  0  31   we are commanding   goto_x meters east to transit int32  0  10000   from datum   goto_y meters north to transit int32  0  10000   from datum   lights_on turn on the lights  bool   new_instructions string instructions string no longer than 10   characters  goto_speed transit speed  m s  float  0 00  3 00         
213. odec lt  T  gt     Placeholder codec that takes no space on the wire  0 bits    Definition at line 282 of file dccl_field_codec_default h     The documentation for this class was generated from the following file       goby acomms dccl dccl_field_codec_default h    17 19 goby  acomms  DCCLTimeCodec lt  TimeType  gt  Class Template Reference    Encodes time of day  second precision  for times represented by the string representation of boost  posix_time   uptime  e g  obtained from goby_time lt std  string gt          include  lt goby acomms dccl dccl_field_codec_default h gt           Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 19 goby  acomms  DCCLTimeCodec lt  TimeType  gt  Class Template Reference 137       Inheritance diagram for goby  acomms  DCCLTimeCodec lt  TimeType  gt      goby  acomms  DCCLFieldCodecBase    goby  acomms  DCCLFieldCodec  Selector lt  int32  TimeType  gt     goby  acomms  DCCLlypedField  Codec lt  int32  TimeType  gt     goby  acomms  DCCLlypedFixed  FieldCodec lt  int32  TimeType  gt     goby  acomms  DCCLDefault  NumericFieldCodec lt  int32   TimeType  gt     goby  acomms  DCCLTimeCodec   lt  TimeType  gt        Public Member Functions      goby  int32 pre_encode  const TimeType  amp field_value   e TimeType post_decode  const int32  amp wire_value     Additional Inherited Members  17 19 1 Detailed Description  template lt typename TimeType gt class goby  acomms  DCCLTimeCodec lt  TimeType  gt     Encodes time of day  second 
214. odecBase  base_size   unsigned   bit_size  const google  protobuf  Message  amp     msg  MessageHandler  MessagePart part      Calculate the size  in bits  of a part of the base message when it is encoded     Parameters       bit_size    Pointer to unsigned integer to store the result        msg    the DCCL Message of which to calculate the size          part       part of the Message to calculate the size of       Definition at line 91 of file dccl_field_codec cpp     17 13 2 12 void goby  acomms  DCCLFieldCodecBase  base validate   const google  protobuf  Descriptor x desc   MessageHandler  MessagePart part      Validate this part of the message to make sure all required extensions are set           Parameters  desc   Descriptor to validate  Use google  protobuf  Message  GetDescriptor   or MyProtobufType     descriptor   to get this object   part   part of the Message                Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen                   17 13 goby  acomms  DCCLFieldCodecBase Class Reference    122       Definition at line 262 of file dccl_field_codec cpp     17 13 2 13  dccl  DCCLFieldOptions goby  acomms  DCCLFieldCodecBase  dccl field_options     const     inline       protected     Get the DCCL field option extension value for the current field     dccl  DCCLFieldOptions is defined in acomms_option_extensions proto    Definition at line 309 of file dccl_field_codec h     17 13 2 14 void goby  acomms  DCCLFieldCodecBase  field_decode   Bitset x bi
215. of the goby  util  glogger   in NCurses GUI mode    Simultaneous terminal window and file logging     flexostream_simple quiet  warn verbose debug gui test txt    test txt     2011 Mar 01  2011 Mar 01  2011 Mar 01  2011 Mar 01  2011 Mar 01    05   05  05   05   OS     33  33  33  33  33     26   26   26   26   26     224050   224277   224320   224362   224388         Warning   this is warning text       this is normal text       this is light blue text  in color terminals   1    Debug   this is debug text   la   this text is related to a       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    8 goby moos  An overview of the Goby MOOS interoperability library 54         2011 Mar 01 05 33 26 224429    b   this text is related to b    2011 Mar 01 05 33 26 224471    c    Warning   this warning is related to c   section linebasedcomms TCP and Serial port communications   liblinebasedcomms    libutil_linebasedcomms provides a common interface  goby  util  LineBasedInterface  for line based  defined as    You should create the proper subclass for your needs     e Serial communications  goby  util  SerialClient    TCP Client  goby  util  TCPClient    e TCP Server  goby  util  TCPServer   all incoming messages  as read by goby  util  LineBasedInterface    readline  are interleaved in the order they are received from all connected clients  Outgoing messages  are sent to all connected clients unless using goby  util  LineBasedInterface  write  const protobuf  Datagram   am
216. oid connect  Signal   signal  Obj  obj  void Obj   mem_func  A1  A2    connect a signal to a member function with two arguments    template lt typename Signal   typename Obj   typename A1   typename A2   typename A3  gt   void connect  Signal   signal  Obj   obj  void Obj   mem_func  A1  A2  A3    connect a signal to a member function with three arguments    std  ostream  amp  operator lt  lt   std  ostream  amp os  const DCCLCodec  amp codec     bool operator    const Bitset  amp a  const Bitset  amp b     bool operator lt   const Bitset  amp a  const Bitset  amp b   e Bitset operator amp   const Bitset  amp b1  const Bitset  amp b2      Bitset operator   const Bitset  amp b1  const Bitset  amp b2     Bitset operator     const Bitset  amp b1  const Bitset  amp b2   e std  ostream 8 operator lt  lt   std  ostream  amp os  const Bitset  amp b     unsigned floor_bits2bytes  unsigned bits        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    16 3    goby  common Namespace Reference 86       unsigned ceil_bits2bytes  unsigned bits   std  ostream  amp  operator lt  lt   std  ostream  amp os  const DCCLFieldCodecBase  amp field_codec   DCCLException type_error  const std  string  amp action  const std  type_info  amp expected  const std  type_info   amp got   std  ostream  amp  operator lt  lt   std  ostream  amp os  const Queue  amp oq   std  ostream  amp  operator lt  lt   std  ostream  amp out  const QueueManager  amp d   outputs information about all available 
217. olor    const  Color to use when displaying this group  for streams that support terminal escape codes only  std  cout  std  cerr   std  clog   bool enabled    const    Is this group enabled     Setters      void name  const std  string  amp s    e void description  const std  string  amp s      void color  goby  common  Colors  Color c   e void enabled  bool b     17 48 1 Detailed Description    Defines a group of messages to be sent to the Goby logger  For Verbosity    verbose streams  all entries appear  interleaved  but each group is offset with a different color  For Verbosity    gui streams  all groups have a separate  subwindow     Definition at line 70 of file logger_manipulators h     The documentation for this class was generated from the following file       goby common logger logger_manipulators h    17 49 GroupSetter Class Reference    Helper class for enabling the group std  string  manipulator      include  lt goby common logger logger_manipulators h gt     Public Member Functions      GroupSetter  const std  string  amp s   e void operator    std  ostream  amp os  const  e void operator    goby  common  FlexOstream  amp os  const       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    18 File Documentation 185       17 49 1 Detailed Description    Helper class for enabling the group std  string  manipulator   Definition at line 117 of file logger_manipulators h     The documentation for this class was generated from the following files       goby
218. omms  DCCLDefaultNumericFieldCodec lt  Wire   Type  FieldType  gt   Provides a basic bounded arbitrary length numeric  double  float  uint82  uint64  int32  int64  encoder     Takes ceil log2  max min  10 precision  1  bits for required fields  ceil log2  max min  10 precision  2  for op   tional fields     Definition at line 84 of file dccl_field_codec_default h     17 10 2 Member Function Documentation    17 10 2 1 template lt typename WireType  typename FieldType   WireType gt  virtual WireType goby  acomms  D   CCLDefaultNumericFieldCodec lt  WireType  FieldType  gt   decode   Bitset x bits    inline     protected    virtual     Decode a field  If the field is empty  i e  was encoded using the zero argument encode     throw DCCLNullValue   Exception to indicate this     Parameters       bits   Bits to use for decoding                 Returns    the decoded value   Implements goby  acomms  DCCLTypedFieldCodec lt  WireType  FieldType  gt    Definition at line 139 of file dccl_field_codec_default h     17 10 2 2 template lt typename WireType  typename FieldType   WireType gt  Bitset goby  acomms  DCCL   DefaultNumericFieldCodec lt  WireType  FieldType  gt   encode     inline    protected     virtual     Encode an empty field     Returns    Bits represented the encoded field   Implements goby  acomms  DCCLTypedFieldCodec lt  WireType  FieldType  gt    Definition at line 112 of file dccl_field_codec_default h     17 10 2 3 template lt typename WireType  typename FieldType   Wi
219. omms  ModemDriverBase   Definition at line 41 of file abc_driver cpp     The documentation for this class was generated from the following files       goby acomms modemdriver abc_driver h    src acomms modemdriver abc_driver cpp    17 4 goby  acomms  DCCLCodec Class Reference    provides an API to the Dynamic CCL Codec    include  lt goby acomms dccl h gt     Public Member Functions  Initialization Methods     e void set_cfg  const protobuf  DCCLConfig  amp cfg   Set  and overwrite completely if present  the current configuration   protobuf  DCCLContfig defined in acomms_   dccl  proto    e void merge_cfg  const protobuf  DCCLConfig  amp cfg   Set  and merge  repeated  fields  the current configuration   protobuf  DCCLConfig defined in acomms_dccl    proto   Non repeated fields will be overwritten if set    e void load_shared_library_codecs  void  dl_handle   Load any codecs present in the given shared library handle    e template lt typename ProtobufMessage  gt    void validate      All messages must be validated  size checks  option extensions checks  etc   before they can be encoded de   coded  Use this form when the messages used are static  known at compile time         Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 4 goby  acomms  DCCLCodec Class Reference 98       Codec functions     This is where the real work happens       void encode  std  string   bytes  const google  protobuf  Message  amp msg  bool header_only false     Encodes a DCCL message 
220. on  dccl msg  max_bytes   32   required double nav_x   1   dccl                required double nav_y   2   dccl             required HealthEnum health   enum HealthEnum    HEALTH_GOOD   0   HEALTH_LOW_BATTERY   1   HEALTH_ABORT   2     two_message cpp     include  goby acomms dccl h    include  goby util binary h    include  two_message pb h    include  lt exception gt     include  lt iostream gt     using namespace goby   using goby  acomms   operator lt  lt      int main       goby   acomms  DCCLCodec amp  dccl      goby   acomms   DCCLCodec   get            field   max 10000      field   min 0    field   precision 1      field   max 10000      field   min 0     field   precision 1         validate the Simple protobuf message type as a valid DCCL message type    dccl validate lt GoToCommand gt        dccl validate lt VehicleStatus gt           show some useful information about all the loaded messages    std  cout  lt  lt  doel  lt  lt  std  endl     std  cout  lt  lt   ENCODE   DECODE example    lt  lt  std  endl        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    19 5 acomms modemdriver driver_simple driver_simple cpp    193       GoToCommand command    command  set_destination  2     command  set_goto_x  423     command  set_goto_y  523    command set_lights_on  true     command  set_new_instructions   make_toast     command  set_goto_speed  2 3456       VehicleStatus status    status set_nav_x  234 5     status set_nav_y  451 3     status set_health  
221. ons proto    import  goby acomms protobuf dccl_option_extensions proto    import  goby test acomms dccl3 header proto      message GobyMessage     option  dccl msg  id   4   option  dccl msg   max_bytes   32     required string telegram      1   dcecl field   max_length 10    required Header header   2     protobuf header proto    import  goby common protobuf option_extensions proto    import  goby acomms protobuf dccl_option_extensions proto         required fields will be filled in for you by ApplicationBase     if you choose not to do so yourself  message Header            time           result of goby  util  as lt std  string gt  goby_time           e g   2002 01 20 23 59 59 000    required string time   10   dccl field   codec  _time     dccl field   in_head true      fi      source        required string source_platform   11   dccl field   codec  _platform lt   gt modem_id     dccl field   in_head true     optional string source_app   12   dccl field   omit true              destination        enum PublishDestination   PUBLISH_SELF   1  PUBLISH_OTHER   2  PUBLISH_ALL   3      optional PublishDestination dest_type   13  default   PUBLISH_SELF   dccl field   in_head true      optional string dest_platform   14   dccl field   codec  _platform lt   gt modem_id       dccl  field   in_head true      required if dest_type    other    See Also    queue2 test cpp  queue3 test cpp  queue4 test cpp    4 4 4 Test5    queued test proto       Generated on Wed Mar 26 2014 01 41 49 for
222. ontseat_driver cpp  share examples moos abc_frontseat_driver abc_frontseat_driver h  share examples moos abc_frontseat_driver abc_frontseat_driver proto  share examples moos abc_frontseat_driver abc_frontseat_driver_config proto    share examples moos gobyexample_protobuf simple_status proto    22    22    22    22    22    22    22    22    22    22    22    22    22    22    22    22    22    22    22    22    22    22    22    22    22    22    22    22    22    22    22    22       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen       src apps moos dccl_xml_to_dccl_proto dccl_xml_to_dccl_proto cpp    14 1 File List 76  share examples util flexostream_simple flexostream_simple cpp 2   src acomms amac mac_manager cpp 2   src acomms dccl dccl cpp 2   src acomms dccl dccl_bitset cpp 2   src acomms dccl dccl_ccl_compatibility cpp 22  src acomms dccl dccl_field_codec cpp 22  src acomms dccl dccl_field_codec_arithmetic cpp 22  src acomms dccl dccl_field_codec_default cpp 22  src acomms dccl dccl_field_codec_default_message cpp 22  src acomms dccl dccl_field_codec_helpers cpp 22  src acomms dccl dccl_field_codec_manager cpp 22  src acomms dccl dccl_type_helper cpp 22  src acomms dccl WhoiUtil cpp 22  src acomms modemdriver abc_driver cpp 22  src acomms modemdriver driver_base cpp 2   src acomms modemdriver mm_driver cpp 22  src acomms modemdriver udp_driver cpp 22  src acomms queue queue cpp 2   src acomms queue queue_manager cpp 2   src acomms route route cpp 2   sr
223. orry about running out     Subclass goby  acomms  ModemDriverBase and overload the pure virtual methods  goby  acomms  Modem   DriverBase  handle_initiate_ranging is optional   Your interface should look like this     namespace goby     namespace acomms     class ABCDriver   public ModemDriverBase     public   ABCDriver      void startup const protobuf  DriverConfig amp  cfg    void shutdown      void do_work     void handle_initiate_transmission  const  protobuf  ModemTransmission amp  m      private   protobuf  DriverConfig driver_cfg_     configuration given to you  at launch     rest is up to you   y     e Fill in the methods  You are responsible for emitting the goby  acomms  ModemDriverBase signals at the  appropriate times  Read on and all should be clear        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    6 3 Writing a new driver 35           goby  acomms   ABCDriver   ABCDriver             other initialization you can do before you have your  goby  acomms  DriverConfig configuration object             At startup   you get your configuration from the application  e g  pAcommsHandler     void goby  acomms   ABCDriver  startup  const  protobuf   DriverConfig amp  cfg        driver_cfg_   cfg       check    driver_cfg_    to your satisfaction and then start the modem   physical interface  if   driver_cfg_ has_serial_baud      driver_cfg_ set_serial_baud  DEFAULT_BAUD       glog is DEBUG1   amp  amp  glog  lt  lt  group  modem_out    lt  lt   ABCDriver 
224. ossible   1  If you haven t yet  follow instructions on installing Goby  http   gobysoft com wiki    InstallingGoby   2  Identify which components you need       Encoding and decoding from C   types to bit packed messages  dccl     Queuing of DCCL messages with priority based message selection  queue     A driver for interacting with the acoustic modem firmware  modemdriver       Time division multiple access  TDMA  medium access control  MAC   amac     3  Look at the  simple  code examples that accompany each component  dccl_simple cpp  queue_simple cpp   driver_simple cpp  amac_simple cpp   Then look at the example that uses all the components together   chat cpp  The full list of examples is given in this table     4  Refer to the rest of the documentation as needed   Please visit https    answers launchpad net goby with any questions      section acomms_overview Overview     subsection analogy Analogy to established networking systems    To start on some  hopefully  common ground  let   s begin with an analogy to Open Systems Initiative  OSI  network   ing layers in this table  For a complete description of the OSI layers see http   www  itu int rec T RE           Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    2 1 Quick Start       C K 200 1 99407  1 en                                               OSI Layer Goby Acomms library API class es  Example s   component  Application Not yet part of Goby MOOS Application   pAcommsHandler  Presentation decl  Encod
225. ost_decode   const boost  any  amp  wire_value  boost  any    field_value    inline    protected    virtual     Virtual method used to post decode  convert from WireType to FieldType   The default implementation of this  method is for when WireType    FieldType and simply copies the wire_value to the field_value     Parameters       wire_value   Value to convert  WireType              field_value   Converted value  FieldType           Definition at line 364 of file dccl_field_codec h        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 13 goby  acomms  DCCLFieldCodecBase Class Reference 120       17 13 2 4 virtual void goby  acomms  DCCLFieldCodecBase  any_pre_encode   boost  any x wire_value  const boost  any  amp   field_value    inline    protected    virtual     Virtual method used to pre encode  convert from Field Type to Wire Type   The default implementation of this method  is for when WireType    FieldType and simply copies the field_value to the wire_value     Parameters       wire_value   Converted value  Wire Type        field_value   Value to convert  FieldType                 Definition at line 356 of file dccl_field_codec h     17 13 2 5 virtual unsigned goby  acomms  DCCLFieldCodecBase  any_size   const boost  any  amp  wire_value     protected    pure virtual     Virtual method for calculating the size of a field  in bits      Parameters       field_value   Value to calculate size of                Returns    Size of field  in bits     17 
226. ouble  field   float  int32  uint32   int64  uint64     fixed32  fixed64   sfixed32  sfixed64              static_value string ll goby  acomms  D  The static value for  CCLStaticCodec use on decoding   any type  this placeholder   field    max_length uint32 0 goby  acomms  D  The maximum  CCLDefaultString  length of the string  Codec  that can be stored  goby  acomms  D  in this field   CCLDefaultBytes   Codec   string    max_repeat uint32 0 any repeated The maximum  field length of the    repeated array   or vector                           3 3 Interacting with the DCCLCodec    Using the goby  acomms  DCCLCodec is a fairly straightforward endeavor  this example uses dccl_simple cpp    First you need to get a pointer to the DCCLCodec singleton     goby  acomms  DCCLCodec  codec    goby   acomms    DCCLCodec   get        Validate all messages with the DCCLCodec to ensure all bounding constraints are met     try     dccl  gt validate lt Simple gt         catch  DCCLException amp  e        std  cerr  lt  lt   Oh no     lt  lt  e  lt  lt  std  endl        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    3 4 Encryption 15       exit  1      Then  to encode a message  create a Protobuf message  set its fields and pass it to goby  acomms  DCCLCodec    encode       Simple message   message set_telegram  hello     std  string bytes   dccl  gt encode   amp bytes  message      bytes will now contain the encoded message in the form of a byte string  each char will contain 
227. ovided for users to generate applications that participate in the Goby publish subscribe architecture     16 5 1 Detailed Description    Contains objects relating to the core publish   subscribe architecture provided by Goby     16 6 goby  transitional Namespace Reference    Objects pertaining to transitioning from DCCLv1 to DCCLv2     Classes       class DCCLTransitionalCodec  provides an API to the Transitional Dynamic CCL Codec  looks like DCCLv1  but calls DCCLv2   Warning  this class  is for legacy support only  new applications should use DCCL Codec directly    e class DCCLMessageVal    defines a DCCL value    Typedefs    e typedef boost  function lt  void DCCLMessageVal  amp   gt  AlgFunction1    boost  function for a function taking a single DCCLMessageVal reference  Used for algorithm callbacks     typedef boost  function lt  void DCCLMessageVal   amp   const std  vector   lt  DCCLMessageVal  gt   amp   gt  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 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 cop_double     enum DCCLCppType    cpp_notype  cpp_bool  cpp_string  cpp_long   cpp_double    Enumeration of C   
228. p msg  and msg dest   is set to a specific endpoint  ip port  e g   192 168 1 101 5123       8 goby moos  An overview of the Goby MOOS interoperability library  Table of Contents for goby moos  An overview of the Goby MOOS interoperability library     e   FrontSeat        Writing a new driver for iFrontSeat      Overview    State charts    Example  ABC  driver    8 1 iFrontSeat    iFrontSeat is a MOOS application used to interface a Goby MOOS community  the  backseat   running pHelmlv   P with a given manufacturer s vehicle  the  frontseat    The usage of iFrontSeat and the existing driver suite is  explained in the Goby user manual  see Resources      8 1 1 Writing a new driver for iFrontSeat    8 1 1 1 Overview    iFrontSeat is intended to interface to a wide range of vehicles using any interface  e g  proprietary extensions of  NMEA 0183   The purpose of the driver is to implement the Goby FrontSeatInterfaceBase in the language of the  particular frontseat vehicle system  Minimally  these are the requirements of the frontseat     e it can provide a navigation solution for the vehicle  minimally latitude  longitude  depth  and speed   and  typically also the geo referenced pose of the vehicle  heading  pitch  yaw    e it can accept a desired heading  speed  and depth  at around 1 Hz  for the vehicle and carry out these    commands as quickly as reasonably possible given the vehicle s dynamics     Additionally  the frontseat may provide or consume       arbitrary sensor data
229. pb    Contains objects relating to the core publish   subscribe architecture provided by Goby   namespace transitional    Objects pertaining to transitioning from DCCLv1 to DCCLv2     Classes    class Exception    simple exception class for goby applications       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    16 1 goby Namespace Reference 82       Typedefs    e typedef google  protobuf  uint32 uint32  an unsigned 32 bit integer     typedef google  protobuf  int32 int32  a signed 32 bit integer     typedef google  protobuf  uint64 uint64  an unsigned 64 bit integer   e typedef google  protobuf  int64 int64  a signed 64 bit integer    Enumerations    e enum GobyFieldOptions ConfigurationOptions_ConfigAction   GobyFieldOptions_Configuration   Options_ConfigAction_ALWAYS   1  GobyFieldOptions_ConfigurationOptions_ConfigAction_NEVE   R   2  GobyFieldOptions_ConfigurationOptions_ConfigAction_ADVANCED   3      Functions      template lt typename App  gt   int run  int argc  char   argv     Run a Goby application derived from MinimalApplicationBase  blocks caller until MinimalApplicationBase  __run    returns     void protobuf_AddDesc_goby_2fcommon_2fprotobuf_2foption_5fextensions_2eproto     e void protobuf_AssignDesc_goby_2fcommon_2fprotobuf_2foption_5fextensions_2eproto       void protobuf_ShutdownFile_goby_2fcommon_2fprotobuf_2foption_5fextensions_2eproto       bool GobyFieldOptions_ConfigurationOptions_ConfigAction_IsValid  int value     const    google  protob
230. perator double  174  operator float  174  operator int  175  operator long  175  operator std  string  175  operator unsigned  175  set  175  goby  transitional  DCCLTransitionalCodec  176  all_message_ids  177  all_message_names  177  DCCLTransitionalCodec  176  get_repeat  177  id2name  177  message_count  177  message_var_names  177  name2id  177  goby  util  LineBasedInterface  178  readline  179  goby  util  SerialClient  179  SerialClient  180  goby  util  TCPClient  180  TCPClient  181  goby  util  TCPServer  181  TCPServer  182  Group  183  GroupSetter  183    handle_initiate_transmission  goby  acomms  ABCDriver  95  goby  acomms  ModemDriverBase  152  goby  moos  BluefinCommsDriver  168  goby  moos  UFldDriver  169  handle_modem_data_request  goby  acomms  QueueManager  158  handle_modem_receive  goby  acomms  QueueManager  159  hex_string2binary_string  goby  transitional  92  hex_string2number  goby  transitional  92    id  goby  acomms  DCCLCodec  101  id2name  goby  transitional  DCCLTransitionalCodec  177  id_from_encoded  goby  acomms  DCCLCodec  101  info    goby  acomms  DCCLCodec  102   goby  acomms  DCCLFieldCodecBase  124   goby  acomms  QueueManager  159  info_all   goby  acomms  DCCLCodec  102   goby  acomms  QueueManager  159    load_shared_library_codecs  goby  acomms  DCCLCodec  102    max_size  goby  acomms  DCCLDefaultldentifierCodec  109  goby  acomms  DCCLFieldCodecBase  124  goby  acomms  DCCLRepeatedTypedFieldCodec   139  message_count  goby  t
231. plication  subscribe   boost  function lt  void const  ProtoBufMessage  amp   gt  handler  boost     function lt void  const ProtoBufMessage amp    gt        const std  string 4 group        inline    protected     Subscribe to a message  of any type derived from google  protobuf  Message     Parameters       handler   Function object to be called as soon as possible upon receipt of a message of this type   The signature of handler must match  void handler const ProtoBufMessage amp  msg   if  handler is omitted  no handler is called and only the newest message buffer is updated  upon message receipt  for calls to newest lt ProtoBufMessage  gt                    Definition at line 73 of file application h     17 41 3 2 template lt typename ProtoBufMessage   class C  gt  void goby  pb  Application  subscribe   void C     const  ProtoBufMessage  amp   mem_func  C x obj  const std  string     group        inline    protected     Subscribe for a type using a class member function as the handler     Parameters       mem_func   Member function  method  of class C with a signature of void C  mem_func const ProtoBuf   Message amp  msg              obj   pointer to the object whose member function  mem_func  to call          Definition at line 89 of file application h        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 42 goby  transitional  DCCLMessageVal Class Reference 173       17 41 3 3 common  ZeroMOServiceg goby  pb  Application  zeromq_service     inline  
232. precision  for times represented by the string representation of boost  posix_time   uptime  e g  obtained from goby_time lt std  string gt            Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 20 goby  acomms  DCCLTypedFieldCodec lt  WireType  FieldType  gt  Class Template Reference 138       Template Parameters       TimeType   A type representing time  See the various specializations of goby_time   for allowed  types                 Definition at line 240 of file dccl_field_codec_default h     The documentation for this class was generated from the following file       goby acomms dccl dccl_field_codec_default h    17 20 goby  acomms  DCCLTypedFieldCodec lt  WireType  FieldType  gt  Class Template Reference    Base class for static typed  no boost  any  field encoders decoders  Most user defined variable length codecs will  start with this class  Use DCCLTypedFixedFieldCodec if your codec is fixed length  always uses the same number  of bits on the wire       include  lt goby acomms dccl dccl_field_codec_typed h gt        Inheritance diagram for goby  acomms  DCCLTypedFieldCodec lt  WireType  FieldType  gt         gobyacomms   DCCLRepeated     TypedFieldCodec lt  WireType   FeeldType  gt                       goby acomms     DCCLFieldCodecBase       goby acomms  DCCLFieldCodec goby  acomms  DCCLypedField  Selector lt  WireType  FielaType  gt        Codec lt  Wrelype  FieldType  gt                 goby  acomms  DCCLDefault  bt  NumericFieldCodec lt  
233. protobuf transmit_stat     date   20110914   time   204459 0000     clock_mode  NO_SYNC_TO_PPS_AND_CCCLK_GOOD    mode  TRANSMIT_SUCCESSFUL  probe_length  40   bandwidth  4000   carrier_freq  25120             i  modified transmission     CCMPC        CAMPC    signal_transmit_result                  ModemTransmission     src  1   dest  2   time  1316033101000000   time_source  MODEM_TIME   type  MICROMODEM_TWO_WAY_PING    micromodem protobuf ranging_reply     one_way_travel_time  0 2501        micromodem protobuf receive_stat     mode  RECEIVE_GOOD    packet_type  FSK_MINI    data_quality_factor  250  doppler  0  stddev_noise   1  carrier_freq  25120  bandwidth  4000  version  0       l     l     l              l        l  l  l  D  l  l  l              l    ODEM_TWO_WAY_PING  signal_receive        gt   type    MICROM  a    5  i                 l        l                                   l             Always pres  Often pres    Occasionally present    Figure 10  Two way ping    7 goby util  Overview of Utility Libraries    Table of Contents for goby util  Overview of Utility Libraries     e Overview    e Logging        Configurable extension of std  ostream   liblogger       TCP and Serial port communications   liblinebasedcomms     section util_overview Overview    The goby util libraries are intended to provide functions and classes for handling  utility  tasks        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    such as lc    7 goby util  Overview of Utili
234. r    gt  protobuf  EnumValueDescriptor    gt  google  protobuf  EnumValueDescriptor    gt                                            goby  acomms  DCCLFieldCodec  Selector lt  int32  TimeType  gt     goby  acomms  DCCLIypedField  Codec lt  int32  TimeType  gt     goby  acomms  DCCLIypedFixed  FieldCodec lt  int32  TimeType  gt                                   goby  acomms  DCCLFieldCodec goby  acomms  DCCLIypedField  Selector lt  Model  value_type   lt  Codec lt  Model  value_type   const google  protobuf  EnumValueDescriptor    gt  const google  protobuf    EnumValueDescriptor    gt     goby acomms  DCCLRepeated  TypedfieldCodec lt  Model  value_type  const google    protobuf  EnumValueDescriptor    gt                                                goby  acomms  DCCLFieldCodec   Selector lt  Model  value_type  goby  acomms  DCCLIypedField goby acomms  DCCLRepeated  FieldType  gt  Codec lt  Model  value_type    TypedFieldCodec lt  Model   FieldType  gt  value_type  FieldType  gt                                         goby  acomms  DCCLFieldCodec  Selector lt  protobuf  CCLMDATState goby  acomms  DCCLIypedField    GFIPItChOll  protobuf  CCLMDATState                     Codec lt  protobuf  CCLMDATState    GFIPitchOil  gt    GFIPItChOll  protobuf  CCLMDATState       goby  acomms  DCCUypedFixed  bk FieldCodec lt  protobuf  CCLMDATState                                                               GFIPitchOil  gt  iGrIPitchOll  gt       goby  acomms  DCCLFieldCodec  Selector lt 
235. r  gt   amp msgs   Returns the encoded size of multiple messages at once  sum of all sizes   You must use this method  instead of  N calls to size  where N is msgs size    to get the size of messages encoded using encode_repeated as repeated  encoding may be more efficient  in terms of the encoded message size  than N calls of encode   template lt typename GoogleProtobufMessagePointer  gt   GoogleProtobufMessagePointer decode  const std  string  amp bytes  bool header_only false   An alterative form for decoding messages for message types not known at compile time   dynamic     template lt typename GoogleProtobufMessagePointer  gt   std  string encode_repeated  const std  list lt  GoogleProtobufMessagePointer  gt   amp msgs   Encode multiple messages at once  In general this is more efficient  i e  produces smaller messages  than calling  encode repeatedly   template lt typename GoogleProtobufMessagePointer  gt   std  list   lt  GoogleProtobufMessagePointer  gt  decode_repeated  const std  string  amp orig_bytes   Decode multiple messages at once  Messages encoded using encode_repeated must be decoded using decode   _ repeated     Custom DCCL ID Codecs  Advanced     Change the underlying DCCL ID codec to optimize your network  Be very careful you know how to identify all  your messages though     template lt typename DCCLTypedFieldCodecUint32  gt   void add_id_codec  const std  string  amp identifier   Adds a DCCL id codec to be used along with a string identifier     void se
236. r auto discovery  of vehicles  Also useful for higher level analysis and debugging of the transactions between the driver and the  modem   e boost  signals2  signal lt  void const  protobuf  ModemRaw  amp msg  gt  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    Constructors Destructor    e ModemDriverBase     Constructor     Write read from the line based interface to the modem      void modem_write  const std  string  amp out    write a line to the serial port     bool modem_read  std  string xin    read a line from the serial port  including end of line character s   e void modem_start  const protobuf  DriverConfig  amp cfg        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 29 goby  acomms  ModemDriverBase Class Reference 153       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  amp  glog_out_group    const  e const std  string  amp  glog_in_group    const  e util  LineBasedInterface  amp  modem       use for direct access to the modem  Static Protected Attributes      static int count_   0    17 29 1 Detailed Description    provides an abstract base class for acoustic 
237. r holding the FlexOStreamBuf    include  lt goby common logger flex_ostream h gt     Inherits std  ostream     Public Member Functions       FlexOstream  const FlexOstream  amp       FlexOstream  amp  operator   const FlexOstream 8    e void refresh       Get a reference to the Goby logger mutex for scoped locking   e void set_group  const std  string  amp s     Initialization    e void add_group  const std  string  amp name  Colors  Color color Colors  nocolor  const std  string  amp descrip   tion        void set_name  const std  string  amp s   Set the name of the application that the logger is serving   void enable_gui     bool is  goby  common  logger  Verbosity verbosity  logger_lock  LockAction lock_action logger_lock   none   e void add_stream  logger  Verbosity verbosity logger   VERBOSE  std  ostream  os 0     Attach a stream object  e g  std  cout  std  ofstream       to the logger with desired verbosity   e void add_stream  goby  common  protobuf  GLogConfig  Verbosity verbosity goby  common  protobuf     GLogConfig   VERBOSE  std  ostream xos 0     Overloaded insert stream operator lt  lt        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 36 goby  common  FlexOStreamBuf Class Reference 165       e std  ostream 8 operator lt  lt   FlexOstream 8 x pf  FlexOstream  amp     e std  ostream 8 operator lt  lt   std  ostream  amp    pf  std  ostream  amp       std  ostream 8 operator lt  lt   bool  amp val    e std  ostream     operator lt  lt   co
238. r lt  bool  bool  gt                  goby  acomms  DCCLIypedField  Codec lt  bool  bool  gt        goby  acomms  DCCLIypedFixed  FieldCodec lt  bool  gt                    goby  acomms  DCCLFieldCodec  Selector lt  CustomMsg  CustomMsg  gt           goby  acomms  DCCLIypedField  Codec lt  CustomMsg  CustomMsg  gt           goby  acomms  DCCLIypedFixed  FieldCodec lt  CustomMsg  gt                       goby  acomms  DCCLFieldCodec  Selector lt  double  double  gt     goby  acomms  DCCLIypedField  Codec lt  double  double  gt     goby  acomms  DCCLIypedFixed                FieldCodec lt  double  gt     y                       goby acomms  DCCLFieldCodec  Selector lt  float  float  gt     goby  acomms  DCCLIypedField  Codec lt  float  float  gt     goby  acomms  DCCUypedfixed             FieldCodec lt  float  gt                   _                          goby  acomms  DCCLFieldCodec goby  acomms  DCCLIypedField goby acomms  DCCLRepeated  Selector lt  goby int32  goby fg   Codec lt  goby int32  goby  a       TypedHeldCodec lt  goby   2  gt  int32  gt                          goby acomms  DCCLFieldCodec goby  acomm   Selector lt  goby  uint32  bj Codec lt  goby   goby uint32  gt         goby  acomms  DCCLIypedFixed  FieldCodec lt  goby  uint32  gt                    goby  acomms  DCCLFieldCodec goby  acomms  DCCLIypedField goby  acomms  DCCLIypedFixed  Selector lt  int32  const google jt Codec lt  int32  const google   FieldCodec lt  int32  const  nprotobuf  EnumValueDescripto
239. r s data into frames  like TCP IP   If this functionality is desired  it must be  provided at the application layer  Acoustic communications are too unpredictable to reliably stitch together frames     Detailed documentation for goby acomms  queue  Message Priority Queuing      2 4 modemdriver  Modem driver    The goby acomms Modem driver component  nodemdriver  of the Goby Acomms library provides an interface  from the rest of goby acomms to the acoustic modem firmware  While currently the only driver publicly available  is for the WHOI Micro Modem  and for an example toy modem  ABCDriver    this component is written in such  a way that drivers for any acoustic modem that interfaces over a serial or TCP connection and can provide  or  provide abstractions for  sending data directly to another modem on the link should be able to be written  Any one  who is interested in writing a modem driver for another acoustic modem should get in touch with the goby project  https   launchpad net  goby and see Writing a new driver     Detailed documentation for goby acomms  modemdriver  Driver to interact with modem firmware      2 5 amac  Medium Access Control  MAC     The goby acomms MAC component  amac  handles access to the shared medium  in our case the acoustic channel   We assume that we have a single  frequency  band for transmission so that if vehicles transmit simultaneously   collisions will occur between messaging  Therefore  we use time division multiple access  TDMA  schemes 
240. ransitional  DCCLTransitionalCodec  177  message_var_names  goby  transitional  DCCLTransitionalCodec  177  min_size  goby  acomms  DCCLDefaultldentifierCodec  109  goby  acomms  DCCLFieldCodecBase  124  goby  acomms  DCCLRepeatedTypedFieldCodec   139  modem_read  goby  acomms  ModemDriverBase  153  modem_start  goby  acomms  ModemDriverBase  153  modem_write  goby  acomms  ModemDriverBase  153  moos_protobuf_helpers h  parse_for_moos  185  serialize_for_moos  185    name2id   goby  transitional  DCCLTransitionalCodec  177  number2hex_string   goby  transitional  92    operator bool  goby  transitional  DCCLMessageVal  174  operator double  goby  transitional  DCCLMessageVal  174  operator float  goby  transitional  DCCLMessageVal  174  operator int  goby  transitional  DCCLMessageVal  175  operator long  goby  transitional  DCCLMessageVal  175  operator std  string  goby  transitional  DCCLMessageVal  175  operator unsigned  goby  transitional  DCCLMessageVal  175    parse_for_moos  moos_protobuf_helpers h  185  post_decode  goby  acomms  DCCLFieldCodecSelector lt  Wire   Type  FieldType  typename boost  disable_if lt        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    INDEX    201       boost  is_same lt  WireType  FieldType  gt   gt    type  gt   129  pre_encode  goby  acomms  DCCLFieldCodecSelector lt  Wire   Type  FieldType  typename boost  disable_if lt   boost  is_same lt  WireType  FieldType  gt   gt    type  gt   130  push_message  goby  acomms  Qu
241. rated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    6 4 WHOI Micro Modem Driver  MMDriver    50            ModemTransmission     src  1   dest  2   type  MICROMODEM_MINI_DATA                      Application or other  Goby Modules                modemdriver1             initiate_transmission       signal_modify_transmission    A       KE    NI         ModemTransmission     src  1   dest  2   type  MICROMODEM_MINI_DATA  max_num_frames  1  max_frame_bytes  2   frame    001         modified transmission                     ModemTransmission     src  1   dest  2   type  MICROMODEM_MINI_DATA   micromodem protobuf transmit_stat       packet_type  FSK_MINI                  signal_transmit_re    sult        o 1          WHOI Micro Modem Firmware     lt                l  l     i FSK Mini  User  l  l    Key   Always present  required us  Often present  typical usa    Occasionally present  advanced or s    Figure 9  User mini packet 13 bit data transmission    Two way ping       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    7 goby util  Overview of Utility Libraries    51               ModemTransmission         src  1  dest  2  type  MICROMODEM_TWO_WAY_PING                   Application or other  Goby Modules          WHOI Micro Modem Firmwa       modemdriver1                   To          initiate_transmission    l  l   gt        si    gnal_modify_transmission       a    A         ModemTransmission    src  1  dest  2  type  MCROMODEM_TWO_WAY_PING   micromodem 
242. reType gt  virtual Bitset goby  acomms  DCCLDefault   NumericFieldCodec lt  WireType  FieldType  gt   encode   const WireType  amp  wire value    inline     protected    virtual     Encode a non empty field        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 11 goby  acomms  DCCLDefaultStringCodec Class Reference 114       Parameters       wire_value   Value to encode              Returns    Bits represented the encoded field     Implements goby  acomms  DCCLTypedFieldCodec lt  Wire Type  Field Type  gt    Definition at line 118 of file dccl_field_codec_default h     The documentation for this class was generated from the following file       goby acomms dccl dccl_field_codec_default h    17 11 goby  acomms  DCCLDefaultStringCodec Class Reference    Provides an variable length ASCII string encoder  Can encode strings up to 255 bytes by using a length byte  preceeding the string      include  lt goby acomms dccl dccl_field_codec_default h gt        Inheritance diagram for goby  acomms  DCCLDefaultStringCodec     goby  acomms  DCCLFieldCodecBase    goby  acomms  DCCLFieldCodec  Selector lt  std  string  std  ustring  gt     goby  acomms  DCCLlypedField  Codec lt  std  string  gt     goby  acomms  DCCLDefault  StringCodec       Additional Inherited Members  17 11 1 Detailed Description    Provides an variable length ASCII string encoder  Can encode strings up to 255 bytes by using a length byte  preceeding the string        Generated on Wed Mar 26 2014 01 4
243. regardless of type   e void set  long lval     set the value with a long  overwrites previous value regardless of type     void set  bool bval   set the value with a bool  overwrites previous value regardless of type        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 42 goby  transitional  DCCLMessageVal Class Reference    174       Getters    bool get  std  string  amp s  const  extract as std  string  all reasonable casts are done   bool get  bool  amp b  const  extract as bool  all reasonable casts are done   bool get  long  amp t  const  extract as long  all reasonable casts are done   bool get  double  amp d  const  extract as double  all reasonable casts are done   operator double    const  operator bool    const  operator std  string    const  operator long    const  operator int    const    operator unsigned    const  operator float    const  operator std  vector lt  DCCLMessageVal  gt     const  DCCLCppType type    const    what type is the original type of this DCCLMessage Val   bool empty    const   was this just constructed with DCCLMessageVal      unsigned precision    const    Comparison    bool operator    const DCCLMessageVal  amp mv  const    bool operator    const std  string 8s  const    bool operator    double d  const                bool operator    long    const    bool operator    bool b  const    Friends    e std  ostream  amp  operator lt  lt   std  ostream  amp os  const DCCLMessageVal  amp mv     17 42 1 Detailed Description  
244. resentation  the Google  Protobuf representation  into the WireType representation  the type used in the encoded DCCL message   This  allows for type converting codecs   void field_pre_encode_repeated  std  vector lt  boost  any  gt   wire_values  const std  vector lt  boost  any   gt   amp field_values   Pre encodes a repeated field   void field_encode  Bitset xbits  const boost  any  amp field_value  const google  protobuf  FieldDescriptor   field   Encode a non repeated field   void field_encode_repeated  Bitset   bits  const std  vector lt  boost  any  gt   amp field_values  const google     protobuf  FieldDescriptor field   Encode a repeated field   void field_size  unsigned   bit_size  const boost  any  amp field_value  const google  protobuf  FieldDescriptor   field   Calculate the size of a field   void field_size_repeated  unsigned xbit_size  const std  vector lt  boost  any  gt   amp wire_values  const google     protobuf  FieldDescriptor xfield   Calculate the size of a repeated field   void field_decode  Bitset   bits  boost  any  field_value  const google  protobuf  FieldDescriptor  field   Decode a non repeated field   void field_decode_repeated  Bitset bits  std  vector lt  boost  any  gt  x field_values  const google  protobuf     FieldDescriptor field   Decode a repeated field   void field_post_decode  const boost  any  amp wire_value  boost  any  field_value   Post decodes a non repeated  i e  optional or required  field by converting the WireType  the type 
245. roto file   This ID  is used on the wire to unique identify incoming message types    unsigned size  const google  protobuf  Message  amp msg     Provides the encoded size  in bytes  of msg  This is useful if you need to know the size of a message before encoding  it  encoding it is generally much more expensive than calling this method     17 4 1 Detailed Description    provides an API to the Dynamic CCL Codec      sa acomms_dccl proto and acomms_modem_message proto for definition of Google Protocol Buffers messages    Simple usage example    1  Define a Google Protobuf message with DCCL extensions    verbinclude simple proto   2  Write a bit of code like this     code    goby  acomms  DCCLCodec  dccl   goby  acomms  DCCLCodec  get    dccl  gt validate lt Simple gt     Simple  message_out  message_out set_telegram  Hello     std  string bytes  dccl  gt encode 8bytes  message     send  bytes across some network Simple message_in  dccl  gt decode bytes amp   message_in      Examples     acomms chat chat cpp  acomms dccl dccl_simple dccl_simple cop  and acomms dccl two_message two_   message cpp     Definition at line 96 of file dccl h        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 4 goby  acomms  DCCLCodec Class Reference 100       17 4 2 Member Function Documentation    17 4 2 1 template lt typename DCCLTypedFieldCodecUint32  gt  void goby  acomms  DCCLCodec  add_id_codec   const    std  string     identifier       inline     Adds a DCCL id codec to
246. s  DCCLRepeatedTypedFieldCodec lt   Model  value_ type  const google  protobuf  EnumValueDescriptor    gt   goby  acomms  DCCLRepeatedTyped   FieldCodec lt  goby  int32  gt   goby  acomms  DCCLDefaultNumericFieldCodec lt  WireType  FieldType  gt   goby    acomms  DCCLDefaultNumericFieldCodec lt  uint32  gt   goby  acomms  DCCLDefaultNumericFieldCodec lt  int32   const google  protobuf  EnumValueDescriptor x  gt   goby  acomms  DCCLDefaultNumericFieldCodec lt  int32  Time   Type  gt   goby  acomms  DCCLDefaultldentifierCodec  goby  acomms  DCCLTypedFixedFieldCodec lt  WireType   FieldType  gt   goby  acomms  DCCLTypedFixedFieldCodec lt  protobuf  CCLMDATState  GFIPitchOil  gt   goby    acomms  DCCLTypedFixedFieldCodec lt  double  gt   goby  acomms  DCCLTypedFixedFieldCodec lt  uint32  uint32   gt   goby  acomms  DCCLTypedFixedFieldCodec lt  float  gt   goby  acomms  DCCLTypedFixedFieldCodec lt  Custom   Msg  gt   goby  acomms  DCCLTypedFixedFieldCodec lt  T  gt   goby  acomms  DCCLTypedFixedFieldCodec lt  uint64   gt   goby  acomms  DCCLTypedFixedFieldCodec lt  int32  const google  protobuf  EnumValueDescriptor    gt   goby    acomms  DCCLTypedFixedFieldCodec lt  bool  gt   goby  acomms  DCCLTypedFixedFieldCodec lt  int32  TimeType   gt   and goby  acomms  DCCLTypedFixedFieldCodec lt  goby  uint32  gt      17 20 2 5 template lt typename WireType  typename FieldType   WireType gt  virtual unsigned goby  acomms  D   CCLTypedFieldCodec lt  WireType  FieldType  gt   size   const W
247. s Reference            0 0 00   2           164  12 361 Detailed Description   lt  lt  ns s oc ios oe a e oR a e AAA e Eh A 165  17 37goby  common  TermColor Class Reference         2    a 165  1 371 Detailed DOSCOQION   s seos 2800S Phe a Ea ee ae ae a eS 166  17 38goby  Exception Class Reference    a  ooo ee 166  17 38 1 Detailed Description  lt   lt      a esa bb bebe ewe eh ee eee ee 166  17 39goby  moos  BluefinCommsDriver Class Reference        0    o       ee eee eee 167  17 391 Detailed Deacon   lt  s e i ee ee Ce ee A AR Ae ke 167  17 39 2 Member Function Documentation             e    e    a 167  17 40goby  moos  UFldDriver Class Reference              o              2  e    168  11401 Detailed DESCQUIT coria o aa eee a a RA A 169  17 40 2 Member Function Documentation             e    eee a 169  17 41 goby  pb  Application Class Reference             e      e    ee 170  17411 DOTA BESCOQUOT   lt A ARE ee a Aa 171  17 41 2 Constructor  amp  Destructor Documentation              o    2 02200 e    e    171  17 41 3 Member Function Documentation             002 e    e  e    171  17 42goby  transitional  DCCLMessageVal Class Reference            o    e    pees 172  11421 Detailed Descrmpliony   lt  oic aoa uy aa da ada 173  17 42 2 Member Function Documentation               e    e    e    eo    173  17 43goby  transitional  DCCLTransitionalCodec Class Reference            o    o         176  1743 1 Detailed Description  ies  ceci a ee eS 176  17 43 2 Constructor  amp  
248. s Reference 179       17 43 3 7 unsigned goby  transitional  DCCLTransitionalCodec  name2id   const std  string  amp  name    inline     Parameters             name   message name          Returns    id of message    Definition at line 151 of file dccl_transitional h   The documentation for this class was generated from the following files     goby moos transitional dccl_transitional h    e src moos transitional dccl_transitional cpp    17 44 goby  util  LineBasedinterface Class Reference    basic interface class for all the derived serial  and networking mimics  line based nodes  serial  tcp  udp  etc     include  lt goby util linebasedcomms interface h gt     Inheritance diagram for goby  util  LineBasedInterface        goby  util  LineBasedInterface        goby  util  TCPServer    Public Types    e enum AccessOrder   NEWEST_FIRST  OLDEST_FIRST      Public Member Functions      LineBasedinterface  const std  string  amp delimiter    e void start      e void close        bool active        bool readline  std  string xs  AccessOrder order OLDEST_FIRST   returns string line  including delimiter      bool readline  protobuf  Datagram   msg  AccessOrder order OLDEST_FIRST    e void write  const std  string  amp s    e void write  const protobuf  Datagram 8msg    e void clear      e void set_delimiter  const std  string  amp s    e std  string delimiter    const     boost  asio  io_service  amp  io_service          Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    1
249. s UF1ldNodeComms    Definition at line 45 of file moos_ufield_sim_driver h     17 40 2 Member Function Documentation    17 40 2 1 void goby  moos  UFldDriver  do_work     virtual     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   Definition at line 209 of file moos_ufield_sim_driver cpp     17 40 2 2 void goby  moos  UFldDriver  handle_initiate_transmission   const goby  acomms  protobuf  ModemTransmission  amp   m   virtual     Virtual initiate_transmission method  Typically connected to MACManager  signal_initiate_transmission   using  bind          Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 41 goby  pb  Application Class Reference 171       Parameters       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     Definition at line 91 of file moos_ufield_sim_driver cpp   17 40 2 3 void goby  moos  UFldDriver  startup   const goby  acomms  protobuf  DriverConfig  amp  cfg   virtual     Starts the modem driver  Must be called before poll     
250. s like boost  shared_ptr included                 Parameters          msgs   list of DCCL messages to get the sizes of             Returns  total size of the encoded messages in bytes  Definition at line 259 of file decl h   17 4 2 15 template lt typename ProtobufMessage  gt  void goby  acomms  DCCLCodec  validate     inline     All messages must be validated  size checks  option extensions checks  etc   before they can be encoded decoded   Use this form when the messages used are static  known at compile time      Template Parameters       ProtobufMessage   Any Google Protobuf Message generated by protoc  i e  subclass of google  protobuf     Message                 Exceptions       DCCLException   if message is invalid  Warnings and errors are written to goby  glog                 Examples     acomms chat chat cpp  acomms dccl dccl_simple dccl_simple cop  and acomms dccl two_message two_   message cpp     Definition at line 135 of file dccl h        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 5 goby  acomms  DCCLDefaultBoolCodec Class Reference 105       17 4 2 16 void goby  acomms  DCCLCodec  validate   const google  protobuf  Descriptor x desc      An alterative form for validating messages for message types not known at compile time   dynamic       Parameters       desc   The Google Protobuf  Descriptor   meta data  of the message to validate                 Exceptions       DCCLException   if message is invalid                 Definition at line 3
251. s the default 1 byte or 2 byte DCCL ID codec   e class DCCLDefaultNumericFieldCodec  Provides a basic bounded arbitrary length numeric  double  float  uint32  uint64  int32  int64  encoder     class DCCLDefaultBoolCodec  Provides a bool encoder  Uses 1 bit if field is required  2 bits if optional  e class DCCLDefaultStringCodec       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen       16 2 goby  acomms Namespace Reference 84       Provides an variable length ASCII string encoder  Can encode strings up to 255 bytes by using a length byte pre   ceeding the string        class DCCLDefaultBytesCodec    Provides an fixed length byte string encoder       class DCCLDefaultEnumCodec  Provides an enum encoder  This converts the enumeration to an integer  based on the enumeration index  not its  value  and uses DCCLDefaultNumericFieldCodec to encode the integer      class DCCLTimeCodec  Encodes time of day  second precision  for times represented by the string representation of boost  posix_time  ptime   e g  obtained from goby_time lt  std   string gt         e class DCCLStaticCodec    Placeholder codec that takes no space on the wire  0 bits     e class DCCLDefaultMessageCodec  Provides the default codec for encoding a base Google Protobuf message or an embedded message by calling the  appropriate field codecs for every field    e class DCCLTypedFixedFieldCodec  Base class for static typed field encoders decoders that use a fixed number of bits on the wire regardless o
252. se class for  repeated   multiple value  static typed  no boost  any  field encoders decoders  Most user defined  variable length codecs will start with this class  Use DCCL TypedFixedFieldCodec if your codec is fixed length  always  uses the same number of bits on the wire   Use DCCLTypedFieldCodec if your fields are always singular   optional   or  required    Singular fields are default implemented in this codec by calls to the equivalent repeated function with  an empty or single valued vector       class goby  acomms  DCCLCodec  provides an API to the Dynamic CCL Codec     15 1 1 Detailed Description    15 2 API classes for the major components of the Goby Acomms acoustic communications library  DCCL   Queue  AMAC  ModemDriver      Collaboration diagram for API classes for the major components of the Goby Acomms acoustic communications  library  DCCL  Queue  AMAC  ModemDriver          API classes for the API classes for the    major components of i da i  fina Gale Naam consie _goby  acomms  DCCLCodec   Dynamic Compact Control    Language  includes writing    communications library custom encoders      DCCL  Queue  AMAC  ModemDriver               Classes      class goby  acomms  ABCDriver    provides an API to the imaginary ABC modem  as an example how to write drivers        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    16 Namespace Documentation 81       15 2 1    16    16 1    class goby  moos  BluefinCommsDriver    provides a driver for the Bluefin H
253. se message           Definition at line 219 of file dccl_field_codec cpp     17 13 2 20 void goby  acomms  DCCLFieldCodecBase  field min_size   unsigned   bit size  const  google  protobuf  FieldDescriptor x field      Calculate the lower bound on this field s size  in bits     Parameters       bit_size   Location to add calculated minimum bit size to  Be sure to zero bit_size if you want only  the size of this field              field   Protobuf descriptor to the field  Set to O for base message           Definition at line 249 of file dccl_field_codec cpp     17 13 2 21 void goby  acomms  DCCLFieldCodecBase  field post decode   const boost  any 4 wire_value  boost  any    field_value    inline     Post decodes a non repeated  i e  optional or required  field by converting the WireType  the type used in the    encoded DCCL message  representation into the FieldType representation  the Google Protobuf representation    This allows for type converting codecs     Parameters       wire_value   Should be set to the desired value to translate             field_value   Will be set to the converted wire_value          Definition at line 264 of file dccl_field_codec h     17 13 2 22 void goby  acomms  DCCLFieldCodecBase  field_post_decode_repeated   const std  vector lt  boost  any  gt   amp   wire_values  std  vector lt  boost  any  gt    field_values    inline     Post decodes a repeated field        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 13 goby  acomms
254. se_for_moos   const std  string     in  google  protobuf  Message x msg    inline     Parses the string in to Google Protocol Buffers message msg  All errors are written to the goby  util  glogger       Parameters       in   std  string to parse       msg   Google Protocol buffers message to store result                Definition at line 1286 of file moos_protobuf_helpers h   18 1 2 2 void serialize_for_moos   std  string   out  const google  protobuf  Message  amp  msg    inline     Converts the Google Protocol Buffers message msg into a suitable  human readable  string out for sending via  MOOS     Parameters       out   pointer to std  string to store serialized result             msg   Google Protocol buffers message to serialize          Definition at line 1277 of file moos_protobuf_helpers h     19 Example Documentation       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    19 1 acomms amac amac_simple amac_simple cpp    187       19 1 acomms amac amac_simple amac_simple cpp     include  goby acomms amac h    include  goby acomms connect h    include  goby common logger h      include  lt iostream gt   using goby  acomms   operator lt  lt    void init_transmission const goby  acomms   protobuf  ModemTransmission amp  msg      int main int argc  char   argv        goby   glog set_name  argv 0     goby  glog add_stream goby  common  logger  DEBUG1   amp   std  clog      fi      1  Create a MACManager   fi   goby   acomms    MACManager mac             2  Con
255. signal lt  lt void  const protobuf  ModemRaw amp  msg  gt  goby  acomms  ModemDriverBase  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     If desired  you should connect one or more slots  a function or member function  to this signal to listen on outgoing  transactions  Use the goby  acomms  connect family of functions to do this  This signal will only be called during a  call to poll  ModemRaw is defined in acomms_modem_message proto     Definition at line 114 of file driver_base h     17 29 3 5 boost  signals2  signal lt void  const protobuf  ModemTransmission amp  message   gt   goby  acomms  ModemDriverBase  signal_receive    Called when a binary data transmission is received from the modem     You should connect one or more slots  a function or member function  to this signal to receive incoming messages   Use the goby  acomms  connect family of functions to do this  This signal will only be called during a call to poll        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 30 goby  acomms  QueueException Class Reference 156       ModemDataTransmission is defined in acomms_modem_message proto     Examples     acomms modemdriver driver_simple driver_simple cpp     Definition at line 82 of file driver_base h     17 29 3 6 boost  signals2  signal lt void  const protobuf  ModemTransmission amp  message   gt   gob
256. simple  dev tty_of_modem_A 1 ABCDriver      gt  driver_simple  dev tty_of_modem_B 2 ABCDriver     Also see abc_modem_simulator cpp     include  goby acomms modem_driver h    include  goby util binary h    include  goby common logger h    include  goby acomms connect h      include  lt iostream gt     using goby  acomms  operator lt  lt      void handle_data_receive const goby  acomms   protobuf   ModemTransmission amp     data_msg          Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    19 5 acomms modemdriver driver_simple driver_simple cpp 194       int main int argc  charx  argv        if  arge  lt  3      std  cout  lt  lt   usage  driver_simple  dev tty_of_modem modem_id  type   MMDriver  default   ABCDriver    lt  lt  std  endl   return 1                 1  Create and initialize the driver we want       goby   acomms    ModemDriverBase  driver   0   goby   acomms  protobuf  DriverConfig cfg        set the serial port given on the command line  cfg set_serial_port  argv 1      using google   protobuf   uint32       set the source id of this modem   uint32 our_id   goby  util  as lt uint32 gt  argv 2     cfg set_modem_id our_id      goby  glog set_name  argv 0     goby  glog add_stream goby    common   logger   DEBUG2       std   clog      if  argc    4   1  if  boost   iequals  argv 3   ABCDriver         std  cout  lt  lt   Starting Example driver ABCDriver   lt  lt  std  endl   driver   new goby  acomms   ABCDriver             default to WHOI MicroModem 
257. smission   amp     const google  protobuf   Message   amp      void monitor_mac  const goby  acomms   protobuf  ModemTransmission amp  mac_msg       std  ofstream fout_   goby  acomms  DCCLCodec  dccl_     goby   acomms    DCCLCodec   get      goby  acomms  QueueManager q_manager_   goby  acomms  MMDriver mm_driver_   goby   acomms    MACManager mac_   ChatCurses curses_   int my_id_   int buddy_id_     int main int argc  char  argv            fe      Deal with command line parameters        if arge    5  return startup_failure       std  string serial_port   argv 1      try       my_id_   boost  lexical_cast lt int gt  argv 2     buddy_id_   boost  lexical_cast lt int gt  argv 3          catch  boost   bad_lexical_cast   amp           std  cerr  lt  lt   bad value for my_id        lt  lt  argv 2     messages will be queued     lt  lt    or buddy_id      lt  lt        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    19 2 acomms chat chat cpp 189       argv 3   lt  lt     these must be unsigned integers    lt  lt  std  endl   return startup_failure          std  string log_file   argv 4     fout_ open log_file c_str       if   fout_ is_open         std  cerr  lt  lt   bad value for log_file     lt  lt  log_file  lt  lt  std  endl   return startup_failure  j         tf      Initialize logging        goby   glog add_stream goby  common  logger  DEBUG1      fout_     goby  glog set_name  argv 0          bind the signals of these libraries  bind  mm_driver_  q_manag
258. smission   micromodem  protobuf  remus_lbl  with the latter  taking priority on fields that a set in both objects   GRP   1   CHANNEL   modem ID   4   1  use four consecutive  modem IDs if you need multiple vehicles pinging    SF  0   STO  0   Timeout   micromodem  protobuf  REMUSLBL   Params  lbl_max_range   m  2  1500 m s    1000  ms s   micromodem  protobuf  REMUSLBLParams    turnaround_ms    goby  acomms  protobuf  ModemRangingRequest    enable_beacons   is a set of four bit flags where the  least significant bit is AF enable  most significant bit is  DF enable  Thus b1111    OxOF enables all beacons  AF   micromodem  protobuf  REMUSLBLParams    enable_beacons    gt  gt  0 4 1   BF   micromodem  protobuf  REMUSLBLParames     enable_beacons    gt  gt  1 8 1   CF   micromodem  protobuf  REMUSLBLParams     enable_beacons    gt  gt  2  amp  1   DF   micromodem  protobuf  REMUSLBLParams    enable_beacons    gt  gt  3  amp  1          Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    6 4 WHOI Micro Modem Driver  MMDriver    44           CCPNT          protobuf  MICROMODEM_NARROWBAND_LBL_RA   NGING     goby  acomms  protobuf  ModemTransmission type    micromodem  protobuf  NarrowBandLBLParams type  used to determine the parameters of the LBL ping   The object provided with configuration   micromodem  protobuf  Config  narrowband_lbl  is  merged with the object provided with the  ModemTransmission   micromodem  protobuf  narrowband_lbl  with the  latter taking prior
259. ssage BytesMsg      option  dccl msg  id   10    option  dccl msg   max_bytes   32     required bytes req bytes   1   dccl field   max_length 8    optional bytes opt_bytes   2   dccl field   max_length 8      See Also    dccl7 test cpp       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    3 5 Example messages    22       3 5 9 DCCL Test8  dccl8 test proto    import  goby acomms protobuf dccl_option_extensions proto    import  goby test acomms dccl3 header proto      message GobyMessagel     option  dccl msg  id   4   option  dccl msg  max_bytes   32     optional int32 int32_val   1   dccl field  min 0   dccl field   max 20      message GobyMessage2     option  dccl msg  id   5   option  dccl msg  max_bytes   32     optional bool bool_val   1     message GobyMessage3     option  dccl msg  id   6   option  dccl msg  max_bytes   32     optional string string_val   1   dccl field  max_length 10      See Also    dccl8 test cpp    3 5 10 DCCL Test9  dccl9 test proto    import  goby acomms protobuf dccl_option_extensions proto      message MiniUser      option  dccl msg  id   1000001   option  dccl msg   max_bytes   2     required uint32 user   1   dccl field   min 0    dccl  field   max 0x03FF    dcecl field   in_head true      message MiniOWTT       option  dccl msg  id   1000002     option  dccl msg  max_bytes   2   required uint32 clock_mode   1   dccl field   min 0    dccl  field   max 3    dccl  field   in_head true      required uint32 tod   2   dccl field   m
260. ssion  frame_size    lt  3       s  src  1  gt   dest  2   requested data    A    signal_transmit_result    WHOI Micro Modem Firmware           CCCYC        CACYC             N  l  l     l     l  l  l  l  l       type    ACK  signal_receive       5  l  l  l           gt    CATXD  2x   Seas 3 SSS ail   CADRQ      gt    CATXD    a   CATXP     o M  PsK  cv      CATXF  Se Soe oes eS eS Se 1  CAXST  A A A              l      CAACK  3x  PSKMIN  o ad le   CACST    sal                           Key     Always present  rec  Often present  typ  Occasionally present  advan       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen                                           6 4 WHOI Micro Modem Driver  MMDriver 48  Application or other   WHOI Mic    ModemTransmission   by Modules modemdriver1 A  src  1    type  MICROMODEM_NARROWBAND_LBL_RANGING   micromodem protobuf narrowband_lbl      transmit_freq  26000   transmit_ping_ms  5   receive_freq  25000   receive_ping_ms  5   turnaround_ms  20   transmit_flag  true   Ibl_max_range  1000                  ModemTransmission    src  1  time  1316033104000000  time_source  MODEM_TIME  type  MICROMODEM_NARROWBAND_LBL_RANGING   micromodem protobuf ranging_reply     one_way_travel_time  0 9216  one_way_travel_time  0 5920  one_way_travel_time  nan  one_way_travel_time  nan                        Goby Modules  T  initiate_transmission l    signal_modify _ transmission    S i  1 modified transmission    sos ona ee re  i  CCCFG TAT  if needec   
261. st  any containing the value to set  The type is usually the type required  by  google  protobuf  Reflection  Set lt i gt Type where Type is the corresponding  google  protobuf  FieldDescriptor  CppType   See http   code google      com apis protocolbuffers docs reference cpp google protobuf    message html Reflection                  Definition at line 205 of file protobuf_cpp_type_helpers h     The documentation for this class was generated from the following file       goby acomms dccl protobuf_cpp_type_helpers h    17 25 goby  acomms  FromProtoCustomMessage lt  CustomMessage  gt  Class Template Reference    Implements FromProtoCppTypeBase for CPPTYPE_MESSAGE using a specific statically generated Protobuf class    include  lt goby acomms dccl protobuf_cpp_type_helpers h gt     Inheritance diagram for goby  acomms  FromProtoCustomMessage lt  CustomMessage  gt      goby  acomms  FromProtoCpp    goby  acomms  FromProtoCpp Type lt  google  protobuf goby  acomms  FromProtoCustom  TypeBase   FieldDescriptor  CPPTYPE Message lt  CustomMessage  gt     _MESSAGE  gt              Public Types      typedef CustomMessage type       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 26 goby  acomms  FromProtoTypeBase Class Reference 147       Additional Inherited Members  17 25 1 Detailed Description  template  lt typename CustomMessage gt  class goby  acomms  FromProtoCustomMessage lt  CustomMessage  gt     Implements FromProtoCppTypeBase for CPPTYPE_MESSAGE using a spe
262. t  lt   o 62 oka ar a a RA A 185   18 1 2 FUNCION DeGuInentallOn ps c i cei see eee a a por a Be El ROE ae ae a dew E 185   19 Example Documentation 185  19 1 acomms amac amac_simple amac_simple cpp     2    0  ee     e    o    186  192 ACAMINMSENADONALOND  o o c es e A A AA E A 187  19 3 acomms dccl  dccl_simple dccl_SsimMple Cpp             lt   lt    lt o     o        2    em  190  19 4 acomms dccl two_message two_message cpp       2    a a a 191  19 5 acomms modemdriver driver_simple driver_simple cop         0    e    eee 192  19 6 acomms queue queue_simple queue_simple cop         o      e           ee 194    1    Goby Underwater Autonomy Project    The Goby Underwater Autonomy Project aims to create a unified framework for multiple scientific autonomous ma   rine vehicle collaboration  seamlessly incorporating acoustic  ethernet  wifi  and serial communications  Presently  the main thrust of the project is developing a set of robust acoustic networking libraries  The Goby libraries are  licensed under the GNU Lesser General Public License v3 http    www gnu org licenses lgpl    html and the applications are licensed under the GNU General Public License v3 http    www gnu     org licenses gpl html     1 1    1 2    Resources    Home page  code  bug tracking  and answers  https    launchpad net goby   User Manual   pdf    Developers    Manual   html   pdf      Wiki  http    gobysoft com wiki     Developer manual    goby acomms  An overview of Acoustic Communications Libr
263. t following this manipulator is cyan  e g  std  cout  lt  lt  cyan  lt  lt   text     e std  ostream     It_cyan  std  ostream  amp os     All text following this manipulator is light cyan  e g  std  cout  lt  lt  It_cyan  lt  lt   text     e std  ostream     white  std  ostream  amp os     All text following this manipulator is white  e g  std  cout  lt  lt  white  lt  lt   text     e std  ostream  amp  It_white  std  ostream  amp os     All text following this manipulator is bright white  e g  std  cout  lt  lt  It_white  lt  lt   text     e std  ostream  amp  nocolor  std  ostream  amp os     All text following this manipulator is uncolored  e g  std  cout  lt  lt  green  lt  lt   green   lt  lt  nocolor  lt  lt   uncolored       16 4 1 Detailed Description    Contains functions for adding color to Terminal window streams     16 4 2 Function Documentation    16 4 2 1  std  ostream     goby  common  tcolor  add_escape_code   std  ostream  amp  os  const std  string  amp  esc_code      Append the given escape code to the stream os    Parameters       os   ostream to append to             esc_code   escape code to append  e g    33 31m               Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    16 5 goby  pb Namespace Reference 90       Definition at line 29 of file term_color cpp     16 5 goby  pb Namespace Reference    Contains objects relating to the core publish   subscribe architecture provided by Goby     Classes    e class Application    Base class pr
264. t_id_codec  const std  string  amp identifier   Sets the DCCL id codec currently in use   void reset_id_codec     Resets the DCCL id codec currently in use to the default     const std  set lt  unsigned  gt   amp  skip_crypto_ids          Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 4 goby  acomms  DCCLCodec Class Reference 99       Static Public Member Functions    static DCCLCodec   get     DCCLCodec is a singleton class  use this to get a pointer to the class   Static Public Attributes    e static const std  string DEFAULT_CODEC_NAME        Friends    e template lt typename T  gt   void boost  checked_delete  T       Informational Methods     Provides various forms of information about the DCCLCodec    e static const std  string     glog_encode_group       The group name for goby  glog that all encoding related messages are written   static const std  string  amp  glog_decode_group       The group name for goby  glog that all decoding related messages are written     template lt typename ProtobufMessage  gt   void info  std  ostream x os  const   Writes a human readable summary  including field sizes  of the provided DCCL type to the stream provided   void info_all  std  ostream  os  const    Writes a human readable summary  including field sizes  of all the loaded  validated  DCCL types     template lt typename ProtobufMessage  gt    unsigned id    const  Gives the DCCL id  defined by the custom message option extension   goby msg  dccl id  in the  p
265. ted  121  field_info  122  field_max_size  122  field_min_size  122  field_post_decode  122  field_post_decode_repeated  122  field_pre_encode  123  field_pre_encode_repeated  123  field_size  123  field_size_repeated  123  field_type  124  field_validate  124  info  124  max_size  124  min_size  124  require  125  this_descriptor  125  this_field  125  wire_type  125  goby  acomms  DCCLFieldCodecManager  126  add  127  find  127  goby  acomms  DCCLFieldCodecSelector lt  WireType   FieldType  Enable  gt   128  goby  acomms  DCCLRepeatedTypedFieldCodec  decode  132  encode  132  133  max_size  133  min_size  133  size  133  134  goby  acomms  DCCLRepeatedTypedFieldCodec lt   WireType  FieldType  gt   130  goby  acomms  DCCLStaticCodec lt  T  gt   134  goby  acomms  DCCLTimeCodec lt  TimeType  gt   135  goby  acomms  DCCLTypeHelper  141  goby  acomms  DCCLTypedFieldCodec  decode  138  encode  138  size  139  goby  acomms  DCCLTypedFieldCodec lt   FieldType  gt   137  goby  acomms  DCCLTypedFixedFieldCodec lt   Type  FieldType  gt   140  goby  acomms  FromProtoCppTypeBase  143  add_value  144  get_repeated_value  144  get_value  144  set_value  145  goby  acomms  FromProtoCustomMessage lt  Custom   Message  gt   145    WireType     Wire     goby  acomms  FromProtoTypeBase  146  goby  acomms  MACManager  146  signal_initiate_transmission  148  startup  148  goby  acomms  MMDriver  148  startup  150  goby  acomms  ModemDriverBase  150  do_work  152  handle_initiate_transmission  1
266. ted on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    6 4 WHOI Micro Modem Driver  MMDriver    39           CAMSG    Used only to detect BAD_CRC frames    CAMSG BAD_CRC       in extension  micromodem  protobuf  frame_with_bad_crc   micromodem  protobuf  frame_with_bad_crc n     Frame with BAD CRC  assumed next frame after last  good frame   n is an integer 0 1 2     indicating the nth  reported BAD_CRC frame for this packet   not the  frame number         CAACK    goby  acomms  protobuf  ModemTransmission time      goby  common  goby_time lt uint64 gt     goby  acomms  protobuf  ModemTransmission src      SRC  goby  acomms  protobuf  ModemTransmission dest      DEST    first CAACK for a given packet  goby  acomms     protobuf  ModemTransmission acked_frame 0     Frame  1  Goby starts counting at frame 0  WHO   starts with frame 1     second CAACK for a given packet  goby  acomms     protobuf  ModemTransmission acked_frame 1     Frame  1    third CAACK for a given packet  goby  acomms     protobuf  ModemTransmission acked_frame 2     Frame  1        CAMUA    goby  acomms  protobuf  ModemTransmission type      goby  acomms  protobuf  ModemTransmission  MI   CROMODEM_MINI_DATA  goby  acomms  protobuf  ModemTransmission time      goby  common  goby_time lt uint64 gt     goby  acomms  protobuf  ModemTransmission src      SRC  goby  acomms  protobuf  ModemTransmission dest      DEST  goby  acomms  protobuf  ModemTransmission    frame 0    goby  util  nex_decode HHHH         CAM
267. terface h 22  goby common pubsub_node wrapper h 22  goby common time h 22  goby common zeromq_application_base h 2   goby common zeromq_service h 22  goby common logger flex_ncurses h 22  goby common logger flex_ostream h 22  goby common logger flex_ostreambuf h 22  goby common logger logger_manipulators h 22  goby common logger term_color h 22  goby common protobuf app_base_config pb h 22  goby common protobuf app_base_config proto 2   goby common protobuf liaison_config pb h 22   22       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen       14 1 File List 71  goby common protobuf logger pb h 22  goby common protobuf logger proto 2   goby common protobuf option_extensions pb h 22  goby common protobuf option_extensions proto 22  goby common protobuf pubsub_node_config pb h 22  goby common protobuf pubsub_node_config proto 2   goby common protobuf zero_mq_node_config pb h 22  goby common protobuf zero_mq_node_config proto 2   goby moos dynamic_moos_vars h 22  goby moos goby_moos_app h 22  goby moos liaison_commander h 22  goby moos liaison_geodesy h 22  goby moos liaison_scope h 22  goby moos modem_id_convert h 22  goby moos moos_bluefin_driver h 22  goby moos moos_geodesy h 22  goby moos moos_header h 22  goby moos moos_liaison_load h 22  goby moos moos_node h 22  goby moos moos_protobuf_helpers h   Helpers for MOOS applications for serializing and parsed Google Protocol buffers messages 184  goby moos moos serializer h 22  goby moos moos_string h 22  goby moos
268. the base message   e void base_size  unsigned xbit_size  const google  protobuf  Message  amp msg  MessageHandler  Message   Part part   Calculate the size  in bits  of a part of the base message when it is encoded   e void base_decode  Bitset   bits  google  protobuf  Message   msg  MessageHandler  MessagePart part        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 13 goby  acomms  DCCLFieldCodecBase Class Reference 117       Decode part of a message   void base_max_size  unsigned xbit_size  const google  protobuf  Descriptor  desc  MessageHandler     MessagePart part   Calculate the maximum size of a message given its Descriptor alone  no data   void base_min_size  unsigned xbit_size  const google  protobuf  Descriptor   desc  MessageHandler     MessagePart part   Calculate the minimum size of a message given its Descriptor alone  no data   void base_validate  const google  protobuf  Descriptor   desc  MessageHandler  MessagePart part   Validate this part of the message to make sure all required extensions are set   void base_info  std  ostream xos  const google  protobuf  Descriptor   desc  MessageHandler  Message   Part part   Get human readable information  size of fields  etc   about this part of the DCCL message     Field functions  primitive types and embedded messages     void field_pre_encode  boost  any  wire_value  const boost  any  amp field_value   Pre encodes a non repeated  i e  optional or required  field by converting the FieldType rep
269. the field is empty  i e  was encoded using the zero argument encode     throw DCCLNullValue   Exception to indicate this     Parameters          bits   Bits to use for decoding              Returns    the decoded value     Implements goby  acomms  DCCLTypedFieldCodec lt  WireType  FieldType  gt    Definition at line 241 of file dccl_field_codec_typed h        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 17 goby  acomms  DCCLRepeatedTypedFieldCodec lt  WireType  FieldType  gt  Class Template  Reference 134       17 17 2 2 template lt typename WireType  typename FieldType   WireType gt  virtual Bitset goby  acomms     DCCLRepeatedTypedFieldCodec lt  WireType  FieldType  gt   encode      inline     virtual     Encode an empty field     Returns  Bits represented the encoded field   Implements goby  acomms  DCCLTypedFieldCodec lt  Wire Type  Field Type  gt    Definition at line 227 of file dccl_field_codec_typed h   17 17 2 3  template lt typename WireType  typename FieldType   WireType gt  virtual Bitset goby  acomms  DCCL   RepeatedTypedFieldCodec lt  WireType  FieldType  gt   encode   const WireType  amp  wire_value    inline       virtual     Encode a non empty field     Parameters       wire_value   Value to encode                 Returns    Bits represented the encoded field     Implements goby  acomms  DCCLTypedFieldCodec lt  WireType  Field Type  gt    Definition at line 234 of file decl_field_codec_typed h     17 17 2 4 template lt typename WireType 
270. them      include  lt goby acomms dccl dccl_field_codec_typed h gt        Inheritance diagram for goby  acomms  DCCLFieldCodecSelector lt  WireType  FieldType  Enable  gt         goby  acomms  DCCLFieldCodecBase    goby  acomms  DCCLFieldCodec  Selector lt  Wirelype  FieldType   Enable  gt     Additional Inherited Members  17 15 1 Detailed Description    template  lt typename WireType  typename FieldType  class Enable   void gt class goby  acomms  DCCLFieldCodecSelector lt  Wire   Type  FieldType  Enable  gt     if WireType    FieldType  we don t have to add any more virtual methods for converting between them   Definition at line 37 of file dccl_field_codec_typed h     The documentation for this class was generated from the following file       goby acomms dccl dccl_field_codec_typed h       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 16 goby  acomms  DCCLFieldCodecSelector lt  WireType  FieldType  typename boost  disable_if lt   boost  is_same lt  WireType  FieldType  gt   gt   type  gt  Class Template Reference 130       17 16 goby  acomms  DCCLFieldCodecSelector lt  WireType  FieldType  typename boost  disable_if lt   boost  is_same lt  WireType  FieldType  gt   gt   type  gt  Class Template Reference    If WireType    FieldType  adds some more pure virtual methods to handle the type conversions  pre_encode   and  post_decode     If WireType    FieldType this class is not inherited and this pure virtual methods do not exist  and  thus can be omitted
271. this class was generated from the following files       goby acomms amac mac_manager h    src acomms amac mac_manager cpp    17 28 goby  acomms  MMDriver Class Reference    provides an API to the WHOI Micro Modem driver     include  lt goby acomms modem_driver h gt        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 28 goby  acomms  MMDriver Class Reference    150       Inheritance diagram for goby  acomms  MMDriver        goby  acomms  ModemDriverBase        goby  acomms  MMDriver    Public Member Functions    e MMDriver       Default constructor   e  MMDriver       Destructor   e void startup  const protobuf  DriverConfig  amp cfg     Starts the driver   e void shutdown       Stops the driver   e void do_work       See ModemDriverBase  do_work    e void handle_initiate_transmission  const protobuf  ModemTransmission  amp m     See ModemDriverBase  handle_initiate_transmission      int clk_mode       Current clock mode of the modem  necessary for synchronous navigation   e bool is_started    const  e void set_silent  bool silent     Static Public Member Functions    e static unsigned packet_frame_count  int rate   e static unsigned packet_size  int rate     Additional Inherited Members  17 28 1 Detailed Description    provides an API to the WHOI Micro Modem driver    Examples     acomms chat chat cpp  and acomms modemdriver driver_simple driver_simple cpp     Definition at line 42 of file mm_driver h        Generated on Wed Mar 26 2014 01 41 49 for Goby
272. tion   1      size   5 bit s   required int32 goto_x   3      size   14 bit s   required int32 goto_y   4      size   14 bit s   required bool lights_on   5      size   1 bit s   required string new_instructions   6     user head  0  body  131  padding  5        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    3 2 DCCL Protobuf Options    13         min size   8 bit s      max size   88 bit s   required double goto_speed   7      size   9 bit s     min size   51 bit s      max size   131 bit s      End Body         End GoToCommand      Begin VehicleStatus      Actual maximum size of message  6 bytes   48 bits  dccl id head     Allowed maximum size of message  32 bytes   256 bits     Begin Header        End Header        Begin Body     VehicleStatus  required double nav_x   1   size   17 bit  s   required double nav_y   2      size   17 bit s   required  VehicleStatus HealthEnum health   3      Size   2 bit s      size   36 bit s      End Body       End VehicleStatus        End DCCLCodec        8  user head  0  body  36  padding     Besides validity checking  the most useful feature of anal yze_dccl is the calculation of the size  in bits  of each  message variable  This lets you see which fields in the message are too big  To make fields smaller  tighten up    bounds     3 2 DCCL Protobuf Options    This section gives an overview of the DCCL message and field options available for use with DCCL and the default  field codecs  The full list is available in option
273. tobuf     Message                 Definition at line 76 of file queue_manager h   17 31 2 2 void goby  acomms  QueueManager  flush_queue   const protobuf  QueueFlush  amp  flush      Flush  delete all messages in  a queue     Parameters       flush   QueueFlush object containing details about queue to flush                Definition at line 159 of file queue_manager cpp   17 31 2 3 void goby  acomms  QueueManager  handle_modem_data_request   protobuf  ModemTransmission x msg      Finds data to send to the modem     Data from the highest priority queue s  will be combined to form a message equal or less than the size requested  in ModemMessage message_in  If using one of the classes inheriting ModemDriverBase  this method should be  connected to ModemDriverBase  signal_data_request        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 31 goby  acomms  QueueManager Class Reference 160       Parameters       msg   The ModemTransmission containing information about the data request and is the place where  the request data will be stored  in the repeated field ModemTransmission  frame                  Returns    true if successful in finding data to sena  false if no data is available    Examples     acomms queue queue_simple queue_simple cpp     Definition at line 213 of file queue_manager cpp   17 31 2 4 void goby  acomms  QueueManager  handle_modem_receive   const protobuf  ModemTransmission  amp  message      Receive incoming data from the modem     If usin
274. tor is red   e g  std  cout  lt  lt  red  lt  lt   text    e std  ostream  amp  It_red  std  ostream  amp os     All text following this manipulator is light red  e g  std  cout  lt  lt  It_red  lt  lt   text     e std  ostream     green  std  ostream  amp os     All text following this manipulator is green  e g  std  cout  lt  lt  green  lt  lt   text    e std  ostream  amp  It_green  std  ostream  amp os     All text following this manipulator is light green  e g  std  cout  lt  lt  It_green  lt  lt   text     e std  ostream     yellow  std  ostream  amp os     All text following this manipulator is yellow  e g  std  cout  lt  lt  yellow  lt  lt   text     e std  ostream  amp  It_yellow  std  ostream  amp os     All text following this manipulator is light yellow  e g  std  cout  lt  lt  It_yellow  lt  lt   text     e std  ostream     blue  std  ostream  amp os     All text following this manipulator is blue  e g  std  cout  lt  lt  blue  lt  lt   text     e std  ostream  amp  It_blue  std  ostream  amp os     All text following this manipulator is light blue  e g  std  cout  lt  lt  It_blue  lt  lt   text     e std  ostream  amp  magenta  std  ostream  amp os     All text following this manipulator is magenta  e g  std  cout  lt  lt  magenta  lt  lt   text    e std  ostream     It_magenta  std  ostream  amp os     All text following this manipulator is light magenta  e g  std  cout  lt  lt  It_magenta  lt  lt   text     e std  ostream     cyan  std  ostream 805     All tex
275. ts  boost  any x field_value  const  google  protobuf  FieldDescriptor x field      Decode a non repeated field     Parameters       bits    Bits to decode  Used bits are consumed  erased  from the least significant end       field_value    Location to store decoded value  FieldType        field          Protobuf descriptor to the field  Set to 0 for base message        Definition at line 141 of file dccl_field_codec cpp     17 13 2 15 void goby  acomms  DCCLFieldCodecBase  field_decode_repeated   Bitset x bits  std  vector lt  boost  any  gt  x  field_values  const google  protobuf  FieldDescriptor x field      Decode a repeated field     Parameters       bits    Bits to decode  Used bits are consumed  erased  from the least significant end       field_values    Location to store decoded values  FieldType           field       Protobuf descriptor to the field  Set to 0 for base message        Definition at line 172 of file dccl_field_codec cpp     17 13 2 16 void goby  acomms  DCCLFieldCodecBase  field_encode   Bitset   bits  const boost  any     field_value  const  google  protobuf  FieldDescriptor x field      Encode a non repeated field     Parameters       bits    Pointer to bitset to store encoded bits  Bits are added to the most significant end of bits       field_value    Value to encode  FieldType        field          Protobuf descriptor to the field to encode  Set to 0 for base message        Definition at line 59 of file dccl_field_codec cpp     17 13 2 17 void go
276. ty Libraries 52        section logging Logging    Because Goby is designed first and foremost as an engineering testbed and scientific research architecture  cc  The  link acomms_api goby acomms endlink API classes all have a constructor which can take a pointer to std  c    goby  acomms  DCCLCodec dccl   amp std  cout       In which case you get output  to std  cout  aka the terminal window  that looks like       2011 Mar 01 04 06 35 169817    dccl_enc   cryptography enabled with given passphrase    2011 Mar 01 04 06 35 170610    dcecl_enc   starting encode for TEST      2011 Mar 01 04 06 35 170683    dccl_enc   B  bool  true    The timestamp  in Universal Coordinated Time  is given  with a group name  dccl_enc   DCCL Encoder  and finally  the message  These groups are provided by using the manipulator  group   Text in the stream is a member of the  given group until the next flush  std  endl or std  flush   For example        prints   2011 Mar 01 04 06 35 169817    my_group   my message  std  cout  lt  lt  group  my_group    lt  lt   my message   lt  lt  std  endl     endl flushes my_group    Several other manipulators are provided     e  debug  indicates that the buffer output is insignificant except for debugging  not useful for normal runtime   e  warn  prints the buffer until the next flush as a warning   e  die  is a fatal warning that calls  exit  with a non zero code  indicating a fatal error    die  should be used    very sparingly      subsection flexostream Config
277. type  FieldType  gt  128  goby  acomms  DCCLTypedFieldCodec lt  Model  value_type  FieldType  gt  137  goby  acomms  DCCLRepeatedTypedFieldCodec lt  Model  value_type  FieldType  gt  130    goby  acomms  DCCLFieldCodecSelector lt  protobuf  CCLMDATState  GFIPitchOil  protobuf     CCLMDATState  GFIPitchOil  gt  128    goby  acomms  DCCLTypedFieldCodec lt  protobuf  CCLMDATState  GFIPitchOil  protobuf     CCLMDATState  GFIPitchOil  gt  137    goby  acomms  DCCLTypedFixedFieldCodec lt  protobuf  CCLMDATState  GFIPitchOil  gt  140    goby  acomms  DCCLFieldCodecSelector lt  sid  string  std  string  gt  128  goby  acomms  DCCLTypedFieldCodec lt  std  string  gt  137  goby  acomms  DCCLDefaultBytesCodec 105  goby  acomms  DCCLDefaultStringCodec 113  goby  acomms  DCCLFieldCodecSelector lt  T  T  gt  128  goby  acomms  DCCLTypedFieldCodec lt  T  T  gt  137  goby  acomms  DCCLTypedFixedFieldCodec lt  T  gt  140  goby  acomms  DCCLStaticCodec lt  T  gt  134  goby  acomms  DCCLFieldCodecSelector lt  uint32  uint32  gt  128  goby  acomms  DCCLTypedFieldCodec lt  uint32  gt  137  goby  acomms  DCCLDefaultidentifierCodec 107  goby  acomms  DCCLTypedFieldCodec lt  uint32  uint32  gt  137  goby  acomms  DCCLTypedFixedFieldCodec lt  uint32  uint32  gt  140  goby  acomms  DCCLDefaultNumericFieldCodec lt  uint32  gt  111  goby  acomms  DCCLFieldCodecSelector lt  uint64  uint64  gt  128  goby  acomms  DCCLTypedFieldCodec lt  uint64  uint64  gt  137  goby  acomms  DCCLTypedFixedFieldCodec lt  u
278. types used in DCCL     enum   POWER2_BITS_IN_BYTE   3     enum   POWER2_NIBS_IN_BYTE   1         Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    16 6 goby  transitional Namespace Reference 91       e 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_UN   USED   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     Functions    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_protobuf_type  DCCL Type type    std  string type_to_string  DCCLCppType type    std  string to_str  DCCLHeaderPart p    template lt typename Value  gt    std  ostream  amp  operator lt  lt   std  ostream  amp out  const std  map lt  std  string  Value  gt   amp m     use this for displaying a human readable version    template lt typename Value  gt   std  ostream 8 operator lt  lt   std  ostream  amp out  const std  multimap lt  std  string  Value  gt   amp m     std  ostream 8 operator lt  lt   std  ostream  amp out  const std  set lt  unsigned  gt    s   use this for displaying a human readable version of this STL object  e std  ostream  amp  operator lt  lt   std  ostream
279. ude  lt goby acomms dccl dccl_field_codec_fixed h gt     Inheritance diagram for goby  acomms  DCCLTypedFixedFieldCodec lt  WireType  FieldType  gt      goby  acomms  DCCLFieldCodecBase          goby  acomms  DCCLFieldCodec  Selector lt  Wire Type  FieldType  gt     goby  acomms  DCCLlypedField  Codec lt  WireType  Field Type  gt        goby  acomms  DCCLlypedFixed  FieldCodec lt  WireType  FieldType  gt     goby  acomms  DCCLDefault  NumericFieldCodec lt  WireType   Field Type  gt        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 22 goby  acomms  DCCLTypeHelper Class Reference 142       Protected Member Functions    e virtual unsigned size    0  The size of the encoded message in bits  Use DCCLTypedFieldCodec if the size depends on the data     Additional Inherited Members  17 21 1 Detailed Description    template  lt typename WireType  typename FieldType   WireType gt class goby  acomms  DCCLTypedFixedFieldCodec lt  WireType   FieldType  gt     Base class for static typed field encoders decoders that use a fixed number of bits on the wire regardless of the  value of the field  Use DCCLTypedFieldCodec if your encoder is variable length  See DCCLTypedFieldCodec for  an explanation of the template parameters  FieldType and WireType      Implements DCCLTypedFieldCodec  size const FieldType amp  field_value   DCCLTypedFieldCodec  max_size and D   CCLTypedFieldCodec  min_size  and provides a virtual zero argument function for size      Definition at line 3
280. ue     Modem Slots    These methods are the interface to the QueueManager from the modem driver       void handle_modem_data_request  protobuf  ModemTransmission  msg     Finds data to send to the modem   e void handle_modem_receive  const protobuf  ModemTransmission  amp message     Receive incoming data from the modem     Control    Call these methods when you want the QueueManager to perform time sensitive tasks  such as expiring old  messages     e void do_work       Calculates which messages have expired and emits the goby  acomms  QueueManager  signal_expire as neces   sary        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 31 goby  acomms  QueueManager Class Reference 158       Informational Methods    void info_all  std  ostream  os  const  Writes a human readable summary  including DCCLCodec info  of all loaded queues    template lt typename ProtobufMessage  gt    void info  std  ostream  0s  const  Writes a human readable summary  including DCCLCodec info  of the queue for the provided DCCL type to the  stream provided    void info  const google  protobuf  Descriptor   desc  std  ostream  os  const    An alterative form for getting information for Queues for message types not known at compile time   dynamic       const std  string     glog_push_group     e const std  string  amp  glog_pop_group     e const std  string  amp  glog_priority_group       const std  string     glog_out_group     e const std  string     glog_in_group     std  string 
281. ueManager 27       4 3 Interacting with the QueueManager  4 3 1 Instantiate and configure    The goby  acomms  QueueManager is configured similarly to the goby  acomms  DCCLCodec  You need to set  a unique identification number for this platform  the  modem ID   through the goby  acomms  protobuf  Queue   ManagerContfig      You can configure queues by added repeated fields to the QueueManagerConfig s message_entry field  or by calling  goby  acomms  QueueManager  add_queue   directly     When using goby  acomms  QueueManager you will not likely need to use the goby  acomms  DCCLCodec directly  much at all  All messages are pushed to the queues unencoded and are encoded automatically by goby  acomms      QueueManager before sending  Likewise  all messages received are decoded before being provided on the signal  goby  acomms  QueueManager  signal_receive     For example  this code configures the QueueManager with a single queue  DCCL type GobyMessage     goby   acomms    protobuf    QueueManagerConfig cfg    cfg set_modem_id our_id     goby   acomms    protobuf    QueuedMessageEntryx  q_entry   cfg add_message_entry      q_entry  gt set_protobuf_name   GobyMessage       q_entry  gt set_newest_first  true      goby   acomms    protobuf   QueuedMessageEntry  Rolex dest_role   q_entry  gt add_role  O   dest_role  gt set_type  goby   acomms    protobuf     QueuedMessageEntry    DESTINATION_ID     dest_role  gt set_field  header dest_platform       goby   acomms    protobuf    Que
282. uedMessageEntry  Rolex  time_role   q_entry  gt add_role  O    time_role  gt set_type  goby   acomms   protobuf   QueuedMessageEntry    TIMESTAMP      time_role  gt set_field  header time       goby  acomms   protobuf    QueuedMessageEntry  Role  src_role   q_entry  gt add_role   di   src_role  gt set_type  goby   acomms   protobuf   QueuedMessageEntry    SOURCE_ID      src_role  gt set_field  header source_platform      q_manager set_cfg cfg      4 3 2 Signals and  application layer  slots  Then  you need to do a few more initialization chores       Connect  using goby  acomms  connect    QueueManager signals to your application layer slots  functions or  member functions that match the signal s signature   You do not need to connect a slot to a given signal if  you do not need its functionality  See Signal   Slot model for asynchronous events for more on using signals  and slots         Received  and decoded  DCCL data  goby  acomms  QueueManager  signal_receive      Received acknowledgements  goby  acomms  QueueManager  signal_ack        Expired messages  ttl exceeded   goby  acomms  QueueManager  signal_ expire    Additional advanced features        Connect a slot to learn every time a queue size changes due to a new message being pushed or a  message being sent  goby  acomms  QueueManager  signal_queue_size_change        Request that a queue be on_demand  that is  request data from the application layer every time the  modem layer requests data  DCCL messages only   This
283. uf  EnumDescriptor x GobyFieldOptions_ConfigurationOptions_ConfigAction_descriptor  0    const   std  string  amp  GobyFieldOptions_ConfigurationOptions_ConfigAction_Name  GobyFieldOptions_   ConfigurationOptions_ConfigAction value     bool GobyFieldOptions_ConfigurationOptions_ConfigAction_Parse  const   std  string  amp name  Goby   FieldOptions_ConfigurationOptions_ConfigAction  value     std  string version_message       Variables    const  GobyFieldOptions_ConfigurationOptions_ConfigAction GobyFieldOptions_ConfigurationOptions_   ConfigAction_ConfigAction_MIN   GobyFieldOptions_ConfigurationOptions_ConfigAction_ALWAYS    const  GobyFieldOptions_ConfigurationOptions_ConfigAction GobyFieldOptions_ConfigurationOptions_     ConfigAction_ConfigAction_MAX   GobyFieldOptions_ConfigurationOptions_ConfigAction_ADVANCED    const int GobyFieldOptions_ConfigurationOptions_ConfigAction_ConfigAction_ARRAYSIZE   Goby   FieldOptions_ConfigurationOptions_ConfigAction_ConfigAction_MAX   1  e extern  google  protobuf  internal  Extensionldentifier   lt    google  protobuf  FieldOptions   google  protobuf  internal  MessageTypeTraits   lt    goby  GobyFieldOptions  gt     11  false  gt  field  e extern  google  protobuf  internal  Extensionldentifier   lt    google  protobuf  MessageOptions    google  protobuf  internal   Message Type Traits   lt    goby  GobyMessageOptions  gt     11  false  gt  msg       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    16 2 goby  acomms Nam
284. unction Documentation    17 35 2 1 void goby  common  FlexOstream  add_group   const std  string  amp  name  Colors  Color color    Colors  nocolor  const std  string     description         Add another group to the logger  A group provides related manipulator for categorizing log messages  For thread  safe use use boost  scoped_lock on Logger  mutex  Definition at line 44 of file flex_ostream cpp     The documentation for this class was generated from the following files       goby common logger flex_ostream h    src common logger flex_ostream cpp    17 36 goby  common  FlexOStreamBuf Class Reference   Class derived from std  stringbuf that allows us to insert things before the stream and control output  This is the  string buffer used by goby  common  FlexOstream for the Goby Logger  glogger     include  lt goby common logger flex_ostreambuf h gt     Inherits streambuf        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 37 goby  common  TermColor Class Reference 166       Public Member Functions    e int sync     virtual inherited from std  streambuf  Called when std  endl or sta  flush is inserted into the stream  e int overflow  int c EOF     virtual inherited from std  streambuf  Called when something is inserted into the stream  e void name  const std  string  amp s     name of the application being served  e void add_stream  logger  Verbosity verbosity  std  ostream  os   add a stream to the logger    bool is_quiet     do all attached streams have
285. unication  ethernet   serial   time  scien   tific  string manipulation  etc     Namespaces    e namespace tcolor    Contains functions for adding color to Terminal window streams        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    16 3 goby  common Namespace Reference 87       Classes    e class ConfigException  indicates a problem with the runtime command line or  cfg file configuration  or    help was given   e class FlexNCurses  Enables the Verbosity    gui mode of the Goby logger and displays an NCurses gui for the logger content   e class FlexOstream  Forms the basis of the Goby logger  std  ostream derived class for holding the FlexOStreamBuf     class FlexOStreamBuf  Class derived from std  stringbuf that allows us to insert things before the stream and control output  This is the string  buffer used by goby  common  FlexOstream for the Goby Logger  glogger   e struct Colors  Represents the eight available terminal colors  and bold variants   e class TermColor    Converts between string  escape code  and enumeration representations of the terminal colors     Enumerations      enum MarshallingScheme    MARSHALLING_UNKNOWN   0  MARSHALLING_CSTR   1  MARSHALLING_PROTOBUF   2  MARS   HALLING_CCL   3   MARSHALLING_MOOS   4  MARSHALLING_DCCL   5  MARSHALLING_LCM   6  MARSHALLING_M   AX   6      enum   LIAISON_INTERNAL_PUBLISH_SOCKET   1  LIAISON_INTERNAL_SUBSCRIBE_SOCKET   2       Functions    e Wt  WApplication x create_wt_application  const Wt  WEnviron
286. urable extension of std  ostream   liblogger  goby   util  FlexOstream extends std  ostream to provide a number of extra logging features  This is generally    e Often it is desirable to log simultaneously to a text file  std  ofstream  and the terminal window  std  cout    goby  util  FlexOstream allows you to attach any number of streams to it  which are all written to with a single  call to operator lt  lt  on the goby  util  FlexOstream object     e Color support for ANSI terminals  std  cout and std  cerr stream objects only       Multiple verbosity settings for each attached stream  QUIET  display nothing to this stream   WARN  display  only warnings   VERBOSE  display warnings and normal text  but not debug text   DEBUG  display warnings   normal text  and debug messages   GUI  display all messages in an NCurses terminal GUI window  splitting  groups into different displays     e Optional thread safe access using a simple lock   unlock syntax     The best way to get used to goby util  glogger   is to compile and play with the flexostream_simple cpp example     A handful of examples        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    7 goby util  Overview of Utility Libraries 53       Figure 11     Graphical user interface logger mode        toby terisa       Example of the goby  util  glogger   output at different verbosity settings to the terminal window       flexostream_simple gui   toby terisa     Search Te    uped messages    Figure 12  Example 
287. used in the  encoded DCCL message  representation into the FieldType representation  the Google Protobuf representation    This allows for type converting codecs   void field_post_decode_repeated  const std  vector lt  boost  any  gt   amp wire_values  std  vector lt  boost  any   gt  xfield_values   Post decodes a repeated field   void field_max_size  unsigned xbit_size  const google  protobuf  FieldDescriptor field   Calculate the upper bound on this field   s size  in bits   void field_min_size  unsigned   bit_size  const google  protobuf  FieldDescriptor field   Calculate the lower bound on this field s size  in bits   void field_validate  bool  b  const google  protobuf  FieldDescriptor  field   Validate this field  checking that all required option extensions are set  e g   goby field  dccl max and  goby    field  dccl min for arithmetic codecs   void field_info  std  ostream xos  const google  protobuf  FieldDescriptor xfield   Write human readable information about the field and its bounds to the provided stream        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 13 goby  acomms  DCCLFieldCodecBase Class Reference 118       Protected Member Functions    dccl  DCCLFieldOptions dccl_field_options    const    Get the DCCL field option extension value for the current field   void require  bool b  const std  string description     Essentially an assertion to be used in the validate   virtual method   virtual void any_encode  Bitset   bits  const boost
288. uses DCCLDefaultNumericFieldCodec to encode the integer 106    goby  acomms  DCCLDefaultldentifierCodec  Provides the default 1 byte or 2 byte DCCL ID codec 107    goby  acomms  DCCLDefaultMessageCodec  Provides the default codec for encoding a base Google Protobuf message or an embedded  message by calling the appropriate field codecs for every field 110    goby  acomms  DCCLDefaultNumericFieldCodec lt  WireType  FieldType  gt   Provides a basic bounded arbitrary length numeric  double  float  uint32  uint64  int32  int64   encoder 111    goby  acomms  DCCLDefaultStringCodec  Provides an variable length ASCII string encoder  Can encode strings up to 255 bytes by using  a length byte preceeding the string 113    goby  acomms  DCCLException  Exception class for libdccl 114       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    13 1 Class List 65       goby  acomms  DCCLFieldCodecBase  Provides a base class for defining DCCL field encoders   decoders  Most users will use the  DCCLTypedFieldCodec or its children  e g  DCCLTypedFixedFieldCodec  instead of directly  inheriting from this class 114    goby  acomms  DCCLFieldCodecManager 126    goby  acomms  DCCLFieldCodecSelector lt  WireType  FieldType  Enable  gt   If WireType    FieldType  we don t have to add any more virtual methods for converting be   tween them 128    goby  acomms  DCCLFieldCodecSelector lt  WireType  FieldType  typename boost  disable_if lt   boost  is_same lt  WireType  FieldType  gt   gt   t
289. uter   CA    SN         Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    6 4 WHOI Micro Modem Driver  MMDriver    38          NMEA talker    Mapping        CACYC    If we did not send  CCCYC  buffer data for  CADRQ  by augmenting the provided ModemTransmission and  calling signal_data_request   goby  acomms  protobuf  ModemTransmission time      goby  common  goby_time lt uint64 gt     goby  acomms  protobuf  ModemTransmission src      ADR1  goby  acomms  protobuf  ModemTransmission dest      ADR2  goby  acomms  protobuf  ModemTransmission rate      Packet Type  goby  acomms  protobuf  ModemTransmission max_   frame_bytes     32 for Packet Type    0  64 for  Packet Type    2  256 for Packet Type    3 or 5  goby  acomms  protobuf  ModemTransmission max_   num_frames     1 for Packet Type    0  3 for Packet  Type    2  2 for Packet Type    3 or 8 for Packet Type    5        CARXD          only for the first  CARXD for a given packet  should  match with the rest though    goby  acomms  protobuf  ModemTransmission time      goby  common  goby_time lt uint64 gt     goby  acomms  protobuf  ModemTransmission type      goby  acomms  protobuf  ModemTransmission  DATA  goby  acomms  protobuf  ModemTransmission src      SRC  goby  acomms  protobuf  ModemTransmission dest      DEST  goby  acomms  protobuf  ModemTransmission ack_   requested     ACK   for each  CARXD   goby  acomms  protobuf  ModemTransmission    frame F  1    goby  util  hex_decode HH   HH           Genera
290. uxley communications infrastructure  initially uses SonarDyne as underlying hard   ware    class goby  moos  UFldDriver  provides an simulator driver to the uFldNodeComms MOOS module  http    oceanai mit edu moos ivp pmwiki pmwiki  php  n Modules  UF1dNodeComms   class goby  acomms  MACManager  provides an API to the goby acomms MAC library  MACManager is essentially a std  list lt protobuf  Modem   Transmission gt  plus a timer    class goby  acomms  DCCLCodec  provides an API to the Dynamic CCL Codec    class goby  acomms  ModemDriverBase  provides an abstract base class for acoustic modem drivers  This is subclassed by the various drivers for different  manufacturers    modems    class goby  acomms  MMDriver  provides an API to the WHO  Micro Modem driver   class goby  acomms  QueueManager  provides an API to the goby acomms Queuing Library    class goby  transitional  DCCLTransitionalCodec    provides an API to the Transitional Dynamic CCL Codec  looks like DCCLv1  but calls DCCLv2   Warning  this class  is for legacy support only  new applications should use DCCLCodec directly     Detailed Description  Namespace Documentation    goby Namespace Reference    The global namespace for the Goby project     Namespaces    namespace acomms    Objects pertaining to acoustic communications  acomms   namespace common    Utility objects for performing functions such as logging  non acoustic communication  ethernet   serial   time  scientific   string manipulation  etc     namespace 
291. v2 by Doxygen       CONTENTS iii  12 1 Glass Hieray o iba ee Labi ee da Pee ee ae tee HAE ENG BP ee Eee ee ows 59  13 Class Index 63  Ded SSRN o Gk es ds Bae Sh se tee Oe pg ee We as tana ous Bae Ss ot Ses 63  14 File Index 66  Mel IS fos oct sos Sy Auten e Seton a hee  ae bebo ls cheese aie BON  Gol at an Sone Ue Ae A 66  15 Module Documentation 78  15 1 API classes for the Dynamic Compact Control Language  includes writing custom encoders   79  15 1 1 Detailed Description  lt   lt  a c e roct a tomora mi omaes a bee eee ee ee 79   15 2 API classes for the major components of the Goby Acomms acoustic communications library  DCCL   Queue  AMAC  ModemDriver             a 79  1521 Detailed DOScrploM    q o ssd 26464 eR Peek a PR ee ee aoe ae ee we 80  16 Namespace Documentation 80  16 1 goby Namespace Reference              0000 ee ee 80  16 1 7 Detailed Descrnplion  s ms s ciosa sra BERS Se Ea A ee ee ek A 82  16 1 2    Function Documentation oe   s s s i 20h 5 be See ee Pe ee Bad ee ed 82  16 2 goby  acomms Namespace Reference             a o    82  16 2 1 Detailed Descnplo co roata A Re ele Be ee ee hk a dae 8 85  16 3 goby  common Namespace Reference              0 00 eee ee 85  16 34 Detailed Deschnplion   4 ae  rr oe Ea aoe eG   Eh on WE Je a 87  16 4 goby  common  tcolor Namespace Reference               0  00002 ee eee eee 88  16 4 1 Detailed Description   oce sosa  44 bee e ER Re ee ee e a 88  164 2 Function Documentation      cz  fk e aoaia a ee ee me 88  16 5 goby  p
292. vances in Integrating Autonomy with Acoustic Communications  for Intelligent Networks of Marine Robots  PhD Thesis  MIT WHOI Joint Program     1 4 Download and Install Goby    Please visit http    gobysoft com wiki InstallingGoby for help on obtaining and installing Goby     1 5 Building Examples       Please visit http    gobysoft com wiki Examples to learn about the available code examples for Goby     1 6 Authors    Goby is developed by the Goby Developers group  https   launchpad net  goby dev   The lead de   veloper is Toby Schneider  http    gobysoft com     2 goby acomms  An overview of Acoustic Communications Library  Table of Contents for goby acomms  An overview of Acoustic Communications Library     e Quick Start      Overview    Analogy to established networking systems    Acoustic Communications are slow    Efficiency to make messages small is good    Total throughput unrealistic  prioritize data    Component model   e dccl  Encoding and decoding  Detailed documentation       queue  Priority based message queuing  Detailed documentation      modemdriver  Modem driver  Detailed documentation       amac  Medium Access Control  MAC   Detailed documentation     e Software concepts used in goby acomms        Signal   Slot model for asynchronous events        Google Protocol Buffers    UML models       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    2 1 Quick Start 3       2 1 Quick Start    To get started using the goby acomms libraries as quickly as p
293. y  acomms  ModemDriverBase  signal_transmit_result    Called when a transmission is completed     You should connect one or more slots  a function or member function  to this signal to receive incoming messages   Use the goby  acomms  connect family of functions to do this  This signal will only be called during a call to poll   ModemDataTransmission is defined in acomms_modem_message proto     Definition at line 89 of file driver_base h     The documentation for this class was generated from the following files       goby acomms modemdriver driver_base h    src acomms modemdriver driver_base cpp    17 30 goby  acomms  QueueException Class Reference    Exception class for libdccl      include  lt goby acomms queue queue_exception h gt        Inheritance diagram for goby  acomms  QueueException         goby  Exception    goby  acomms  QueueException    Public Member Functions    e QueueException  const std  string  amp s     17 30 1 Detailed Description    Exception class for libdccl   Definition at line 36 of file queue_exception h     The documentation for this class was generated from the following file       goby acomms queue queue_exception h       Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 31 goby  acomms  QueueManager Class Reference 157       17 31 goby  acomms  QueueManager Class Reference    provides an API to the goby acomms Queuing Library      include  lt goby acomms queue h gt     Public Member Functions      QueueManager     constructor  
294. ype        Generated on Wed Mar 26 2014 01 41 49 for Goby v2 by Doxygen    17 2 ChatCurses Class Reference 95       17 1 1 Detailed Description  template  lt   gt  struct boost  asio  time_traits lt  goby  common  GobyTime  gt     Time traits specialised for GobyTime   Definition at line 231 of file time h     The documentation for this struct was generated from the following file       goby common time h    17 2 ChatCurses Class Reference    provides a terminal GUI for a chat window  lower box to type and upper box to receive messages   Part of the  chat cpp example         include  lt  build buildd goby2 2 1 0  beta8 DAILYDEB 536 share examples acomms chat chat      _curses h gt     Public Member Functions    e void set_modem_id  unsigned id   give the modem_id so we know how to label our messages  e void startup     start the display  e void run_input  std  string  amp line   grab a character and if there   s a line to return it will be returned in line  e void cleanup     end the display    e void post_message  unsigned id  const std  string  amp line   add a message to the upper window  the chat log     void post_message  const std  string  amp line     Constructors Destructor    e ChatCurses     e  ChatCurses       17 2 1 Detailed Description    provides a terminal GUI for a chat window  lower box to type and upper box to receive messages   Part of the  chat cpp example     Examples     acomms chat chat cpp     Definition at line 9 of file chat_curses h     The document
295. ype  gt   If WireType    FieldType  adds some more pure virtual methods to handle the type conversions   pre_encode   and post_decode     If WireType    FieldType this class is not inherited and this  pure virtual methods do not exist  and thus can be omitted in the child class  129    goby  acomms  DCCLRepeatedTypedFieldCodec lt  WireType  Field Type  gt   Base class for  repeated   multiple value  static typed  no boost  any  field encoders decoders   Most user defined variable length codecs will start with this class  Use DCCLTypedFixedField   Codec if your codec is fixed length  always uses the same number of bits on the wire   Use  DCCLTypedFieldCodec if your fields are always singular   optional  or  required    Singular  fields are default implemented in this codec by calls to the equivalent repeated function with  an empty or single valued vector 130    goby  acomms  DCCLStaticCodec lt  T  gt   Placeholder codec that takes no space on the wire  0 bits  134    goby  acomms  DCCLTimeCodec lt  TimeType  gt   Encodes time of day  second precision  for times represented by the string representation of  boost  posix_time  ptime  e g  obtained from goby_time lt std  string gt     135    goby  acomms  DCCLTypedFieldCodec lt  WireType  FieldType  gt   Base class for static typed  no boost  any  field encoders decoders  Most user defined variable  length codecs will start with this class  Use DCCLTypedFixedFieldCodec if your codec is fixed  length  always uses the same number o
296. ype of MAC to use  decentralized fixed or centralized polling and set the type of the  goby  acomms  protobuf  MACConfig with the corresponding goby  acomms  protobuf  MACType  We also need to  give goby  acomms  MACManager the vehicle   s modem id  like all the other components of goby acomms      using namespace goby  acomms    protobuf   MACConfig mac_cfg    mac_cfg set_type  protobuf   MAC_FIXED_DECENTRALIZED    mac_cfg set_modem_id 1      You can also provide a set of slots in the protobuf  MACConfig to initialize the MACManager with  Otherwise  you  can add them later using the std  list calls     The usage of the goby  acomms  MACManager depends now on the type       goby  acomms  protobuf  MAC_FIXED_DECENTRALIZED  All vehicles must be running goby  acomms    protobuf  MAC_FIXED_DECENTRALIZED and share the same cycle  set of slots   Also  since each ve   hicle initiates its own transaction  you can use goby  acomms  QUERY_DESTINATION_ID throughout  In  this example    used the std  list push_back instead of adding the slots to the protobuf  MACConfig  see under  MAC_POLLED below   Either way  you get the same result  but you can modify the std  list after startup       goby   acomms    protobuf   ModemTransmission slot    slot set_src 1     slot set_dest  goby   acomms    QUERY_DESTINATION_ID  i   slot set_rate  0     slot set_type  goby   acomms    protobuf  SLOT_DATA      slot set_seconds  10     mac push_back  slot      1  gt  1 0 wait 10    a    ot set_src 3    mac
    
Download Pdf Manuals
 
 
    
Related Search
    
Related Contents
tiré-à-part de  Sony VAIO VPCEB24FD  also as PDF  本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されて  Kabelloser Funkempfänger - Migros  HDMI CONTROL Guide  Tech Craft TS50W User's Manual  MT Developer2 Version 1 Setup Guidance    Guía del usuario de Nessus Perimeter Service (interfaz HTML5)    Copyright © All rights reserved. 
   Failed to retrieve file