Ejemplo n.º 1
0
        private string GetHardwareSubHeader(HardwareCheckDto check, params SoftwareDto[] softwares)
        {
            if (check.Hardware.HardwareType == HardwareType.Network)
            {
                var device = (NetworkHardwareDto)check.Hardware;
                var sb     = new StringBuilder("Карта IP-адресов ЛВС:");

                if (!string.IsNullOrEmpty(device.Mask))
                {
                    sb.Append($" {device.Mask} - маска подсети;");
                }
                foreach (var item in device.NetworkDevices)
                {
                    sb.Append($" {item.IP} - {item.Name} (MAC-адрес {item.MacAddress});");
                }
                return(sb.ToString());
            }
            else
            {
                var sb = new StringBuilder();
                foreach (var item in softwares)
                {
                    sb.Append($"{item.Name} ver.{item.Version}; ");
                }

                return(sb.ToString());
            }
        }
Ejemplo n.º 2
0
        private string GetHardwareHeader(HardwareCheckDto check)
        {
            var    device     = check.Hardware;
            string header     = "";
            string mbSettings = "";

            switch (device.HardwareType)
            {
            case HardwareType.Cabinet:
                var cabinet = (CabinetDto)device;
                header = cabinet.Position +
                         $"( зав.№{cabinet.SerialNumber}, " +
                         $"завершение монтажа {cabinet.Constructed.ToShortDateString()}, " +
                         $"ответственный - {cabinet.ConstructedBy})";
                break;

            case HardwareType.FlowComputer:
                var flowcomputer = (FlowComputerDto)device;
                header = $"{flowcomputer.HardwareType.GetDisplayName()} {flowcomputer.Position} " +
                         $"({flowcomputer.DeviceModel} " +
                         $"- №{flowcomputer.SerialNumber} " +
                         $"- IP={flowcomputer.IP} " +
                         $"- ASSEMBLY_VERSION={flowcomputer.AssemblyVersion} " +
                         $"- PRG_CRC32={flowcomputer.CRC32} " +
                         $"- LASTDATECFG={flowcomputer.LastConfigDate}):";
                break;

            case HardwareType.Flowmeter:
                var flowmeter   = (FlowmeterDto)device;
                var flowmeterMb = flowmeter.ModbusSettings;
                mbSettings = flowmeter.SignalType == SignalType.RS485 ?
                             $"({flowmeterMb.Address}/{flowmeterMb.BoudRate}/Modbus RTU/{Enum.GetName(typeof(Parity), flowmeterMb.Parity)[0]}/{flowmeterMb.DataBits}/{flowmeterMb.StopBit})"
                        : "";

                header = $"{flowmeter.HardwareType.GetDisplayName()} {flowmeter.Position}" +
                         $"(тип {flowmeter.DeviceType} " +
                         $"- серия {flowmeter.DeviceModel} " +
                         $"- зав.№{flowmeter.SerialNumber} " +
                         $"- диап. {flowmeter.MinValue}...{flowmeter.MaxValue} {flowmeter.EU} " +
                         $"- {flowmeter.Kfactor} имп/{flowmeter.EU} " +
                         $"- {flowmeter.SignalType.GetDisplayName()} " +
                         $"{mbSettings}):";
                break;

            case HardwareType.Network:
                var network = (NetworkHardwareDto)device;
                header = $"{network.HardwareType.GetDisplayName()}: {network.Position}, " +
                         $"тип {network.DeviceType}, " +
                         $"модель {network.DeviceModel}, " +
                         $"зав.№{network.SerialNumber}:";
                break;

            case HardwareType.PLC:
                var plc = (PlcDto)device;
                header = $"{plc.HardwareType.GetDisplayName()} {plc.Position} " +
                         $"({plc.DeviceModel} " +
                         $"- №{plc.SerialNumber} " +
                         $"- IP={plc.IP} " +
                         $"- ASSEMBLY={plc.AssemblyVersion}):";
                break;

            case HardwareType.Pressure:
            case HardwareType.DiffPressure:
            case HardwareType.GasAnalyzer:
            case HardwareType.Temperature:
                var measurement = (MeasurementDto)device;
                header = $"{measurement.HardwareType.GetDisplayName()} {measurement.Position}" +
                         $"(тип {measurement.DeviceType} " +
                         $"- модель {measurement.DeviceModel} " +
                         $"- зав.№{measurement.SerialNumber} " +
                         $"- диап. {measurement.MinValue}...{measurement.MaxValue} {measurement.EU} " +
                         $"- {measurement.SignalType.GetDisplayName()} ):";
                break;

            case HardwareType.InformPanel:
                var panel = (InformPanelDto)device;
                header = $"{panel.HardwareType.GetDisplayName()} {panel.Position}" +
                         $"(тип {panel.DeviceType} " +
                         $"- модель {panel.DeviceModel} " +
                         $"- зав.№{panel.SerialNumber} " +
                         $"- тип табло \"{panel.PanelType.GetDisplayName()}\" ):";
                break;

            case HardwareType.APC:
                var apc = (ApcDto)device;
                header = $"{apc.HardwareType.GetDisplayName()} {apc.Position}" +
                         $"(тип {apc.DeviceType} " +
                         $"- модель {apc.DeviceModel} " +
                         $"- зав.№{apc.SerialNumber} ):";
                break;

            case HardwareType.FireSensor:
                var fireSensor = (FireSensorDto)device;
                header = $"{fireSensor.HardwareType.GetDisplayName()} {fireSensor.Position}" +
                         $"(тип {fireSensor.DeviceType} " +
                         $"- модель {fireSensor.DeviceModel} " +
                         $"- зав.№{fireSensor.SerialNumber} ):";
                break;

            case HardwareType.FireModule:
                var fireModule = (FireModuleDto)device;
                header = $"{fireModule.HardwareType.GetDisplayName()} {fireModule.Position}" +
                         $"(тип {fireModule.DeviceType} " +
                         $"- зав.№{fireModule.SerialNumber} ):";
                break;

            case HardwareType.Valve:
                var valve   = (ValveDto)device;
                var valveMb = valve.ModbusSettings;
                mbSettings = valve.SignalType == SignalType.RS485 ?
                             $"({valveMb.Address}/{valveMb.BoudRate}/Modbus RTU/{Enum.GetName(typeof(Parity), valveMb.Parity)[0]}/{valveMb.DataBits}/{valveMb.StopBit})"
                        : "";

                header = $"{valve.HardwareType.GetDisplayName()} {valve.Position} " +
                         $"(тип {valve.DeviceType}, " +
                         $"модель {valve.DeviceModel}, " +
                         $"зав.№{valve.SerialNumber}, " +
                         $"{valve.SignalType.GetDisplayName()} " +
                         $"{mbSettings}):";
                break;

            case HardwareType.ARM:
                var arm  = (ArmDto)device;
                var raid = arm.HasRAID ? "есть" : "отсутствует";

                header = $"{arm.HardwareType.GetDisplayName()}: " +
                         $"{arm.Name} зав.№{arm.SerialNumber}, " +
                         $"монитор {arm.Monitor} зав.№{arm.MonitorSN}, " +
                         $"клавиатура {arm.Keyboard} зав.№{arm.KeyboardSN}, " +
                         $"мышь {arm.Mouse} зав.№{arm.MouseSN}; " +
                         $"RAID-массив  - {raid}; " +
                         $"{arm.OS} ({arm.ProductKeyOS});";

                foreach (var item in arm.NetworkAdapters)
                {
                    header += $" {item.IP} - MAC-адрес {item.MacAddress},";
                }
                header = header.Replace(header.Last(), ';');
                break;
            }
            ;

            return(header);
        }
Ejemplo n.º 3
0
        public static HardwareCheckDto GetHardwareCheckDto(HardwareType type)
        {
            var check = new HardwareCheckDto();

            switch (type)
            {
            case HardwareType.Cabinet:
                check.CheckParameters.Add(new CheckParameterDto
                {
                    Description = "Наличие \"Протокола проверки изделия\", подписанного БТК и СбМР",
                    Method      = "-"
                });
                check.CheckParameters.Add(new CheckParameterDto
                {
                    Description = "\"Холодный\" пуск",
                    Method      = "-"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Работоспособность ИБП"
                });
                break;

            case HardwareType.FlowComputer:
                check.CheckParameters.Add(new CheckParameterDto
                {
                    Description = "Соответствие реализованной схемы подключения прибора проектной документации",
                    Method      = "-"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Включение и выход на рабочий режим"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Контроль уровней доступа"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Сопоставление выставленных диапазонов и единиц измерения с фактическими настройками датчиков"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Фиксирование настроек каналов ввода-вывода"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Контроль алгоритмов учета"
                });
                check.CheckParameters.Add(new CheckParameterDto
                {
                    Description = "Контроль алгоритмов работы плотномера (-ов)",
                    Method      = "Имитация данных"
                });
                check.CheckParameters.Add(new CheckParameterDto
                {
                    Description = "Контроль алгоритмов работы влагомера (-ов)",
                    Method      = "Имитация данных"
                });
                check.CheckParameters.Add(new CheckParameterDto
                {
                    Description = "Контроль алгоритмов работы гигрометра (-ов)",
                    Method      = "Имитация данных"
                });
                check.CheckParameters.Add(new CheckParameterDto
                {
                    Description = "Контроль алгоритмов работы хроматографа (-ов)",
                    Method      = "Имитация данных"
                });
                check.CheckParameters.Add(new CheckParameterDto
                {
                    Description = "Контроль алгоритмов работы вискозиметра (-ов)",
                    Method      = "Имитация данных"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Контроль параметров накоплений и архивирования данных"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Контроль параметров среды"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Фиксирование настроек связи"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Контроль текущей даты и времени"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Фиксирование контрольных сумм и версий внутреннего ПО"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Контроль функции синхронизации ИВК"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Создание резервной копии конфигурации ИВК или отчета по конфигурации"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Восстановление с резервной копии конфигурации ИВК или сопоставление отчета по конфигурации с его фактическими настройками"
                });
                break;

            case HardwareType.Flowmeter:
                check.CheckParameters.Add(new CheckParameterDto
                {
                    Description = "Соответствие реализованной схемы подключения прибора проектной документации",
                    Method      = "-"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Включение и выход на рабочий режим"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Имитация выходного сигнала в диапазоне 0-100 % шкалы"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Контроль уровней доступа"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Сопоставление выставленных диапазонов и единиц измерения с документацией на прибор"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Фиксирование настроек каналов ввода-вывода"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Фиксирование настроек параметров среды"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Фиксирование настроек связи"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Контроль текущей даты и времени"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Фиксирование контрольных сумм и версий внутреннего  ПО"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Создание отчета о конфигурации устройства"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Сопоставление отчета о конфигурации устройства с его фактическими настройками"
                });
                break;

            case HardwareType.Network:
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Включение и выход на рабочий режим"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Наличие связи со всеми устройствами в локальной сети"
                });
                check.CheckParameters.Add(new CheckParameterDto
                {
                    Description = "Создание резервной копии конфигурации сетевого оборудования или отчета по конфигурации",
                    Method      = "-"
                });
                check.CheckParameters.Add(new CheckParameterDto
                {
                    Description = "Восстановление с резервной копии конфигурации сетевого оборудования или сопоставление отчета по конфигурации с его фактическими настройками",
                    Method      = "-"
                });
                break;

            case HardwareType.PLC:
                check.CheckParameters.Add(new CheckParameterDto
                {
                    Description = "Соответствие реализованной схемы подключения прибора проектной документации",
                    Method      = "-"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Включение и выход на рабочий режим"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Контроль уровней доступа"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Фиксирование настроек каналов ввода-вывода"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Контроль алгоритмов управления системы пожарной сигнализации"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Контроль алгоритмов управления системой загазованности"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Контроль алгоритмов управления элекроприводными кранами и регуляторами"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Контроль алгоритмов управления системой обогрева блок-боксов"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Контроль алгоритмов управления системой вентиляции"
                });
                check.CheckParameters.Add(new CheckParameterDto
                {
                    Description = "Контроль алгоритмов управления автоматическим пробоотбором",
                    Method      = "Имитация данных"
                });
                check.CheckParameters.Add(new CheckParameterDto
                {
                    Description = "Контроль алгоритмов управления насосами",
                    Method      = "Имитация данных"
                });
                check.CheckParameters.Add(new CheckParameterDto
                {
                    Description = "Контроль алгоритмов управления электропитанием ШК и ШП",
                    Method      = "Имитация данных"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Фиксирование настроек связи"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Контроль текущей даты и времени"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Фиксирование контрольных сумм и версий внутреннего  ПО"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Контроль резервирования ПЛК"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Создание резервной копии конфигурации ПЛК или отчета по конфигурации"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Восстановление с резервной копии конфигурации ПЛК или сопоставление отчета по конфигурации с его фактическими настройками"
                });
                break;

            case HardwareType.Pressure:
            case HardwareType.DiffPressure:
            case HardwareType.GasAnalyzer:
            case HardwareType.Temperature:
                check.CheckParameters.Add(new CheckParameterDto
                {
                    Description = "Соответствие реализованной схемы подключения прибора проектной документации",
                    Method      = "-"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Включение и выход на рабочий режим"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Сопоставление выставленных диапазонов и единиц измерения с документацией на прибор"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Контроль текущего измерения на воздухе"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Имитация выходного сигнала в диапазоне 0-100 % шкалы"
                });
                break;

            case HardwareType.FireSensor:
                check.CheckParameters.Add(new CheckParameterDto
                {
                    Description = "Соответствие реализованной схемы подключения прибора проектной документации",
                    Method      = "-"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Включение и выход на рабочий режим"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Имитация излучения для проверки сработки датчика"
                });
                break;

            case HardwareType.FireModule:
                check.CheckParameters.Add(new CheckParameterDto
                {
                    Description = "Соответствие реализованной схемы подключения прибора проектной документации",
                    Method      = "-"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Взятие шлейфа"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Сработки по шлейфу"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Выдача управляющих сигналов"
                });
                break;

            case HardwareType.InformPanel:
                check.CheckParameters.Add(new CheckParameterDto
                {
                    Description = "Соответствие реализованной схемы подключения прибора проектной документации",
                    Method      = "-"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Наличие силового питания"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Индикация при сигнале тревоги"
                });
                break;

            case HardwareType.Valve:
                check.CheckParameters.Add(new CheckParameterDto
                {
                    Description = "Сответствие реализованной схемы подключения прибора проектной документации",
                    Method      = "-"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Включение и выход на рабочий режим"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Контроль сработки концевых выключателей"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Фиксирование настроек связи"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Контроль управления в местном режиме"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Контроль управления в дистанционном режиме"
                });
                break;

            case HardwareType.ARM:
                check.CheckParameters.Add(new CheckParameterDto
                {
                    Description = "Включение и автозапуск программ и служб",
                    Method      = "-"
                });
                check.CheckParameters.Add(new CheckParameterDto
                {
                    Description = "Создание резервной копии ОС и прикладного ПО",
                    Method      = "-"
                });
                check.CheckParameters.Add(new CheckParameterDto
                {
                    Description = "Восстановление ОС и прикладного ПО с резервной копии",
                    Method      = "-"
                });
                break;

            case HardwareType.APC:
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Внешний осмотр (Проверка корректного подключения входного и выходного напряжений, батарей)"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "При наличии карты удаленного доступа, настройка доступа к ИБП по протоколу SNMP, Modbus"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Проверка и фиксация значений входного и выходного напряжений на дисплее ИБП"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Произвести полный заряд ИБП"
                });
                check.CheckParameters.Add(new CheckParameterDto {
                    Description = "Проверка автономной работы ИБП в течение 2 часов"
                });
                break;
            }

            return(check);
        }