Esempio n. 1
0
        /// <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");
            }
        }
Esempio n. 2
0
        /// <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());
        }