docs: public void sendData(SerialMessage serialMessage)
  	{
      	if (serialMessage.getMessageClass() != SerialMessage.SerialMessageClass.SendData) {
      		logger.error(String.format("Invalid message class %s (0x%02X) for sendData", serialMessage.getMessageClass().getLabel(), serialMessage.getMessageClass().getKey()));
      		return;
      	}
      	if (serialMessage.getMessageType() != SerialMessage.SerialMessageType.Request) {
      		logger.error("Only request messages can be sent");
      		return;
      	}
      	
      	ZWaveNode node = this.getNode(serialMessage.getMessageNode());
      			
      	if (node.getNodeStage() == NodeStage.NODEBUILDINFO_DEAD) {
      		logger.debug("Node {} is dead, not sending message.", node.getNodeId());
  			return;
      	}
  		
      	if (!node.isListening() && serialMessage.getPriority() != SerialMessage.SerialMessagePriority.Low) {
  			ZWaveWakeUpCommandClass wakeUpCommandClass = (ZWaveWakeUpCommandClass)node.getCommandClass(ZWaveCommandClass.CommandClass.WAKE_UP);
  			
  			if (wakeUpCommandClass != null && !wakeUpCommandClass.isAwake()) {
  				wakeUpCommandClass.putInWakeUpQueue(serialMessage); //it's a battery operated device, place in wake-up queue.
  				return;
  			}
  		}
      	
      	serialMessage.setTransmitOptions(TRANSMIT_OPTION_ACK | TRANSMIT_OPTION_AUTO_ROUTE | TRANSMIT_OPTION_EXPLORE);
      	if (++sentDataPointer > 0xFF)
      		sentDataPointer = 1;
      	serialMessage.setCallbackId(sentDataPointer);
      	logger.debug("Callback ID = {}", sentDataPointer);
      	this.enqueue(serialMessage);
  	}