So you have downloaded and built core-moos (build instructions are on the examples page). What next? How for example do you test the build?
Now start another terminal window and move once more to the <build>/bin directory. Lets here start an instance of umm. This is the swiss army knife of MOOS and should be your first port of call when you want to verify or test anything to do with MOOS. Remember, if you are thinking "umm..I wonder what is wrong?", then you have already decided on the next step: using umm.
So in that new terminal window lets start umm of and tell it to publish a numeric variable called x at 10Hz
And in another window lets start another umm up to subscribe to x and print out its value
you should see something like this in the MOOSDB terminal
Here you can see confirmation that two clients (the umms) are connecting to a MOOS community and in the last line confirmation that one of these is subscribing to "x".
The subscribing umm window should be showing something like this:
This shows the client connecting to the MOOSDB, subscribing for "x", printing out some information about the way in which communication will proceed. After that we can see (because of the --verbose flag) the received "x"s being printed out. The contents are incrementing because that is what umm does when it publishes numeric data.
OK so lets do something more interesting. Lets send some binary data and lets see how quickly it is received. Kill the subscribing umm. No need to touch the MOOSDB - that fella can live for ever.
Lets start another umm off publishing some 50KB chunks of data at 20Hz and other 10KB chunks at 4Hz. Easy:
and lets be lazy and simply get another umm to subscribe to everything that is going on.
So we have one umm publishing x and another publishing y and z so you should see x and y and z being printed out.
You might be interested in seeing how long it takes to send and receive this data. So make sure you have a release build (if you want great performance but debug is pretty swift) and ask umm to print message latencies. We could use a single umm to do this (but feel free to separate send and receive if you like) and have it publish and subscribe to the same variable:
you should see latency times being printed and they should be small. Of course you can have multiple umms subscribing to the same message and see how latencies change around your network. For example, typing each line is different terminals
will send 100KB messages at 100Hz, if your network and take it (it should!). You might also be interested in seeing the bandwidth being achieved:
There will be many times when you simply want to look at what is being sent around the MOOS community. Umm must be your first point of call. Try
for a summary every second, or
to see each and every message being send