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

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

TorqueConverterData, TransmissionLossDataReader: Added better Error Messages if data is not correct

parent 02297400
No related branches found
No related tags found
No related merge requests found
......@@ -54,6 +54,9 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData
public static TorqueConverterData Create(DataTable data, PerSecond referenceRpm, PerSecond maxRpm)
{
if (data == null)
throw new VectoException("TorqueConverter Characteristics data is missing.");
if (data.Columns.Count != 3) {
throw new VectoException("TorqueConverter Characteristics data must consist of 3 columns");
}
......@@ -65,19 +68,19 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData
if (HeaderIsValid(data.Columns)) {
characteristicTorque = (from DataRow row in data.Rows
select
new TorqueConverterEntry() {
SpeedRatio = row.ParseDouble(Fields.SpeedRatio),
Torque = row.ParseDouble(Fields.CharacteristicTorque).SI<NewtonMeter>(),
TorqueRatio = row.ParseDouble(Fields.TorqueRatio)
}).ToList();
new TorqueConverterEntry() {
SpeedRatio = row.ParseDouble(Fields.SpeedRatio),
Torque = row.ParseDouble(Fields.CharacteristicTorque).SI<NewtonMeter>(),
TorqueRatio = row.ParseDouble(Fields.TorqueRatio)
}).ToList();
} else {
characteristicTorque = (from DataRow row in data.Rows
select
new TorqueConverterEntry() {
SpeedRatio = row.ParseDouble(0),
Torque = row.ParseDouble(2).SI<NewtonMeter>(),
TorqueRatio = row.ParseDouble(1)
}).ToList();
new TorqueConverterEntry() {
SpeedRatio = row.ParseDouble(0),
Torque = row.ParseDouble(2).SI<NewtonMeter>(),
TorqueRatio = row.ParseDouble(1)
}).ToList();
}
return new TorqueConverterData(characteristicTorque, referenceRpm, maxRpm);
}
......
......@@ -95,11 +95,15 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData
/// <returns></returns>
public static TransmissionLossMap Create(double efficiency, double gearRatio, string gearName)
{
if (double.IsNaN(efficiency)) {
throw new VectoException("TransmissionLossMap: Efficiency is not a number.");
}
if (efficiency <= 0) {
throw new VectoException("Efficiency for gear {0} must be greater than 0", gearName);
throw new VectoException("TransmissionLossMap: Efficiency for gear {0} must be greater than 0", gearName);
}
if (efficiency > 1) {
throw new VectoException("Efficiency for gear {1} must not be greater than 1", gearName);
throw new VectoException("TransmissionLossMap: Efficiency for gear {1} must not be greater than 1", gearName);
}
var entries = new List<TransmissionLossMap.GearLossMapEntry> {
new TransmissionLossMap.GearLossMapEntry(0.RPMtoRad(), 1e5.SI<NewtonMeter>(),
......@@ -126,20 +130,20 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData
private static List<TransmissionLossMap.GearLossMapEntry> CreateFromColumnNames(DataTable data)
{
return (from DataRow row in data.Rows
select new TransmissionLossMap.GearLossMapEntry(
inputSpeed: row.ParseDouble(Fields.InputSpeed).RPMtoRad(),
inputTorque: row.ParseDouble(Fields.InputTorque).SI<NewtonMeter>(),
torqueLoss: row.ParseDouble(Fields.TorqeLoss).SI<NewtonMeter>()))
select new TransmissionLossMap.GearLossMapEntry(
inputSpeed: row.ParseDouble(Fields.InputSpeed).RPMtoRad(),
inputTorque: row.ParseDouble(Fields.InputTorque).SI<NewtonMeter>(),
torqueLoss: row.ParseDouble(Fields.TorqeLoss).SI<NewtonMeter>()))
.ToList();
}
private static List<TransmissionLossMap.GearLossMapEntry> CreateFromColumIndizes(DataTable data)
{
return (from DataRow row in data.Rows
select new TransmissionLossMap.GearLossMapEntry(
inputSpeed: row.ParseDouble(0).RPMtoRad(),
inputTorque: row.ParseDouble(1).SI<NewtonMeter>(),
torqueLoss: row.ParseDouble(2).SI<NewtonMeter>()))
select new TransmissionLossMap.GearLossMapEntry(
inputSpeed: row.ParseDouble(0).RPMtoRad(),
inputTorque: row.ParseDouble(1).SI<NewtonMeter>(),
torqueLoss: row.ParseDouble(2).SI<NewtonMeter>()))
.ToList();
}
......
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