protected override void Plot(Chart chart, Project project, Parameters parameters, string trace) { var cycles = ProjectDataRepository.GetCycles(project.Id, trace); var allPoints = ProjectDataRepository.GetPoints(project.Id, trace); var multiplier = GetCapacityMultiplier(project, parameters); foreach (var cycle in FilterCycles(cycles, parameters)) { if (parameters.IsChargeEnabled) { List <Point> points = Plot( allPoints, cycle, p => multiplier * p.Capacity, p => p.Voltage, parameters, p => p.CycleStep == CycleStep.ChargeCC || p.CycleStep == CycleStep.ChargeCV).ToList(); AddSeries(chart, project, parameters, points, Title.Charge, cycle.Index); } if (parameters.IsDischargeEnabled) { List <Point> points = Plot( allPoints, cycle, p => multiplier * p.Capacity, p => p.Voltage, parameters, p => p.CycleStep == CycleStep.Discharge).ToList(); AddSeries(chart, project, parameters, points, Title.Discharge, cycle.Index); } } }
protected override void Plot(Chart chart, Project project, Parameters parameters, string trace) { var stateOfCharge = (StateOfCharge)Context.Data; var allChargePoints = ProjectDataRepository.GetPoints(project.Id, trace) .Where(point => point.Voltage.HasValue && point.Current.HasValue && point.Current.Value > 0 && point.Capacity.HasValue && point.Capacity.Value != 0 && (point.Voltage >= stateOfCharge.ChargeFrom && point.Voltage <= stateOfCharge.ChargeTo) && (parameters.CustomCycleFilter == null || parameters.CustomCycleFilter.RangesItems.Count == 0 || parameters.CustomCycleFilter.RangesItems.Contains(point.CycleIndex))) .ToList(); if (allChargePoints.Count > 0) { var cycles = ProjectDataRepository.GetCycles(project.Id, trace).Where(c => allChargePoints.Any(p => p.CycleIndex == c.Index)).ToList(); GetChartBySOC(chart, project, parameters, cycles, stateOfCharge, allChargePoints); } var allDischargePoints = ProjectDataRepository.GetPoints(project.Id, trace) .Where(point => point.Voltage.HasValue && point.Current.HasValue && point.Current.Value < 0 && point.Capacity.HasValue && point.Capacity.Value != 0 && (point.Voltage >= stateOfCharge.ChargeFrom && point.Voltage <= stateOfCharge.ChargeTo) && (parameters.CustomCycleFilter == null || parameters.CustomCycleFilter.RangesItems.Count == 0 || parameters.CustomCycleFilter.RangesItems.Contains(point.CycleIndex))) .ToList(); if (allDischargePoints.Count > 0) { var cycles = ProjectDataRepository.GetCycles(project.Id, trace).Where(c => allDischargePoints.Any(p => p.CycleIndex == c.Index)).ToList(); GetChartBySODC(chart, project, parameters, cycles, stateOfCharge, allDischargePoints); } }
protected override void Plot(Chart chart, Project project, string trace) { var cycles = ProjectDataRepository.GetCycles(project.Id, trace); var allPoints = ProjectDataRepository.GetPoints(project.Id, trace); var dataContext = GetDataNormalizedContext(project, MultiplierType.Capacity); foreach (var cycle in FilterCycles(cycles, ChartSettings)) { if (ChartSettings.IsChargeEnabled) { List <Point> points = Plot( allPoints, cycle, p => dataContext.Apply(p.Capacity), p => p.Voltage, ChartSettings, p => p.CycleStep == CycleStep.ChargeCC || p.CycleStep == CycleStep.ChargeCV).ToList(); AddSeries(chart, project, ChartSettings, points, Title.Charge, cycle.Index); } if (ChartSettings.IsDischargeEnabled) { List <Point> points = Plot( allPoints, cycle, p => dataContext.Apply(p.Capacity), p => p.Voltage, ChartSettings, p => p.CycleStep == CycleStep.Discharge).ToList(); AddSeries(chart, project, ChartSettings, points, Title.Discharge, cycle.Index); } } }
protected override void Plot(Chart chart, Project project, string trace) { var cycles = ProjectDataRepository.GetCycles(project.Id, trace); var allPoints = ProjectDataRepository.GetPoints(project.Id, trace); var dataContext = GetDataNormalizedContext(project, MultiplierType.Current); var points = FilterCycles(cycles, ChartSettings) .SelectMany(c => Plot(allPoints, c, p => p.Voltage, p => dataContext.Apply(p.Current), ChartSettings)) .ToList(); AddSeries(chart, project, ChartSettings, points, Title.CyclicVoltammetry); }
protected override void Plot(Chart chart, Project project, Parameters parameters, string trace) { var cycles = ProjectDataRepository.GetCycles(project.Id, trace); var allPoints = ProjectDataRepository.GetPoints(project.Id, trace); var multiplier = GetCurrentMultiplier(project, parameters); var points = FilterCycles(cycles, parameters) .SelectMany(c => Plot(allPoints, c, p => p.Voltage, p => multiplier * p.Current, parameters)) .ToList(); AddSeries(chart, project, parameters, points, Title.CyclicVoltammetry); }