Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
Commit 95758e8e authored by Michael KRISPER's avatar Michael KRISPER Committed by Markus Quaritsch
Browse files

no message

parent 4441688c
No related branches found
No related tags found
No related merge requests found
......@@ -5,68 +5,81 @@ using TUGraz.VectoCore.Models.SimulationComponent.Data;
namespace TUGraz.VectoCore.FileIO.DeclarationFile
{
/// <summary>
/// A class which represents the json data format for serializing and deserializing the Job Data files.
/// </summary>
/// <summary>
/// Represents the Vecto Job File. Fileformat: .vecto
/// A class which represents the json data format for serializing and deserializing the Job Data files.
/// Fileformat: .vecto
/// </summary>
/// <code>
///{
/// "Header": {
/// "CreatedBy": " ()",
/// "Date": "3/4/2015 2:09:13 PM",
/// "AppVersion": "2.0.4-beta3",
/// "FileVersion": 2
/// },
/// "Body": {
/// "SavedInDeclMode": false,
/// "VehicleData": "24t Coach.vveh",
/// "EngineData": "24t Coach.veng",
/// "GearboxData": "24t Coach.vgbx",
/// "Cycles": [
/// "W:\\VECTO\\CITnet\\VECTO\\bin\\Debug\\Declaration\\MissionCycles\\LOT2_rural Engine Only.vdri"
/// ],
/// "Aux": [
/// {
/// "ID": "ALT1",
/// "Type": "Alternator",
/// "Path": "24t_Coach_ALT.vaux",
/// "Technology": ""
/// },
/// {
/// "ID": "ALT2",
/// "Type": "Alternator",
/// "Path": "24t_Coach_ALT.vaux",
/// "Technology": ""
/// },
/// {
/// "ID": "ALT3",
/// "Type": "Alternator",
/// "Path": "24t_Coach_ALT.vaux",
/// "Technology": ""
/// }
/// ],
/// "AccelerationLimitingFile": "Coach.vacc",
/// "IsEngineOnly": true,
/// "StartStop": {
/// "Enabled": false,
/// "MaxSpeed": 5.0,
/// "MinTime": 0.0,
/// "Delay": 0
/// },
/// "LookAheadCoasting": {
/// "Enabled": true,
/// "Dec": -0.5,
/// "MinSpeed": 50.0
/// },
/// "OverSpeedEcoRoll": {
/// "Mode": "OverSpeed",
/// "MinSpeed": 70.0,
/// "OverSpeed": 5.0,
/// "UnderSpeed": 5.0
/// }
/// }
///}
/// {
/// "Header": {
/// "CreatedBy": " ()",
/// "Date": "3/4/2015 12:31:06 PM",
/// "AppVersion": "2.0.4-beta3",
/// "FileVersion": 2
/// },
/// "Body": {
/// "SavedInDeclMode": true,
/// "VehicleFile": "../Components/12t Delivery Truck.vveh",
/// "EngineFile": "../Components/12t Delivery Truck.veng",
/// "GearboxFile": "../Components/12t Delivery Truck.vgbx",
/// "Cycles": [
/// "Long Haul",
/// "Regional Delivery",
/// "Urban Delivery"
/// ],
/// "Aux": [
/// {
/// "ID": "FAN",
/// "Type": "Fan",
/// "Path": "<NOFILE>",
/// "Technology": ""
/// },
/// {
/// "ID": "STP",
/// "Type": "Steering pump",
/// "Path": "<NOFILE>",
/// "Technology": ""
/// },
/// {
/// "ID": "AC",
/// "Type": "HVAC",
/// "Path": "<NOFILE>",
/// "Technology": ""
/// },
/// {
/// "ID": "ES",
/// "Type": "Electric System",
/// "Path": "<NOFILE>",
/// "Technology": "",
/// "TechList": []
/// },
/// {
/// "ID": "PS",
/// "Type": "Pneumatic System",
/// "Path": "<NOFILE>",
/// "Technology": ""
/// }
/// ],
/// "VACC": "<NOFILE>",
/// "EngineOnlyMode": true,
/// "StartStop": {
/// "Enabled": false,
/// "MaxSpeed": 5.0,
/// "MinTime": 5.0,
/// "Delay": 5
/// },
/// "LAC": {
/// "Enabled": true,
/// "Dec": -0.5,
/// "MinSpeed": 50.0
/// },
/// "OverSpeedEcoRoll": {
/// "Mode": "OverSpeed",
/// "MinSpeed": 50.0,
/// "OverSpeed": 5.0,
/// "UnderSpeed": 5.0
/// }
/// }
/// }
/// </code>
public class VectoJobFileV2Declaration : VectoJobFile
{
......@@ -91,10 +104,11 @@ namespace TUGraz.VectoCore.FileIO.DeclarationFile
public class AuxDataDecl
{
//[JsonProperty(Required = Required.Always)] public string ID;
//[JsonProperty(Required = Required.Always)] public string Type;
[JsonProperty(Required = Required.Always)] public string ID;
[JsonProperty(Required = Required.Always)] public string Type;
//[JsonProperty(Required = Required.Always)] public string Path;
[JsonProperty(Required = Required.Always)] public string Technology;
[JsonProperty] public IList<string> TechList;
}
public class StartStopDataDecl
......
......@@ -25,7 +25,7 @@ namespace TUGraz.VectoCore.FileIO.Reader.DataObjectAdaper
var retVal = new VehicleData {
SavedInDeclarationMode = data.SavedInDeclarationMode,
VehicleCategory = data.VehicleCategory(),
AxleConfiguration = EnumHelper.ParseAxleConfigurationType(data.AxleConfig.TypeStr),
AxleConfiguration = AxleConfigurationHelper.Parse(data.AxleConfig.TypeStr),
CurbWeight = data.CurbWeight.SI<Kilogram>(),
//CurbWeigthExtra = data.CurbWeightExtra.SI<Kilogram>(),
//Loading = data.Loading.SI<Kilogram>(),
......
using System;
using System.Collections.Generic;
using System.IO;
using TUGraz.VectoCore.Exceptions;
using TUGraz.VectoCore.FileIO.DeclarationFile;
using TUGraz.VectoCore.Models.Declaration;
using System.Collections.Generic;
using TUGraz.VectoCore.Models.Simulation.Data;
using TUGraz.VectoCore.Models.SimulationComponent.Data;
using TUGraz.VectoCore.Models.SimulationComponent.Data.Engine;
using TUGraz.VectoCore.Utils;
namespace TUGraz.VectoCore.FileIO.Reader.Impl
{
......@@ -15,14 +7,15 @@ namespace TUGraz.VectoCore.FileIO.Reader.Impl
{
//protected string JobBasePath = "";
protected VectoJobFile Job;
protected VectoJobFile Job { get; set; }
protected VectoVehicleFile Vehicle;
protected VectoVehicleFile Vehicle { get; set; }
protected VectoGearboxFile Gearbox;
protected VectoGearboxFile Gearbox { get; set; }
protected VectoEngineFile Engine;
protected VectoEngineFile Engine { get; set; }
protected IList<VectoRunData.AuxData> Aux { get; set; }
public void SetJobFile(string filename)
{
......@@ -38,10 +31,14 @@ namespace TUGraz.VectoCore.FileIO.Reader.Impl
protected abstract void ProcessJob(VectoJobFile job);
// has to read the file string and create file-container
/// <summary>
/// has to read the file string and create file-container
/// </summary>
protected abstract void ReadJobFile(string file);
// has to read the file string and create file-container
/// <summary>
/// has to read the file string and create file-container
/// </summary>
protected abstract void ReadVehicle(string file);
protected abstract void ReadEngine(string file);
......
using System;
using System.Collections.Generic;
using System.Data;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Newtonsoft.Json;
......@@ -10,8 +8,6 @@ using TUGraz.VectoCore.FileIO.Reader.DataObjectAdaper;
using TUGraz.VectoCore.Models.Declaration;
using TUGraz.VectoCore.Models.Simulation.Data;
using TUGraz.VectoCore.Models.SimulationComponent.Data;
using TUGraz.VectoCore.Models.SimulationComponent.Data.Engine;
using TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox;
using TUGraz.VectoCore.Utils;
namespace TUGraz.VectoCore.FileIO.Reader.Impl
......@@ -43,14 +39,14 @@ namespace TUGraz.VectoCore.FileIO.Reader.Impl
var parser = new DrivingCycleData.DistanceBasedDataParser();
var data = VectoCSVFile.ReadStream(mission.CycleFile);
var cycleEntries = parser.Parse(data).ToList();
var simulationRunData = new VectoRunData() {
var simulationRunData = new VectoRunData {
VehicleData = dao.CreateVehicleData(Vehicle, mission, loading),
EngineData = engineData,
GearboxData = dao.CreateGearboxData(Gearbox, engineData),
// @@@ TODO: auxiliaries
Aux = Aux,
// @@@ TODO: ...
Cycle = new DrivingCycleData() {
Name = "Dummy",
Cycle = new DrivingCycleData {
Name = mission.ToString(),
SavedInDeclarationMode = true,
Entries = cycleEntries
},
......@@ -76,6 +72,8 @@ namespace TUGraz.VectoCore.FileIO.Reader.Impl
ReadEngine(Path.Combine(job.BasePath, job.Body.EngineFile));
ReadGearbox(Path.Combine(job.BasePath, job.Body.GearboxFile));
ReadAuxiliary(job.Body.Aux);
}
protected override void ReadJobFile(string file)
......@@ -95,7 +93,6 @@ namespace TUGraz.VectoCore.FileIO.Reader.Impl
}
}
protected override void ReadVehicle(string file)
{
var json = File.ReadAllText(file);
......@@ -144,6 +141,17 @@ namespace TUGraz.VectoCore.FileIO.Reader.Impl
}
}
private void ReadAuxiliary(IEnumerable<VectoJobFileV2Declaration.DataBodyDecl.AuxDataDecl> auxList)
{
Aux = auxList.Select(aux =>
new VectoRunData.AuxData {
ID = aux.ID,
Type = aux.Type,
Technology = aux.Technology,
TechList = aux.TechList.ToArray()
}).ToArray();
}
internal Segment GetVehicleClassification(VehicleCategory category, AxleConfiguration axles, Kilogram grossMassRating,
Kilogram curbWeight)
......
using System.Runtime.Serialization;
using Newtonsoft.Json;
namespace TUGraz.VectoCore.FileIO
{
......
using System;
using TUGraz.VectoCore.Utils;
using TUGraz.VectoCore.Models.SimulationComponent.Data;
namespace TUGraz.VectoCore.Models.Declaration
......@@ -16,19 +16,18 @@ namespace TUGraz.VectoCore.Models.Declaration
AxleConfig_8x8,
}
public static class AxleConfigurationExtensions
public static class AxleConfigurationHelper
{
private const string Prefix = "AxleConfig_";
public static string GetName(this AxleConfiguration self)
{
return self.ToString().Substring(11);
return self.ToString().Replace(Prefix, "");
}
}
public static class EnumHelper
{
public static AxleConfiguration ParseAxleConfigurationType(string typeString)
public static AxleConfiguration Parse(string typeString)
{
return (AxleConfiguration)Enum.Parse(typeof(AxleConfiguration), "AxleConfig_" + typeString, true);
return EnumHelper.Parse<AxleConfiguration>(Prefix + typeString);
}
public static DriverData.DriverMode ParseDriverMode(string driverString)
......
......@@ -26,7 +26,7 @@ namespace TUGraz.VectoCore.Models.Declaration
_data.Clear();
foreach (DataRow row in table.Rows) {
foreach (MissionType mission in Enum.GetValues(typeof(MissionType))) {
foreach (var mission in EnumHelper.GetValues<MissionType>()) {
_data[Tuple.Create(mission, row.Field<string>("Technology"))] =
row.ParseDouble(mission.ToString().ToLower()).SI<Watt>();
}
......
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.IO;
using System.Collections.Generic;
using System.Runtime.Serialization;
using Newtonsoft.Json;
using TUGraz.VectoCore.Exceptions;
using TUGraz.VectoCore.Models.SimulationComponent;
using TUGraz.VectoCore.Models.SimulationComponent.Data;
using TUGraz.VectoCore.Models.SimulationComponent.Impl;
using TUGraz.VectoCore.Utils;
......@@ -48,6 +42,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Data
public string Type;
public string Path;
public string Technology;
public string[] TechList;
public AuxiliaryData Data;
}
......
using System;
using System.Collections.Generic;
using System.Linq;
namespace TUGraz.VectoCore.Utils
{
public static class EnumHelper
{
public static T Parse<T>(this string s, bool ignoreCase = true)
{
return (T)Enum.Parse(typeof(T), s, ignoreCase);
}
public static IEnumerable<T> GetValues<T>()
{
return Enum.GetValues(typeof(T)).Cast<T>();
}
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment