Code development platform for open source projects from the European Union institutions :large_blue_circle: EU Login authentication by SMS has been phased out. To see alternatives please check here

Skip to content
Snippets Groups Projects
Commit 2d3781d4 authored by Michael KRISPER's avatar Michael KRISPER
Browse files

added more convenient json access methods

parent d2fadb54
Branches
Tags
No related merge requests found
......@@ -40,48 +40,51 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
public virtual string ModelName
{
get { return Body.GetEx(JsonKeys.Engine_ModelName).Value<string>(); }
get { return Body.GetEx<string>(JsonKeys.Engine_ModelName); }
}
public virtual CubicMeter Displacement
{
get { return Body.GetEx(JsonKeys.Engine_Displacement).Value<double>().SI().Cubic.Centi.Meter.Cast<CubicMeter>(); }
get { return Body.GetEx<double>(JsonKeys.Engine_Displacement).SI().Cubic.Centi.Meter.Cast<CubicMeter>(); }
// convert vom ccm to m^3}
}
public virtual PerSecond IdleSpeed
{
get { return Body.GetEx(JsonKeys.Engine_IdleSpeed).Value<double>().RPMtoRad(); }
get { return Body.GetEx<double>(JsonKeys.Engine_IdleSpeed).RPMtoRad(); }
}
public virtual DataTable FuelConsumptionMap
{
get { return ReadTableData(Body.GetEx(JsonKeys.Engine_FuelConsumptionMap).Value<string>(), "FuelConsumptionMap"); }
get { return ReadTableData(Body.GetEx<string>(JsonKeys.Engine_FuelConsumptionMap), "FuelConsumptionMap"); }
}
public virtual DataTable FullLoadCurve
{
get { return ReadTableData(Body.GetEx(JsonKeys.Engine_FullLoadCurveFile).Value<string>(), "FullLoadCurve"); }
get { return ReadTableData(Body.GetEx<string>(JsonKeys.Engine_FullLoadCurveFile), "FullLoadCurve"); }
}
public virtual KilogramSquareMeter Inertia
{
get { return Body.GetEx(JsonKeys.Engine_Inertia).Value<double>().SI<KilogramSquareMeter>(); }
get { return Body.GetEx<double>(JsonKeys.Engine_Inertia).SI<KilogramSquareMeter>(); }
}
public virtual KilogramPerWattSecond WHTCMotorway
{
get { return Body.GetEx(JsonKeys.Engine_WHTC_Motorway).Value<double>().SI<KilogramPerWattSecond>(); }
get { return Body.GetEx<double>(JsonKeys.Engine_WHTC_Motorway).SI<KilogramPerWattSecond>(); }
}
public virtual KilogramPerWattSecond WHTCRural
{
get { return Body.GetEx(JsonKeys.Engine_WHTC_Rural).Value<double>().SI<KilogramPerWattSecond>(); }
get { return Body.GetEx<double>(JsonKeys.Engine_WHTC_Rural).SI<KilogramPerWattSecond>(); }
}
public virtual KilogramPerWattSecond WHTCUrban
{
get { return Body.GetEx(JsonKeys.Engine_WHTC_Urban).Value<double>().SI<KilogramPerWattSecond>(); }
get
{
return Body.GetEx<double>(JsonKeys.Engine_WHTC_Urban).SI().Gramm.Per.Kilo.Watt.Hour.Cast<KilogramPerWattSecond>();
}
}
}
}
\ No newline at end of file
......@@ -42,7 +42,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
public virtual double Ratio
{
get { return Body.GetEx(JsonKeys.Gearbox_Gears)[0].GetEx(JsonKeys.Gearbox_Gear_Ratio).Value<double>(); }
get { return Body.GetEx(JsonKeys.Gearbox_Gears)[0].GetEx<double>(JsonKeys.Gearbox_Gear_Ratio); }
}
public DataTable LossMap
......@@ -50,7 +50,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
get
{
return ReadTableData(
Body.GetEx(JsonKeys.Gearbox_Gears)[0].GetEx(JsonKeys.Gearbox_Gear_LossMapFile).Value<string>(), "AxleGear");
Body.GetEx(JsonKeys.Gearbox_Gears)[0].GetEx<string>(JsonKeys.Gearbox_Gear_LossMapFile), "AxleGear");
}
}
......@@ -60,23 +60,23 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
public virtual string ModelName
{
get { return Body.GetEx(JsonKeys.Gearbox_ModelName).Value<string>(); }
get { return Body.GetEx<string>(JsonKeys.Gearbox_ModelName); }
}
public virtual GearboxType Type
{
get { return Body.GetEx(JsonKeys.Gearbox_GearboxType).Value<string>().Parse<GearboxType>(); }
get { return Body.GetEx<string>(JsonKeys.Gearbox_GearboxType).Parse<GearboxType>(); }
}
public virtual KilogramSquareMeter Inertia
{
get { return Body.GetEx(JsonKeys.Gearbox_Inertia).Value<double>().SI<KilogramSquareMeter>(); }
get { return Body.GetEx<double>(JsonKeys.Gearbox_Inertia).SI<KilogramSquareMeter>(); }
}
public Second TractionInterruption
{
get { return Body.GetEx(JsonKeys.Gearbox_TractionInterruption).Value<double>().SI<Second>(); }
get { return Body.GetEx<double>(JsonKeys.Gearbox_TractionInterruption).SI<Second>(); }
}
public virtual IList<ITransmissionInputData> Gears
......@@ -87,57 +87,57 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
return (from gear in Body.GetEx(JsonKeys.Gearbox_Gears)
where i++ != 0
let lossMap =
ReadTableData(gear.GetEx(JsonKeys.Gearbox_Gear_LossMapFile).Value<string>(), string.Format("Gear {0} LossMap", i))
ReadTableData(gear.GetEx<string>(JsonKeys.Gearbox_Gear_LossMapFile), string.Format("Gear {0} LossMap", i))
let fullLoadCurve =
ReadTableData(gear.GetEx(JsonKeys.Gearbox_Gear_FullLoadCurveFile).Value<string>(),
ReadTableData(gear.GetEx<string>(JsonKeys.Gearbox_Gear_FullLoadCurveFile),
string.Format("Gear {0} FLD", i), false)
let shiftPolygon =
ReadTableData(gear.GetEx(JsonKeys.Gearbox_Gear_ShiftPolygonFile).Value<string>(),
ReadTableData(gear.GetEx<string>(JsonKeys.Gearbox_Gear_ShiftPolygonFile),
string.Format("Gear {0} shiftPolygon", i), false)
select new TransmissionInputData() {
Gear = i,
Ratio = gear.GetEx(JsonKeys.Gearbox_Gear_Ratio).Value<double>(),
Ratio = gear.GetEx<double>(JsonKeys.Gearbox_Gear_Ratio),
FullLoadCurve = fullLoadCurve,
LossMap = lossMap,
ShiftPolygon = shiftPolygon,
TorqueConverterActive = gear.GetEx(JsonKeys.Gearbox_Gear_TCactive).Value<bool>()
TorqueConverterActive = gear.GetEx<bool>(JsonKeys.Gearbox_Gear_TCactive)
}).Cast<ITransmissionInputData>().ToList();
}
}
public virtual bool SkipGears
{
get { return Body.GetEx(JsonKeys.Gearbox_SkipGears).Value<bool>(); }
get { return Body.GetEx<bool>(JsonKeys.Gearbox_SkipGears); }
}
public virtual Second ShiftTime
{
get { return Body.GetEx(JsonKeys.Gearbox_ShiftTime).Value<double>().SI<Second>(); }
get { return Body.GetEx<double>(JsonKeys.Gearbox_ShiftTime).SI<Second>(); }
}
public virtual bool EarlyShiftUp
{
get { return Body.GetEx(JsonKeys.Gearbox_EarlyShiftUp).Value<bool>(); }
get { return Body.GetEx<bool>(JsonKeys.Gearbox_EarlyShiftUp); }
}
public virtual double TorqueReserve
{
get { return Body.GetEx(JsonKeys.Gearbox_TorqueReserve).Value<double>() / 100.0; }
get { return Body.GetEx<double>(JsonKeys.Gearbox_TorqueReserve) / 100.0; }
}
public virtual MeterPerSecond StartSpeed
{
get { return Body.GetEx(JsonKeys.Gearbox_StartSpeed).Value<double>().SI<MeterPerSecond>(); }
get { return Body.GetEx<double>(JsonKeys.Gearbox_StartSpeed).SI<MeterPerSecond>(); }
}
public virtual MeterPerSquareSecond StartAcceleration
{
get { return Body.GetEx(JsonKeys.Gearbox_StartAcceleration).Value<double>().SI<MeterPerSquareSecond>(); }
get { return Body.GetEx<double>(JsonKeys.Gearbox_StartAcceleration).SI<MeterPerSquareSecond>(); }
}
public virtual double StartTorqueReserve
{
get { return Body.GetEx(JsonKeys.Gearbox_StartTorqueReserve).Value<double>() / 100.0; }
get { return Body.GetEx<double>(JsonKeys.Gearbox_StartTorqueReserve) / 100.0; }
}
public virtual ITorqueConverterInputData TorqueConverter
......@@ -163,8 +163,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
{
return
Body.GetEx(JsonKeys.Gearbox_TorqueConverter)
.GetEx(JsonKeys.Gearbox_TorqueConverter_ReferenceRPM)
.Value<double>()
.GetEx<double>(JsonKeys.Gearbox_TorqueConverter_ReferenceRPM)
.RPMtoRad();
}
}
......@@ -173,8 +172,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
{
get
{
return ReadTableData(
Body.GetEx(JsonKeys.Gearbox_TorqueConverter).GetEx(JsonKeys.Gearbox_TorqueConverter_TCMap).Value<string>(),
return
ReadTableData(Body.GetEx(JsonKeys.Gearbox_TorqueConverter).GetEx<string>(JsonKeys.Gearbox_TorqueConverter_TCMap),
"TorqueConverter Data");
}
}
......@@ -184,7 +183,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
get
{
return
Body.GetEx(JsonKeys.Gearbox_TorqueConverter).GetEx(JsonKeys.Gearbox_TorqueConverter_Inertia).Value<double>()
Body.GetEx(JsonKeys.Gearbox_TorqueConverter)
.GetEx<double>(JsonKeys.Gearbox_TorqueConverter_Inertia)
.SI<KilogramSquareMeter>();
}
}
......
......@@ -342,11 +342,11 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
get
{
var startStop = Body.GetEx(JsonKeys.DriverData_StartStop);
return new StartStopInputData() {
Enabled = startStop.GetEx(JsonKeys.DriverData_StartStop_Enabled).Value<bool>(),
Delay = startStop.GetEx(JsonKeys.DriverData_StartStop_Delay).Value<double>().SI<Second>(),
MaxSpeed = startStop.GetEx(JsonKeys.DriverData_StartStop_MaxSpeed).Value<double>().KMPHtoMeterPerSecond(),
MinTime = startStop.GetEx(JsonKeys.DriverData_StartStop_MinTime).Value<double>().SI<Second>(),
return new StartStopInputData {
Enabled = startStop.GetEx<bool>(JsonKeys.DriverData_StartStop_Enabled),
Delay = startStop.GetEx<double>(JsonKeys.DriverData_StartStop_Delay).SI<Second>(),
MaxSpeed = startStop.GetEx<double>(JsonKeys.DriverData_StartStop_MaxSpeed).KMPHtoMeterPerSecond(),
MinTime = startStop.GetEx<double>(JsonKeys.DriverData_StartStop_MinTime).SI<Second>(),
};
}
}
......@@ -357,9 +357,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
{
var lac = Body.GetEx(JsonKeys.DriverData_LookaheadCoasting);
return new LookAheadCoastingInputData() {
Enabled = lac.GetEx(JsonKeys.DriverData_Lookahead_Enabled).Value<bool>(),
Deceleration = lac.GetEx(JsonKeys.DriverData_Lookahead_Deceleration).Value<double>().SI<MeterPerSquareSecond>(),
MinSpeed = lac.GetEx(JsonKeys.DriverData_Lookahead_MinSpeed).Value<double>().KMPHtoMeterPerSecond(),
Enabled = lac.GetEx<bool>(JsonKeys.DriverData_Lookahead_Enabled),
Deceleration = lac.GetEx<double>(JsonKeys.DriverData_Lookahead_Deceleration).SI<MeterPerSquareSecond>(),
MinSpeed = lac.GetEx<double>(JsonKeys.DriverData_Lookahead_MinSpeed).KMPHtoMeterPerSecond(),
};
}
}
......@@ -370,11 +370,11 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
{
var overspeed = Body.GetEx(JsonKeys.DriverData_OverspeedEcoRoll);
return new OverSpeedEcoRollInputData() {
Mode = DriverData.ParseDriverMode(overspeed.GetEx(JsonKeys.DriverData_OverspeedEcoRoll_Mode).Value<string>()),
MinSpeed = overspeed.GetEx(JsonKeys.DriverData_OverspeedEcoRoll_MinSpeed).Value<double>().KMPHtoMeterPerSecond(),
OverSpeed = overspeed.GetEx(JsonKeys.DriverData_OverspeedEcoRoll_OverSpeed).Value<double>().KMPHtoMeterPerSecond(),
Mode = DriverData.ParseDriverMode(overspeed.GetEx<string>(JsonKeys.DriverData_OverspeedEcoRoll_Mode)),
MinSpeed = overspeed.GetEx<double>(JsonKeys.DriverData_OverspeedEcoRoll_MinSpeed).KMPHtoMeterPerSecond(),
OverSpeed = overspeed.GetEx<double>(JsonKeys.DriverData_OverspeedEcoRoll_OverSpeed).KMPHtoMeterPerSecond(),
UnderSpeed =
overspeed.GetEx(JsonKeys.DriverData_OverspeedEcoRoll_UnderSpeed).Value<double>().KMPHtoMeterPerSecond()
overspeed.GetEx<double>(JsonKeys.DriverData_OverspeedEcoRoll_UnderSpeed).KMPHtoMeterPerSecond()
};
}
}
......@@ -412,9 +412,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
var retVal = new List<IAuxiliaryInputData>();
foreach (var aux in Body.GetEx("Aux")) {
var auxData = new AuxiliaryDataInputData {
ID = aux.GetEx("ID").Value<string>(),
Type = aux.GetEx("Type").Value<string>(),
Technology = aux.GetEx("Technology").Value<string>()
ID = aux.GetEx<string>("ID"),
Type = aux.GetEx<string>("Type"),
Technology = aux.GetEx<string>("Technology")
};
var auxFile = aux["Path"];
if (auxFile == null || EmptyOrInvalidFileName(auxFile.Value<string>())) {
......
......@@ -67,7 +67,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
private static int ReadVersion(JObject json)
{
return json.GetEx(JsonKeys.JsonHeader).GetEx(JsonKeys.JsonHeader_FileVersion).Value<int>();
return json.GetEx(JsonKeys.JsonHeader).GetEx<int>(JsonKeys.JsonHeader_FileVersion);
}
}
}
\ No newline at end of file
......@@ -27,47 +27,47 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
public virtual Kilogram CurbWeight
{
get { return Body.GetEx(JsonKeys.Vehicle_CurbWeight).Value<double>().SI<Kilogram>(); }
get { return Body.GetEx<double>(JsonKeys.Vehicle_CurbWeight).SI<Kilogram>(); }
}
public virtual Kilogram CurbWeightExtra
{
get { return Body.GetEx(JsonKeys.Vehicle_CurbWeightExtra).Value<double>().SI<Kilogram>(); }
get { return Body.GetEx<double>(JsonKeys.Vehicle_CurbWeightExtra).SI<Kilogram>(); }
}
public virtual Kilogram GrossVehicleMassRating
{
get { return Body.GetEx(JsonKeys.Vehicle_GrossVehicleMassRating).Value<double>().SI<Ton>().Cast<Kilogram>(); }
get { return Body.GetEx<double>(JsonKeys.Vehicle_GrossVehicleMassRating).SI<Ton>().Cast<Kilogram>(); }
}
public virtual Kilogram Loading
{
get { return Body.GetEx(JsonKeys.Vehicle_Loading).Value<double>().SI<Kilogram>(); }
get { return Body.GetEx<double>(JsonKeys.Vehicle_Loading).SI<Kilogram>(); }
}
public virtual Meter DynamicTyreRadius
{
get { return Body.GetEx(JsonKeys.Vehicle_DynamicTyreRadius).Value<double>().SI().Milli.Meter.Cast<Meter>(); }
get { return Body.GetEx<double>(JsonKeys.Vehicle_DynamicTyreRadius).SI().Milli.Meter.Cast<Meter>(); }
}
public virtual SquareMeter AirDragArea
{
get { return Body.GetEx(JsonKeys.Vehicle_DragCoefficient).Value<double>().SI<SquareMeter>(); }
get { return Body.GetEx<double>(JsonKeys.Vehicle_DragCoefficient).SI<SquareMeter>(); }
}
public virtual SquareMeter AirDragAreaRigidTruck
{
get { return Body.GetEx(JsonKeys.Vehicle_DragCoefficientRigidTruck).Value<double>().SI<SquareMeter>(); }
get { return Body.GetEx<double>(JsonKeys.Vehicle_DragCoefficientRigidTruck).SI<SquareMeter>(); }
}
public virtual CrossWindCorrectionMode CrossWindCorrectionMode
{
get { return CrossWindCorrectionModeHelper.Parse(Body.GetEx("CdCorrMode").Value<string>()); }
get { return CrossWindCorrectionModeHelper.Parse(Body.GetEx<string>("CdCorrMode")); }
}
public virtual string Rim
{
get { return Body.GetEx(JsonKeys.Vehicle_Rim).Value<string>(); }
get { return Body.GetEx<string>(JsonKeys.Vehicle_Rim); }
}
public virtual AxleConfiguration AxleConfiguration
......@@ -76,7 +76,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
{
return
AxleConfigurationHelper.Parse(
Body.GetEx(JsonKeys.Vehicle_AxleConfiguration).GetEx(JsonKeys.Vehicle_AxleConfiguration_Type).Value<string>());
Body.GetEx(JsonKeys.Vehicle_AxleConfiguration).GetEx<string>(JsonKeys.Vehicle_AxleConfiguration_Type));
}
}
......@@ -86,20 +86,20 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
{
return
Body.GetEx(JsonKeys.Vehicle_AxleConfiguration).GetEx(JsonKeys.Vehicle_AxleConfiguration_Axles).Select(
axle => new AxleInputData() {
Inertia = axle.GetEx(JsonKeys.Vehicle_Axles_Inertia).Value<double>().SI<KilogramSquareMeter>(),
Wheels = axle.GetEx(JsonKeys.Vehicle_Axles_Wheels).Value<string>(),
TwinTyres = axle.GetEx(JsonKeys.Vehicle_Axles_TwinTyres).Value<bool>(),
RollResistanceCoefficient = axle.GetEx(JsonKeys.Vehicle_Axles_RollResistanceCoefficient).Value<double>(),
TyreTestLoad = axle.GetEx(JsonKeys.Vehicle_Axles_TyreTestLoad).Value<double>().SI<Newton>(),
AxleWeightShare = axle.GetEx("AxleWeightShare").Value<double>()
axle => new AxleInputData {
Inertia = axle.GetEx<double>(JsonKeys.Vehicle_Axles_Inertia).SI<KilogramSquareMeter>(),
Wheels = axle.GetEx<string>(JsonKeys.Vehicle_Axles_Wheels),
TwinTyres = axle.GetEx<bool>(JsonKeys.Vehicle_Axles_TwinTyres),
RollResistanceCoefficient = axle.GetEx<double>(JsonKeys.Vehicle_Axles_RollResistanceCoefficient),
TyreTestLoad = axle.GetEx<double>(JsonKeys.Vehicle_Axles_TyreTestLoad).SI<Newton>(),
AxleWeightShare = axle.GetEx<double>("AxleWeightShare")
}).Cast<IAxleInputData>().ToList();
}
}
public virtual DataTable CrosswindCorrectionMap
{
get { return ReadTableData(Body.GetEx("CdCorrFile").Value<string>(), "CrosswindCorrection File"); }
get { return ReadTableData(Body.GetEx<string>("CdCorrFile"), "CrosswindCorrection File"); }
}
#endregion
......@@ -113,13 +113,13 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
return
(RetarderData.RetarderType)
Enum.Parse(typeof(RetarderData.RetarderType),
Body.GetEx(JsonKeys.Vehicle_Retarder).GetEx(JsonKeys.Vehicle_Retarder_Type).Value<string>(), true);
Body.GetEx(JsonKeys.Vehicle_Retarder).GetEx<string>(JsonKeys.Vehicle_Retarder_Type), true);
}
}
public virtual double Ratio
{
get { return Body.GetEx(JsonKeys.Vehicle_Retarder).GetEx(JsonKeys.Vehicle_Retarder_Ratio).Value<double>(); }
get { return Body.GetEx(JsonKeys.Vehicle_Retarder).GetEx<double>(JsonKeys.Vehicle_Retarder_Ratio); }
}
public virtual DataTable LossMap
......@@ -127,7 +127,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
get
{
return
ReadTableData(Body.GetEx(JsonKeys.Vehicle_Retarder).GetEx(JsonKeys.Vehicle_Retarder_LossMapFile).Value<string>(),
ReadTableData(Body.GetEx(JsonKeys.Vehicle_Retarder).GetEx<string>(JsonKeys.Vehicle_Retarder_LossMapFile),
"LossMap");
}
}
......
using System;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Linq;
using TUGraz.VectoCore.Exceptions;
namespace TUGraz.VectoCore.InputData.FileIO.JSON
......@@ -23,5 +22,15 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
}
return val;
}
public static T GetEx<T>(this JObject value, string property)
{
return GetEx(value, property).Value<T>();
}
public static T GetEx<T>(this JToken value, string property)
{
return GetEx(value, property).Value<T>();
}
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment