/// <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); } } }