/**
  * This constructor does not start the event notifier.
  *
  * @param name the link name
  * @param settings medium settings of the accessed KNX network
  */
 protected AbstractLink(final String name, final KNXMediumSettings settings) {
   conn = null;
   this.name = name;
   logger = LogService.getLogger("calimero.link." + getName());
   notifier = new LinkNotifier();
   setKNXMedium(settings);
 }
 /**
  * @param connection if not <code>null</code>, the link object will close this resource as last
  *     action before returning from {@link #close()}, relinquishing any underlying resources
  * @param name the link name
  * @param settings medium settings of the accessed KNX network
  */
 protected AbstractLink(
     final AutoCloseable connection, final String name, final KNXMediumSettings settings) {
   conn = connection;
   this.name = name;
   logger = LogService.getLogger("calimero.link." + getName());
   notifier = new LinkNotifier();
   setKNXMedium(settings);
   notifier.start();
 }
  protected AbstractMonitor(
      final Object conn, final String name, final KNXMediumSettings settings) {
    this.conn = conn;
    this.name = name;
    logger = LogManager.getManager().getLogService("calimero.link." + getName());

    if (settings instanceof PLSettings)
      logger.info("power-line medium, assuming BCU has extended busmonitor enabled");

    setKNXMedium(settings);
    notifier = new MonitorNotifier(this, logger, settings instanceof PLSettings);
    notifier.start();
  }
 public final void setDecodeRawFrames(final boolean decode) {
   notifier.decode = decode;
   logger.info((decode ? "enable" : "disable") + " decoding of raw frames");
 }