/// <summary>
        /// Initializes this <see cref="RemoteInputAdapter"/>.
        /// </summary>
        /// <exception cref="ArgumentException"><b>HistorianID</b>, <b>Server</b>, <b>Port</b>, <b>Protocol</b>, or <b>InitiateConnection</b> is missing from the <see cref="AdapterBase.Settings"/>.</exception>
        public override void Initialize()
        {
            base.Initialize();

            string server;
            string port;
            string protocol;
            string outbound;
            string message = "{0} is missing from Settings - Example: protocol=UDP;server=192.168.1.15;port=2004;initiateConnection=True";
            Dictionary <string, string> settings = Settings;

            // Validate settings.
            if (!settings.TryGetValue("server", out server))
            {
                throw new ArgumentException(string.Format(message, "server"));
            }

            if (!settings.TryGetValue("port", out port))
            {
                throw new ArgumentException(string.Format(message, "port"));
            }

            if (!settings.TryGetValue("protocol", out protocol))
            {
                throw new ArgumentException(string.Format(message, "protocol"));
            }

            if (!settings.TryGetValue("initiateconnection", out outbound))
            {
                throw new ArgumentException(string.Format(message, "initiateConnection"));
            }

            m_historianDataListener.ID                         = Name;
            m_historianDataListener.InitializeData             = false;
            m_historianDataListener.CacheData                  = false;
            m_historianDataListener.Server                     = server;
            m_historianDataListener.Port                       = int.Parse(port);
            m_historianDataListener.Protocol                   = (TransportProtocol)Enum.Parse(typeof(TransportProtocol), protocol, true);
            m_historianDataListener.ConnectToServer            = outbound.ParseBoolean();
            m_historianDataListener.DataExtracted             += HistorianDataListener_DataExtracted;
            m_historianDataListener.SocketConnecting          += HistorianDataListener_SocketConnecting;
            m_historianDataListener.SocketConnected           += HistorianDataListener_SocketConnected;
            m_historianDataListener.SocketDisconnected        += HistorianDataListener_SocketDisconnected;
            m_historianDataListener.Parser.OutputTypeNotFound += HistorianDataListener_OutputTypeNotFound;
            m_historianDataListener.Parser.DataDiscarded      += HistorianDataListener_DataDiscarded;
            m_historianDataListener.Parser.ParsingException   += HistorianDataListener_ParsingException;
            m_historianDataListener.Initialize();
        }