Example #1
0
        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);
                }
            }
        }
Example #2
0
        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);
                }
            }
        }
Example #4
0
        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);
        }
Example #5
0
        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);
        }