diff --git a/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs b/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs index 9da090809255a09bea86b1df3c03669d53e6660e..22f00549428399615a20fe3743b1642caf03189c 100644 --- a/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs +++ b/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs @@ -761,7 +761,7 @@ namespace TUGraz.VectoCommon.InputData ICompressorType CompressorType { get; } - int AuxHeaterPower { get; } + Watt AuxHeaterPower { get; } bool DoubleGlasing { get; } diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs index 5f8b433910a8753399826c9493a185e8093ba47e..180ff0e6c80767905cf51116d6deef21deb068e5 100644 --- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs +++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs @@ -181,7 +181,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON public virtual int SystemConfiguration { get; set; } public virtual ICompressorType CompressorType { get { return null; } } - public virtual int AuxHeaterPower { get; set; } + public virtual Watt AuxHeaterPower { get; set; } public virtual bool DoubleGlasing { get { return false; } } public virtual bool HeatPump { get { return false; } } public virtual bool AdjustableCoolantThermostat { get { return Body["Aux"]?["HVAC"]?.GetEx<bool>("AdjustableCoolantThermostat") ?? false; } } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationBusAuxiliariesDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationBusAuxiliariesDataProvider.cs index 08349f35d2e7655394483398ece36e5f58816e11..25b046f8dd373063eb70915352e073298e3da843 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationBusAuxiliariesDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationBusAuxiliariesDataProvider.cs @@ -61,7 +61,10 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider { } } - public IElectricConsumersDeclarationData ElectricConsumers { get; } + public IElectricConsumersDeclarationData ElectricConsumers + { + get { return null; } + } public IPneumaticSupplyDeclarationData PneumaticSupply { @@ -85,7 +88,6 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider { AdBlueDosing = GetBool(XMLNames.Bus_AdBlueDosing) ? ConsumerTechnology.Pneumatically : ConsumerTechnology.Electrically, DoorDriveTechnology = ConsumerTechnologyHelper.Parse(GetString(XMLNames.Bus_DoorDriveTechnology)) }; - } } @@ -233,9 +235,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider { { var hvac = new HVACBusAuxiliariesDeclarationData { - SystemConfiguration = XmlConvert.ToInt32(GetString(XMLNames.Bus_SystemConfiguration)), - CompressorType = new CompressorType( GetString(XMLNames.Bus_DriverAC), GetString(XMLNames.Bus_PassengerAC)), - AuxHeaterPower = XmlConvert.ToInt32(GetString(XMLNames.Bus_AuxiliaryHeaterPower)), + SystemConfiguration = GetString(XMLNames.Bus_SystemConfiguration).ToInt(), + CompressorType = new CompressorType(GetString(XMLNames.Bus_DriverAC), GetString(XMLNames.Bus_PassengerAC)), + AuxHeaterPower = GetString(XMLNames.Bus_AuxiliaryHeaterPower).ToDouble().SI<Watt>(), DoubleGlasing = GetBool(XMLNames.Bus_DoubleGlasing), HeatPump = GetBool(XMLNames.Bus_HeatPump), AdjustableAuxiliaryHeater = GetBool(XMLNames.Bus_AdjustableAuxiliaryHeater), diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs index 8fda10452bb6810ae26c9f7c17b3910297d835cf..e911b99e2b29896187db471425832d9818f824f1 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs @@ -31,6 +31,7 @@ using System; using System.Collections.Generic; +using System.Runtime.InteropServices; using System.Windows.Forms.VisualStyles; using System.Xml; using System.Xml.Linq; @@ -705,6 +706,18 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider //VehicleWidth public override Meter Width { get { return GetDouble(XMLNames.Bus_VehicleWidth).SI<Meter>(); } } + public override XmlElement PTONode + { + get + { + if (ExemptedVehicle) + { + return null; + } + return _ptoNode ?? (_ptoNode = GetNode(XMLNames.Vehicle_PTO, required: false) as XmlElement); + } + } + #endregion public bool LowEntry { get { return GetBool(XMLNames.Bus_LowEntry); } } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLJobDataReader.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLJobDataReader.cs index 617365d49d2b0fe1d98bda9732e47b5309ed0db6..74bc6a042f69b200b348ba8f5b354f23e2c8e12d 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLJobDataReader.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLJobDataReader.cs @@ -71,11 +71,10 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl protected override IVehicleDeclarationInputData VehicleCreator(string version, XmlNode vehicleNode, string sourceFile) { var vehicle = Factory.CreateVehicleData(version, JobData, vehicleNode, sourceFile); + vehicle.ComponentReader = GetReader(vehicle, vehicle.ComponentNode, Factory.CreateComponentReader); vehicle.ADASReader = vehicle.ADASNode == null ? null : GetReader(vehicle, vehicle.ADASNode, Factory.CreateADASReader); //null; - - if(!version.EndsWith(XMLDeclarationCompletedBusDataProviderV26.XSD_TYPE)) - vehicle.PTOReader = GetReader(vehicle, vehicle.PTONode, Factory.CreatePTOReader); + vehicle.PTOReader = vehicle.PTONode == null ? null : GetReader(vehicle, vehicle.PTONode, Factory.CreatePTOReader); return vehicle; } diff --git a/VectoCore/VectoCore/InputData/Impl/InputData.cs b/VectoCore/VectoCore/InputData/Impl/InputData.cs index aa5318533021eede318650b82fc01f781bd57e2b..d4d0fbfff2599ec1d8e50d4c8647e3d4b85cf85f 100644 --- a/VectoCore/VectoCore/InputData/Impl/InputData.cs +++ b/VectoCore/VectoCore/InputData/Impl/InputData.cs @@ -252,7 +252,7 @@ namespace TUGraz.VectoCore.InputData.Impl public bool AdjustableCoolantThermostat { get; internal set; } - public int AuxHeaterPower { get; internal set; } + public Watt AuxHeaterPower { get; internal set; } public ICompressorType CompressorType { get; internal set; } diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.6_Buses/vecto_vehicle-completed_heavyBus.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.6_Buses/vecto_vehicle-completed_heavyBus.xml index aae208dd43476e6547a13f02ff9c444ac3c2ba21..ca723d3b8b6609727f09b79e2ee6dc18930d9acb 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.6_Buses/vecto_vehicle-completed_heavyBus.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.6_Buses/vecto_vehicle-completed_heavyBus.xml @@ -47,7 +47,7 @@ <Auxiliaries> <Data xsi:type="CompletedVehicleAuxiliaryDataDeclarationType"> <ElectricSystem> - <AlternatorTechnology ratio="1.000">Sample Alternator Technology 1</AlternatorTechnology> + <AlternatorTechnology ratio="1.000">default</AlternatorTechnology> <LEDLights> <Dayrunninglights>false</Dayrunninglights> <Headlights>false</Headlights> @@ -59,8 +59,8 @@ <HVAC> <SystemConfiguration>7</SystemConfiguration> <CompressorType> - <DriverAC>sample tech 2</DriverAC> - <PassengerAC>sample tech 1</PassengerAC> + <DriverAC>2-stage</DriverAC> + <PassengerAC>3-stage</PassengerAC> </CompressorType> <AuxiliaryHeaterPower>0</AuxiliaryHeaterPower> <DoubleGlasing>true</DoubleGlasing> diff --git a/VectoCore/VectoCoreTest/VectoCoreTest.csproj b/VectoCore/VectoCoreTest/VectoCoreTest.csproj index 275d6f0083542b6deb1112b066f4320042ebe9c9..11836c127be50b8d0a9a4c2aa22f6712dcc6b17a 100644 --- a/VectoCore/VectoCoreTest/VectoCoreTest.csproj +++ b/VectoCore/VectoCoreTest/VectoCoreTest.csproj @@ -3586,9 +3586,12 @@ <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.6_Buses\example_heavyBus_PIF.xml"> <CopyToOutputDirectory>Always</CopyToOutputDirectory> </Content> - <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.6_Buses\vecto_vehicle-completed_heavyBus.xml" /> + <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.6_Buses\vecto_vehicle-completed_heavyBus.xml"> + <SubType>Designer</SubType> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </Content> <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.6_Buses\vecto_vehicle-primary_heavyBus.xml"> - <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> </Content> <Content Include="TestData\XML\XMLReaderDeclaration\Tractor_4x2_vehicle-class-5_5_t_0.xml"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> diff --git a/VectoCore/VectoCoreTest/XML/XMLCompleteBusReaderTest.cs b/VectoCore/VectoCoreTest/XML/XMLCompleteBusReaderTest.cs index 470c44577b7e0e0b775d9a9d228ab29c260ae3ba..fd31271326c60fa036e147f06a310e5e2c93e3c6 100644 --- a/VectoCore/VectoCoreTest/XML/XMLCompleteBusReaderTest.cs +++ b/VectoCore/VectoCoreTest/XML/XMLCompleteBusReaderTest.cs @@ -99,14 +99,14 @@ namespace TUGraz.VectoCore.Tests.XML Assert.IsNotNull(electricSupl.Alternators); Assert.AreEqual(1, electricSupl.Alternators.Count); Assert.AreEqual(1.000, electricSupl.Alternators.First().Ratio); - Assert.AreEqual("Sample Alternator Technology 1", electricSupl.Alternators.First().Technology); + Assert.AreEqual("default", electricSupl.Alternators.First().Technology); var havacAux = components.BusAuxiliaries.HVACAux; Assert.IsNotNull(havacAux); Assert.AreEqual(7, havacAux.SystemConfiguration); - Assert.AreEqual("sample tech 2", havacAux.CompressorType.DriverAC); - Assert.AreEqual("sample tech 1", havacAux.CompressorType.PassengerAC); - Assert.AreEqual(0, havacAux.AuxHeaterPower); + Assert.AreEqual("2-stage", havacAux.CompressorType.DriverAC); + Assert.AreEqual("3-stage", havacAux.CompressorType.PassengerAC); + Assert.AreEqual(0.SI<Watt>(), havacAux.AuxHeaterPower); Assert.IsTrue(havacAux.DoubleGlasing); Assert.IsFalse(havacAux.HeatPump); Assert.IsTrue(havacAux.AdjustableAuxiliaryHeater);