/// <summary>
        /// Constructor using configuration string
        /// </summary>
        /// <param name="ConfigString">Configuration String</param>
        /// <param name="FriendlyName">Friendly Name</param>
        public AbsCommunicationInterface(string ConfigString, string FriendlyName) : this()
        {
            this.config_string = ConfigString;
            this.friendly_name = FriendlyName;
            Config             = new Dictionary <string, string>();
            string[] ConfigItem = ConfigString.Split(new char[] { ',' });

            // Parse all config elements
            foreach (string Item in ConfigItem)
            {
                string[] ConfigNameAndValue = Item.Split(new char[] { '=' });
                if (ConfigNameAndValue.Length >= 2 && !ConfigNameAndValue[0].Equals(string.Empty))
                {
                    Config.Add(ConfigNameAndValue[0].Trim(), ConfigNameAndValue[1].Trim());
                }
            }

            // Global buffer setup
            if (Config.ContainsKey("GlobalBuffer"))
            {
                global_buffer = null;
                global_buffer = new Buffer(int.Parse(Config["GlobalBuffer"]));
            }

            // Read buffer setup
            if (Config.ContainsKey("ReadBuffer"))
            {
                read_buffer = null;
                read_buffer = new Buffer(int.Parse(Config["ReadBuffer"]));
            }

            fragment_buffer = new Buffer(DefaultFragmentBufferSize);
        }
 protected void TriggerBufferUpdateEvent(IBufferInternal ReadBuffer)
 {
     if (BufferUpdatedHandler != null)
     {
         BufferUpdatedHandler(this, ReadBuffer.ToString());
     }
 }
Beispiel #3
0
 public void Append(IBufferInternal source)
 {
     if (source != null)
     {
         source.BufferStream.Position = 0; // Importent
         source.BufferStream.CopyTo(buffer_stream);
     }
 }
Beispiel #4
0
 public void Copy(IBufferInternal source)
 {
     if (source != null)
     {
         buffer_stream.SetLength(0);
         source.BufferStream.Position = 0; // Importent
         source.BufferStream.CopyTo(buffer_stream);
     }
 }
 internal AbsCommunicationInterface()
 {
     global_buffer         = new Buffer(DefaultGlobalBufferSize);
     fragment_buffer       = new Buffer(DefaultFragmentBufferSize);
     read_buffer           = new Buffer(DefaultReadBufferSize);
     ReadTimeout           = 10;
     WriteTimeout          = 10;
     StopToken             = string.Empty;
     LineFeed              = DEFAULT_LINE_FEED;
     WriteReadInterval     = 0.1;
     WriteReadLoopInterval = 0.5;
     WriteEcho             = false;
     ByteWriteMode         = false;
     ByteWriteInterval     = 0.01;
 }