Пример #1
0
        /// <summary>
        /// Установить соединение для КП
        /// </summary>
        protected void SetConnection(KPLogic kpLogic, TcpConnection tcpConn)
        {
            TcpConnection existingTcpConn = kpLogic.Connection as TcpConnection;

            if (existingTcpConn != null)
            {
                existingTcpConn.Broken = true;
                existingTcpConn.ClearRelatedKPs();
            }

            kpLogic.Connection = tcpConn;
            tcpConn.AddRelatedKP(kpLogic);
        }
Пример #2
0
        /// <summary>
        /// Инициализировать канал связи
        /// </summary>
        public override void Init(SortedList <string, string> commCnlParams, List <KPLogic> kpList)
        {
            // вызов метода базового класса
            base.Init(commCnlParams, kpList);

            // инициализация настроек канала связи
            settings.Init(commCnlParams);

            // создание соединений и установка соединений КП
            if (settings.ConnMode == ConnectionModes.Shared)
            {
                // общее соединение для всех КП
                sharedTcpConn = new TcpConnection(new TcpClient())
                {
                    ReconnectAfter = settings.ReconnectAfter
                };

                foreach (KPLogic kpLogic in kpList)
                {
                    kpLogic.Connection = sharedTcpConn;
                }
            }
            else
            {
                // индивидуальное соединение для каждого КП или группы КП с общим позывным
                tcpConnList = new List <TcpConnection>();
                foreach (List <KPLogic> kpByCallNumList in kpCallNumDict.Values)
                {
                    foreach (KPLogic kpLogic in kpByCallNumList)
                    {
                        TcpConnection tcpConn = new TcpConnection(new TcpClient())
                        {
                            ReconnectAfter = settings.ReconnectAfter
                        };
                        tcpConnList.Add(tcpConn);
                        tcpConn.AddRelatedKP(kpLogic);
                        kpLogic.Connection = tcpConn;
                    }
                }
            }

            // проверка поддержки режима работы канала связи подключенными КП
            CheckBehaviorSupport();
        }
Пример #3
0
        /// <summary>
        /// Инициализировать канал связи
        /// </summary>
        public override void Init(SortedList<string, string> commCnlParams, List<KPLogic> kpList)
        {
            // вызов метода базового класса
            base.Init(commCnlParams, kpList);

            // инициализация настроек канала связи
            settings.Init(commCnlParams);

            // создание соединений и установка соединений КП
            if (settings.ConnMode == ConnectionModes.Shared)
            {
                // общее соединение для всех КП
                sharedTcpConn = new TcpConnection(new TcpClient());
                foreach (KPLogic kpLogic in kpList)
                    kpLogic.Connection = sharedTcpConn;
            }
            else
            {
                // индивидуальное соединение для каждого КП или группы КП с общим позывным
                tcpConnList = new List<TcpConnection>();
                foreach (List<KPLogic> kpByCallNumList in kpCallNumDict.Values)
                {
                    foreach (KPLogic kpLogic in kpByCallNumList)
                    {
                        int timeout = kpLogic.ReqParams.Timeout;
                        TcpConnection tcpConn = new TcpConnection(new TcpClient());
                        tcpConnList.Add(tcpConn);
                        tcpConn.AddRelatedKP(kpLogic);
                        kpLogic.Connection = tcpConn;
                    }
                }
            }

            // проверка поддержки режима работы канала связи подключенными КП
            CheckBehaviorSupport();
        }
Пример #4
0
        /// <summary>
        /// Установить соединение для КП
        /// </summary>
        protected void SetConnection(KPLogic kpLogic, TcpConnection tcpConn)
        {
            TcpConnection existingTcpConn = kpLogic.Connection as TcpConnection;
            if (existingTcpConn != null)
            {
                existingTcpConn.Broken = true;
                existingTcpConn.ClearRelatedKPs();
            }

            kpLogic.Connection = tcpConn;
            tcpConn.AddRelatedKP(kpLogic);
        }