public RemoteSocketOutputPort(LPD433MHzCodeSequencePair codeSequencePair, LPD433MHzSignalSender sender)
        {
            if (codeSequencePair == null) throw new ArgumentNullException(nameof(codeSequencePair));
            if (sender == null) throw new ArgumentNullException(nameof(sender));

            _codeSequencePair = codeSequencePair;
            _sender = sender;
        }
        public RemoteSocketOutputPort RegisterRemoteSocket(int id, LPD433MHzCodeSequencePair codeSequencePair)
        {
            if (codeSequencePair == null) throw new ArgumentNullException(nameof(codeSequencePair));

            if (Sender == null)
            {
                throw new InvalidOperationException("No sender is set for remote sockets. Registration not possible.");
            }

            lock (_syncRoot)
            {
                var port = new RemoteSocketOutputPort(codeSequencePair, Sender);
                port.Write(BinaryState.Low);

                _ports.Add(id, port);

                return port;
            }
        }