    */
   IRreceiver(Board::InterruptPin pin, uint8_t max, uint32_t threshold) :
     InterruptPin(pin, InterruptPin::ON_FALLING_MODE),
+    Link(),
     m_threshold(threshold),
     m_start(0),
     m_ix(0),

  // Wait for an event from the IR receiver
  Event event;
  Event::queue.await(&event);

  // Print the received remote code
  receiver.print(trace);

  // Print the posted event code. This is the code that should be used
  uint16_t code = event.get_value();
  INFO("event.value:code = %hd", code);
  Watchdog::delay(512);

  // Reset to allow the next code sequence
  receiver.reset();
}

  {}

  /**
   * Reset the IR receive for the next code sequence.
   */
  void reset()
  {
    detach();
    m_ix = 0;
    m_code = 0;
    m_start = RTC::micros();
  }

  /**
   * Print the captured samples to the given output stream.
   * @param[in] out stream.
   */
  void print(IOStream& out)
