+/**
+ * Communcation overview:
+ *
+ * Initialization:
+ * bbb --init1--> mbed1
+ * bbb --init2--> mbed1 --init2---> mbed2
+ *
+ * Time sync:
+ * bbb mbed1 ---sync---> mbed2
+ * bbb mbed1 <--sync---- mbed2
+ *
+ * Event Receive:
+ * bbb <--event1-- mbed1 mbed2
+ * bbb <--event2-- mbed1 <--event2-- mbed2
+ *
+ * Initialization:
+ * Each mbed is initialized by the BBB by receiving an initialization
+ * message. The Device ID must be non-zero, and is saved for future
+ * messages. If the device is already initialized and a recevied Device ID
+ * does not match the configured Device ID, the messages is relayed to the
+ * second mbed.
+ *
+ * Event receive:
+ * When receiving events, an event message is sent from the mbed to the
+ * bbb. If the mbed receiving the event is not Device 1, the message is
+ * sent to mbed1 instead of the bbb.
+ *
+ * Debug ports:
+ * 1. Init messages may be received from the host instead of the bbb
+ * 2. Event messages may be sent to the host in addition to the bbb
+ */
+