code: public void addMessageListener(DigitalChannel channel, Class<? extends Message> messageClass,
                                     MessageListener<Message> messageListener) {
          addListener(channel.getIdentifier(), messageClass, messageListener);
      }
docs: Add a generic messageListener to the Firmata object which will fire whenever a matching message is received
  over the SerialPort that corresponds to the given channel. If the channel is null, the listener
  will fire regardless of which channel (pin) the message is coming from.
  
  @param channel DigitalChannel indicating the specific channel or pin to listen on, or null to listen to
  all messages regardless of channel/pin.
  @param messageClass Class indicating the message type to listen to.
  @param messageListener (Generic)MessageListener object to handle a received Message event over the SerialPort.