private void GetChartBySOC(Chart chart, Project project, Parameters parameters, List <Cycle> cycles, StateOfCharge stateOfCharge, List <DataPoint> allPoints) { var firstCyscleIndex = 0; var pointCount = 0; foreach (var cycle in FilterCycles(cycles, parameters)) { firstCyscleIndex = firstCyscleIndex + pointCount; var tempPoints = allPoints.Where(cycle1 => cycle1.CycleIndex == cycle.Index).ToList(); pointCount = tempPoints.Count(); var first = tempPoints.First(); var last = tempPoints.Last(); double denominator = 1; if ((double)(last.Capacity.Value - first.Capacity.Value) > 0) { denominator = (double)(last.Capacity.Value - first.Capacity.Value); } var pointsCC = Plot(allPoints, firstCyscleIndex, pointCount, p => Math.Abs((double)((p.Capacity - first.Capacity) / denominator) * 100), p => p.Voltage, parameters).ToList(); AddSeries(chart, project, parameters, pointsCC, $"{Title.Charge} {cycle.Index}", cycle.Index); } }
public StateOfCharge GetStateOfCharge(string VehicleId, string access_token) { var client = new RestClient("https://api.mercedes-benz.com/experimental/connectedvehicle/v1/vehicles/" + VehicleId + "/stateofcharge"); var request = new RestRequest(Method.GET); request.AddHeader("Authorization", "Bearer " + access_token); request.AddHeader("Content-Type", "application/json"); request.AddHeader("Accept", "application/json"); IRestResponse response = client.Execute(request); StateOfCharge JSONObj = JsonConvert.DeserializeObject <StateOfCharge>(response.Content); return(JSONObj); }
public IHttpActionResult SetStateOfCharge( [FromUri] int[] projectId, [FromUri] double?chargeFrom = null, [FromUri] double?chargeTo = null) { var result = _selectProjectListQuery.Execute(User.Identity.GetUserId(), projectId); if (result.Status != ProjectStatusDto.Ready) { return(Content(HttpStatusCode.NotFound, new { result.Status })); } StateOfCharge stateOfCharge = new StateOfCharge { ChargeFrom = chargeFrom, ChargeTo = chargeTo }; var parameters = _chartSettingProvider.MergeWithGlobal(User.Identity.GetUserId(), _chartSettingProvider.GetSettings(User.Identity.GetUserId())); var projectWithOneCycleExist = result.Projects.HasProjectsWithOneCycle(); var projectsSumCyclesGreaterThanMax = result.Projects.IsTotalProjectsCyclesGreaterThanMaximum(MaxSeriesPerPlot); parameters.PointSize = projectWithOneCycleExist ? PointSizeOnOneCyclePlots : parameters.PointSize; parameters.MaxCycles = projectsSumCyclesGreaterThanMax ? MaxSeriesPerPlot : parameters.MaxCycles; var timer = Stopwatch.StartNew(); var chart = _chartPlotterFactory(PlotType.Soc).Plot(projectsSumCyclesGreaterThanMax, new ChartPlotterContext { Parameters = parameters, ProjectIds = projectId, Trace = User.Identity.Name, Data = stateOfCharge }); chart.PlotParameters = parameters; timer.Restart(); return(Ok(chart.ToChartDto($"SOC ChargeFrom - {chargeFrom} ;ChargeTo - {chargeTo} "))); }
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { try { VehicleInformation getVehicleInformation = new VehicleInformation(); TireStates getTireStates = new TireStates(); Location getLocation = new Location(); Odometer getOdometer = new Odometer(); FuelState getFuelState = new FuelState(); StateOfCharge getStateOfCharge = new StateOfCharge(); StateOfDoors getStateOfDoors = new StateOfDoors(); if (Request.QueryString["code"] != null) { string Access_token = VerifyAuthentication(Request.QueryString["code"]); string VehicleId = GetVehicleId(Access_token); getVehicleInformation = GetVehicleInformationById(VehicleId, Access_token); getTireStates = GetTireState(VehicleId, Access_token); getLocation = GetLocation(VehicleId, Access_token); getOdometer = GetOdometer(VehicleId, Access_token); getFuelState = GetFuelState(VehicleId, Access_token); getStateOfCharge = GetStateOfCharge(VehicleId, Access_token); getStateOfDoors = GetStateOfDoors(VehicleId, Access_token); string kapidurum = SetLockStateOfDoors(VehicleId, Access_token); if (kapidurum == "INITIATED") { } else { } } } catch (Exception ex) { Console.WriteLine(ex.Message); } } }
public IHttpActionResult GetExportChart( [FromUri] int[] projectId, [FromUri] PlotType plotType, [FromUri] string format = null, [FromUri] string templateIdValue = null, [FromUri] int?maxCycles = null, [FromUri] int?maxPointsPerSeries = null, [FromUri] int?fromCycle = null, [FromUri] int?toCycle = null, [FromUri] int?everyNthCycle = null, [FromUri] string customCycleFilter = null, [FromUri] bool?disableCharge = null, [FromUri] bool?disableDischarge = null, [FromUri] double?threshold = null, [FromUri] double?minY = null, [FromUri] double?maxY = null, [FromUri] CurrentUoM?currentUoM = null, [FromUri] CapacityUoM?capacityUoM = null, [FromUri] TimeUoM?timeUoM = null, [FromUri] PowerUoM?powerUoM = null, [FromUri] EnergyUoM?energyUoM = null, [FromUri] ResistanceUoM?resistanceUoM = null, [FromUri] NormalizeBy?normalizeBy = null, [FromUri] int?pointSize = null, [FromUri] double?chargeFrom = null, [FromUri] double?chargeTo = null) { var result = _selectProjectListQuery.Execute(User.Identity.GetUserId(), projectId); if (result.Status != ProjectStatusDto.Ready) { return(NotFound()); } var timer = Stopwatch.StartNew(); Chart chart; if ((plotType == PlotType.View || plotType == PlotType.Template) && !string.IsNullOrEmpty(templateIdValue)) { int.TryParse(templateIdValue, out var templateId); var item = _plotTemplateService.GetChartTemplate(new ChartOwner(User.Identity.GetUserId(), User.Identity.Name), templateId, result.Projects); if (item == null) { Log.Error($"Template {templateId} not found"); return(NotFound()); } chart = item.Chart; timer.Restart(); } else if (plotType == PlotType.Soc) { var parameters = new PlotParameters { MaxCycles = maxCycles, MaxPointsPerSeries = maxPointsPerSeries, FromCycle = fromCycle, ToCycle = toCycle, EveryNthCycle = everyNthCycle, CustomCycleFilter = customCycleFilter, DisableCharge = disableCharge, DisableDischarge = disableDischarge, Threshold = threshold, MinY = minY, MaxY = maxY, CurrentUoM = currentUoM, CapacityUoM = capacityUoM, TimeUoM = timeUoM, PowerUoM = powerUoM, EnergyUoM = energyUoM, ResistanceUoM = resistanceUoM, NormalizeBy = normalizeBy, PointSize = pointSize }; StateOfCharge stateOfCharge = new StateOfCharge { ChargeFrom = chargeFrom, ChargeTo = chargeTo }; chart = _chartPlotterFactory(PlotType.Soc).Plot(false, new ChartPlotterContext { Parameters = parameters, ProjectIds = projectId, Trace = User.Identity.Name, Data = stateOfCharge }); chart.PlotParameters = parameters; Log.Info($"ChartController.GetExportChart: Plot({plotType}, {parameters}, {projectId}): plot {timer.ElapsedMilliseconds} ms"); } else { PlotParameters parameters = new PlotParameters { MaxCycles = maxCycles, MaxPointsPerSeries = maxPointsPerSeries, FromCycle = fromCycle, ToCycle = toCycle, EveryNthCycle = everyNthCycle, CustomCycleFilter = customCycleFilter, DisableCharge = disableCharge, DisableDischarge = disableDischarge, Threshold = threshold, MinY = minY, MaxY = maxY, CurrentUoM = currentUoM, CapacityUoM = capacityUoM, TimeUoM = timeUoM, PowerUoM = powerUoM, EnergyUoM = energyUoM, ResistanceUoM = resistanceUoM, NormalizeBy = normalizeBy, PointSize = pointSize }; chart = _chartPlotterFactory(plotType).Plot(true, new ChartPlotterContext { Parameters = parameters, ProjectIds = projectId, Trace = User.Identity.Name }); Log.Info($"ChartController.GetExportChart: Plot({plotType}, {parameters}, {projectId}): plot {timer.ElapsedMilliseconds} ms"); chart.PlotParameters = parameters; } var files = HttpContext.Current.Request.Files; Stream imageStream = null; if (files.Count > 0) { imageStream = files[0].InputStream; } return(new ExcelHttpActionResult(_exporter.ToExcel(chart, imageStream))); }