Goby 1.0.1

First major stable release of goby-acomms.

Milestone information

toby schneider
Release registered:
No. Drivers cannot target bugs and blueprints to this milestone.  

Download RDF metadata


Assigned to you:
No blueprints or bugs assigned to you.
1 toby schneider
1 Implemented
No bugs are targeted to this milestone.

Download files for this release

After you've downloaded a file, you can verify its authenticity using its MD5 sum or signature. (How do I verify a download?)

File Description Downloads
download icon goby-1.0.1.tar.gz (md5, sig) Goby 1.0.1 - Allows for .deb packaging 33
last downloaded 16 weeks ago
Total downloads: 33

Release notes 


MOOS (pAcommsHandler)
--- Most MOOS messages originating from pAcommsHandler (ACOMMS_*) now use the Protocol Buffers TextFormat class to serialize and parse from string (to send through MOOS) to the various Protocol Buffers messages defined in goby/src/protobuf/*.proto (primarily modem_message.proto). You should use goby/src/moos/libmoos_util/moos_protobuf_helpers.h to serialize and parse from the MOOS strings posted.
 * Informational *
 --- ACOMMS_NMEA_IN (type: string), ModemMsgBase::raw() for all incoming messages ("$CA..." for WHOI Micro-Modem)
 --- ACOMMS_NMEA_OUT (type: string), ModemMsgBase::raw() for all outgoing messages ("$CC..." for WHOI Micro-Modem)
 --- ACOMMS_INCOMING_DATA (type: ModemDataTransmission) written for all received messages containing a data payload
 --- ACOMMS_OUTGOING_DATA (type: ModemDataTransmission) written for all queued messages containing a data payload
 --- ACOMMS_RANGE_RESPONSE (type: ModemRangingReply) written in response to ranging request (to another modem or LBL beacons)
 --- ACOMMS_ACK (type: ModemDataAck) written when received data is acknowledged acoustically by a third party. Contains the original message.
 --- ACOMMS_EXPIRE (type: ModemDataExpire) written when a message expires (time-to-live [ttl] exceeded) from the queue before being sent (ack = false) or acknowledged (ack = true)
 --- ACOMMS_QSIZE (type: QueueSize) written when a queue changes size (pop or push) with the new size of the queue.
 * Commands *
  (queuing DCCL data to send is initiated with a DCCL publish when <trigger>publish</trigger> as always, no change here)
 --- ACOMMS_RANGE_COMMAND (type: ModemRangingRequest) you write this to pAcommsHandler to initiate a ranging request outside the MAC schedule. Note in general it is preferable to use the MAC cycle to coordinate data and ranging.
 --- ACOMMS_MAC_CYCLE_UPDATE (type: MACUpdate) you write this to update the MAC cycle for MAC_FIXED_DECENTRALIZED and MAC_POLLED modes of operation
--- All .moos file configuration settings can be set at runtime using the command line. run "pAcommsHandler -h" for a list of available options and their syntax. For example,
> pAcommsHandler last.moos --driver_cfg 'serial_port: "/dev/ttyUSB1"'
runs pAcommsHandler with the serial port set to /dev/ttyUSB1. Command line options overwrite .moos file options if both are set.
--- Configuration (.moos) is type checked and syntax checked for common mistakes including extraneous parameters (often misspelled parameters), duplicate parameters (for non-"repeat" fields) and missing required parameters.
--- Running "pAcommsHandler -e" outputs an example .moos ProcessConfig block with all the available options for configuring pAcommsHandler and an example. Where applicable, defaults are indicated with "(default)".

--- Replaced generic ModemMessage class with a variety of Google Protocol Buffers messages (see http://code.google.com/p/protobuf/) for all internal signals and slots. Replaced callback handling of asynchronous events with a more general signal/slot mechanism based on boost::signals.
--- DriverBase and supporting messaging is more streamlined to remove the remaining WHOI Micro-Modem bias from the design of Goby. Goby should now easily support other manufacturers' modems by subclassing goby::acomms::DriverBase (goby/src/acomms/libmodemdriver/driver_base.*). Wrote an example toy driver for a fake modem "ABC Modem". The new driver is abc_driver.h/cpp. You can simulate this new "modem" over TCP using the abc_modem_simulator tool and socat.
--- Fixed CCL queuing functionality in libqueue
--- Improved error handling messages for CCL functionality
--- Improved buffering in the WHOI Micro-Modem driver to anticipate the $CADRQ during the cycle init ($CC/CACYC)
--- Support for REMUS LBL beacon ranging in the WHOI Micro-Modem ($SNTTA, etc.)
--- Support for one-way synchronous time-of-flight in the WHOI Micro-Modem ($CATOA)

Core (still in development / testing)
--- Implemented basic functionality for all core elements (message passing, logging, base application superclass).
--- Wrote two examples in goby/src/core/examples that are documented partially in goby/doc/user_manual

--- Implemented point-to-point messaging for the TCP Server in liblinebasedcomms (previously the TCP server was essentially a one-to-many hub). This makes use of the new protobuf message type Datagram for `src` and `dest` addressing. For TCP `src` and `dest` are ip:port endpoints (e.g. For serial, `src` is the current serial port name. `dest` has no meaning over a serial connection (we don't know where the other end is plugged in!)

~~~Bug Fixes

--- Fixed bug where some variables using Algorithms in the DCCL header were being overwritten by the default for that field. DCCL layout variables were not affected.
--- Fixed bug where removing entire polling or fixed TDMA cycle crashed libamac

--- Fixed miscellaneous bugs in liblogger


This release does not have a changelog.

1 blueprint and 0 bugs targeted

Blueprint Priority Assignee Delivery
Addition of LBL transponder message support Addition of LBL transponder message support 3 Medium toby schneider  11 Implemented
This milestone contains Public information
Everyone can see this information.