message: SerialManagerBase: more comments
diff: why go through the effort. In particular, this base class provides:
  * setButtonState
  * setButtonText
  + This is a pretty minor help to you, but it'll save you a little bit of work.
  - Compliant "UI" elements: The bulk of this base class is aimed at implementing a
  - range of common communication methods from the App to the Tympan. You get the
  - benefit of these pre-written routines if your own Audio classes are able to
  - tell this SerialManagerBase that they exist and that they can respond appropriately.
  - This means that:
  + Compliant "UI" elements: The most important part of this class is that it helps
  + automate a range of common communication methods from the App to the Tympan. The
  + different methods are briefly introduced later in this comment block. The important
  + part is that this base class automates the processing of these different modes if
  + you make your own classes (ie, your Audio processing classes who want to be controlled
  + from the App or from the SerialMonitor) compatible with how this SerialManagerBase
  + is designed to work. If your classes are compatible, you get access to all the automated
  + processing, which will save you a lot of time and effort.
  +
  + You get the benefit of the pre-written routines in this Base class if your own classes
  + are able to tell this SerialManagerBase that they exist and that they can respond
  + appropriately. To do this, you must:
  * Your audio processing class (or whatever) must inherit from SerialManager_UI
  and implement the methods required by that SerialManager_UI. These are
  that alrady implement SerialManager_UI, it probably already has an App GUI that
  has been pre-written for you! You can simply invoke those pre-written elements!
  + Communication Methods: At its core, the App communicates one or more text characters
  + back to the Tympan. Given that it must be characters, you can implement any protocol
  + that you would like. But, if you want to build upon the existing example programs
  + and if you want to build upon the automated routines in this base class, the primary
  + communication approaches are:
  +
  + * Single Character Commands: The most basic approach is for you to create a
  + button in the App whose command is a single character. For example, you might
  + create a button that sends a 'c' back to to the Tympan. Typically, these single-
  + character commands are interpretted in code that you write in your own
  + implementation of SerialManager. This single character can also come from a user
  + typing it into the SerialMonitor. All of the Tympan_Library examples treat characters
  + coming in from the USB Serial link as the same as characters coming in from the
  + Bluetooth connection.
  + * Four-Character Commands: Most of the automated communcation takes place using
  + a four-character command. Each button in the App GUI would be told to transmit
  + a four characters instead of just one. The first character is a special character
  + that identifies it as a four-character command. By default, this special character
  + is an underscore ('_'). If this SerialManagerBase.respondToByte() sees an underscore
  + it will assume that the next three characters form the rest of the command (with
  + exceptions...see the code of respondToByte()). The three characters are sent to
  + each of the classes that have been registered with the SerialManagerBase via the
  + processCharacterTriple. Typically, the first of three characters identifies the
  + command with a particular instance of your class. Then, the second and third
  + characters can be interpretted by the class however you'd like.
  + * DataStreams: Besides the single-character and four-character modes, there are also
  + data streaming modes to support specialized communication. These special modes
  + are not inteded to be invoked by a user's GUI, so they can be ignored. To avoid
  + inadvertently invoking these modes, never send characters such as 0x02, 0x03, 0x04.
  + In fact, you should generally avoid any non-printable character or you risk seeing
  + unexpected behavior.
  +
  License: MIT License. Use at your own risk. Have fun!
  */
  