Micromodem two way ping enum list

Asked by Neil Gompertz

On the micro-modem two way enum list the following enum values are no longer included:

ModemTransmission_TransmissionType_MICROMODEM_TWO_WAY_PING = 1000,
ModemTransmission_TransmissionType_MICROMODEM_REMUS_LBL_RANGING = 1001,
ModemTransmission_TransmissionType_MICROMODEM_NARROWBAND_LBL_RANGING = 1002,
ModemTransmission_TransmissionType_MICROMODEM_MINI_DATA = 1003

We have been using the micro modem two way ping message, and this option seems to be missing in the stable version of Goby, forcing us to run the Goby 2.0 Beta build. Were they removed for a reason, or were they just forgotten?

Question information

Language:
English Edit question
Status:
Solved
For:
Goby Edit question
Assignee:
No assignee Edit question
Solved by:
toby schneider
Solved:
Last query:
Last reply:
Revision history for this message
Best toby schneider (tes) said :
#1

This was an intentional change to remove all information specific to a particular modem (e.g. WHOI Micro-Modem) from the goby::acomms::protobuf::ModemTransmission message. The reason for this change is to make the common subset of Goby functionality that must be implemented by a new driver (for a different acoustic or satellite modem) as small as possible (now only DATA and PING). All other functionality is pushed out to extensions that a specific driver understands how to use.

Thus, you must now set the appropriate extension to ModemTransmission defined in goby/acomms/protobuf/mm_driver.proto (see http://gobysoft.com/doc/2.0/mm__driver_8proto_source.html).

For example, where previously you wrote:

***************
    goby::acomms::protobuf::ModemTransmission transmit;

    transmit.set_type(goby::acomms::protobuf::ModemTransmission::MICROMODEM_TWO_WAY_PING);
    transmit.set_src(1);
    transmit.set_dest(2);
***************

You now need to write

***************
    goby::acomms::protobuf::ModemTransmission transmit;

    transmit.set_type(goby::acomms::protobuf::ModemTransmission::DRIVER_SPECIFIC);
    transmit.SetExtension(micromodem::protobuf::type, micromodem::protobuf::MICROMODEM_TWO_WAY_PING);
    transmit.set_src(1);
    transmit.set_dest(2);
***************

See goby/src/test/acomms/mmdriver1/test.cpp (http://bazaar.launchpad.net/~goby-dev/goby/2.0/view/head:/src/test/acomms/mmdriver1/test.cpp) for an example that uses the ping. For more information on Google Protobuf extensions, see https://developers.google.com/protocol-buffers/docs/proto#extensions

Revision history for this message
Neil Gompertz (nrg.) said :
#2

Thanks toby schneider, that solved my question.