From f1ee78fb02a9d6fa27d86e335ebcc1cc6b709bf0 Mon Sep 17 00:00:00 2001 From: Raphael Luz <luz@ivt.tugraz.at> Date: Thu, 5 Jun 2014 13:16:18 +0200 Subject: [PATCH] * Fixed VECTO-34 * Updated .vsum(.json) ** Added l/100km and CO2 results. (Fixed VECTO-33) ** Added FC-Final. ** Added Loading. (json) ** Added missing fuel parameters. (json) * Updated README.md --- README.md | 3 +- VECTO/MODcalc/cMOD.vb | 19 ++++++++++-- VECTO/VECTO_Global.vb | 2 +- VECTO/cDeclaration.vb | 4 +-- VECTO/cVSUM.vb | 70 +++++++++++++++++++++++++++++++++++++++++-- 5 files changed, 88 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index d943acfd89..28e66f45c6 100644 --- a/README.md +++ b/README.md @@ -9,8 +9,9 @@ Before compiling you need to add references to: The following directories/files must be provided in the application folder (e.g. ..\bin\Release): - User Manual - User Manual\Release Notes.pdf (provided with the VECTO release) -- GRAPHi (provided with the VECTO release) - vectolic.dll (should be placed there automatically when compiling) +- itextsharp.dll (should be placed there automatically when compiling) +- Newtonsoft.Json.dll (should be placed there automatically when compiling) - license.dat (provided by EC/JRC) diff --git a/VECTO/MODcalc/cMOD.vb b/VECTO/MODcalc/cMOD.vb index 3c47c10d60..0d763dc418 100644 --- a/VECTO/MODcalc/cMOD.vb +++ b/VECTO/MODcalc/cMOD.vb @@ -60,6 +60,7 @@ Public Class cMOD Public FCavg As Single Public FCavgAUXc As Single Public FCavgWHTCc As Single + Public FCavgFinal As Single Public FCAUXcSet As Boolean @@ -369,6 +370,7 @@ Public Class cMOD sum += x Next FCavg = CSng(sum / lFC.Count) + FCavgFinal = FCavg 'Start/Stop-Aux - Correction If Result AndAlso LostEnergy > 0 Then @@ -421,14 +423,23 @@ Public Class cMOD FCAUXcSet = True + FCavgFinal = FCavgAUXc + + End If 'WHTC Correction If Cfg.DeclMode Then - For i = 0 To MODdata.tDim - lFCWHTCc.Add(lFC(i) * Declaration.WHTCcorrFactor) - Next + If FCAUXcSet Then + For i = 0 To MODdata.tDim + lFCWHTCc.Add(lFCAUXc(i) * Declaration.WHTCcorrFactor) + Next + Else + For i = 0 To MODdata.tDim + lFCWHTCc.Add(lFC(i) * Declaration.WHTCcorrFactor) + Next + End If sum = 0 For Each x In lFCWHTCc @@ -436,6 +447,8 @@ Public Class cMOD Next FCavgWHTCc = CSng(sum / lFC.Count) + FCavgFinal = FCavgWHTCc + End If If Not Result Then FCerror = True diff --git a/VECTO/VECTO_Global.vb b/VECTO/VECTO_Global.vb index 6386bebc08..90bc12eb16 100644 --- a/VECTO/VECTO_Global.vb +++ b/VECTO/VECTO_Global.vb @@ -12,7 +12,7 @@ Imports System.Collections.Generic Module VECTO_Global - Public Const VECTOvers As String = "2.0.1-beta1" + Public Const VECTOvers As String = "2.0.1-beta2" Public Const LicSigAppCode As String = "VECTO-Release-0093C61E0A2E4BFA9A7ED7E729C56AE4" Public MyAppPath As String Public MyConfPath As String diff --git a/VECTO/cDeclaration.vb b/VECTO/cDeclaration.vb index 8de87fddf1..fd295e970f 100644 --- a/VECTO/cDeclaration.vb +++ b/VECTO/cDeclaration.vb @@ -994,8 +994,8 @@ lbInt: .Loading = VEH.Loading / 1000 .Speed = Vquer - .FCkm = (100 * MODdata.FCavgWHTCc / Vquer) / (Cfg.FuelDens * 1000) - .CO2km = Cfg.CO2perFC * (MODdata.FCavgWHTCc / Vquer) + .FCkm = (100 * MODdata.FCavgFinal / Vquer) / (Cfg.FuelDens * 1000) + .CO2km = Cfg.CO2perFC * (MODdata.FCavgFinal / Vquer) If VEH.Loading > 0 Then .FCtkm = .FCkm / .Loading .CO2tkm = .CO2km / .Loading diff --git a/VECTO/cVSUM.vb b/VECTO/cVSUM.vb index 1e98c40ca2..002c77a92f 100644 --- a/VECTO/cVSUM.vb +++ b/VECTO/cVSUM.vb @@ -126,6 +126,17 @@ Class cVSUM VSUMentries("FC_h").ValueString = MODdata.FCavg Else VSUMentries("FC_km").ValueString = (MODdata.FCavg / Vquer) + + VSUMentries("FCl_km").ValueString = (100 * MODdata.FCavgFinal / Vquer) / (Cfg.FuelDens * 1000) '[l/100km] + VSUMentries("CO2_km").ValueString = Cfg.CO2perFC * (MODdata.FCavgFinal / Vquer) '[g/km] + + If VEH.Loading > 0 Then + VSUMentries("CO2_tkm").ValueString = (Cfg.CO2perFC * (MODdata.FCavgFinal / Vquer)) / (VEH.Loading / 1000) '[g/tkm] + VSUMentries("FCl_tkm").ValueString = ((100 * MODdata.FCavgFinal / Vquer) / (Cfg.FuelDens * 1000)) / (VEH.Loading / 1000) '[l/100tkm] + End If + + VSUMentries("FC-Final_km").ValueString = (MODdata.FCavgFinal / Vquer) + End If If MODdata.FCAUXcSet Then @@ -144,6 +155,11 @@ Class cVSUM End If End If + + + + + End If 'Power, Revolutions @@ -300,6 +316,7 @@ Class cVSUM Dim dic As Dictionary(Of String, Object) Dim dic0 As Dictionary(Of String, Object) Dim dic1 As Dictionary(Of String, Object) + Dim ls0 As List(Of Dictionary(Of String, Object)) Dim key As String MsgSrc = "SUMALL/Output" @@ -322,7 +339,17 @@ Class cVSUM str = NrOfRunStr & "," & JobFilename & "," & CycleFilename & "," dic.Add("Job", JobFilename) - dic.Add("Cycle", CycleFilename) + + + If Cfg.DeclMode Then + dic.Add("Cycle", Declaration.CurrentMission.NameStr) + dic.Add("Loading", ConvLoading(Declaration.CurrentLoading)) + Else + dic.Add("Cycle", CycleFilename) + dic.Add("Loading", ConvLoading(tLoading.UserDefLoaded)) + End If + + If AbortedByError Then Fvsum.WriteLine(str & "Aborted due to Error!") @@ -334,9 +361,27 @@ Class cVSUM dic1 = New Dictionary(Of String, Object) For Each key In VSUMentryList dic0 = New Dictionary(Of String, Object) + dic0.Add("Value", VSUMentries(key).ValueString) dic0.Add("Unit", VSUMentries(key).Unit) - dic1.Add(VSUMentries(key).Head, dic0) + + If VSUMentries(key).Multi Then + + If dic1.ContainsKey(VSUMentries(key).Head) Then + ls0 = dic1(VSUMentries(key).Head) + Else + ls0 = New List(Of Dictionary(Of String, Object)) + dic1.Add(VSUMentries(key).Head, ls0) + End If + + ls0.Add(dic0) + + Else + + dic1.Add(VSUMentries(key).Head, dic0) + + End If + Next dic.Add("Results", dic1) @@ -365,13 +410,19 @@ Class cVSUM End Function - Private Sub AddToVSUM(ByVal IDstring As String, ByVal Head As String, ByVal Unit As String) + Private Sub AddToVSUM(ByVal IDstring As String, ByVal Head As String, ByVal Unit As String, Optional Multi As Boolean = False) If Not VSUMentries.ContainsKey(IDstring) Then VSUMentries.Add(IDstring, New cVSUMentry(Head, Unit)) VSUMentryList.Add(IDstring) + If Multi Then VSUMentries(IDstring).Multi = True End If End Sub + ''' <summary> + ''' Initializes the specified job file. + ''' </summary> + ''' <param name="JobFile">The job file.</param> + ''' <returns></returns> Public Function Init(ByVal JobFile As String) As Boolean Dim JobFiles As New List(Of String) Dim str As String @@ -436,6 +487,9 @@ Class cVSUM vsumJSON.Content.Add("Body", New Dictionary(Of String, Object)) dic = New Dictionary(Of String, Object) dic.Add("Air Density [kg/m3]", Cfg.AirDensity) + dic.Add("CO2/FC [-]", Cfg.CO2perFC) + dic.Add("Fuel Density [kg/l]", Cfg.FuelDens) + dic.Add("Distance Correction", Cfg.DistCorr) vsumJSON.Content("Body").add("Settings", dic) @@ -558,6 +612,14 @@ Class cVSUM AddToVSUM("FC_km", "FC", "[g/km]") AddToVSUM("FC-AUXc_km", "FC-AUXc", "[g/km]") AddToVSUM("FC-WHTCc_km", "FC-WHTCc", "[g/km]") + + AddToVSUM("CO2_km", "CO2", "[g/km]", True) + AddToVSUM("CO2_tkm", "CO2", "[g/tkm]", True) + + AddToVSUM("FC-Final_km", "FC-Final", "[g/km]", True) + AddToVSUM("FCl_km", "FC-Final", "[l/100km]", True) + AddToVSUM("FCl_tkm", "FC-Final", "[l/100tkm]", True) + End If Next @@ -636,11 +698,13 @@ Public Class cVSUMentry Public Head As String Public Unit As String Public MyVal As Object + Public Multi As Boolean Public Sub New(ByVal HeadStr As String, ByVal UnitStr As String) Head = HeadStr Unit = UnitStr MyVal = Nothing + Multi = False End Sub Public Property ValueString As Object -- GitLab