/// <summary> /// Возвращает полную информацию о измерительной нитке вычислителя ФЛОУТЭК /// </summary> public static string Info(this FloutecMeasureLine line) { string sensor; switch (line.SensorType) { case 0: sensor = "Діафрагма"; break; case 1: sensor = "Лічильник"; break; case 2: sensor = "Витратомір"; break; default: sensor = "Діафрагма"; break; } return($"Id:\t\t{line.Id}\n" + $"Назва:\t\t{line.Name}\n" + $"Опис:\t\t{line.Description}\n" + $"Номер:\t\t{line.Number}\n" + $"Тип сенсора:\t{sensor}\n" + $"Створено:\t{line.DateCreated.ToString("dd.MM.yyyy HH:mm")}\n" + $"Змінено:\t{line.DateModified.ToString("dd.MM.yyyy HH:mm")}"); }
public EditFloutecLineForm() { InitializeComponent(); cmbSensorType.Items.AddRange(new object[] { "Діафрагма", "Лічильник", "Витратомір" }); Load += (sender, args) => { if (!IsEdit) { Line = new FloutecMeasureLine(); Text = TITLE_CREATE; cmbSensorType.SelectedIndex = 0; Icon = Resources.Add; } else { Text = TITLE_EDIT; txtName.Text = Line.Name; txtDescription.Text = Line.Description; numNumber.Value = Line.Number; cmbSensorType.SelectedIndex = Line.SensorType; Icon = Resources.Sensor1; } }; btnSave.Select(); }
private async void ScanHourlyData(Floutec floutec, FloutecMeasureLine line) { Logger.Log(_log, new LogEntry { Message = $"Опитування годинних даних нитки №{line.Number} обчислювача ФЛОУТЕК з адресою {floutec.Address} ...", Status = LogStatus.Info, Type = LogType.Floutec }); await _service.GetHourlyData(floutec.Address, line.Number, async data => { if (data == null || !data.Any()) { Logger.Log(_log, new LogEntry { Message = $"Годинні дані нитки №{line.Number} обчислювача ФЛОУТЕК з адресою {floutec.Address} відсутні", Status = LogStatus.Warning, Type = LogType.Floutec }); return; } data.ForEach(d => { d.N_FLONIT = floutec.Address * 10 + line.Number; d.FloutecMeasureLineId = line.Id; }); await _dataService.SaveHourlyData(line.Id, data, saved => { Logger.Log(_log, saved > 0 ? new LogEntry { Message = $"Годинні дані нитки №{line.Number} обчислювача ФЛОУТЕК з адресою {floutec.Address} успішно оновлено. Додано записів: {saved}", Status = LogStatus.Success, Type = LogType.Floutec } : new LogEntry { Message = $"Нові годинні дані нитки №{line.Number} обчислювача ФЛОУТЕК з адресою {floutec.Address} відсутні", Status = LogStatus.Warning, Type = LogType.Floutec }); }, ex => { Logger.Log(_log, new LogEntry { Message = $"Помилка збереження даних аварій нитки №{line.Number} обчислювача ФЛОУТЕК з адресою {floutec.Address}", Status = LogStatus.Error, Type = LogType.Floutec }); Logger.Log(_log, new LogEntry { Message = ex.Message, Status = LogStatus.Error, Type = LogType.Floutec }); }); }, ex => { Logger.Log(_log, new LogEntry { Message = $"Помилка читання годинних даних нитки №{line.Number} обчислювача ФЛОУТЕК з адресою {floutec.Address}", Status = LogStatus.Error, Type = LogType.Floutec }); Logger.Log(_log, new LogEntry { Message = ex.Message, Status = LogStatus.Error, Type = LogType.Floutec }); }); }
private async void ScanIdentData(Floutec floutec, FloutecMeasureLine line) { Logger.Log(_log, new LogEntry { Message = $"Опитування даних ідентифікації нитки №{line.Number} обчислювача ФЛОУТЕК з адресою {floutec.Address} ...", Status = LogStatus.Info, Type = LogType.Floutec }); await _service.GetIdentData(floutec.Address, line.Number, async data => { if (data == null) { Logger.Log(_log, new LogEntry { Message = $"Дані ідентифікації нитки №{line.Number} обчислювача ФЛОУТЕК з адресою {floutec.Address} відсутні", Status = LogStatus.Warning, Type = LogType.Floutec }); return; } data.N_FLONIT = floutec.Address * 10 + line.Number; data.FloutecMeasureLineId = line.Id; await _dataService.SaveIdentData(data, saved => { Logger.Log(_log, saved ? new LogEntry { Message = $"Дані ідентифікації нитки №{line.Number} обчислювача ФЛОУТЕК з адресою {floutec.Address} успішно оновлено", Status = LogStatus.Success, Type = LogType.Floutec } : new LogEntry { Message = $"Дані ідентифікації нитки №{line.Number} обчислювача ФЛОУТЕК з адресою {floutec.Address} не змінилися", Status = LogStatus.Success, Type = LogType.Floutec }); }, ex => { Logger.Log(_log, new LogEntry { Message = $"Помилка збереження даних ідентифікації нитки №{line.Number} обчислювача ФЛОУТЕК з адресою {floutec.Address}", Status = LogStatus.Error, Type = LogType.Floutec }); Logger.Log(_log, new LogEntry { Message = ex.Message, Status = LogStatus.Error, Type = LogType.Floutec }); }); }, ex => { Logger.Log(_log, new LogEntry { Message = $"Помилка читання даних ідентифікації нитки №{line.Number} обчислювача ФЛОУТЕК з адресою {floutec.Address}", Status = LogStatus.Error, Type = LogType.Floutec }); Logger.Log(_log, new LogEntry { Message = ex.Message, Status = LogStatus.Error, Type = LogType.Floutec }); }); }
/// <summary> /// Возвращает текст для элемента дерева для точки измерения /// </summary> public static string NodeTitle(this MeasurePointBase point) { FloutecMeasureLine floutecLine = point as FloutecMeasureLine; if (floutecLine != null) { string sensor; switch (floutecLine.SensorType) { case 0: sensor = "Діафрагма"; break; case 1: sensor = "Лічильник"; break; case 2: sensor = "Витратомір"; break; default: sensor = "Діафрагма"; break; } return($"{floutecLine.Number} {floutecLine.Name} ({sensor})"); } Roc809MeasurePoint rocPoint = point as Roc809MeasurePoint; if (rocPoint != null) { return($"{rocPoint.Number} {rocPoint.Name} (Сегмент = {rocPoint.HistSegment})"); } return(string.Empty); }
private void ProcessLine(FloutecScanMember member, Floutec floutec, FloutecMeasureLine line) { if (member.ScanIdentData) { ScanIdentData(floutec, line); } if (member.ScanInterData) { ScanInterData(floutec, line); } if (member.ScanAlarmData) { ScanAlarmData(floutec, line); } if (member.ScanHourlyData) { ScanHourlyData(floutec, line); } if (member.ScanInstantData) { ScanInstantData(floutec, line); } }