Beispiel #1
0
        /// <summary>
        /// Выполнить действия перед сеансом опроса КП или отправкой команды
        /// </summary>
        public override void BeforeSession(KPLogic kpLogic)
        {
            // установка соединения при необходимости
            TcpConnection tcpConn = kpLogic.Connection as TcpConnection;

            if (tcpConn != null && !tcpConn.Connected)
            {
                string reason;
                if (tcpConn.CanOpen(out reason))
                {
                    try
                    {
                        // определение IP-адреса и TCP-порта
                        string host;
                        int    port;

                        if (tcpConn == sharedTcpConn)
                        {
                            host = settings.Host;
                            port = settings.TcpPort;
                        }
                        else
                        {
                            CommUtils.ExtractHostAndPort(kpLogic.CallNum, settings.TcpPort, out host, out port);
                        }

                        // установка соединения
                        WriteToLog("");
                        WriteToLog(string.Format(Localization.UseRussian ?
                                                 "{0} Установка TCP-соединения с {1}:{2}" :
                                                 "{0} Establish a TCP connection with {1}:{2}", CommUtils.GetNowDT(), host, port));

                        if (tcpConn.NetStream != null) // соединение уже было открыто, но разорвано
                        {
                            tcpConn.Renew();
                        }

                        tcpConn.Open(host, port);
                    }
                    catch (Exception ex)
                    {
                        WriteToLog(ex.Message);
                    }
                }
                else
                {
                    WriteToLog("");
                    WriteToLog(string.Format("{0} {1}", CommUtils.GetNowDT(), reason));
                }
            }
        }
        /// <summary>
        /// Выполнить действия перед сеансом опроса КП или отправкой команды
        /// </summary>
        public override void BeforeSession(KPLogic kpLogic)
        {
            // установка соединения при необходимости
            TcpConnection tcpConn = kpLogic.Connection as TcpConnection;

            if (tcpConn != null && !tcpConn.Connected)
            {
                try
                {
                    // определение IP-адреса и TCP-порта
                    IPAddress addr;
                    int       port;

                    if (tcpConn == sharedTcpConn)
                    {
                        addr = IPAddress.Parse(settings.IpAddress);
                        port = settings.TcpPort;
                    }
                    else
                    {
                        CommUtils.ExtractAddrAndPort(kpLogic.CallNum, settings.TcpPort, out addr, out port);
                    }

                    // установка соединения
                    WriteToLog("");
                    WriteToLog(string.Format(Localization.UseRussian ?
                                             "{0} Установка TCP-соединения с {1}:{2}" :
                                             "{0} Establish a TCP connection with {1}:{2}", CommUtils.GetNowDT(), addr, port));
                    tcpConn.Open(addr, port);
                }
                catch (Exception ex)
                {
                    WriteToLog(ex.Message);
                }
            }
        }