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