/// <summary> /// Отправить команду ТУ /// </summary> /// <remarks>Метод выполняется в потоке линии связи при появлении команды ТУ</remarks> public virtual void SendCmd(Command cmd) { LastCmdDT = DateTime.Now; lastCommSucc = CanSendCmd; if (sendCmdText == "") { StringBuilder sb = new StringBuilder(Localization.UseRussian ? " Команда " : " Command to the "); AppendKPDescr(sb); sendCmdText = sb.ToString(); } WriteToLog(""); WriteToLog(LastCmdDT.ToString(CommUtils.CommLineDTFormat) + sendCmdText); if (CanSendCmd) { // добавление команды в список последних команд lastCmdList.Add(cmd); while (lastCmdList.Count > LastCmdListSize) { lastCmdList.RemoveAt(0); } } else { WriteToLog(Localization.UseRussian ? "КП не поддерживает отправку команд" : "The device does not support sending commands"); } }
/// <summary> /// Получить информацию о работе КП /// </summary> public virtual string GetInfo() { StringBuilder sbInfo = new StringBuilder(); sbInfo.AppendLine(Caption).AppendLine(new string('-', Caption.Length)); if (Localization.UseRussian) { sbInfo .Append("DLL : ").AppendLine(Dll) .Append("Состояние : ").AppendLine(WorkStateStr) .Append("Сеанс связи : ") .AppendLine(LastSessDT > DateTime.MinValue ? LastSessDT.ToLocalizedString() : "время неопределено") .Append("Команда ТУ : ") .AppendLine(LastCmdDT > DateTime.MinValue ? LastCmdDT.ToLocalizedString() : "время неопределено") .AppendLine() .Append("Сеансы связи (всего / ошибок) : ") .Append(kpStats.SessCnt).Append(" / ").Append(kpStats.SessErrCnt).AppendLine() .Append("Команды ТУ (всего / ошибок) : ") .Append(kpStats.CmdCnt).Append(" / ").Append(kpStats.CmdErrCnt).AppendLine() .Append("Запросы (всего / ошибок) : ") .Append(kpStats.ReqCnt).Append(" / ").Append(kpStats.ReqErrCnt).AppendLine(); } else { sbInfo .Append("DLL : ").AppendLine(Dll) .Append("State : ").AppendLine(WorkStateStr) .Append("Comm. session : ") .AppendLine(LastSessDT > DateTime.MinValue ? LastSessDT.ToLocalizedString() : "time is undefined") .Append("Command : ") .AppendLine(LastCmdDT > DateTime.MinValue ? LastCmdDT.ToLocalizedString() : "time is undefined") .AppendLine() .Append("Comm. sessions (total / errors) : "). Append(kpStats.SessCnt).Append(" / ").Append(kpStats.SessErrCnt).AppendLine() .Append("Commands (total / errors) : ") .Append(kpStats.CmdCnt).Append(" / ").Append(kpStats.CmdErrCnt).AppendLine() .Append("Requests (total / errors) : ") .Append(kpStats.ReqCnt).Append(" / ").Append(kpStats.ReqErrCnt).AppendLine(); } AppendKPTagsInfo(sbInfo); AppendLastArcSrezInfo(sbInfo); AppendLastEventsInfo(sbInfo); if (CanSendCmd) { AppendLastCmdsInfo(sbInfo); } return(sbInfo.ToString()); }