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