diff --git a/VectoCore/VectoCore/InputData/Reader/ComponentData/AccelerationCurveReader.cs b/VectoCore/VectoCore/InputData/Reader/ComponentData/AccelerationCurveReader.cs index 3ffb4833610ebd675f36fe776bd89c3b8601aea3..3040a8b49aea54b2f575786d7acc2888976e4b6d 100644 --- a/VectoCore/VectoCore/InputData/Reader/ComponentData/AccelerationCurveReader.cs +++ b/VectoCore/VectoCore/InputData/Reader/ComponentData/AccelerationCurveReader.cs @@ -73,11 +73,12 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData if (HeaderIsValid(data.Columns)) { return CreateFromColumnNames(data); } - LoggingObject.Logger<AccelerationCurveData>() - .Warn("Acceleration Curve: Header Line is not valid. Expected: '{0}, {1}, {2}', Got: {3}", - Fields.Velocity, Fields.Acceleration, - Fields.Deceleration, - string.Join(", ", data.Columns.Cast<DataColumn>().Select(c => c.ColumnName))); + LoggingObject.Logger<AccelerationCurveData>().Warn( + "Acceleration Curve: Header Line is not valid. Expected: '{0}, {1}, {2}', Got: {3}. Falling back to column index.", + Fields.Velocity, + Fields.Acceleration, + Fields.Deceleration, + data.Columns.Cast<DataColumn>().Select(c => c.ColumnName).Join()); return CreateFromColumnIndizes(data); } diff --git a/VectoCore/VectoCore/InputData/Reader/ComponentData/CrossWindCorrectionCurveReader.cs b/VectoCore/VectoCore/InputData/Reader/ComponentData/CrossWindCorrectionCurveReader.cs index 3766144203e7c82c60d98263abbe8c9b6f31f1bc..0fc60b969a0ec19bb9f8993c169983612daf6074 100644 --- a/VectoCore/VectoCore/InputData/Reader/ComponentData/CrossWindCorrectionCurveReader.cs +++ b/VectoCore/VectoCore/InputData/Reader/ComponentData/CrossWindCorrectionCurveReader.cs @@ -100,8 +100,9 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData } LogManager.GetLogger(typeof(CrossWindCorrectionCurveReader).FullName).Warn( "Crosswind correction file: Header line is not valid. Expected: '{0}, {1}', Got: '{2}'. Falling back to column index.", - FieldsSpeedDependent.Velocity, FieldsSpeedDependent.Cd, - string.Join(", ", data.Columns.Cast<DataColumn>().Select(c => c.ColumnName).Reverse())); + FieldsSpeedDependent.Velocity, + FieldsSpeedDependent.Cd, + data.Columns.Cast<DataColumn>().Select(c => c.ColumnName).Join()); return ParseSpeedDependentFromColumnIndizes(data, aerodynamicDragArea); } diff --git a/VectoCore/VectoCore/InputData/Reader/ComponentData/ElectricMotorMapReader.cs b/VectoCore/VectoCore/InputData/Reader/ComponentData/ElectricMotorMapReader.cs index abff89457f51f871ee566d57f1e3d8bcc81f0afd..87ce14fdeded1a6213944426cbd71d422731da7e 100644 --- a/VectoCore/VectoCore/InputData/Reader/ComponentData/ElectricMotorMapReader.cs +++ b/VectoCore/VectoCore/InputData/Reader/ComponentData/ElectricMotorMapReader.cs @@ -24,9 +24,11 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData { if (!headerValid) { LoggingObject.Logger<FuelConsumptionMap>().Warn( - "Efficiencymap: Header Line is not valid. Expected: '{0}, {1}, {2}', Got: {3}", - Fields.MotorSpeed, Fields.Torque, Fields.PowerElectrical, - string.Join(", ", data.Columns.Cast<DataColumn>().Select(c => c.ColumnName))); + "Efficiency Map: Header Line is not valid. Expected: '{0}, {1}, {2}', Got: {3}. Falling back to default names.", + Fields.MotorSpeed, + Fields.Torque, + Fields.PowerElectrical, + data.Columns.Cast<DataColumn>().Select(c => c.ColumnName).Join()); data.Columns[0].ColumnName = Fields.MotorSpeed; data.Columns[1].ColumnName = Fields.Torque; data.Columns[2].ColumnName = Fields.PowerElectrical; diff --git a/VectoCore/VectoCore/InputData/Reader/ComponentData/FuelConsumptionMapReader.cs b/VectoCore/VectoCore/InputData/Reader/ComponentData/FuelConsumptionMapReader.cs index 19690eae244a46f6e4f7c0ae845f13798d0d1775..812dd6ad5445781fc6458fc8a86def7274515a54 100644 --- a/VectoCore/VectoCore/InputData/Reader/ComponentData/FuelConsumptionMapReader.cs +++ b/VectoCore/VectoCore/InputData/Reader/ComponentData/FuelConsumptionMapReader.cs @@ -69,9 +69,11 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData var headerValid = HeaderIsValid(data.Columns); if (!headerValid) { LoggingObject.Logger<FuelConsumptionMap>().Warn( - "FuelConsumptionMap: Header Line is not valid. Expected: '{0}, {1}, {2}', Got: {3}", - Fields.EngineSpeed, Fields.Torque, Fields.FuelConsumption, - string.Join(", ", data.Columns.Cast<DataColumn>().Select(c => c.ColumnName))); + "FuelConsumptionMap: Header Line is not valid. Expected: '{0}, {1}, {2}', Got: {3}. Falling back to column index.", + Fields.EngineSpeed, + Fields.Torque, + Fields.FuelConsumption, + data.Columns.Cast<DataColumn>().Select(c => c.ColumnName).Join()); } var delaunayMap = new DelaunayMap("FuelConsumptionMap"); diff --git a/VectoCore/VectoCore/InputData/Reader/ComponentData/FullLoadCurveReader.cs b/VectoCore/VectoCore/InputData/Reader/ComponentData/FullLoadCurveReader.cs index 9f6550bb27fe0b3f41e703459a2031708798fa61..f7f914d3ef5115d6b0f59de1189a742c9152d5e7 100644 --- a/VectoCore/VectoCore/InputData/Reader/ComponentData/FullLoadCurveReader.cs +++ b/VectoCore/VectoCore/InputData/Reader/ComponentData/FullLoadCurveReader.cs @@ -71,8 +71,10 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData } else { LoggingObject.Logger<EngineFullLoadCurve>().Warn( "FullLoadCurve: Header Line is not valid. Expected: '{0}, {1}, {2}', Got: '{3}'. Falling back to column index.", - Fields.EngineSpeed, Fields.TorqueFullLoad, - Fields.TorqueDrag, string.Join(", ", data.Columns.Cast<DataColumn>().Select(c => c.ColumnName))); + Fields.EngineSpeed, + Fields.TorqueFullLoad, + Fields.TorqueDrag, + data.Columns.Cast<DataColumn>().Select(c => c.ColumnName).Join()); entriesFld = CreateFromColumnIndizes(data); } diff --git a/VectoCore/VectoCore/InputData/Reader/ComponentData/PTOIdleLossMapReader.cs b/VectoCore/VectoCore/InputData/Reader/ComponentData/PTOIdleLossMapReader.cs index 074d41cad997ac52c4942fa3a5940faacdb387e3..86c7d840e748e4a84c275f5ef7d634bb151139d1 100644 --- a/VectoCore/VectoCore/InputData/Reader/ComponentData/PTOIdleLossMapReader.cs +++ b/VectoCore/VectoCore/InputData/Reader/ComponentData/PTOIdleLossMapReader.cs @@ -68,11 +68,13 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData } if (!(data.Columns.Contains(Fields.EngineSpeed) && data.Columns.Contains(Fields.PTOTorque))) { + LoggingObject.Logger<RetarderLossMap>().Warn( + "PTO Idle LossMap: Header Line is not valid. Expected: '{0}, {1}', Got: '{2}'. Falling back to default names.", + Fields.EngineSpeed, + Fields.PTOTorque, + data.Columns.Cast<DataColumn>().Select(c => c.ColumnName).Join()); data.Columns[0].ColumnName = Fields.EngineSpeed; data.Columns[1].ColumnName = Fields.PTOTorque; - LoggingObject.Logger<RetarderLossMap>().Warn( - "PTO Idle LossMap: Header Line is not valid. Expected: '{0}, {1}', Got: '{2}'. Falling back to column index.", - Fields.EngineSpeed, Fields.PTOTorque, string.Join(", ", data.Columns.Cast<DataColumn>().Select(c => c.ColumnName))); } return new PTOLossMap(data.Rows.Cast<DataRow>() diff --git a/VectoCore/VectoCore/InputData/Reader/ComponentData/RetarderLossMapReader.cs b/VectoCore/VectoCore/InputData/Reader/ComponentData/RetarderLossMapReader.cs index 5848389660ff5ced3be6c11495f71ecc7838dca1..be825fece992cea14d8d9bd891605a42a5e1bb51 100644 --- a/VectoCore/VectoCore/InputData/Reader/ComponentData/RetarderLossMapReader.cs +++ b/VectoCore/VectoCore/InputData/Reader/ComponentData/RetarderLossMapReader.cs @@ -69,12 +69,13 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData } if (!data.Columns.Contains(Fields.RetarderSpeed) || !data.Columns.Contains(Fields.TorqueLoss)) { - data.Columns[0].ColumnName = Fields.RetarderSpeed; - data.Columns[1].ColumnName = Fields.TorqueLoss; LoggingObject.Logger<RetarderLossMap>().Warn( - "RetarderLossMap: Header Line is not valid. Expected: '{0}, {1}', Got: '{2}'. Falling back to column index.", - Fields.RetarderSpeed, Fields.TorqueLoss, + "RetarderLossMap: Header Line is not valid. Expected: '{0}, {1}', Got: '{2}'. Falling back to default names.", + Fields.RetarderSpeed, + Fields.TorqueLoss, string.Join(", ", data.Columns.Cast<DataColumn>().Select(c => c.ColumnName))); + data.Columns[0].ColumnName = Fields.RetarderSpeed; + data.Columns[1].ColumnName = Fields.TorqueLoss; } return new RetarderLossMap(data.Rows.Cast<DataRow>() diff --git a/VectoCore/VectoCore/InputData/Reader/ComponentData/ShiftPolygonReader.cs b/VectoCore/VectoCore/InputData/Reader/ComponentData/ShiftPolygonReader.cs index 63c2d717513f6ec3a00d197ad798ff4a241bb096..0d79e0f3ba4aab9b79002e779bb4260eb2f046a6 100644 --- a/VectoCore/VectoCore/InputData/Reader/ComponentData/ShiftPolygonReader.cs +++ b/VectoCore/VectoCore/InputData/Reader/ComponentData/ShiftPolygonReader.cs @@ -68,11 +68,12 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData entriesDown = CreateFromColumnNames(data, Fields.AngularSpeedDown); entriesUp = CreateFromColumnNames(data, Fields.AngularSpeedUp); } else { - LoggingObject.Logger<ShiftPolygon>() - .Warn( + LoggingObject.Logger<ShiftPolygon>().Warn( "ShiftPolygon: Header Line is not valid. Expected: '{0}, {1}, {2}', Got: '{3}'. Falling back to column index", - Fields.Torque, Fields.AngularSpeedUp, Fields.AngularSpeedDown, - string.Join(", ", data.Columns.Cast<DataColumn>().Select(c => c.ColumnName).Reverse())); + Fields.Torque, + Fields.AngularSpeedUp, + Fields.AngularSpeedDown, + data.Columns.Cast<DataColumn>().Select(c => c.ColumnName).Join()); entriesDown = CreateFromColumnIndizes(data, 1); entriesUp = CreateFromColumnIndizes(data, 2); } diff --git a/VectoCore/VectoCore/InputData/Reader/ComponentData/TransmissionLossMapReader.cs b/VectoCore/VectoCore/InputData/Reader/ComponentData/TransmissionLossMapReader.cs index 3c1aabdc634724c31451afe87ff6f9bff6bc901d..e96fb5094ab019dba56d89aee0c4fff71b6cbbd0 100644 --- a/VectoCore/VectoCore/InputData/Reader/ComponentData/TransmissionLossMapReader.cs +++ b/VectoCore/VectoCore/InputData/Reader/ComponentData/TransmissionLossMapReader.cs @@ -108,9 +108,12 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData List<TransmissionLossMap.GearLossMapEntry> entries; if (!HeaderIsValid(data.Columns)) { LoggingObject.Logger<TransmissionLossMap>().Warn( - "TransmissionLossMap {5}: Header line is not valid. Expected: '{0}, {1}, {2}'. Got: '{4}'. Falling back to column index.", - Fields.InputSpeed, Fields.InputTorque, Fields.TorqeLoss, - string.Join(", ", data.Columns.Cast<DataColumn>().Select(c => c.ColumnName).Reverse()), gearName); + "TransmissionLossMap {0}: Header line is not valid. Expected: '{1}, {2}, {3}'. Got: '{4}'. Falling back to column index.", + gearName, + Fields.InputSpeed, + Fields.InputTorque, + Fields.TorqeLoss, + data.Columns.Cast<DataColumn>().Select(c => c.ColumnName).Join()); data.Columns[0].ColumnName = Fields.InputSpeed; data.Columns[1].ColumnName = Fields.InputTorque; diff --git a/VectoCore/VectoCore/InputData/Reader/ComponentData/WHRPowerReader.cs b/VectoCore/VectoCore/InputData/Reader/ComponentData/WHRPowerReader.cs index a917796dda0b4ed14896bbf1ca501e5e848a6ec9..b3d870fe0f9e2cac82645237cbb7fc64b5d67e2b 100644 --- a/VectoCore/VectoCore/InputData/Reader/ComponentData/WHRPowerReader.cs +++ b/VectoCore/VectoCore/InputData/Reader/ComponentData/WHRPowerReader.cs @@ -41,13 +41,15 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData if (!headerValid) { LoggingObject.Logger<FuelConsumptionMap>().Warn( "WHRMap: Header Line is not valid. Expected: '{0}, {1}, {2}', Got: {3}", - Fields.EngineSpeed, Fields.Torque, Fields.ElectricPower, - string.Join(", ", data.Columns.Cast<DataColumn>().Select(c => c.ColumnName))); + Fields.EngineSpeed, + Fields.Torque, + Fields.ElectricPower, + data.Columns.Cast<DataColumn>().Select(c => c.ColumnName).Join()); } // todo mk-2021-08-26 this check is redundant. Previous code would have thrown exception otherwise. if (!headerValid && (type == WHRType.ElectricalOutput || type == WHRType.MechanicalOutputDrivetrain)) { - throw new VectoException("expected column headers: {0}", string.Join(", ", whrColumn)); + throw new VectoException("expected column headers: {0}", whrColumn.Join()); } if (!headerValid) { diff --git a/VectoCore/VectoCore/InputData/Reader/ShiftStrategy/LookupDataReader.cs b/VectoCore/VectoCore/InputData/Reader/ShiftStrategy/LookupDataReader.cs index 740fdf4e864631498abbf293870305a41583dd39..debcb09b169c3f75d64405226489744d51d27070 100644 --- a/VectoCore/VectoCore/InputData/Reader/ShiftStrategy/LookupDataReader.cs +++ b/VectoCore/VectoCore/InputData/Reader/ShiftStrategy/LookupDataReader.cs @@ -5,6 +5,7 @@ using System.Linq; using TUGraz.VectoCommon.Exceptions; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Utils; namespace TUGraz.VectoCore.InputData.Reader.ShiftStrategy { @@ -33,10 +34,10 @@ namespace TUGraz.VectoCore.InputData.Reader.ShiftStrategy if (!HeaderIsValid(data.Columns)) { LoggingObject.Logger<ShareIdleLowLookup>().Warn( - "{0} lookup: header line is not valid. Expected: '{1}', Got: {2}", + "{0} lookup: Header line is not valid. Expected: '{1}', Got: {2}", _name, - string.Join(", ", _columns), - string.Join(", ", data.Columns.Cast<DataColumn>().Select(c => c.ColumnName))); + _columns.Join(), + data.Columns.Cast<DataColumn>().Select(c => c.ColumnName).Join()); for (var i = 0; i < Math.Min(_columns.Length, data.Columns.Count); i++) { data.Columns[i].Caption = _columns[i]; }