From 4d68de94dc5b72f67b591ccead8feed7626ae360 Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <markus.quaritsch@tugraz.at>
Date: Thu, 31 Mar 2016 15:52:49 +0200
Subject: [PATCH] don't deserialize fuel map directly, read filename into
 string and create map

---
 AdvancedAuxiliaryInterfaces/IVectoInputs.vb  |  2 ++
 AdvancedAuxiliaryInterfaces/VectoInputs.vb   |  6 +++++-
 VECTOAux/VectoAuxiliaries/AuxiliaryConfig.vb | 19 +++++++++++++------
 3 files changed, 20 insertions(+), 7 deletions(-)

diff --git a/AdvancedAuxiliaryInterfaces/IVectoInputs.vb b/AdvancedAuxiliaryInterfaces/IVectoInputs.vb
index b2c0ce489a..4f31f2b45b 100644
--- a/AdvancedAuxiliaryInterfaces/IVectoInputs.vb
+++ b/AdvancedAuxiliaryInterfaces/IVectoInputs.vb
@@ -42,6 +42,8 @@ Public Interface IVectoInputs
 	''' <remarks></remarks>
 	Property FuelMap As IFuelConsumptionMap
 
+	Property FuelMapFile As String
+
 	''' <summary>
 	''' Fuel density used in Vecto.
 	''' </summary>
diff --git a/AdvancedAuxiliaryInterfaces/VectoInputs.vb b/AdvancedAuxiliaryInterfaces/VectoInputs.vb
index 8af83e31a7..e0b5b04596 100644
--- a/AdvancedAuxiliaryInterfaces/VectoInputs.vb
+++ b/AdvancedAuxiliaryInterfaces/VectoInputs.vb
@@ -8,7 +8,7 @@
 '   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 '
 ' See the LICENSE.txt for the specific language governing permissions and limitations.
-
+Imports Newtonsoft.Json
 
 Public Class VectoInputs
 	Implements IVectoInputs
@@ -43,8 +43,12 @@ Public Class VectoInputs
 	''' <value></value>
 	''' <returns></returns>
 	''' <remarks></remarks>
+	<JsonIgnore>
 	Public Property FuelMap As IFuelConsumptionMap Implements IVectoInputs.FuelMap
 
+	<JsonProperty("FuelMap")>
+	Public Property FuelMapFile As String Implements IVectoInputs.FuelMapFile
+
 	''' <summary>
 	''' Fuel Density as used in Vecto.
 	''' </summary>
diff --git a/VECTOAux/VectoAuxiliaries/AuxiliaryConfig.vb b/VECTOAux/VectoAuxiliaries/AuxiliaryConfig.vb
index dd7d91e697..9a64e50a07 100644
--- a/VECTOAux/VectoAuxiliaries/AuxiliaryConfig.vb
+++ b/VECTOAux/VectoAuxiliaries/AuxiliaryConfig.vb
@@ -129,7 +129,7 @@ Public Class AuxiliaryConfig
 		'Consumer list
 		If _
 			Me.ElectricalUserInputsConfig.ElectricalConsumers.Items.Count <>
-			other.ElectricalUserInputsConfig.ElectricalConsumers.Items.count Then Return False
+			other.ElectricalUserInputsConfig.ElectricalConsumers.Items.Count Then Return False
 		Dim i As Integer
 		For i = 0 To Me.ElectricalUserInputsConfig.ElectricalConsumers.Items.Count - 1
 			Dim thisConsumer, otherConsumer As IElectricalConsumer
@@ -153,7 +153,7 @@ Public Class AuxiliaryConfig
 
 		'ResultCardIdle
 		If _
-			Me.ElectricalUserInputsConfig.ResultCardIdle.Results.count <>
+			Me.ElectricalUserInputsConfig.ResultCardIdle.Results.Count <>
 			other.ElectricalUserInputsConfig.ResultCardIdle.Results.Count Then Return False
 		For i = 0 To Me.ElectricalUserInputsConfig.ResultCardIdle.Results.Count - 1
 			If _
@@ -165,7 +165,7 @@ Public Class AuxiliaryConfig
 
 		'ResultCardOverrun
 		If _
-			Me.ElectricalUserInputsConfig.ResultCardOverrun.Results.count <>
+			Me.ElectricalUserInputsConfig.ResultCardOverrun.Results.Count <>
 			other.ElectricalUserInputsConfig.ResultCardOverrun.Results.Count Then Return False
 		For i = 0 To Me.ElectricalUserInputsConfig.ResultCardOverrun.Results.Count - 1
 			If _
@@ -178,7 +178,7 @@ Public Class AuxiliaryConfig
 
 		'ResultCardTraction
 		If _
-			Me.ElectricalUserInputsConfig.ResultCardTraction.Results.count <>
+			Me.ElectricalUserInputsConfig.ResultCardTraction.Results.Count <>
 			other.ElectricalUserInputsConfig.ResultCardTraction.Results.Count Then Return False
 		For i = 0 To Me.ElectricalUserInputsConfig.ResultCardTraction.Results.Count - 1
 			If _
@@ -322,7 +322,14 @@ Public Class AuxiliaryConfig
 
 			'This is where we Assume values of loaded( Deserialized ) object.
 			AssumeValuesOfOther(tmpAux)
-
+			Dim tmp As cMAP = New cMAP
+			tmp.FilePath = Path.Combine(Path.GetDirectoryName(auxFile), tmpAux.VectoInputs.FuelMapFile)
+			If Not tmp.ReadFile() Then
+				MessageBox.Show("Unable to read fuel map, aborting.")
+				Return False
+			End If
+			tmp.Triangulate()
+			VectoInputs.FuelMap = tmp
 		Catch ex As Exception
 
 			returnValue = False
@@ -360,7 +367,7 @@ Public Class AuxiliaryConfig
 																			otherConsumer.PhaseIdle_TractionOn,
 																			otherConsumer.PowerNetVoltage,
 																			otherConsumer.NumberInActualVehicle,
-																			otherConsumer.info)
+																			otherConsumer.Info)
 
 			Me.ElectricalUserInputsConfig.ElectricalConsumers.Items.Add(newConsumer)
 
-- 
GitLab