예제 #1
0
파일: DeviceSocketC.cs 프로젝트: Gz1d/Gz
        /// <summary>
        /// 初始化
        /// </summary>
        public override void DoInit()
        {
            try
            {
                foreach (Config.SocketCItem item in this.config.SocketCItems)
                {
                    if (!item.IsActive)
                    {
                        continue;
                    }
                    if (item.Timer == null)
                    {
                        item.Timer = new System.Timers.Timer();
                    }
                    item.Timer.Enabled  = false;
                    item.Timer.Interval = 1000 * item.ConnectSecond;
                    item.Timer.Elapsed += new System.Timers.ElapsedEventHandler(Timer_Elapsed);

                    Bp.Socket.Client client = new Bp.Socket.Client(item.IP, item.Port, item);
                    client.TimeOut   = item.OutTime;
                    client.TimeHeart = item.HeartSecond;

                    Sokcets.Add(item.SocketDevice, client);
                    item.PropertyChanged += new PropertyChangedEventHandler(item_PropertyChanged);
                }

                IDictionaryEnumerator enumerator = this.Sokcets.GetEnumerator();
                while (enumerator.MoveNext())
                {
                    Bp.Socket.Client socket = enumerator.Value as Bp.Socket.Client;
                    socket.OnSocketReceive += new Bp.Socket.Client.SocketReceiveDelegate(this.Socket_OnSocketReceive);
                    socket.PropertyChanged += new PropertyChangedEventHandler(socket_PropertyChanged);
                    socket.DoInit();
                }
            }
            catch (Exception ex)
            {
                throw new InitException(this.ToString(), ex.ToString());
            }
        }