diff --git a/VectoCore/Models/Declaration/DeclarationReport.cs b/VectoCore/Models/Declaration/DeclarationReport.cs index 1869e36f57921b5a8322382091b69a8c20342da3..bce841bab6952ea46766500d3b83fff4268515bd 100644 --- a/VectoCore/Models/Declaration/DeclarationReport.cs +++ b/VectoCore/Models/Declaration/DeclarationReport.cs @@ -84,7 +84,10 @@ namespace TUGraz.VectoCore.Models.Declaration { var stream = new MemoryStream(); - var reader = new PdfReader(RessourceHelper.ReadStream(RessourceHelper.Namespace + "Report.titlePageTemplate.pdf")); + var reader = + new PdfReader( + RessourceHelper.ReadStream(RessourceHelper.Namespace + + string.Format("Report.title{0}CyclesTemplate.pdf", missions.Count))); var stamper = new PdfStamper(reader, stream); var pdfFields = stamper.AcroFields; @@ -93,7 +96,7 @@ namespace TUGraz.VectoCore.Models.Declaration pdfFields.SetField("Date", DateTime.Now.ToString(CultureInfo.InvariantCulture)); pdfFields.SetField("Created", _creator); pdfFields.SetField("Config", - string.Format("{0:0.0}t {1} {2}", _segment.GrossVehicleWeightMax / 1000, _segment.AxleConfiguration.GetName(), + string.Format("{0:0.0}t {1} {2}", _segment.GrossVehicleMassRating / 1000, _segment.AxleConfiguration.GetName(), _segment.VehicleCategory)); pdfFields.SetField("HDVclass", "HDV Class " + _segment.VehicleClass); pdfFields.SetField("Engine", _engineStr); @@ -116,12 +119,17 @@ namespace TUGraz.VectoCore.Models.Declaration pdfFields.SetField("Loading" + i, results.Mission.RefLoad.Value().ToString("0.0") + " t"); pdfFields.SetField("Speed" + i, avgWeighted(ModalResultField.v_act).ToString("0.0") + " km/h"); - var fc = avgWeighted(ModalResultField.FCMap) / distance * 1000; - // todo: calc FCt, co2, co2t + var loading = results.Mission.RefLoad.Value(); + + var fc = avgWeighted(ModalResultField.FCMap) / distance * 1000 * 100; + + // todo: calc co2 + var co2 = fc; + pdfFields.SetField("FC" + i, fc.ToString("0.0")); - pdfFields.SetField("FCt" + i, (fc * 1000).ToString("0.0")); - pdfFields.SetField("CO2" + i, fc.ToString("0.0")); - pdfFields.SetField("CO2t" + i, fc.ToString("0.0")); + pdfFields.SetField("FCt" + i, (fc / loading).ToString("0.0")); + pdfFields.SetField("CO2" + i, co2.ToString("0.0")); + pdfFields.SetField("CO2t" + i, (co2 / loading).ToString("0.0")); i++; } @@ -145,7 +153,6 @@ namespace TUGraz.VectoCore.Models.Declaration img.SetAbsolutePosition(30, 475); content.AddImage(img); - // flatten the form to remove editting options, set it to false to leave the form open to subsequent manual edits stamper.FormFlattening = true; stamper.Writer.CloseStream = false; stamper.Close(); @@ -175,8 +182,8 @@ namespace TUGraz.VectoCore.Models.Declaration private Stream CreateCyclePage(ResultContainer results, int i, int pgMax) { var stream = new MemoryStream(); - var cyclePages = RessourceHelper.Namespace + string.Format("Report.report{0}CyclesTemplate.pdf", pgMax); - var reader = new PdfReader(RessourceHelper.ReadStream(cyclePages)); + + var reader = new PdfReader(RessourceHelper.ReadStream(RessourceHelper.Namespace + "Report.cyclePageTemplate.pdf")); var stamper = new PdfStamper(reader, stream); var pdfFields = stamper.AcroFields; @@ -185,7 +192,7 @@ namespace TUGraz.VectoCore.Models.Declaration pdfFields.SetField("Date", DateTime.Now.ToString(CultureInfo.InvariantCulture)); pdfFields.SetField("Created", _creator); pdfFields.SetField("Config", - string.Format("{0:0.0}t {1} {2}", _segment.GrossVehicleWeightMax / 1000, _segment.AxleConfiguration.GetName(), + string.Format("{0:0.0}t {1} {2}", _segment.GrossVehicleMassRating / 1000, _segment.AxleConfiguration.GetName(), _segment.VehicleCategory)); pdfFields.SetField("HDVclass", "HDV Class " + _segment.VehicleClass); pdfFields.SetField("PageNr", "Page " + (i + 1) + " of " + pgMax); @@ -197,7 +204,7 @@ namespace TUGraz.VectoCore.Models.Declaration var m = pair.Value; var loadString = loadingType.GetShortName(); - pdfFields.SetField("Load" + loadString, results.Mission.Loadings[loadingType].ToString("0.0") + " t"); + pdfFields.SetField("Load" + loadString, results.Mission.Loadings[loadingType].Value().ToString("0.0") + " t"); var dt = m.GetValues<SI>(ModalResultField.simulationInterval); var distance = m.GetValues<SI>(ModalResultField.dist).Max().Value(); @@ -207,10 +214,12 @@ namespace TUGraz.VectoCore.Models.Declaration pdfFields.SetField("Speed" + loadString, avgWeighted(ModalResultField.v_act).ToString("0.0")); - var fc = avgWeighted(ModalResultField.FCMap) / distance * 1000; + var fc = avgWeighted(ModalResultField.FCMap) / distance * 1000 * 100; + + // todo: calculate co2!! var co2 = fc; - var loading = results.Mission.Loadings[loadingType]; + var loading = results.Mission.Loadings[loadingType].Value(); pdfFields.SetField("FCkm" + loadString, fc.ToString("0.0")); pdfFields.SetField("CO2km" + loadString, co2.ToString("0.0")); @@ -219,7 +228,7 @@ namespace TUGraz.VectoCore.Models.Declaration pdfFields.SetField("FCtkm" + loadString, "-"); pdfFields.SetField("CO2tkm" + loadString, "-"); } else { - pdfFields.SetField("FCtkm" + loadString, (fc / loading).Value().ToString("0.0")); + pdfFields.SetField("FCtkm" + loadString, (fc / loading).ToString("0.0")); pdfFields.SetField("CO2tkm" + loadString, (fc / loading).ToString("0.0")); } } @@ -244,7 +253,6 @@ namespace TUGraz.VectoCore.Models.Declaration img.SetAbsolutePosition(375, 75); content.AddImage(img); - // flatten the form to remove editting options, set it to false to leave the form open to subsequent manual edits stamper.FormFlattening = true; stamper.Writer.CloseStream = false; @@ -483,7 +491,7 @@ namespace TUGraz.VectoCore.Models.Declaration Position = { X = 0, Y = 0, Width = 70, Height = 100 } }); - var n = flc.FullLoadEntries.Select(x => x.EngineSpeed).ToDouble(); + var n = flc.FullLoadEntries.Select(x => x.EngineSpeed.ConvertTo().Rounds.Per.Minute).ToDouble(); var torqueFull = flc.FullLoadEntries.Select(x => x.TorqueFullLoad).ToDouble(); var torqueDrag = flc.FullLoadEntries.Select(x => x.TorqueDrag).ToDouble(); @@ -504,7 +512,8 @@ namespace TUGraz.VectoCore.Models.Declaration operatingPointsChart.Series.Add(dragLoadCurve); var dataPoints = new Series("load points (Ref. load.)") { ChartType = SeriesChartType.Point, Color = Color.Red }; - dataPoints.Points.DataBindXY(modData.GetValues<SI>(ModalResultField.n).ToDouble(), + dataPoints.Points.DataBindXY( + modData.GetValues<SI>(ModalResultField.n).Select(x => x.ConvertTo().Rounds.Per.Minute).ToDouble(), modData.GetValues<SI>(ModalResultField.Tq_eng).ToDouble()); operatingPointsChart.Series.Add(dataPoints); diff --git a/VectoCore/Models/Declaration/Segment.cs b/VectoCore/Models/Declaration/Segment.cs index 4c84703eb8b3fc1e58af53c6da5aa1badc3c7f31..55521c212ec9ded83cfd70f954ba871a17e42272 100644 --- a/VectoCore/Models/Declaration/Segment.cs +++ b/VectoCore/Models/Declaration/Segment.cs @@ -14,6 +14,8 @@ namespace TUGraz.VectoCore.Models.Declaration public Kilogram GrossVehicleWeightMax { get; set; } + public Kilogram GrossVehicleMassRating { get; set; } + public VehicleClass VehicleClass { get; internal set; } public Stream AccelerationFile { get; internal set; } diff --git a/VectoCore/Models/Declaration/Segments.cs b/VectoCore/Models/Declaration/Segments.cs index 700835e3871b3fae3c6009acb42324e8b6f90d12..ae61bdeb2dc5e7b6988863ba2112fca6b751de32 100644 --- a/VectoCore/Models/Declaration/Segments.cs +++ b/VectoCore/Models/Declaration/Segments.cs @@ -41,7 +41,8 @@ namespace TUGraz.VectoCore.Models.Declaration AxleConfiguration = axleConfiguration, VehicleClass = VehicleClassHelper.Parse(row.Field<string>("hdvclass")), AccelerationFile = RessourceHelper.ReadStream(RessourceHelper.Namespace + "VACC." + row.Field<string>(".vaccfile")), - Missions = CreateMissions(grossVehicleMassRating, curbWeight, row).ToArray() + Missions = CreateMissions(grossVehicleMassRating, curbWeight, row).ToArray(), + GrossVehicleMassRating = grossVehicleMassRating }; return segment; diff --git a/VectoCore/Resources/Declaration/Report/titlePageTemplate.pdf b/VectoCore/Resources/Declaration/Report/cyclePageTemplate.pdf similarity index 100% rename from VectoCore/Resources/Declaration/Report/titlePageTemplate.pdf rename to VectoCore/Resources/Declaration/Report/cyclePageTemplate.pdf diff --git a/VectoCore/Resources/Declaration/Report/report2CyclesTemplate.pdf b/VectoCore/Resources/Declaration/Report/title2CyclesTemplate.pdf similarity index 100% rename from VectoCore/Resources/Declaration/Report/report2CyclesTemplate.pdf rename to VectoCore/Resources/Declaration/Report/title2CyclesTemplate.pdf diff --git a/VectoCore/Resources/Declaration/Report/report3CyclesTemplate.pdf b/VectoCore/Resources/Declaration/Report/title3CyclesTemplate.pdf similarity index 100% rename from VectoCore/Resources/Declaration/Report/report3CyclesTemplate.pdf rename to VectoCore/Resources/Declaration/Report/title3CyclesTemplate.pdf diff --git a/VectoCore/VectoCore.csproj b/VectoCore/VectoCore.csproj index 8ba1144b487ae1c82cfef3f910a3431313bd7f1c..765e6bf46630c3013919656c21a8020ffb442b2c 100644 --- a/VectoCore/VectoCore.csproj +++ b/VectoCore/VectoCore.csproj @@ -286,9 +286,9 @@ <EmbeddedResource Include="Resources\Declaration\VCDV\parameters.csv" /> <EmbeddedResource Include="Resources\Declaration\WHTC-Weighting-Factors.csv" /> <EmbeddedResource Include="Resources\Declaration\VAUX\ALT-Tech.csv" /> - <EmbeddedResource Include="Resources\Declaration\Report\report2CyclesTemplate.pdf" /> - <EmbeddedResource Include="Resources\Declaration\Report\report3CyclesTemplate.pdf" /> - <EmbeddedResource Include="Resources\Declaration\Report\titlePageTemplate.pdf" /> + <EmbeddedResource Include="Resources\Declaration\Report\cyclePageTemplate.pdf" /> + <EmbeddedResource Include="Resources\Declaration\Report\title2CyclesTemplate.pdf" /> + <EmbeddedResource Include="Resources\Declaration\Report\title3CyclesTemplate.pdf" /> </ItemGroup> <ItemGroup> <EmbeddedResource Include="Resources\Declaration\Report\4x2r.png" /> diff --git a/VectoCoreTest/TestData/Components/12t Delivery Truck.vgbx b/VectoCoreTest/TestData/Components/12t Delivery Truck.vgbx index 922993ec9fa7193115dfba9b6965be547e87cf62..3598d8824c2a7f164603168b0767ffd7f4269df9 100644 --- a/VectoCoreTest/TestData/Components/12t Delivery Truck.vgbx +++ b/VectoCoreTest/TestData/Components/12t Delivery Truck.vgbx @@ -65,7 +65,7 @@ "StartTqReserve": 20.0, "StartSpeed": 2.0, "StartAcc": 0.6, - "GearboxType": "MT", + "GearboxType": "AMT", "TorqueConverter": { "Enabled": false, "File": "<NOFILE>", diff --git a/VectoCoreTest/TestData/Jobs/job-report.vecto b/VectoCoreTest/TestData/Jobs/job-report.vecto index 5a54b3b87ef2325dc04c95686303e5be9bd37161..1a7f49b08a9ab1ab803d3434c46d7908aec1936f 100644 --- a/VectoCoreTest/TestData/Jobs/job-report.vecto +++ b/VectoCoreTest/TestData/Jobs/job-report.vecto @@ -7,10 +7,10 @@ }, "Body": { "SavedInDeclMode": true, - "VehicleFile": "../Components/40t_Long_Haul_Truck.vveh", - "EngineFile": "../Components/40t_Long_Haul_Truck.veng", - "GearboxFile": "../Components/40t_Long_Haul_Truck.vgbx", - "Cycles": [ + "VehicleFile": "../Components/12t Delivery Truck.vveh", + "EngineFile": "../Components/12t Delivery Truck.veng", + "GearboxFile": "../Components/12t Delivery Truck.vgbx", + "Cycles": [ "Long Haul", "Regional Delivery" ],