![]() | Расчёт в зависимости от состояния коммутационного аппарата |
foreach (var sourceValue in sourceValues) { // Расчет потерь на интервале параметра var losses = 0.0; // Получить интервал параметра, текущего элемента значения потребления var interval = sourceValue.GetIntervalForValue(context); // Получить Ячейку присоединения, в которой располагается ТУ var cubicle = context.MeterPoint.RelationsCubicleAttributeMeterPoint.FirstOrDefault(); if (cubicle != null) { // Получить состояние Коммутационного аппарата (КА), расположенного в Ячейке ТУ, на начало интервала текущего значения потребления var state = cubicle.AttributeElectricSwitchboard.GetSwitchboardState(interval.StartDt); // Если КА находился в состояние ВКЛ (true) if (state.State == true) losses = sourceValue.Value * 0.1; // то потери = 10% от потребления } // Промежуточный результат context.TempResults.Add(sourceValue.Result(losses)); } // Результат расчета потерь для каждого интервала параметра return context.TempResults;