public SerialChannel(string portName, ILogger logger, ISerialMessageConverter <T> converter, ISerialMessageFinder <T> finder)
        {
            _logger    = logger ?? throw new ArgumentNullException(nameof(logger));
            _converter = converter ?? throw new ArgumentNullException(nameof(converter));
            _finder    = finder ?? throw new ArgumentNullException(nameof(finder));

            _finder.MessageFound += (msg) => MessageReceived(this, msg);

            _port = new SerialPort(portName);
        }
 public SimpleMessageSerialFinder(ISerialMessageConverter <SimpleMessage> converter)
 {
     _converter = converter ?? throw new ArgumentNullException(nameof(converter));
 }