diff --git a/Documentation/User Manual Source/Release Notes Vecto3.x.pdf b/Documentation/User Manual Source/Release Notes Vecto3.x.pdf index be00fded3b1e88b12abbadce147b6ee71bb826da..155e33f940f2441d66c4db0a818248e8cc36a3b0 100644 Binary files a/Documentation/User Manual Source/Release Notes Vecto3.x.pdf and b/Documentation/User Manual Source/Release Notes Vecto3.x.pdf differ diff --git a/Documentation/User Manual Source/Release Notes Vecto3.x.pptx b/Documentation/User Manual Source/Release Notes Vecto3.x.pptx index f952d73da22375046ed4a5e8776560b81da11e6d..b9d8d30cc7f5f70c508327f13a6939b8123530c5 100644 Binary files a/Documentation/User Manual Source/Release Notes Vecto3.x.pptx and b/Documentation/User Manual Source/Release Notes Vecto3.x.pptx differ diff --git a/Documentation/User Manual/5-input-and-output-files/VMOD.md b/Documentation/User Manual/5-input-and-output-files/VMOD.md index d809c26143af9f14920da3084a7b31c29089e95b..91c889eaec19dddbbcd2f9320b7400ddf01c1bb6 100644 --- a/Documentation/User Manual/5-input-and-output-files/VMOD.md +++ b/Documentation/User Manual/5-input-and-output-files/VMOD.md @@ -88,7 +88,22 @@ In Vecto 3.0.2 the structure of the modal data output has been revised and re-st | P_air | [kW] | Power loss due to air drag | | P_roll | [kW] | Rolling resistance power loss | | P_veh_inertia | [kW] | Power loss due to the vehicle's inertia | +| AA_NonSmartAlternatorsEfficiency | [Fraction] | Non-Smart Alternators Efficiency, Advance Auxiliaries Module | +| AA_SmartIdleCurrent_Amps | [Amps] | Smart Idle Current in Amps, Advance Auxiliaries Module | +| AA_SmartIdleAlternatorsEfficiency | [Fraction] | Smart Idle Alternators Efficiency, Advance Auxiliaries Module | +| AA_SmartTractionCurrent_Amps | [Amps] | Smart Traction Current in Amps, Advance Auxiliaries Module | +| AA_SmartTractionAlternatorEfficiency | [Fraction] | Smart Traction Alternator Efficiency, Advance Auxiliaries Module | +| AA_SmartOverrunCurrent_Amps | [Amps] | Smart Overrun Current in Amps, Advance Auxiliaries Module | +| AA_SmartOverrunAlternatorEfficiency | [Fraction] | Smart Overrun Alternator Efficiency, Advance Auxiliaries Module | +| AA_CompressorFlowRate_LitrePerSec | [Ni L/S] | Compressor Flow Rate in litres per second, Advance Auxiliaries Module | +| AA_OverrunFlag | [Bool [0/1] | Overrun Flag (yes/no), Advance Auxiliaries Module | +| AA_EngineIdleFlag | [Bool [0/1] | Engine Idle Flag (yes/no), Advance Auxiliaries Module | +| AA_CompressorFlag | [Bool [0/1] | Compressor Flag (off/on), Advance Auxiliaries Module | +| AA_TotalCycleFC_Grams | [Grams] | Total Cycle Fuel Consumption in grams, Advance Auxiliaries Module | +| AA_TotalCycleFC_Litres | [Litres] | Total Cycle Fuel Consumption in litres, Advance Auxiliaries Module | | FC-Map | [g/h] | Fuel consumption interpolated from FC map. | | FC-AUXc | [g/h] | Fuel consumption after [Auxiliary-Start/Stop Correction](#fuel-consumption-calculation) (based on FC) | | FC-WHTCc | [g/h] | Fuel consumption after [WHTC Correction](#fuel-consumption-calculation) (based on FC-AUXc) | +| FC-AAUX | [g/h] | Fuel consumption computed by the AAUX module considering smart auxiliaries | +| FC-Final | [g/h] | Final fuel consumption value after all applicable corrections | </div> diff --git a/Documentation/User Manual/6-changelog/changelog.md b/Documentation/User Manual/6-changelog/changelog.md index b5a94cfd8fdc4f7550a4f755602a2b2f313dff7b..dd0e2e4a7d34a2ca1675bf4541c56c9533bb1044 100644 --- a/Documentation/User Manual/6-changelog/changelog.md +++ b/Documentation/User Manual/6-changelog/changelog.md @@ -1,5 +1,34 @@ #Changelog +**VECTO 3.0.3** + +***Build 537 (2016-06-21)*** + +- Main Updates + + Support for Advanced Auxiliaries (Ricardo) in Vecto 3.0.3 and Vecto 2.2 + + Performance improvements + + Gearshift polygons according to WB 2016 + + Revision of SUM-data file, changed order of columns, changed column headers +- Bugfixes + + Delaunay Maps: additional check for duplicate input points + + Creation of PDF Report when running multiple jobs at once + + Sanity checks for gear shift lines + + Improvements DriverStrategy: handling special cases + +***Build 495 (2016-05-10)*** + +- Main Updates + + Support for Advanced Auxiliaries (Ricardo) in Vecto 3.0.3 and Vecto 2.2 + + Performance improvements + + Gearshift polygons according to WB 2016 + + Revision of SUM-data file, changed order of columns, changed column headers +- Bugfixes + + Delaunay Maps: additional check for duplicate input points + + Creation of PDF Report when running multiple jobs at once + + Sanity checks for gear shift lines + + Improvements DriverStrategy: handling special cases + + **VECTO 3.0.2** diff --git a/Documentation/User Manual/help.html b/Documentation/User Manual/help.html index 2d093657c2d950c7b8d952eb05487cfa09f96b50..a21705e91aa7c7f195c8e85c44c0620f43fd435a 100644 --- a/Documentation/User Manual/help.html +++ b/Documentation/User Manual/help.html @@ -5582,6 +5582,41 @@ Kneeling, UnknownCycleName, 0,</code></pre> </div> <div id="changelog" class="section level1"> <h1>Changelog</h1> +<p><strong>VECTO 3.0.3</strong></p> +<p><strong><em>Build 537 (2016-06-21)</em></strong></p> +<ul> +<li>Main Updates +<ul> +<li>Support for Advanced Auxiliaries (Ricardo) in Vecto 3.0.3 and Vecto 2.2</li> +<li>Performance improvements</li> +<li>Gearshift polygons according to WB 2016</li> +<li>Revision of SUM-data file, changed order of columns, changed column headers</li> +</ul></li> +<li>Bugfixes +<ul> +<li>Delaunay Maps: additional check for duplicate input points</li> +<li>Creation of PDF Report when running multiple jobs at once</li> +<li>Sanity checks for gear shift lines</li> +<li>Improvements DriverStrategy: handling special cases</li> +</ul></li> +</ul> +<p><strong><em>Build 495 (2016-05-10)</em></strong></p> +<ul> +<li>Main Updates +<ul> +<li>Support for Advanced Auxiliaries (Ricardo) in Vecto 3.0.3 and Vecto 2.2</li> +<li>Performance improvements</li> +<li>Gearshift polygons according to WB 2016</li> +<li>Revision of SUM-data file, changed order of columns, changed column headers</li> +</ul></li> +<li>Bugfixes +<ul> +<li>Delaunay Maps: additional check for duplicate input points</li> +<li>Creation of PDF Report when running multiple jobs at once</li> +<li>Sanity checks for gear shift lines</li> +<li>Improvements DriverStrategy: handling special cases</li> +</ul></li> +</ul> <p><strong>VECTO 3.0.2</strong></p> <p><strong><em>Build 434 (2016-03-10)</em></strong></p> <ul> diff --git a/Generic Vehicles/AAUXData/testPneumaticActuationsMap.APAC b/Generic Vehicles/AAUXData/testPneumaticActuationsMap.APAC index 72260c908ce1c446de6506b3be902533d2aa43b8..dd5dd6987aa47981d3949c8d7f7d59f4931c72bd 100644 --- a/Generic Vehicles/AAUXData/testPneumaticActuationsMap.APAC +++ b/Generic Vehicles/AAUXData/testPneumaticActuationsMap.APAC @@ -16,4 +16,10 @@ Kneeling,Urban,25 Kneeling,Suburban,6 Kneeling,Interurban,0 Kneeling,Coach,0 -Kneeling,UnknownCycleName,0 \ No newline at end of file +Kneeling,UnknownCycleName,0 +CycleTime,Heavy urban,8912 +CycleTime,Urban,8149 +CycleTime,Suburban,3283 +CycleTime,Interurban,12962 +CycleTime,Coach,15086 +CycleTime,UnknownCycleName,3600 \ No newline at end of file diff --git a/Generic Vehicles/AAUXTestVehicles/24t Coach/ZeroPneumaticActuationsMap.APAC b/Generic Vehicles/AAUXTestVehicles/24t Coach/ZeroPneumaticActuationsMap.APAC index 92fec05fc571c52711345722e2d958ba7570ccb5..bc0b822d07fabae88c6045dcd3ab1ba24a62179d 100644 --- a/Generic Vehicles/AAUXTestVehicles/24t Coach/ZeroPneumaticActuationsMap.APAC +++ b/Generic Vehicles/AAUXTestVehicles/24t Coach/ZeroPneumaticActuationsMap.APAC @@ -16,4 +16,10 @@ Kneeling,Urban,0 Kneeling,Suburban,0 Kneeling,Interurban,0 Kneeling,Coach,0 -Kneeling,UnknownCycleName,0 \ No newline at end of file +Kneeling,UnknownCycleName,0 +CycleTime,Heavy urban,8912 +CycleTime,Urban,8149 +CycleTime,Suburban,3283 +CycleTime,Interurban,12962 +CycleTime,Coach,15086 +CycleTime,UnknownCycleName,3600 \ No newline at end of file diff --git a/Generic Vehicles/AAUXTestVehicles/24t Coach/testPneumaticActuationsMap.APAC b/Generic Vehicles/AAUXTestVehicles/24t Coach/testPneumaticActuationsMap.APAC index 72260c908ce1c446de6506b3be902533d2aa43b8..dd5dd6987aa47981d3949c8d7f7d59f4931c72bd 100644 --- a/Generic Vehicles/AAUXTestVehicles/24t Coach/testPneumaticActuationsMap.APAC +++ b/Generic Vehicles/AAUXTestVehicles/24t Coach/testPneumaticActuationsMap.APAC @@ -16,4 +16,10 @@ Kneeling,Urban,25 Kneeling,Suburban,6 Kneeling,Interurban,0 Kneeling,Coach,0 -Kneeling,UnknownCycleName,0 \ No newline at end of file +Kneeling,UnknownCycleName,0 +CycleTime,Heavy urban,8912 +CycleTime,Urban,8149 +CycleTime,Suburban,3283 +CycleTime,Interurban,12962 +CycleTime,Coach,15086 +CycleTime,UnknownCycleName,3600 \ No newline at end of file diff --git a/Generic Vehicles/Declaration Mode/12t Delivery Truck/testPneumaticActuationsMap.APAC b/Generic Vehicles/Declaration Mode/12t Delivery Truck/testPneumaticActuationsMap.APAC index 72260c908ce1c446de6506b3be902533d2aa43b8..dd5dd6987aa47981d3949c8d7f7d59f4931c72bd 100644 --- a/Generic Vehicles/Declaration Mode/12t Delivery Truck/testPneumaticActuationsMap.APAC +++ b/Generic Vehicles/Declaration Mode/12t Delivery Truck/testPneumaticActuationsMap.APAC @@ -16,4 +16,10 @@ Kneeling,Urban,25 Kneeling,Suburban,6 Kneeling,Interurban,0 Kneeling,Coach,0 -Kneeling,UnknownCycleName,0 \ No newline at end of file +Kneeling,UnknownCycleName,0 +CycleTime,Heavy urban,8912 +CycleTime,Urban,8149 +CycleTime,Suburban,3283 +CycleTime,Interurban,12962 +CycleTime,Coach,15086 +CycleTime,UnknownCycleName,3600 \ No newline at end of file diff --git a/Generic Vehicles/Declaration Mode/40t Long Haul Truck/testPneumaticActuationsMap.APAC b/Generic Vehicles/Declaration Mode/40t Long Haul Truck/testPneumaticActuationsMap.APAC index 72260c908ce1c446de6506b3be902533d2aa43b8..dd5dd6987aa47981d3949c8d7f7d59f4931c72bd 100644 --- a/Generic Vehicles/Declaration Mode/40t Long Haul Truck/testPneumaticActuationsMap.APAC +++ b/Generic Vehicles/Declaration Mode/40t Long Haul Truck/testPneumaticActuationsMap.APAC @@ -16,4 +16,10 @@ Kneeling,Urban,25 Kneeling,Suburban,6 Kneeling,Interurban,0 Kneeling,Coach,0 -Kneeling,UnknownCycleName,0 \ No newline at end of file +Kneeling,UnknownCycleName,0 +CycleTime,Heavy urban,8912 +CycleTime,Urban,8149 +CycleTime,Suburban,3283 +CycleTime,Interurban,12962 +CycleTime,Coach,15086 +CycleTime,UnknownCycleName,3600 \ No newline at end of file diff --git a/Generic Vehicles/Engineering Mode/12t Delivery Truck/12t Delivery Truck.vecto b/Generic Vehicles/Engineering Mode/12t Delivery Truck/12t Delivery Truck.vecto index 72969c4dc9d99efeaae341111c35f94f4eaa1e5f..b224aa96f275596e924f02e750ee4777faa191ac 100644 --- a/Generic Vehicles/Engineering Mode/12t Delivery Truck/12t Delivery Truck.vecto +++ b/Generic Vehicles/Engineering Mode/12t Delivery Truck/12t Delivery Truck.vecto @@ -1,7 +1,7 @@ { "Header": { "CreatedBy": " ()", - "Date": "17.06.2016 08:12:45", + "Date": "6/20/2016 1:49:38 PM", "AppVersion": "2.2", "FileVersion": 2 }, diff --git a/Generic Vehicles/Engineering Mode/12t Delivery Truck/12t Delivery Truck.vgbx b/Generic Vehicles/Engineering Mode/12t Delivery Truck/12t Delivery Truck.vgbx index 19b10889a85b6f2ac68bacc0b96d5578ba427c9c..00db114f11d1e5f5414a0ec36d2f0333f0b487f7 100644 --- a/Generic Vehicles/Engineering Mode/12t Delivery Truck/12t Delivery Truck.vgbx +++ b/Generic Vehicles/Engineering Mode/12t Delivery Truck/12t Delivery Truck.vgbx @@ -1,7 +1,7 @@ { "Header": { "CreatedBy": " ()", - "Date": "17.06.2016 08:12:24", + "Date": "6/20/2016 1:49:34 PM", "AppVersion": "2.2", "FileVersion": 5 }, @@ -19,42 +19,42 @@ "Ratio": 6.75, "LossMap": "Indirect Gear.vtlm", "TCactive": false, - "ShiftPolygon": "ShiftPolygons.vgbs", + "ShiftPolygon": "<NOFILE>", "FullLoadCurve": "<NOFILE>" }, { "Ratio": 3.6, "LossMap": "Indirect Gear.vtlm", "TCactive": false, - "ShiftPolygon": "ShiftPolygons.vgbs", + "ShiftPolygon": "<NOFILE>", "FullLoadCurve": "<NOFILE>" }, { "Ratio": 2.13, "LossMap": "Indirect Gear.vtlm", "TCactive": false, - "ShiftPolygon": "ShiftPolygons.vgbs", + "ShiftPolygon": "<NOFILE>", "FullLoadCurve": "<NOFILE>" }, { "Ratio": 1.39, "LossMap": "Indirect Gear.vtlm", "TCactive": false, - "ShiftPolygon": "ShiftPolygons.vgbs", + "ShiftPolygon": "<NOFILE>", "FullLoadCurve": "<NOFILE>" }, { "Ratio": 1.0, "LossMap": "Direct Gear.vtlm", "TCactive": false, - "ShiftPolygon": "ShiftPolygons.vgbs", + "ShiftPolygon": "<NOFILE>", "FullLoadCurve": "<NOFILE>" }, { "Ratio": 0.78, "LossMap": "Indirect Gear.vtlm", "TCactive": false, - "ShiftPolygon": "ShiftPolygons.vgbs", + "ShiftPolygon": "<NOFILE>", "FullLoadCurve": "<NOFILE>" } ], diff --git a/Generic Vehicles/Engineering Mode/12t Delivery Truck/testPneumaticActuationsMap.APAC b/Generic Vehicles/Engineering Mode/12t Delivery Truck/testPneumaticActuationsMap.APAC index 72260c908ce1c446de6506b3be902533d2aa43b8..dd5dd6987aa47981d3949c8d7f7d59f4931c72bd 100644 --- a/Generic Vehicles/Engineering Mode/12t Delivery Truck/testPneumaticActuationsMap.APAC +++ b/Generic Vehicles/Engineering Mode/12t Delivery Truck/testPneumaticActuationsMap.APAC @@ -16,4 +16,10 @@ Kneeling,Urban,25 Kneeling,Suburban,6 Kneeling,Interurban,0 Kneeling,Coach,0 -Kneeling,UnknownCycleName,0 \ No newline at end of file +Kneeling,UnknownCycleName,0 +CycleTime,Heavy urban,8912 +CycleTime,Urban,8149 +CycleTime,Suburban,3283 +CycleTime,Interurban,12962 +CycleTime,Coach,15086 +CycleTime,UnknownCycleName,3600 \ No newline at end of file diff --git a/Generic Vehicles/Engineering Mode/24t Coach/testPneumaticActuationsMap.APAC b/Generic Vehicles/Engineering Mode/24t Coach/testPneumaticActuationsMap.APAC index 72260c908ce1c446de6506b3be902533d2aa43b8..dd5dd6987aa47981d3949c8d7f7d59f4931c72bd 100644 --- a/Generic Vehicles/Engineering Mode/24t Coach/testPneumaticActuationsMap.APAC +++ b/Generic Vehicles/Engineering Mode/24t Coach/testPneumaticActuationsMap.APAC @@ -16,4 +16,10 @@ Kneeling,Urban,25 Kneeling,Suburban,6 Kneeling,Interurban,0 Kneeling,Coach,0 -Kneeling,UnknownCycleName,0 \ No newline at end of file +Kneeling,UnknownCycleName,0 +CycleTime,Heavy urban,8912 +CycleTime,Urban,8149 +CycleTime,Suburban,3283 +CycleTime,Interurban,12962 +CycleTime,Coach,15086 +CycleTime,UnknownCycleName,3600 \ No newline at end of file diff --git a/VECTO/GUI/F_GBX.vb b/VECTO/GUI/F_GBX.vb index c2c088eba502f68d4b49e15bba7ec1dddd8776f9..b9344b6e4b99887995ec3691989e55f7a795f843 100644 --- a/VECTO/GUI/F_GBX.vb +++ b/VECTO/GUI/F_GBX.vb @@ -9,6 +9,17 @@ ' ' See the LICENSE.txt for the specific language governing permissions and limitations. Imports System.Collections.Generic +Imports System.Globalization +Imports System.Linq +Imports TUGraz.VectoCommon.InputData +Imports TUGraz.VectoCommon.Utils +Imports TUGraz.VectoCore.Configuration +Imports TUGraz.VectoCore.InputData.Impl +Imports TUGraz.VectoCore.InputData.Reader.DataObjectAdaper +Imports TUGraz.VectoCore.Models.Declaration +Imports TUGraz.VectoCore.Models.SimulationComponent.Data +Imports TUGraz.VectoCore.Models.SimulationComponent.Data.Engine +Imports TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox ''' <summary> ''' Gearbox Editor @@ -206,7 +217,7 @@ Public Class F_GBX Me.Close() F_MAINForm.RbDecl.Checked = Not F_MAINForm.RbDecl.Checked F_MAINForm.OpenVectoFile(file) - Case - 1 + Case -1 Exit Sub Case Else '0 'Continue... @@ -789,8 +800,13 @@ Public Class F_GBX MyChart.Series.Add(s) End If + Dim vectoJob As cVECTO = New cVECTO() With {.FilePath = F_VECTO.VECTOfile} + Dim vectoOk As Boolean = vectoJob.ReadFile() + Dim vehicle As cVEH = New cVEH() With {.FilePath = vectoJob.PathVEH(False)} + Dim vehicleOk As Boolean = vehicle.ReadFile(False) + 'Fld - If fldOK Then + If fldOK AndAlso vectoOk AndAlso vehicleOk Then s = New System.Windows.Forms.DataVisualization.Charting.Series s.Points.DataBindXY(FLD0.LnU, FLD0.LTq) @@ -805,9 +821,20 @@ Public Class F_GBX Shiftpoly = New cGBX.cShiftPolygon("", 0) Shiftpoly.SetGenericShiftPoly(FLD0, F_VECTO.n_idle) + 'Dim fullLoadCurve As FullLoadCurve = ConvertToFullLoadCurve(FLD0.LnU, FLD0.LTq) + Dim gears As IList(Of ITransmissionInputData) = ConvertToGears(LvGears.Items) + Dim engine As CombustionEngineData = ConvertToEngineData(FLD0, F_VECTO.n_idle) + Dim shiftLines As ShiftPolygon = DeclarationData.Gearbox.ComputeShiftPolygon(Gear - 1, engine.FullLoadCurve, gears, + engine, + Double.Parse(LvGears.Items(0).SubItems(2).Text, CultureInfo.InvariantCulture), + (vehicle.rdyn / 1000.0).SI(Of Meter)) s = New System.Windows.Forms.DataVisualization.Charting.Series - s.Points.DataBindXY(Shiftpoly.gs_nUup, Shiftpoly.gs_TqUp) + + 's.Points.DataBindXY(Shiftpoly.gs_nUup, Shiftpoly.gs_TqUp) + s.Points.DataBindXY( + shiftLines.Upshift.Select(Function(pt) pt.AngularSpeed.Value() / Constants.RPMToRad).ToList(), + shiftLines.Upshift.Select(Function(pt) pt.Torque.Value()).ToList()) s.ChartType = DataVisualization.Charting.SeriesChartType.FastLine s.BorderWidth = 2 s.Color = Color.DarkRed @@ -816,7 +843,10 @@ Public Class F_GBX MyChart.Series.Add(s) s = New System.Windows.Forms.DataVisualization.Charting.Series - s.Points.DataBindXY(Shiftpoly.gs_nUdown, Shiftpoly.gs_TqDown) + 's.Points.DataBindXY(Shiftpoly.gs_nUdown, Shiftpoly.gs_TqDown) + s.Points.DataBindXY( + shiftLines.Downshift.Select(Function(pt) pt.AngularSpeed.Value() / Constants.RPMToRad).ToList(), + shiftLines.Downshift.Select(Function(pt) pt.Torque.Value()).ToList()) s.ChartType = DataVisualization.Charting.SeriesChartType.FastLine s.BorderWidth = 2 s.Color = Color.DarkRed @@ -863,6 +893,38 @@ Public Class F_GBX Me.PicBox.Image = img End Sub + Private Function ConvertToEngineData(fld As cFLD, nIdle As Single) As CombustionEngineData + + Dim retVal As CombustionEngineData = New CombustionEngineData() + retVal.FullLoadCurve = New EngineFullLoadCurve() + retVal.FullLoadCurve.FullLoadEntries = New List(Of FullLoadCurve.FullLoadCurveEntry) + For i As Integer = 0 To fld.LnU.Count - 1 + retVal.FullLoadCurve.FullLoadEntries.Add( + New FullLoadCurve.FullLoadCurveEntry() _ + With {.EngineSpeed = CType(fld.LnU(i), Double).RPMtoRad(), + .TorqueFullLoad = CType(fld.LTq(i), Double).SI(Of NewtonMeter)(), + .TorqueDrag = CType(fld.LTqDrag(i), Double).SI(Of NewtonMeter)()}) + Next + + retVal.IdleSpeed = CType(nIdle, Double).RPMtoRad() + Return retVal + End Function + + Private Function ConvertToGears(gbx As ListView.ListViewItemCollection) As IList(Of ITransmissionInputData) + Dim retVal As List(Of ITransmissionInputData) = New List(Of ITransmissionInputData) + Dim value As Double + + For i As Integer = 1 To gbx.Count - 1 + If gbx(i).SubItems(2).Text <> "" AndAlso Double.TryParse(gbx(i).SubItems(2).Text, value) Then + retVal.Add( + New TransmissionInputData() _ + With {.Ratio = Double.Parse(value, CultureInfo.InvariantCulture)}) + + End If + Next + Return retVal + End Function + #Region "Torque Converter" diff --git a/VECTO/GUI/F_VECTO.vb b/VECTO/GUI/F_VECTO.vb index 7a92192834e62daca80c0e55e484f1d0f48c2632..1b9d055c1d7a649e83d8e2c58516aff5a24f3d5f 100644 --- a/VECTO/GUI/F_VECTO.vb +++ b/VECTO/GUI/F_VECTO.vb @@ -18,7 +18,7 @@ Imports VectoAuxiliaries ''' </summary> ''' <remarks></remarks> Public Class F_VECTO - Private VECTOfile As String + Public VECTOfile As String Private Changed As Boolean = False Private pgDriver As TabPage @@ -1253,7 +1253,7 @@ lbDlog: s.BorderWidth = 2 s.Color = Color.DarkRed s.Name = "Upshift curve" - MyChart.Series.Add(s) + ' MyChart.Series.Add(s) 'MQ 2016-06-20: do not plot shift lines in engine dialog s = New System.Windows.Forms.DataVisualization.Charting.Series s.Points.DataBindXY(ldown, lM) @@ -1261,7 +1261,7 @@ lbDlog: s.BorderWidth = 2 s.Color = Color.DarkRed s.Name = "Downshift curve" - MyChart.Series.Add(s) + 'MyChart.Series.Add(s) 'MQ 2016-06-20:do not plot shift lines in engine dialog OkCount += 1 diff --git a/VECTO/VECTO.vbproj b/VECTO/VECTO.vbproj index 0882913402ef443cb1ef5bd2b0d9be800b56cd3c..abddd8eca87c83cea8d383bf174a77f48b22ce79 100644 --- a/VECTO/VECTO.vbproj +++ b/VECTO/VECTO.vbproj @@ -131,6 +131,7 @@ <Reference Include="System" /> <Reference Include="System.Data" /> <Reference Include="System.Deployment" /> + <Reference Include="System.Design" /> <Reference Include="System.Drawing" /> <Reference Include="System.Management" /> <Reference Include="System.Runtime.Remoting" /> diff --git a/VECTOAux/VectoAuxiliaries/AdvancedAuxiliaries.vb b/VECTOAux/VectoAuxiliaries/AdvancedAuxiliaries.vb index 1760a7744515ed1ea378713aa4469c48674e3e6d..55728cb9f1864219f8c9e1e7443d6962a5ec4192 100644 --- a/VECTOAux/VectoAuxiliaries/AdvancedAuxiliaries.vb +++ b/VECTOAux/VectoAuxiliaries/AdvancedAuxiliaries.vb @@ -9,6 +9,7 @@ ' ' See the LICENSE.txt for the specific language governing permissions and limitations. +Imports System.Runtime.CompilerServices Imports VectoAuxiliaries Imports VectoAuxiliaries.Electrics Imports VectoAuxiliaries.Pneumatics @@ -22,10 +23,12 @@ Imports System.Windows.Forms ''' This class represents slide number 17 titled Calculations of Cycle FC accounting for Smart Auxiliaries. ''' </summary> ''' <remarks></remarks> +<Assembly: InternalsVisibleTo("VectoCore")> + Public Class AdvancedAuxiliaries Implements IAdvancedAuxiliaries - Private auxConfig As AuxiliaryConfig + Protected Friend auxConfig As AuxiliaryConfig 'Supporting classes which may generate event messages Private WithEvents compressorMap As ICompressorMap @@ -34,7 +37,7 @@ Public Class AdvancedAuxiliaries Private WithEvents ssmToolModule14 As SSMTOOL Private WithEvents alternatorMap As IAlternatorMap - Private WithEvents actuationsMap As IPneumaticActuationsMAP + Protected Friend WithEvents actuationsMap As IPneumaticActuationsMAP Private fuelMap As IFuelConsumptionMap 'Classes which compose the model. @@ -61,7 +64,7 @@ Public Class AdvancedAuxiliaries 'Event Handler top level bubble. Public Sub VectoEventHandler(ByRef sender As Object, message As String, messageType As AdvancedAuxiliaryMessageType) _ - Handles CompressorMap.AuxiliaryEvent, AlternatorMap.AuxiliaryEvent, SSMTOOL.Message, ssmToolModule14.Message + Handles compressorMap.AuxiliaryEvent, alternatorMap.AuxiliaryEvent, ssmTool.Message, ssmToolModule14.Message If Signals.AuxiliaryEventReportingLevel <= messageType Then @@ -155,7 +158,7 @@ Public Class AdvancedAuxiliaries auxConfig.PneumaticUserInputsConfig.CompressorGearEfficiency, auxConfig.ElectricalUserInputsConfig.PowerNetVoltage, Signals, - ssmTOOL) + ssmTool) M2 = New M2_AverageElectricalLoadDemand(auxConfig.ElectricalUserInputsConfig.ElectricalConsumers, @@ -409,7 +412,7 @@ Public Class AdvancedAuxiliaries Return _ If _ - (signals.EngineSpeed <= _signals.EngineIdleSpeed AndAlso (Not signals.ClutchEngaged OrElse signals.InNeutral), 1, 0) + (Signals.EngineSpeed <= _Signals.EngineIdleSpeed AndAlso (Not Signals.ClutchEngaged OrElse Signals.InNeutral), 1, 0) End Get End Property diff --git a/VECTOAux/VectoAuxiliaries/Electrics/ElectricalConsumerList.vb b/VECTOAux/VectoAuxiliaries/Electrics/ElectricalConsumerList.vb index e73f5be3e2de3ce7fb78ad67f175963b6e5ab1a4..86ed08f799771706a01d983271e4f3a038cadca3 100644 --- a/VECTOAux/VectoAuxiliaries/Electrics/ElectricalConsumerList.vb +++ b/VECTOAux/VectoAuxiliaries/Electrics/ElectricalConsumerList.vb @@ -13,165 +13,197 @@ Imports System.Collections.Generic Namespace Electrics - - Public Class ElectricalConsumerList - Implements IElectricalConsumerList - - Private _items As New List(Of IElectricalConsumer) - Private _powernetVoltage As Single - Private _doorDutyCycleZeroToOne As single - - - 'Constructor - Public Sub New(powernetVoltage As Single,doorDutyCycle_ZeroToOne As single, Optional createDefaultList As Boolean = False) - - _powernetVoltage = powernetVoltage - - If createDefaultList Then - - _items = GetDefaultConsumerList() - - End If - - - _doorDutyCycleZeroToOne = doorDutyCycle_ZeroToOne - -End Sub - - 'Transfers the Info comments from a default set of consumables to a live set. - 'This way makes the comments not dependent on saved data. - Public Sub MergeInfoData() Implements IElectricalConsumerList.MergeInfoData - - If _items.Count <> GetDefaultConsumerList().Count then return - - Dim dflt As List(Of IElectricalConsumer) = GetDefaultConsumerList() - - For idx As Integer=0 to _items.Count-1 - - _items(idx).Info= dflt(idx).Info - - Next - - - - End Sub - - 'Initialise default set of consumers - Public function GetDefaultConsumerList() As List(Of IElectricalConsumer) - - 'This populates the default settings as per engineering spreadsheet. - 'Vehicle Basic Equipment' category can be added or remove by customers. - 'At some time in the future, this may be removed and replace with file based consumer lists. - - Dim items As New List(Of IElectricalConsumer) - - Dim c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13, c14, c15, c16, c17, c18, c19, c20 As IElectricalConsumer - - c1 = CType(New ElectricalConsumer(False, "Doors", "Doors per Door", 3.00, 0.096339, _powernetVoltage, 3,""), IElectricalConsumer) - c2 = CType(New ElectricalConsumer(True, "Veh Electronics &Engine", "Controllers,Valves etc", 25.00, 1.00, _powernetVoltage, 1,""), IElectricalConsumer ) - c3 = CType(New ElectricalConsumer(False, "Vehicle basic equipment", "Radio City", 2.00, 0.80, _powernetVoltage, 1,""), IElectricalConsumer ) - c4 = CType(New ElectricalConsumer(False, "Vehicle basic equipment", "Radio Intercity", 5.00, 0.80, _powernetVoltage, 0,""), IElectricalConsumer ) - c5 = CType(New ElectricalConsumer(False, "Vehicle basic equipment", "Radio/Audio Tourism", 9.00, 0.80, _powernetVoltage, 0,""), IElectricalConsumer ) - c6 = CType(New ElectricalConsumer(False, "Vehicle basic equipment", "Fridge", 4.00, 0.50, _powernetVoltage, 0,""), IElectricalConsumer ) - c7 = CType(New ElectricalConsumer(False, "Vehicle basic equipment", "Kitchen Standard", 67.00, 0.05, _powernetVoltage, 0,""), IElectricalConsumer ) - c8 = CType(New ElectricalConsumer(False, "Vehicle basic equipment", "Interior lights City/ Intercity + Doorlights [Should be 1/m]", 1.00, 0.70, _powernetVoltage, 12,"1 Per metre length of bus"), IElectricalConsumer) - c9 = CType(New ElectricalConsumer(False, "Vehicle basic equipment", "LED Interior lights ceiling city/Intercity + door [Should be 1/m]", 0.60, 0.70, _powernetVoltage, 0,"1 Per metre length of bus"), IElectricalConsumer) - c10 = CType(New ElectricalConsumer(False, "Vehicle basic equipment", "Interior lights Tourism + reading [1/m]", 1.10, 0.70, _powernetVoltage, 0,"1 Per metre length of bus"), IElectricalConsumer) - c11 = CType(New ElectricalConsumer(False, "Vehicle basic equipment", "LED Interior lights ceiling Tourism + LED reading [Should be 1/m]", 0.66, 0.70, _powernetVoltage, 0,"1 Per metre length of bus"), IElectricalConsumer) - c12 = CType(New ElectricalConsumer(False, "Customer Specific Equipment", "External Displays Font/Side/Rear", 2.65017667844523, 1.00, _powernetVoltage, 4,""), IElectricalConsumer) - c13 = CType(New ElectricalConsumer(False, "Customer Specific Equipment", "Internal display per unit ( front side rear)", 1.06007067137809, 1.00, _powernetVoltage, 1,""), IElectricalConsumer) - c14 = CType(New ElectricalConsumer(False, "Customer Specific Equipment", "CityBus Ref EBSF Table4 Devices ITS No Displays", 9.30, 1.00, _powernetVoltage, 1,""), IElectricalConsumer) - c15 = CType(New ElectricalConsumer(False, "Lights", "Exterior Lights BULB", 7.40, 1.00, _powernetVoltage, 1,""), IElectricalConsumer) - c16 = CType(New ElectricalConsumer(False, "Lights", "Day running lights LED bonus", -0.723, 1.00, _powernetVoltage, 1,""), IElectricalConsumer) - c17 = CType(New ElectricalConsumer(False, "Lights", "Antifog rear lights LED bonus", -0.17, 1.00, _powernetVoltage, 1,""), IElectricalConsumer) - c18 = CType(New ElectricalConsumer(False, "Lights", "Position lights LED bonus", -1.20, 1.00, _powernetVoltage, 1,""), IElectricalConsumer) - c19 = CType(New ElectricalConsumer(False, "Lights", "Direction lights LED bonus", -0.30, 1.00, _powernetVoltage, 1,""), IElectricalConsumer) - c20 = CType(New ElectricalConsumer(False, "Lights", "Brake Lights LED bonus", -1.2, 1.0, _powernetVoltage, 1, ""), IElectricalConsumer) - - items.Add(c1) - items.Add(c2) - items.Add(c3) - items.Add(c4) - items.Add(c5) - items.Add(c6) - items.Add(c7) - items.Add(c8) - items.Add(c9) - items.Add(c10) - items.Add(c11) - items.Add(c12) - items.Add(c13) - items.Add(c14) - items.Add(c15) - items.Add(c16) - items.Add(c17) - items.Add(c18) - items.Add(c19) - items.Add(c20) - - Return items - -End Function - - - 'Interface implementation - Public Property DoorDutyCycleFraction As single Implements IElectricalConsumerList.DoorDutyCycleFraction - - Get - Return _doorDutyCycleZeroToOne - End Get - Set(value As Single) - _doorDutyCycleZeroToOne=value - End Set - -end property - Public ReadOnly Property Items As List(Of IElectricalConsumer) Implements IElectricalConsumerList.Items - Get - Return _items - End Get -End Property - Public Sub AddConsumer(consumer As IElectricalConsumer) Implements Electrics.IElectricalConsumerList.AddConsumer - - If Not _items.Contains(consumer) Then - _items.Add(consumer) - Else - - Throw New ArgumentException("Consumer Already Present in the list") - - End If - - End Sub - Public Sub RemoveConsumer(consumer As IElectricalConsumer) Implements Electrics.IElectricalConsumerList.RemoveConsumer - - If _items.Contains(consumer) Then - - _items.Remove(consumer) - - Else - - Throw New ArgumentException("Consumer Not In List") - - End If - - End Sub - Public Function GetTotalAverageDemandAmps(excludeOnBase As Boolean) As Single Implements Electrics.IElectricalConsumerList.GetTotalAverageDemandAmps - - Dim Amps As Single - - If excludeOnBase Then - Amps = Aggregate item In Items Where item.BaseVehicle = False Into Sum(item.TotalAvgConumptionAmps(DoorDutyCycleFraction)) - Else - Amps = Aggregate item In Items Into Sum(item.TotalAvgConumptionAmps(DoorDutyCycleFraction)) - End If - - - Return Amps - - End Function - - -End Class - + Public Class ElectricalConsumerList + Implements IElectricalConsumerList + + Private _items As New List(Of IElectricalConsumer) + Private _powernetVoltage As Single + Private _doorDutyCycleZeroToOne As Single + + + 'Constructor + Public Sub New(powernetVoltage As Single, doorDutyCycle_ZeroToOne As Single, + Optional createDefaultList As Boolean = False) + + _powernetVoltage = powernetVoltage + + If createDefaultList Then + + _items = GetDefaultConsumerList() + + End If + + + _doorDutyCycleZeroToOne = doorDutyCycle_ZeroToOne + End Sub + + 'Transfers the Info comments from a default set of consumables to a live set. + 'This way makes the comments not dependent on saved data. + Public Sub MergeInfoData() Implements IElectricalConsumerList.MergeInfoData + + If _items.Count <> GetDefaultConsumerList().Count Then Return + + Dim dflt As List(Of IElectricalConsumer) = GetDefaultConsumerList() + + For idx As Integer = 0 To _items.Count - 1 + + _items(idx).Info = dflt(idx).Info + + Next + End Sub + + 'Initialise default set of consumers + Public Function GetDefaultConsumerList() As List(Of IElectricalConsumer) + + 'This populates the default settings as per engineering spreadsheet. + 'Vehicle Basic Equipment' category can be added or remove by customers. + 'At some time in the future, this may be removed and replace with file based consumer lists. + + Dim items As New List(Of IElectricalConsumer) + + Dim c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13, c14, c15, c16, c17, c18, c19, c20 As IElectricalConsumer + + c1 = CType(New ElectricalConsumer(False, "Doors", "Doors per Door", 3.0, 0.096339, _powernetVoltage, 3, ""), + IElectricalConsumer) + c2 = CType(New ElectricalConsumer(True, "Veh Electronics &Engine", "Controllers,Valves etc", 25.0, 1.0, + _powernetVoltage, 1, ""), + IElectricalConsumer) + c3 = CType(New ElectricalConsumer(False, "Vehicle basic equipment", "Radio City", 2.0, 0.8, _powernetVoltage, 1, ""), + IElectricalConsumer) + c4 = CType(New ElectricalConsumer(False, "Vehicle basic equipment", "Radio Intercity", 5.0, 0.8, _powernetVoltage, + 0, ""), + IElectricalConsumer) + c5 = CType(New ElectricalConsumer(False, "Vehicle basic equipment", "Radio/Audio Tourism", 9.0, 0.8, + _powernetVoltage, 0, ""), + IElectricalConsumer) + c6 = CType(New ElectricalConsumer(False, "Vehicle basic equipment", "Fridge", 4.0, 0.5, _powernetVoltage, 0, ""), + IElectricalConsumer) + c7 = CType(New ElectricalConsumer(False, "Vehicle basic equipment", "Kitchen Standard", 67.0, 0.05, _powernetVoltage, + 0, ""), + IElectricalConsumer) + c8 = CType(New ElectricalConsumer(False, "Vehicle basic equipment", + "Interior lights City/ Intercity + Doorlights [Should be 1/m]", 1.0, 0.7, _powernetVoltage, 12, + "1 Per metre length of bus"), + IElectricalConsumer) + c9 = CType(New ElectricalConsumer(False, "Vehicle basic equipment", + "LED Interior lights ceiling city/Intercity + door [Should be 1/m]", 0.6, 0.7, _powernetVoltage, 0, + "1 Per metre length of bus"), + IElectricalConsumer) + c10 = CType(New ElectricalConsumer(False, "Vehicle basic equipment", "Interior lights Tourism + reading [1/m]", 1.1, + 0.7, _powernetVoltage, 0, "1 Per metre length of bus"), + IElectricalConsumer) + c11 = CType(New ElectricalConsumer(False, "Vehicle basic equipment", + "LED Interior lights ceiling Tourism + LED reading [Should be 1/m]", 0.66, 0.7, _powernetVoltage, 0, + "1 Per metre length of bus"), + IElectricalConsumer) + c12 = CType(New ElectricalConsumer(False, "Customer Specific Equipment", "External Displays Font/Side/Rear", + 2.65017667844523, 1.0, _powernetVoltage, 4, ""), + IElectricalConsumer) + c13 = CType(New ElectricalConsumer(False, "Customer Specific Equipment", + "Internal display per unit ( front side rear)", 1.06007067137809, 1.0, _powernetVoltage, 1, ""), + IElectricalConsumer) + c14 = CType(New ElectricalConsumer(False, "Customer Specific Equipment", + "CityBus Ref EBSF Table4 Devices ITS No Displays", 9.3, 1.0, _powernetVoltage, 1, ""), + IElectricalConsumer) + c15 = CType(New ElectricalConsumer(False, "Lights", "Exterior Lights BULB", 7.4, 1.0, _powernetVoltage, 1, ""), + IElectricalConsumer) + c16 = CType(New ElectricalConsumer(False, "Lights", "Day running lights LED bonus", -0.723, 1.0, _powernetVoltage, + 1, ""), + IElectricalConsumer) + c17 = CType(New ElectricalConsumer(False, "Lights", "Antifog rear lights LED bonus", -0.17, 1.0, _powernetVoltage, + 1, ""), + IElectricalConsumer) + c18 = CType(New ElectricalConsumer(False, "Lights", "Position lights LED bonus", -1.2, 1.0, _powernetVoltage, 1, + ""), + IElectricalConsumer) + c19 = CType(New ElectricalConsumer(False, "Lights", "Direction lights LED bonus", -0.3, 1.0, _powernetVoltage, 1, + ""), + IElectricalConsumer) + c20 = CType(New ElectricalConsumer(False, "Lights", "Brake Lights LED bonus", -1.2, 1.0, _powernetVoltage, 1, ""), + IElectricalConsumer) + + items.Add(c1) + items.Add(c2) + items.Add(c3) + items.Add(c4) + items.Add(c5) + items.Add(c6) + items.Add(c7) + items.Add(c8) + items.Add(c9) + items.Add(c10) + items.Add(c11) + items.Add(c12) + items.Add(c13) + items.Add(c14) + items.Add(c15) + items.Add(c16) + items.Add(c17) + items.Add(c18) + items.Add(c19) + items.Add(c20) + + Return items + End Function + + + 'Interface implementation + Public Property DoorDutyCycleFraction As Single Implements IElectricalConsumerList.DoorDutyCycleFraction + + Get + Return _doorDutyCycleZeroToOne + End Get + Set(value As Single) + _doorDutyCycleZeroToOne = value + End Set + End Property + + Public ReadOnly Property Items As List(Of IElectricalConsumer) Implements IElectricalConsumerList.Items + Get + Return _items + End Get + End Property + + Public Sub AddConsumer(consumer As IElectricalConsumer) Implements Electrics.IElectricalConsumerList.AddConsumer + + If Not _items.Contains(consumer) Then + _items.Add(consumer) + Else + + Throw New ArgumentException("Consumer Already Present in the list") + + End If + End Sub + + Public Sub RemoveConsumer(consumer As IElectricalConsumer) Implements Electrics.IElectricalConsumerList.RemoveConsumer + + If _items.Contains(consumer) Then + + _items.Remove(consumer) + + Else + + Throw New ArgumentException("Consumer Not In List") + + End If + End Sub + + Public Function GetTotalAverageDemandAmps(excludeOnBase As Boolean) As Single _ + Implements Electrics.IElectricalConsumerList.GetTotalAverageDemandAmps + + Dim Amps As Single + + If excludeOnBase Then + Amps = + Aggregate item In Items Where item.BaseVehicle = False Into Sum(item.TotalAvgConumptionAmps(DoorDutyCycleFraction)) + Else + Amps = Aggregate item In Items Into Sum(item.TotalAvgConumptionAmps(DoorDutyCycleFraction)) + End If + + + Return Amps + End Function + End Class End Namespace diff --git a/VectoConsole/Properties/Version.cs b/VectoConsole/Properties/Version.cs index 993af88e9b8fe22aab5d8b307cf0382c6ef95937..a9fdbc4a3a78f6526eee325abe8ebd0a1f76a3fd 100644 --- a/VectoConsole/Properties/Version.cs +++ b/VectoConsole/Properties/Version.cs @@ -30,5 +30,5 @@ */ using System.Reflection; -[assembly: AssemblyVersion("3.0.3.495")] -[assembly: AssemblyFileVersion("3.0.3.495")] +[assembly: AssemblyVersion("3.0.3.537")] +[assembly: AssemblyFileVersion("3.0.3.537")] diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs index 91489d43671d9caf5df9675a845abeae419db34a..9e983100e784555e83e61df0831fa2e4a960f7f4 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs @@ -42,6 +42,7 @@ using TUGraz.VectoCore.Models.SimulationComponent.Data.Engine; using TUGraz.VectoCore.OutputData; using TUGraz.VectoCore.Utils; using VectoAuxiliaries; +using VectoAuxiliaries.Pneumatics; namespace TUGraz.VectoCore.Models.SimulationComponent.Impl { @@ -66,8 +67,14 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl DataBus = container; var tmpAux = new AdvancedAuxiliaries(); + //var actuationsMap = new PneumaticActuationsMAP(); + + // 'Set Statics - tmpAux.VectoInputs.Cycle = DetermineCycle(cycleName, tmpAux.Signals); + tmpAux.VectoInputs.Cycle = DetermineCycle(cycleName); + // tmpAux.Signals.TotalCycleTimeSeconds = + // tmpAux.actuationsMap.GetNumActuations(new ActuationsKey("CycleTime", tmpAux.VectoInputs.Cycle)); + tmpAux.VectoInputs.VehicleWeightKG = (float)vehicleWeight.Value(); _fcMapAdapter = new FuelConsumptionAdapter() { FcMap = fcMap }; tmpAux.VectoInputs.FuelMap = _fcMapAdapter; @@ -77,40 +84,40 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl tmpAux.Signals.EngineIdleSpeed = (float)(engineIdleSpeed.Value() / Constants.RPMToRad); tmpAux.Initialise(Path.GetFileName(aauxFile), Path.GetDirectoryName(Path.GetFullPath(aauxFile)) + @"\"); + tmpAux.Signals.TotalCycleTimeSeconds = + tmpAux.actuationsMap.GetNumActuations(new ActuationsKey("CycleTime", tmpAux.VectoInputs.Cycle)); + + // call initialize again _after_ setting the cycle time to get the correct consumtions + tmpAux.Initialise(Path.GetFileName(aauxFile), Path.GetDirectoryName(Path.GetFullPath(aauxFile)) + @"\"); + + Auxiliaries = tmpAux; } - private static string DetermineCycle(string cycleName, ISignals aauxsignals) + private static string DetermineCycle(string cycleName) { var cycle = cycleName.ToLower(); - // cycle time is hard coded based on previous simulations if (cycle.Contains("bus")) { if (cycle.Contains("heavy_urban")) { - aauxsignals.TotalCycleTimeSeconds = 8912; return "Heavy urban"; } if (cycle.Contains("suburban")) { - aauxsignals.TotalCycleTimeSeconds = 3283; return "Suburban"; } if (cycle.Contains("interurban")) { - aauxsignals.TotalCycleTimeSeconds = 12962; return "Interurban"; } if (cycle.Contains("urban")) { - aauxsignals.TotalCycleTimeSeconds = 8149; return "Urban"; } } if (cycle.Contains("coach")) { - aauxsignals.TotalCycleTimeSeconds = 15086; return "Coach"; } Logger<BusAuxiliariesAdapter>() .Warn("UnServiced Cycle Name '{0}' in Pneumatics Actuations Map 0 Actuations returned", cycleName); - aauxsignals.TotalCycleTimeSeconds = 1; - return "UnknownCycleName"; + return cycle; } public IEngineAuxPort Port() diff --git a/VectoCore/VectoCore/OutputData/ModalDataContainer.cs b/VectoCore/VectoCore/OutputData/ModalDataContainer.cs index 55d26cee907dcb222379281d47eba6bd1dccbfd7..69cb27aafdc102f26bdc3bf9be5c7f3fc2219869 100644 --- a/VectoCore/VectoCore/OutputData/ModalDataContainer.cs +++ b/VectoCore/VectoCore/OutputData/ModalDataContainer.cs @@ -185,7 +185,11 @@ namespace TUGraz.VectoCore.OutputData var strCols = dataColumns.Select(x => x.GetName()) .Concat((Auxiliaries.Values.Select(c => c.ColumnName))) - .Concat(new[] { ModalResultField.FCMap, ModalResultField.FCAUXc, ModalResultField.FCWHTCc }.Select(x => x.GetName())); + .Concat( + new[] { + ModalResultField.FCMap, ModalResultField.FCAUXc, ModalResultField.FCWHTCc, ModalResultField.FCAAUX, + ModalResultField.FCFinal + }.Select(x => x.GetName())); if (_mode != ExecutionMode.Declaration || WriteModalResults) { //VectoCSVFile.Write(_modWriter, new DataView(Data).ToTable(false, strCols.ToArray())); diff --git a/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs b/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs index 6dd12d98eb28ec65bf0f00cf70090dd7d8c61b29..39830a4f407803e5bd678d278c1d6c4de4e44a88 100644 --- a/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs +++ b/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs @@ -264,8 +264,9 @@ namespace TUGraz.VectoCore.OutputData protected virtual void Dispose(bool disposing) { - if (disposing) + if (disposing) { _table.Dispose(); + } } } } \ No newline at end of file diff --git a/VectoCore/VectoCore/Properties/AssemblyInfo.cs b/VectoCore/VectoCore/Properties/AssemblyInfo.cs index 9f31bbc7c809d3b2d0ab7f713de8e0dd48fec002..26acbf31628823236bf0dc257eb059a500dcb353 100644 --- a/VectoCore/VectoCore/Properties/AssemblyInfo.cs +++ b/VectoCore/VectoCore/Properties/AssemblyInfo.cs @@ -43,5 +43,6 @@ using System.Runtime.InteropServices; [assembly: ComVisible(false)] [assembly: Guid("b843f4c2-660b-4a3e-a336-c1f9c20aa993")] [assembly: System.Runtime.CompilerServices.InternalsVisibleTo("VectoAPI")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("VECTO")] [assembly: System.Runtime.CompilerServices.InternalsVisibleTo("VectoCoreTest")] [assembly: System.Runtime.CompilerServices.InternalsVisibleTo("VectoAPITest")] \ No newline at end of file diff --git a/VectoCore/VectoCore/Properties/Version.cs b/VectoCore/VectoCore/Properties/Version.cs index e99a7e338db7dcd602aac93947ef9d93423e2dcd..032a2e14e2c07c52c6071533cc0be3aef8e3db9d 100644 --- a/VectoCore/VectoCore/Properties/Version.cs +++ b/VectoCore/VectoCore/Properties/Version.cs @@ -30,5 +30,5 @@ */ using System.Reflection; -[assembly: AssemblyVersion("3.0.3.495")] -[assembly: AssemblyFileVersion("3.0.3.495")] +[assembly: AssemblyVersion("3.0.3.537")] +[assembly: AssemblyFileVersion("3.0.3.537")] diff --git a/VectoCore/VectoCore/Utils/VectoCSVFile.cs b/VectoCore/VectoCore/Utils/VectoCSVFile.cs index 657dac3cd1bb125afc08be0e554b42c3ae4d8e5d..d6f47c2f26c5636713eb41e5c7ac10a933405ec2 100644 --- a/VectoCore/VectoCore/Utils/VectoCSVFile.cs +++ b/VectoCore/VectoCore/Utils/VectoCSVFile.cs @@ -101,8 +101,9 @@ namespace TUGraz.VectoCore.Utils private static IEnumerable<string> ReadLines(Stream stream) { using (var reader = new StreamReader(stream, Encoding.UTF8)) { - while (!reader.EndOfStream) + while (!reader.EndOfStream) { yield return reader.ReadLine(); + } } } @@ -155,6 +156,9 @@ namespace TUGraz.VectoCore.Utils table.Columns.Add(col); } + if (lines.Current == null) { + return table; + } // read data into table var i = 0; do { @@ -187,8 +191,9 @@ namespace TUGraz.VectoCore.Utils /// <param name="table">The Datatable.</param> public static void Write(string fileName, DataTable table) { - using (var sw = new StreamWriter(new FileStream(fileName, FileMode.Create), Encoding.UTF8)) + using (var sw = new StreamWriter(new FileStream(fileName, FileMode.Create), Encoding.UTF8)) { Write(sw, table); + } } /// <summary> diff --git a/VectoCore/VectoCoreTest/FileIO/JsonTest.cs b/VectoCore/VectoCoreTest/FileIO/JsonTest.cs index 55fd0a38b150673b7498d7b27b28c8d15fc04769..d1205edaae76ddfaa015e007976d8b01092273a3 100644 --- a/VectoCore/VectoCoreTest/FileIO/JsonTest.cs +++ b/VectoCore/VectoCoreTest/FileIO/JsonTest.cs @@ -60,7 +60,8 @@ namespace TUGraz.VectoCore.Tests.FileIO var json = (JObject)JToken.ReadFrom(new JsonTextReader(File.OpenText(TestJobFile))); ((JObject)json["Body"]).Property("EngineFile").Remove(); - AssertHelper.Exception<VectoException>(() => new JSONInputDataV2(json, TestJobFile), "Failed to read Engine file."); + AssertHelper.Exception<VectoException>(() => new JSONInputDataV2(json, TestJobFile), + "Failed to read input data: Key EngineFile not found"); } [TestMethod] @@ -69,7 +70,8 @@ namespace TUGraz.VectoCore.Tests.FileIO var json = (JObject)JToken.ReadFrom(new JsonTextReader(File.OpenText(TestJobFile))); ((JObject)json["Body"]).Property("GearboxFile").Remove(); - AssertHelper.Exception<VectoException>(() => new JSONInputDataV2(json, TestJobFile), "Failed to read Gearbox file."); + AssertHelper.Exception<VectoException>(() => new JSONInputDataV2(json, TestJobFile), + "Failed to read input data: Key GearboxFile not found"); } [TestMethod] @@ -78,7 +80,8 @@ namespace TUGraz.VectoCore.Tests.FileIO var json = (JObject)JToken.ReadFrom(new JsonTextReader(File.OpenText(TestJobFile))); ((JObject)json["Body"]).Property("VehicleFile").Remove(); - AssertHelper.Exception<VectoException>(() => new JSONInputDataV2(json, TestJobFile), "Failed to read Vehicle file."); + AssertHelper.Exception<VectoException>(() => new JSONInputDataV2(json, TestJobFile), + "Failed to read input data: Key VehicleFile not found"); } [TestMethod]